Adapter is an optional piece of hardware or software that transforms information provided by a device into a form that can be received by an MTConnect Agent. The MTConnect standard does not specify or restrict the behavior or implementation of the adapter.
For many systems, the adapter that translates device data into MTConnect is a software-only solution:
If a device does not have a controller, or if the controller is unable to run the adapter software, an additional hardware board is installed. The adapter software then runs on the external board, e.g. on a Raspberry Pi.
In most cases, there is a unique adapter for every unique device model. This is because most devices have their own proprietary data format that needs to be mapped or translated to the MTConnect data format.
The ingress to the C++ MTConnect Agent requires adapters to communicate with it using a simple TCP sockets protocol. The semantics were chosen as the simplest possible format to get data from a device to another process with minimal overhead, but still easily verifiable. See Adapter Connectivity.
There are Adapter examples on MTConnect GitHub that one may follow and could use as a template to create their own adapters.