osamu funada / led_sender_post

Description: テストモード追加、LED有効化 left -> SerialRX, Data Recieve Complete , Serial Tx , Light Tx

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers data_models.h Source File

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&#65533;@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