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

Dependencies:   EthernetNetIf

Dependents:   RTnoV3_LED RTnoV3_Template RTnoV3_ADC RTnoV3_Timer ... more

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?

UserRevisionLine numberNew 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