Neuron v2.1.0 更新日志

Features

  • 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.

HTTP API

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

Refactor

  • 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.

Fixes

  • 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