123

Dependencies:   mbed

Fork of LG by igor Apu

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?

UserRevisionLine numberNew 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__ */