123
Fork of LG by
DeviceUserProtocolResponse.h
- Committer:
- Diletant
- Date:
- 2016-06-05
- Revision:
- 167:bedc0a9d559a
- Parent:
- 161:efd949e8d536
File content as of revision 167:bedc0a9d559a:
#ifndef __DEVICE_USER_PROTOCOL_RESPONSE_H__ #define __DEVICE_USER_PROTOCOL_RESPONSE_H__ typedef enum _ResponseType { RESPONSE_NONE, //no sheduled response RESPONSE_IMMEDIATE, //immediate response for most of requests RESPONSE_DELAYED, //delayed response for broadcast requests RESPONSE_PERIODIC //periodic response for some of requests } ResponseType; typedef enum _ResponseData { RESPONSE_BUFFER, //response buffer content as is if not empty RESPONSE_DELTA_BINS, //fill buffer with Delta_BINS data set RESPONSE_DELTA_PS, //fill buffer with Delta_PS data set RESPONSE_DELTA_SF, //fill buffer with Delta_SF data set RESPONSE_RATE //fill buffer with M_Rate data set } ResponseData; #define OutputBufferSize 64 typedef struct _DeviceOutputBuffer { uint8_t data[OutputBufferSize]; //Buffer uint8_t count; //Buffer byte count uint8_t position; //Transmission position } DeviceOutputBuffer; typedef struct _DeviceResponseParameter { void * ref; //parameter address uint16_t size; //parameter byte size } DeviceResponseParameter; //Response state typedef struct _DeviceResponse { uint16_t code; //request code ResponseType type; //how send: immediately/delayed/periodic uint8_t enabled; //Enabled to fill response data uint8_t ready; //Ready to transmit uint32_t counter; //time from: broadcast line request/broadcast pin request/latest periodic response; values in mks; access this only from timer interrupt uint32_t trigger; //counter trigger value to response; values in mks; uint8_t triggered;//set this only from timer interrupt, clear from main loop uint32_t rate; //response baud rate DeviceOutputBuffer buffer; uint16_t message; //message: ok, error, ... uint8_t parametersCount; DeviceResponseParameter parameters[4]; //Response parameters list uint16_t packet; //packet to send (for periodic answers) } DeviceResponse; void InitUserProtocolResponseDefaultSettings(void); void InitUserProtocolResponseState(void); void DeviceStartUserProtocolResponse(void); #endif /* __DEVICE_USER_PROTOCOL_RESPONSE_H__ */