The bsI2CMsgs.xml specification defines the set of messages for BotSense virtual connections exstablished between BotSense clients and raw I2C devices proxied by the bsProxy server.
The I2C messages are terminated between the BotSense client libbsclient_i2c.so shared library or libbsclient_i2c.a static library and the bsProxy plug-in libbsserver_i2c.so interface module DLL.
The message encoding is 8-bit Id-Type-Value (itv). All message fields are packed in big-endian order.
1 <?
xml version=
"1.0" encoding=
"UTF-8" ?>
2 <!
DOCTYPE netmsgs PUBLIC "-//www.roadnarrows.com//DTD NETMSGS 1.0//EN" 3 "http://www.roadnarrows.com/xml/netmsgs/1.0/netmsgs.dtd">
53 <
netmsgs encoding=
"itv" endian=
"big">
60 BotSense bsProxy server -
client raw I2C NetMsgs XML Definition 64 #
include "rnr/i2c-dev.h" 66 #
include "botsense/BotSense.h" 68 <
epilogue lang=
"h"></
epilogue>
69 <
prologue lang=
"c"></
prologue>
70 <
epilogue lang=
"c"></
epilogue>
71 <
prologue lang=
"python">
72 ##
maximum vector length 73 NMFVAL_LEN_MAX_VECTOR =
nmBase.NMVectorMaxCount 75 <
epilogue lang=
"python"></
epilogue>
91 <
msgdef msgid=
"ReqRead">
92 <
fielddef fname=
"addr" ftype=
"u16">
94 <
fielddef fname=
"readlen" ftype=
"u8">
96 <
max>
NMFVAL_LEN_MAX_VECTOR</
max>
101 <
msgdef msgid=
"ReqTrans">
102 <
fielddef fname=
"addr" ftype=
"u16">
104 <
fielddef fname=
"writebuf" ftype=
"u8[]" />
105 <
fielddef fname=
"readlen" ftype=
"u8">
107 <
max>
NMFVAL_LEN_MAX_VECTOR</
max>
112 <
msgdef msgid=
"RspRead">
113 <
fielddef fname=
"readbuf" ftype=
"u8[]" />
117 <
msgdef msgid=
"ReqWrite">
118 <
fielddef fname=
"addr" ftype=
"u16">
120 <
fielddef fname=
"writebuf" ftype=
"u8[]" />
124 <
msgdef msgid=
"RspWrite">
125 <
fielddef fname=
"byteswritten" ftype=
"u8" />
129 <
msgdef msgid=
"ReqScan">
133 <
msgdef msgid=
"RspScan">
134 <
fielddef fname=
"scan" ftype=
"u16[]" />