Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of LG by
Diff: DeviceProtocol.h
- Revision:
 - 69:70849751d98e
 - Parent:
 - 68:46937d192c39
 - Child:
 - 71:7835a18110bd
 
diff -r 46937d192c39 -r 70849751d98e DeviceProtocol.h
--- a/DeviceProtocol.h	Sat Feb 20 13:13:09 2016 +0000
+++ b/DeviceProtocol.h	Mon Feb 22 19:50:48 2016 +0000
@@ -5,16 +5,42 @@
 #include "stdint.h"
 
 /*Move this to uart_m.h when protocol completed*/
-#define IOBufferSize        1024
-typedef struct _IOCyclicBuffer {
-    uint8_t buffer[IOBufferSize];
+#define InputBufferSize        1024
+typedef struct _DeviceInputBuffer {
+    uint8_t buffer[InputBufferSize];
     int start; //first byte position
     int end;   //last byte position
-} IOCyclicBuffer;
+} DeviceInputBuffer;
 /*Move this to uart_m.h when protocol completed*/
-IOCyclicBuffer ReadBuffer1;
-/*Move this to uart_m.h when protocol completed*/
-IOCyclicBuffer WriteBuffer1;
+#define OuputBufferSize        1024
+typedef struct _DeviceOutputBuffer {
+    uint8_t buffer[OuputBufferSize];
+    int count; //byte count
+} DeviceOutputBuffer;
+
+typedef struct _DeviceCommunicationState {
+    DeviceInputBuffer RequestBuffer;
+    DeviceOutputBuffer ResponseBuffer;
+  //Request settings
+    uint32_t RequestBaudRate;
+    uint8_t  RequestCode;
+    uint8_t  RequestSelect;
+  //Response settings
+    uint8_t  ResponseReady;
+    uint8_t  ResponseCode;
+    uint8_t  ResponseSelect;
+    uint32_t ResponseBaudRate;
+    //Response broadcast and external latch delay
+    uint32_t ResponseDelay;       //Values in mks; 0 - immediate response
+    uint32_t ResponseDelayClock;  //Values in mks; response delay clock - send response if clock > delay;
+    //Periodical response
+    uint32_t ResponsePeriod;      //Values in mks; 0 - no periodic response; 2000 - 500Hz
+    uint32_t ResponsePeriodClock; //Values in mks; response period clock - send response if clock > period;
+} DeviceCommunicationState;
+
+typedef struct _DeviceState {
+    DeviceCommunicationState communication;
+} DeviceState;
 
 /*
 typedef struct {
@@ -134,7 +160,9 @@
 };
 */
 
-int PullRequest(IOCyclicBuffer *b);
+int PullRequest(DeviceInputBuffer *b);
+
+void TransmitResponse(void);
 
 void SetDeviceMode(uint8_t param);
 void InitDeltaBINS(uint8_t param);
    