This page contains a list of device services that currently exist, are under development, or are considered archived (potentially serving as example code at best).

Current Device Services

Virtual Device (Java): written pre-EdgeX days in Java and only partially under the Java SDK, but this service still functions as a full fledged, database driven, device service that simulates different kinds of devices to generate Events and Readings to the Core Data micro service, and allows sending commands through the Command micro service.

https://github.com/edgexfoundry/device-virtual

Random Number Generator (Go): Written with the Go SDK and demonstrates the simplest of device services - generating a random number (ints of different size) on a scheduled interval and sends the number as an Event/Reading to Core Data.  It also allows the random number range to be set through a request via the Command micro service (demonstrating commands).

https://github.com/edgexfoundry/device-random

Modbus (Go):  Written with the Go SDK.  Provides generic connectivity to read and write Modbus registers and coils.  This implementation works for both TCP and RTU connections (Steve O and Cloud - is this last statement true)?

https://github.com/edgexfoundry/device-modbus-go

Grove (C):  Written with the C SDK.  A device service to communicate with the Grove PI sensors. 

https://github.com/edgexfoundry/device-grove-c

Developed & In EdgeX Holding (approval needed by TSC to make part of EdgeX)

SNMP (Go): Written with the Go SDK and used to provide data ingestion and command/control of an SNMP driven Patlite signal tower, but could easily be copied and modified to support other SNMP supported devices.

https://github.com/edgexfoundry-holding/device-snmp-patlite-go

In Development

Contact the party associated with the development to get more background, status and potentially early code drops.

OPC UA (C):  being developed by IoTech.  A device service to communicate with OPC UA sensors/devices.

Bluetooth Low Energy (Go):  being developed by Dell Technologies.  A device service to communicate with BLE devices/sensors.

Bluetooth Low Energy (C):  being developed by IoTech.  A device service to communicate with BLE devices/sensors.

ZigBee (C):  being developed by IoTech.  A device service to communicate with ZigBee devices/sensors.

CAN bus C):  being developed by IoTech.  A device service to communicate with CAN bus devices/sensors.

ZigBee (C):  being developed by IoTech.  A device service to communicate with ZigBee devices/sensors.

GPS (C):  being developed by IoTech.  A device service to communicate with GPS devices/sensors.

IoTivity (C):  being developed by IoTech.  A device service to communicate with IoTivity devices/sensors.


Archived (device services no longer supported or potentially functioning)

MQTT (Java):  https://github.com/edgexfoundry/device-mqtt

Modbus (Java):  https://github.com/edgexfoundry/device-modbus

SNMP (Java): https://github.com/edgexfoundry/device-snmp

Bluetooth (Java): https://github.com/edgexfoundry/device-bluetooth

Fischertecknic (Java): https://github.com/edgexfoundry/device-fischertechnik

Bacnet (Java): https://github.com/edgexfoundry/device-bacnet