RTno is communicating library and framework which allows you to make your embedded device capable of communicating with RT-middleware world. RT-middleware is a platform software to realize Robotic system. In RTM, robots are developed by constructing robotics technologies\' elements (components) named RT-component. Therefore, the RTno helps you to create your own RT-component with your mbed and arduino. To know how to use your RTno device, visit here: http://ysuga.net/robot_e/rtm_e/rtc_e/1065?lang=en To know about RT-middleware and RT-component, visit http://www.openrtm.org
Dependents: RTnoV3_LED RTnoV3_Template RTnoV3_ADC RTnoV3_Timer ... more
Packet.h@0:9fac71a0bff3, 2012-02-09 (annotated)
- Committer:
- ysuga
- Date:
- Thu Feb 09 02:33:10 2012 +0000
- Revision:
- 0:9fac71a0bff3
RTno Version 3: RTno is a software library and tool to connect embedded devices like arduino and mbed to RT-middleware world.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
ysuga | 0:9fac71a0bff3 | 1 | /******************************************* |
ysuga | 0:9fac71a0bff3 | 2 | * Packet.h |
ysuga | 0:9fac71a0bff3 | 3 | * @author Yuki Suga |
ysuga | 0:9fac71a0bff3 | 4 | * @copyright Yuki Suga (ysuga.net) Nov, 10th, 2010. |
ysuga | 0:9fac71a0bff3 | 5 | * @license LGPLv3 |
ysuga | 0:9fac71a0bff3 | 6 | *****************************************/ |
ysuga | 0:9fac71a0bff3 | 7 | |
ysuga | 0:9fac71a0bff3 | 8 | #ifndef PACKET_HEADER_INCLUDED |
ysuga | 0:9fac71a0bff3 | 9 | #define PACKET_HEADER_INCLUDED |
ysuga | 0:9fac71a0bff3 | 10 | |
ysuga | 0:9fac71a0bff3 | 11 | // Return Values |
ysuga | 0:9fac71a0bff3 | 12 | #define TIMEOUT 1 |
ysuga | 0:9fac71a0bff3 | 13 | #define DATA_TIMEOUT 2 |
ysuga | 0:9fac71a0bff3 | 14 | #define CHECKSUM_ERROR 3 |
ysuga | 0:9fac71a0bff3 | 15 | |
ysuga | 0:9fac71a0bff3 | 16 | #define INVALID_PACKET_INTERFACE 65 |
ysuga | 0:9fac71a0bff3 | 17 | #define INVALID_PACKET_DATASIZE 66 |
ysuga | 0:9fac71a0bff3 | 18 | |
ysuga | 0:9fac71a0bff3 | 19 | // Packet Settings |
ysuga | 0:9fac71a0bff3 | 20 | #define PACKET_HEADER_SIZE 2 |
ysuga | 0:9fac71a0bff3 | 21 | #define INTERFACE 0 |
ysuga | 0:9fac71a0bff3 | 22 | #define DATA_LENGTH 1 |
ysuga | 0:9fac71a0bff3 | 23 | #define DATA_START_ADDR 2 |
ysuga | 0:9fac71a0bff3 | 24 | |
ysuga | 0:9fac71a0bff3 | 25 | enum { |
ysuga | 0:9fac71a0bff3 | 26 | RTC_STATE_CREATED='C', |
ysuga | 0:9fac71a0bff3 | 27 | RTC_STATE_INACTIVE='I', |
ysuga | 0:9fac71a0bff3 | 28 | RTC_STATE_ACTIVE='A', |
ysuga | 0:9fac71a0bff3 | 29 | RTC_STATE_ERROR='E', |
ysuga | 0:9fac71a0bff3 | 30 | RTC_STATE_NONE='N', |
ysuga | 0:9fac71a0bff3 | 31 | }; |
ysuga | 0:9fac71a0bff3 | 32 | |
ysuga | 0:9fac71a0bff3 | 33 | |
ysuga | 0:9fac71a0bff3 | 34 | // Protocol |
ysuga | 0:9fac71a0bff3 | 35 | // Interface |
ysuga | 0:9fac71a0bff3 | 36 | #define INITIALIZE 'I' |
ysuga | 0:9fac71a0bff3 | 37 | #define ACTIVATE 'A' |
ysuga | 0:9fac71a0bff3 | 38 | #define DEACTIVATE 'D' |
ysuga | 0:9fac71a0bff3 | 39 | #define EXECUTE 'E' |
ysuga | 0:9fac71a0bff3 | 40 | #define ONERROR 'C' |
ysuga | 0:9fac71a0bff3 | 41 | #define RESET 'R' |
ysuga | 0:9fac71a0bff3 | 42 | #define GET_STATUS 'X' |
ysuga | 0:9fac71a0bff3 | 43 | #define GET_DATA 'G' |
ysuga | 0:9fac71a0bff3 | 44 | #define SEND_DATA 'S' |
ysuga | 0:9fac71a0bff3 | 45 | #define GET_PROFILE 'Z' |
ysuga | 0:9fac71a0bff3 | 46 | #define GET_CONTEXT 'B' |
ysuga | 0:9fac71a0bff3 | 47 | #define PACKET_ERROR 'F' |
ysuga | 0:9fac71a0bff3 | 48 | #define RECEIVE_DATA 'V' |
ysuga | 0:9fac71a0bff3 | 49 | |
ysuga | 0:9fac71a0bff3 | 50 | #define ADD_INPORT 'P' |
ysuga | 0:9fac71a0bff3 | 51 | #define ADD_OUTPORT 'Q' |
ysuga | 0:9fac71a0bff3 | 52 | |
ysuga | 0:9fac71a0bff3 | 53 | #define INPORT_ISNEW 'N' |
ysuga | 0:9fac71a0bff3 | 54 | #define INPORT_READ 'J' |
ysuga | 0:9fac71a0bff3 | 55 | |
ysuga | 0:9fac71a0bff3 | 56 | #define RTNO_OK '@' |
ysuga | 0:9fac71a0bff3 | 57 | #define RTNO_ERROR 'x' |
ysuga | 0:9fac71a0bff3 | 58 | #define RTNO_NONE '!' |
ysuga | 0:9fac71a0bff3 | 59 | |
ysuga | 0:9fac71a0bff3 | 60 | #define OUTPORT_WRITE 'W' |
ysuga | 0:9fac71a0bff3 | 61 | |
ysuga | 0:9fac71a0bff3 | 62 | // Communication Settings |
ysuga | 0:9fac71a0bff3 | 63 | #define PACKET_WAITING_TIME 100 // ms |
ysuga | 0:9fac71a0bff3 | 64 | #define PACKET_WAITING_DELAY 100 //us |
ysuga | 0:9fac71a0bff3 | 65 | #define PACKET_WAITING_COUNT (PACKET_WAITING_TIME*1000/PACKET_WAITING_DELAY) |
ysuga | 0:9fac71a0bff3 | 66 | |
ysuga | 0:9fac71a0bff3 | 67 | |
ysuga | 0:9fac71a0bff3 | 68 | #define TYPECODE_TIMED_BOOLEAN 'b' |
ysuga | 0:9fac71a0bff3 | 69 | #define TYPECODE_TIMED_CHAR 'c' |
ysuga | 0:9fac71a0bff3 | 70 | #define TYPECODE_TIMED_OCTET 'o' |
ysuga | 0:9fac71a0bff3 | 71 | |
ysuga | 0:9fac71a0bff3 | 72 | |
ysuga | 0:9fac71a0bff3 | 73 | #define TYPECODE_TIMED_LONG 'l' |
ysuga | 0:9fac71a0bff3 | 74 | #define TYPECODE_TIMED_FLOAT 'f' |
ysuga | 0:9fac71a0bff3 | 75 | #define TYPECODE_TIMED_DOUBLE 'd' |
ysuga | 0:9fac71a0bff3 | 76 | |
ysuga | 0:9fac71a0bff3 | 77 | #define TYPECODE_TIMED_BOOLEAN_SEQ 'B' |
ysuga | 0:9fac71a0bff3 | 78 | #define TYPECODE_TIMED_CHAR_SEQ 'C' |
ysuga | 0:9fac71a0bff3 | 79 | #define TYPECODE_TIMED_OCTET_SEQ 'O' |
ysuga | 0:9fac71a0bff3 | 80 | |
ysuga | 0:9fac71a0bff3 | 81 | |
ysuga | 0:9fac71a0bff3 | 82 | #define TYPECODE_TIMED_LONG_SEQ 'L' |
ysuga | 0:9fac71a0bff3 | 83 | #define TYPECODE_TIMED_FLOAT_SEQ 'F' |
ysuga | 0:9fac71a0bff3 | 84 | #define TYPECODE_TIMED_DOUBLE_SEQ 'D' |
ysuga | 0:9fac71a0bff3 | 85 | |
ysuga | 0:9fac71a0bff3 | 86 | #endif |