Neuron v2.1.0 更新日志


  • Add BACnet/IP driver
  • Add KNXnet/IP driver
  • Add DLT645-2007 driver
  • Add SparkPlugB APP
  • Connection supports serial ports
  • Integrated data processing engine
  • Tag adds a description field
  • Introduce zlog, a different log file for each node log output, and limit the log file size
  • Delete the stdatomic.h dependency to support Linux use in lower version of the kernel
  • Supports tag acquisition value failure, which defaults to 30 times group interval
  • Tag names detect duplicates in group and no longer in nodes.
  • IEC60870-5-104 supports reading the types of data that the device actively reports.
  • Node is not running, and the read/write request returns an error.


Remove all ids used in the API and replace the id with name.
  • Simplify the node type as APP and DRIVER

  • DataType map:

    • INT8 = 1

    • UINT8 = 2

    • INT16 = 3

    • UINT16 = 4

    • INT32 = 5

    • UINT32 = 6

    • INT64 = 7

    • UINT64 = 8

    • FLOAT = 9

    • DOUBLE = 10

    • BIT = 11

    • BOOL = 12

    • STRING = 13

    • BYTES = 14

  • Add GET /api/v2/version, get the neuron version

  • Replace /api/v2/gconfig with /api/v2/group
  • Modify API
    • /api/v2/node
    • /api/v2/group
    • /api/v2/tag
    • /api/v2/plugin
    • /api/v2/subscribe
    • /api/v2/read
    • /api/v2/write
    • /api/v2/node/setting
    • /api/v2/node/ctl


  • The adapter distinguishes between app and driver types and handles different msg.
  • The core/manager does not manager group and tag, but is managed by adapter(driver) for group and tag.
  • The core/manager and adapter use the Actor model to process transactions.
  • Removed the locks used in core/manager and adapter.
  • The subscription relationship is managed by core/manager and drivers are no longer notified to have subscriptions or unsubscribes.
  • After configuring the group and tag in the driver, the driver will start reading tag from this group and no longer wait for an app to subscribe to this group.


  • When an incomplete message packet is received from tcp, the packet is not processed, causing the reading tag fail. (IEC60870-5-104, S7COMM, FINS)
  • QnA 3E read assert.
  • OPC UA connection PLC failed.
  • When delete a group, the group is not completely deleted.
  • FINS: Some of the messages that the PLC returned out-of-order data were not processed by neuron.
  • Memory corruption causes group names to appear garbled.
  • Memory leak in core/manager, adapter, driver

Build and Compile

  • Define projects using the C99 standard
  • Remove vector and libcsptr.
  • When compiling the debug version, only the -fsanitize=address parameter of libasan is used.
  • Remove the use of stdatomic.h