Dmitry Kovalev / Mbed 2 deprecated LG2

Dependencies:   mbed

Fork of LG by igor Apu

Committer:
Diletant
Date:
Sun Feb 14 15:10:45 2016 +0000
Revision:
59:daf3a8ed255e
Parent:
54:d94145ba23f4
Child:
60:98eb64c0fda3
Device protocol. Not final!!!

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Diletant 54:d94145ba23f4 1 #ifndef __DEVICEPROTOCOL_H__
Diletant 54:d94145ba23f4 2 #define __DEVICEPROTOCOL_H__
Diletant 54:d94145ba23f4 3
Diletant 54:d94145ba23f4 4 #include "DeviceSettings.h"
Diletant 54:d94145ba23f4 5 #include "stdint.h"
Diletant 54:d94145ba23f4 6
Diletant 59:daf3a8ed255e 7 /*Move this to uart_m.h when protocol completed*/
Diletant 59:daf3a8ed255e 8 #define IOBufferSize 1024
Diletant 59:daf3a8ed255e 9 typedef struct _IOCyclicBuffer {
Diletant 59:daf3a8ed255e 10 uint8_t buffer[IOBufferSize];
Diletant 59:daf3a8ed255e 11 int start; //first byte position
Diletant 59:daf3a8ed255e 12 int end; //last byte position
Diletant 59:daf3a8ed255e 13 } IOCyclicBuffer;
Diletant 59:daf3a8ed255e 14
Diletant 59:daf3a8ed255e 15 /*
Diletant 54:d94145ba23f4 16 typedef struct {
Diletant 54:d94145ba23f4 17 uint8_t Offset;
Diletant 54:d94145ba23f4 18 uint8_t Mask;
Diletant 54:d94145ba23f4 19 uint8_t Value;
Diletant 54:d94145ba23f4 20 } DeviceMessageCheckPoint;
Diletant 54:d94145ba23f4 21
Diletant 54:d94145ba23f4 22 typedef enum{
Diletant 54:d94145ba23f4 23 DMID_DeviceMode
Diletant 54:d94145ba23f4 24 } DeviceMessageID;
Diletant 54:d94145ba23f4 25
Diletant 54:d94145ba23f4 26 typedef struct {
Diletant 54:d94145ba23f4 27 DeviceMessageID ID;
Diletant 54:d94145ba23f4 28 uint8_t Size;
Diletant 54:d94145ba23f4 29 uint8_t CheckPointCount;
Diletant 54:d94145ba23f4 30 DeviceMessageCheckPoint *CheckPointList;
Diletant 54:d94145ba23f4 31 } DeviceMessageCheck;
Diletant 59:daf3a8ed255e 32 */
Diletant 54:d94145ba23f4 33
Diletant 54:d94145ba23f4 34 //Command: DeviceMode
Diletant 59:daf3a8ed255e 35 //DeviceMessageCheckPoint DeviceModeRequestCheck[] = {{0x00,0xff,0xcc},{0x02,0xff,0xcc},{0x03,0xf0,0x00}};
Diletant 59:daf3a8ed255e 36 //DeviceMessageCheckPoint DeviceModeResponseCheck[] = {{0x00,0xff,0xcc},{0x02,0xff,0x00}};
Diletant 54:d94145ba23f4 37 typedef enum
Diletant 54:d94145ba23f4 38 {
Diletant 54:d94145ba23f4 39 Reserved,
Diletant 54:d94145ba23f4 40 DevModeLatch10kHz, //internal latch with frequency 10 kHz (power on default mode)
Diletant 54:d94145ba23f4 41 DevModeLatchMeander, //internal latch by signed meander pulses
Diletant 54:d94145ba23f4 42 DevModeLatchRS422PS, //external latch by RS422 B_Delta_PS request with B_Delta_PS format response
Diletant 54:d94145ba23f4 43 DevModeLatchRequestPS, //external latch by pulse request with B_Delta_PS format response
Diletant 54:d94145ba23f4 44 DevModeLatchRS422BINS, //external latch by RS422 B_Delta_BINS request with B_Delta_BINS format response
Diletant 54:d94145ba23f4 45 DevModeLatchRequestBINS //external latch mode with B_Delta_BINS format data and latch pulse request
Diletant 54:d94145ba23f4 46 } DeviceModes;
Diletant 54:d94145ba23f4 47 typedef __packed struct {
Diletant 54:d94145ba23f4 48 uint8_t SOC; //Start Of Command: 0xCC
Diletant 54:d94145ba23f4 49 uint8_t Address; //Device address: 0x00, 0x01, 0x02, 0x1f
Diletant 54:d94145ba23f4 50 uint8_t Cmd; //Command code: 0xA5
Diletant 54:d94145ba23f4 51 uint8_t Reserved : 4; //Reserved
Diletant 54:d94145ba23f4 52 DeviceModes Mode : 4; //Device mode
Diletant 54:d94145ba23f4 53 uint8_t ChecksumHi; //Checksum Hi byte
Diletant 54:d94145ba23f4 54 uint8_t ChecksumLo; //Checksum Lo byte
Diletant 54:d94145ba23f4 55 } DeviceModeRequest;
Diletant 54:d94145ba23f4 56 typedef __packed struct {
Diletant 54:d94145ba23f4 57 uint8_t SOC; //Start Of Command: 0xCC
Diletant 54:d94145ba23f4 58 uint8_t Address; //Device address: 0x00, 0x01, 0x02, 0x1f
Diletant 54:d94145ba23f4 59 uint8_t Zero; //Reserved: 0x00
Diletant 54:d94145ba23f4 60 uint8_t Mode; //Device mode
Diletant 54:d94145ba23f4 61 uint8_t RgRHi; //Register RgR Hi byte
Diletant 54:d94145ba23f4 62 uint8_t RgRLo; //Register RgR Lo byte
Diletant 54:d94145ba23f4 63 uint8_t ChecksumHi; //Checksum Hi byte
Diletant 54:d94145ba23f4 64 uint8_t ChecksumLo; //Checksum Lo byte
Diletant 54:d94145ba23f4 65 } DeviceModeResponse;
Diletant 59:daf3a8ed255e 66 /*
Diletant 54:d94145ba23f4 67 DeviceMessageCheck DeviceRequestChecks[] = {
Diletant 54:d94145ba23f4 68 {DMID_DeviceMode, 6, 3, DeviceModeRequestCheck}
Diletant 54:d94145ba23f4 69 };
Diletant 54:d94145ba23f4 70
Diletant 54:d94145ba23f4 71 DeviceMessageCheck DeviceResponseChecks[] = {
Diletant 54:d94145ba23f4 72 {DMID_DeviceMode, 8, 2, DeviceModeResponseCheck}
Diletant 54:d94145ba23f4 73 };
Diletant 59:daf3a8ed255e 74 */
Diletant 54:d94145ba23f4 75
Diletant 59:daf3a8ed255e 76 int PullRequest(IOCyclicBuffer *b);
Diletant 54:d94145ba23f4 77
Diletant 54:d94145ba23f4 78 #endif /* __DEVICEPROTOCOL_H__ */