Differences

This shows you the differences between two versions of the page.

Link to this comparison view

sdk:hex2serial [2017/11/23 16:16] (current)
juraschek created
Line 1: Line 1:
 +====== Hex Values over Serial ======
 +
 +This Script can be used to send non ascii strings over the serial interface. This is ussually made to talk to external devices for managment or configuration. ​
 +
 +The Big diffrence is to define the non ascii String as follows
 +
 +<code c>
 +get_status="​\xBF\xEF\x12\x00\x21";​
 +set_power_mode="​\xBF\xBC\x23\x00\x3F";​
 +</​code>​
 +
 +and use the write() function to send them over the serial port
 +
 +  ​
 +===== The Script =====
 +
 +
 +<code c>
 +
 +/* Serial Baud Rate 9600, 19200, 38400, 57600, 115200 */
 +SER_SPEED=115200;​
 +/*  number of data bits (5, 6, 7, 8) */
 +SER_DATABIT=8;​
 +/*  number of stop bits (1, 2) */
 +SER_STOPBIT=1;​
 +/* parity (0=no parity, 1=odd parity, 2=even parity) */
 +SER_PARITY=0;​
 +/*  flow control (0=none, 1=xon/xoff, 2=hardware) */
 +SER_FLOW=0;
 +/*  name of the Serial Interface (Only changed if your device has more then one serial Interface (NB3710) */
 +DEV = "​SERIAL1";​
 +
 +rc = nb_serial_setattr(DEV,​ SER_SPEED, SER_DATABIT,​ SER_STOPBIT,​ SER_PARITY, SER_FLOW);
 +       if (rc != 0) {
 +        nb_syslog("​ERROR:​ unable to set serial attributes (rc %d)", rc);
 +        return -1;
 +        }
 +
 +/* open serial port */
 +    serial_fd = nb_serial_open(DEV);​
 +    if (fd < 0) {
 +        return -1;
 +    }
 +    ​
 +
 +
 +get_status="​\xBF\xEF\x12\x00\x21";​
 +set_power_mode="​\xBF\xBC\x23\x00\x3F";​
 +
 +data=get_status;​
 +len=strlen(data);​
 +        if (len > 0) {
 +            sent = write(serial_fd,​ data, len);
 +            if (sent != len) {
 +                nb_syslog("​Unable to send message via Serial, sent: %i, len: %i",​sent,​ len);
 +            }
 +        }
 +
 +
 +
 +
 +</​code>​