vasko ozo / Mbed 2 deprecated TxRxService

Dependencies:   mbed

TxRxService.h

Committer:
VASKO
Date:
2019-08-07
Revision:
20:b60d2a5cd128
Parent:
19:09c21f5f0625
Child:
21:3e7a3d9e6885

File content as of revision 20:b60d2a5cd128:

    
#define HeaderByte 0x00
#define HeaderLength 5

#ifndef WorkTx
  #ifdef TARGET_NUCLEO_L432KC
    #define WorkTx PA_9
  #elif defined TARGET_NUCLEO_F072RB
    #define WorkTx PA_9
  #else
    #define WorkTx USBTX
  #endif
#endif
#ifndef WorkRx
  #ifdef TARGET_NUCLEO_L432KC
    #define WorkRx PA_10
  #elif defined TARGET_NUCLEO_F072RB
    #define WorkRx PA_10
  #else
    #define WorkRx USBRX
  #endif
#endif


#pragma pack(push, 1)//https://os.mbed.com/forum/bugs-suggestions/topic/4264/  проблема выравнивания данных
typedef union {
    uint8_t ui8[4];
    int8_t i8[4];
    uint16_t ui16[2];
    int16_t i16[2];
    uint32_t ui32;
    int32_t i32;
    float f;
    } ParsType;
  
typedef struct {
    uint8_t cmd;
    ParsType pars;
    uint8_t cs;
    } MsgType;
#pragma pack(pop)

#define ArrTxSize (HeaderLength + sizeof(MsgType))
#define ArrRxSize (HeaderLength + sizeof(MsgType))

enum StartTxStates {
    StartOK,
    TxBusy,
    Undefined
    };

#define ArrTxInitializer {HeaderByte,HeaderByte,HeaderByte,HeaderByte,HeaderByte}
#define ArrRxInitializer {}

extern MsgType RxBuff;
extern bool RxBuffFull;
extern StartTxStates StartTx(uint8_t *parr);
extern void TxRxServiceInit();
extern uint8_t GetCheckSum(uint8_t *p);