botsense  3.2.0
RoadNarrows Client-Server Proxied Services Framework
XML Message Set

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">
4 
5 <!--
6  - Package: BotSense
7  - Module: bsI2C
8  - File: bsI2CMsgs.xml
9  -
10 
11 /*!
12  \file
13 
14  $LastChangedDate$
15  $Rev$
16 
17  \brief Client - bsProxy server raw \h_i2c bus device messages.
18 
19  \author Robin Knight (robin.knight@roadnarrows.com)
20 
21  - \copyright
22  - \h_copy 2010-2017. RoadNarrows LLC.\n
23  - http://www.roadnarrows.com\n
24  - All Rights Reserved
25 */
26 
27  - Permission is hereby granted, without written agreement and without
28  - license or royalty fees, to use, copy, modify, and distribute this
29  - software and its documentation for any purpose, provided that
30  - (1) The above copyright notice and the following two paragraphs
31  - appear in all copies of the source code and (2) redistributions
32  - including binaries reproduces these notices in the supporting
33  - documentation. Substantial modifications to this software may be
34  - copyrighted by their authors and need not follow the licensing terms
35  - described here, provided that the new terms are clearly indicated in
36  - all files where they apply.
37  -
38  - IN NO EVENT SHALL THE AUTHOR, ROADNARROWS LLC, OR ANY MEMBERS/EMPLOYEES
39  - OF ROADNARROW LLC OR DISTRIBUTORS OF THIS SOFTWARE BE LIABLE TO ANY
40  - PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL
41  - DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION,
42  - EVEN IF THE AUTHORS OR ANY OF THE ABOVE PARTIES HAVE BEEN ADVISED OF
43  - THE POSSIBILITY OF SUCH DAMAGE.
44  -
45  - THE AUTHOR AND ROADNARROWS LLC SPECIFICALLY DISCLAIM ANY WARRANTIES,
46  - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
47  - FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN
48  - "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE NO OBLIGATION TO
49  - PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
50  -
51 -->
52 
53 <netmsgs encoding="itv" endian="big">
54 
55  <!-- ........................................................................
56  - Meta Data to Tweak Source Generation
57  ....................................................................... -->
58  <meta>
59  <brief>
60  BotSense bsProxy server - client raw I2C NetMsgs XML Definition
61  </brief>
62  <ns>BsI2C</ns>
63  <prologue lang="h">
64 #include "rnr/i2c-dev.h"
65 
66 #include "botsense/BotSense.h"
67  </prologue>
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
74  </prologue>
75  <epilogue lang="python"></epilogue>
76  </meta>
77 
78  <!-- ........................................................................
79  - Extended Field Types (Optional)
80  ....................................................................... -->
81  <field_types>
82  </field_types>
83 
84 
85  <!-- ........................................................................
86  - Message Definitions
87  ....................................................................... -->
88  <msg_types>
89 
90  <!-- I2C Read Request -->
91  <msgdef msgid="ReqRead">
92  <fielddef fname="addr" ftype="u16">
93  </fielddef>
94  <fielddef fname="readlen" ftype="u8">
95  <min>1</min>
96  <max>NMFVAL_LEN_MAX_VECTOR</max>
97  </fielddef>
98  </msgdef>
99 
100  <!-- I2C Transaction Request -->
101  <msgdef msgid="ReqTrans">
102  <fielddef fname="addr" ftype="u16">
103  </fielddef>
104  <fielddef fname="writebuf" ftype="u8[]" />
105  <fielddef fname="readlen" ftype="u8">
106  <min>1</min>
107  <max>NMFVAL_LEN_MAX_VECTOR</max>
108  </fielddef>
109  </msgdef>
110 
111  <!-- I2C Read/Transaction Response -->
112  <msgdef msgid="RspRead">
113  <fielddef fname="readbuf" ftype="u8[]" />
114  </msgdef>
115 
116  <!-- I2C Write Request -->
117  <msgdef msgid="ReqWrite">
118  <fielddef fname="addr" ftype="u16">
119  </fielddef>
120  <fielddef fname="writebuf" ftype="u8[]" />
121  </msgdef>
122 
123  <!-- I2C Write Response -->
124  <msgdef msgid="RspWrite">
125  <fielddef fname="byteswritten" ftype="u8" />
126  </msgdef>
127 
128  <!-- I2C Scan Request -->
129  <msgdef msgid="ReqScan">
130  </msgdef>
131 
132  <!-- I2C Scan Response -->
133  <msgdef msgid="RspScan">
134  <fielddef fname="scan" ftype="u16[]" />
135  </msgdef>
136 
137  </msg_types>
138 
139 </netmsgs>