123
Fork of LG by
DeviceUserResponse.h@182:2bd8ec44998f, 2016-07-10 (annotated)
- Committer:
- Diletant
- Date:
- Sun Jul 10 05:35:08 2016 +0000
- Revision:
- 182:2bd8ec44998f
- Parent:
- DeviceUserProtocolResponse.h@167:bedc0a9d559a
Device & ... update. More AskGld & Techno functionality. Not final!!!
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Diletant | 182:2bd8ec44998f | 1 | #ifndef __DEVICE_USER_RESPONSE_H__ |
Diletant | 182:2bd8ec44998f | 2 | #define __DEVICE_USER_RESPONSE_H__ |
Diletant | 161:efd949e8d536 | 3 | |
Diletant | 161:efd949e8d536 | 4 | typedef enum _ResponseType { |
Diletant | 161:efd949e8d536 | 5 | RESPONSE_NONE, //no sheduled response |
Diletant | 161:efd949e8d536 | 6 | RESPONSE_IMMEDIATE, //immediate response for most of requests |
Diletant | 161:efd949e8d536 | 7 | RESPONSE_DELAYED, //delayed response for broadcast requests |
Diletant | 161:efd949e8d536 | 8 | RESPONSE_PERIODIC //periodic response for some of requests |
Diletant | 161:efd949e8d536 | 9 | } ResponseType; |
Diletant | 161:efd949e8d536 | 10 | |
Diletant | 161:efd949e8d536 | 11 | typedef enum _ResponseData { |
Diletant | 161:efd949e8d536 | 12 | RESPONSE_BUFFER, //response buffer content as is if not empty |
Diletant | 161:efd949e8d536 | 13 | RESPONSE_DELTA_BINS, //fill buffer with Delta_BINS data set |
Diletant | 161:efd949e8d536 | 14 | RESPONSE_DELTA_PS, //fill buffer with Delta_PS data set |
Diletant | 161:efd949e8d536 | 15 | RESPONSE_DELTA_SF, //fill buffer with Delta_SF data set |
Diletant | 161:efd949e8d536 | 16 | RESPONSE_RATE //fill buffer with M_Rate data set |
Diletant | 161:efd949e8d536 | 17 | } ResponseData; |
Diletant | 161:efd949e8d536 | 18 | |
Diletant | 161:efd949e8d536 | 19 | #define OutputBufferSize 64 |
Diletant | 161:efd949e8d536 | 20 | typedef struct _DeviceOutputBuffer { |
Diletant | 161:efd949e8d536 | 21 | uint8_t data[OutputBufferSize]; //Buffer |
Diletant | 161:efd949e8d536 | 22 | uint8_t count; //Buffer byte count |
Diletant | 161:efd949e8d536 | 23 | uint8_t position; //Transmission position |
Diletant | 161:efd949e8d536 | 24 | } DeviceOutputBuffer; |
Diletant | 161:efd949e8d536 | 25 | |
Diletant | 161:efd949e8d536 | 26 | typedef struct _DeviceResponseParameter { |
Diletant | 161:efd949e8d536 | 27 | void * ref; //parameter address |
Diletant | 161:efd949e8d536 | 28 | uint16_t size; //parameter byte size |
Diletant | 161:efd949e8d536 | 29 | } DeviceResponseParameter; |
Diletant | 161:efd949e8d536 | 30 | |
Diletant | 161:efd949e8d536 | 31 | //Response state |
Diletant | 182:2bd8ec44998f | 32 | typedef struct _DeviceUserResponse { |
Diletant | 161:efd949e8d536 | 33 | uint16_t code; //request code |
Diletant | 161:efd949e8d536 | 34 | ResponseType type; //how send: immediately/delayed/periodic |
Diletant | 161:efd949e8d536 | 35 | uint8_t enabled; //Enabled to fill response data |
Diletant | 161:efd949e8d536 | 36 | uint8_t ready; //Ready to transmit |
Diletant | 161:efd949e8d536 | 37 | uint32_t counter; //time from: broadcast line request/broadcast pin request/latest periodic response; values in mks; access this only from timer interrupt |
Diletant | 161:efd949e8d536 | 38 | uint32_t trigger; //counter trigger value to response; values in mks; |
Diletant | 161:efd949e8d536 | 39 | uint8_t triggered;//set this only from timer interrupt, clear from main loop |
Diletant | 161:efd949e8d536 | 40 | DeviceOutputBuffer buffer; |
Diletant | 161:efd949e8d536 | 41 | uint16_t message; //message: ok, error, ... |
Diletant | 161:efd949e8d536 | 42 | uint8_t parametersCount; |
Diletant | 161:efd949e8d536 | 43 | DeviceResponseParameter parameters[4]; //Response parameters list |
Diletant | 161:efd949e8d536 | 44 | uint16_t packet; //packet to send (for periodic answers) |
Diletant | 182:2bd8ec44998f | 45 | } DeviceUserResponse; |
Diletant | 161:efd949e8d536 | 46 | |
Diletant | 182:2bd8ec44998f | 47 | void InitUserResponseDefaultSettings(void); |
Diletant | 182:2bd8ec44998f | 48 | void InitUserResponseState(void); |
Diletant | 182:2bd8ec44998f | 49 | void DeviceStartUserResponse(void); |
Diletant | 161:efd949e8d536 | 50 | |
Diletant | 182:2bd8ec44998f | 51 | #endif /* __DEVICE_USER_RESPONSE_H__ */ |