Last commit 18 Apr 2012
Description: テストモード追加、LED有効化 left -> SerialRX, Data Recieve Complete , Serial Tx , Light Tx
data_models.h
00001 #ifndef _DATA_MODELS_ 00002 #define _DATA_MODELS_ 00003 00004 #include "types.h" 00005 00006 //frame type 00007 typedef enum{ 00008 Ftype_NoID =0, 00009 Ftype_Type_A=1, 00010 Ftype_Type_B=4 00011 } Ftype; 00012 00013 typedef enum{ 00014 SERVER, 00015 LED_SENDER, 00016 LED_RECIEVER 00017 } Device; 00018 00019 typedef enum{ 00020 PING, 00021 ACK, 00022 RECIEVE, 00023 SEND_SINGLE, 00024 SEND_CONTINUEOUS, 00025 SEND_CONT_STOP, 00026 SET_TX_GAIN, 00027 SET_LIGHT_CONTROL 00028 } Command; 00029 // 00030 //for TCP/IP data structure 00031 // 00032 00033 //message data 48byte(size fix) 00034 typedef struct{ 00035 uint16_t totalSize; //2(total size) + 2(frame number) + 1(device) + 1(command) + 40(data:max 40) <--- max 46 00036 uint16_t frameNumber; 00037 Device device; 00038 Command command; 00039 uint8_t data[40]; //0 fill,size fix 00040 uint16_t sum; 00041 } Message; 00042 00043 //payload id 16byte 00044 typedef struct{ 00045 // uint16_t head; //reserve 0x0000 00046 uint8_t personalId[16]; 00047 } ID; 00048 00049 typedef struct{ 00050 ID id; // 16 byte 00051 Message message; // 48 byte 00052 } Frame; 00053 00054 //66byte Payload 00055 typedef struct{ 00056 uint16_t size; // 2(size) + 1(dummy) + 1(Ftype) + 64(frame) = 68 byte 00057 uint8_t dummy; //adjust Alignment 00058 Ftype ftype; 00059 Frame frame; //64byte 00060 } Payload; 00061 00062 00063 00064 00065 /* --------------------------------------------------- 00066 message data structure 00067 ---------------------------------------------------*/ 00068 00069 /* light�@illuminate level */ 00070 typedef struct{ 00071 uint8_t gain; //1~10 00072 uint8_t middleLevel; //1~10 00073 } TxGainData; 00074 00075 typedef struct{ 00076 uint16_t currentFrameNumber; 00077 TxGainData gainData; 00078 uint8_t lightsw; //0:light off 1:light on 00079 uint8_t continueusMode; //0:single 1:continueus 00080 uint8_t isSend; 00081 uint8_t dummy; 00082 uint32_t xbeeAdress; 00083 } PrefSender; 00084 00085 typedef struct{ 00086 uint32_t xbeeAdress; 00087 } PrefReciever; 00088 00089 typedef struct{ 00090 uint32_t xbeeAdress; 00091 00092 uint8_t serverAddress[4]; 00093 uint8_t subnetMask[4]; 00094 uint8_t routerAddress[4]; 00095 uint16_t serverPort; 00096 00097 uint8_t destinationAddress[4]; 00098 uint16_t destinationPort; 00099 } PrefServer; 00100 00101 00102 00103 void initPayload(Payload *_payload); 00104 00105 void payloadToNetwork(Payload *_payload); 00106 void networkToPayload(Payload *_payload); 00107 00108 void initTestPayloadData(Payload *_payload); 00109 uint16_t culcSum(Payload *_payload); 00110 00111 void dumpPayload(Payload *_payload); 00112 void dumpPrefSender(PrefSender *prf); 00113 void dumpPrefReciever(PrefReciever *prf); 00114 void dumpPrefServer(PrefServer *prf); 00115 00116 #endif
