Please Note This forum exists for community support for the Mango product family and the Radix IoT Platform. Although Radix IoT employees participate in this forum from time to time, there is no guarantee of a response to anything posted here, nor can Radix IoT, LLC guarantee the accuracy of any information expressed or conveyed. Specific project questions from customers with active support contracts are asked to send requests to support@radixiot.com.

Radix IoT Website Mango 3 Documentation Website Mango 4 Documentation Website

  • I wonder if Serial Data Source can communicate with a device with the following format.

    Request Packet Format:
    ID# + Length + Command + Address + CS
    Each item is one byte
    ID# : Device ID #
    Length: 5
    CS: Check Sum

    Receive Packet Format:
    ID# + Length + Command + Reply Data + CS
    ID# (1 byte): Echo of Request
    Length (1 byte): 8 or 132
    1 Byte 1 Byte 1 Byte 1 to 128 Bytes 1 Byte
    Command (1 byte): Echo of Request
    CS: Check Sum
    Reply: 4 or 128 Bytes

    What are the Message Terminator, Message Regex, Point Identifier Index in this case ?
    How to configure it ?
    Thanks !


  • I suspect it isn't possible. The checksum is probably not a standard value that you can use to delimit one message from another, and you cannot use a captured piece of a regular expression to define a length argument later in the same regular expression.

    You could use it to send to the devices. What is the form of the checksum? Some arbitrary 8 bits?

    Your best bet is to just write your own serial parser module, or we are of course available to write this sort of module for some development money to cover the cost of our time.


  • It may actually be a simple code modification. We could just run the regex twice to capture the length argument the first time and capture values from a second run. This module's source is public, so you could attempt this yourself. You will also need to remove the message terminator from datasource validation and a few other places, if you do this.


  • If I make the request packet to be fixed data, CS is fixed too. Can the Serial Data Source works in this case ?


  • Sending the data (what I'm thinking of as the request) is not the issue. You could send any data by using the Point Identifier in the data point details as the Device ID # and setting values to that point. Unless the data returning from the device also is fixed (which would probably make it uninteresting) the checksum will not be fixed and we'll still have a problem of telling one message from the next, or knowing if we've finished reading a message.