base
This commit is contained in:
108
DBW_V2/Core/Inc/ts_comms.h
Normal file
108
DBW_V2/Core/Inc/ts_comms.h
Normal file
@@ -0,0 +1,108 @@
|
||||
/*
|
||||
* ts_comms.h
|
||||
*
|
||||
* Created on: 22 Oct 2020
|
||||
* Author: Dmitrijs
|
||||
*/
|
||||
|
||||
#ifndef TS_COMMS_H_
|
||||
#define TS_COMMS_H_
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
typedef unsigned char crc_t;
|
||||
|
||||
#define TS_CAN_ID 0
|
||||
|
||||
#ifndef TS_CAN_ID
|
||||
#error Set CAN ID !!! ts_comms.h
|
||||
#endif
|
||||
|
||||
// Timeouts for comms: in mS
|
||||
// Timeout for receive 2 bytes after <cmd>
|
||||
#define RECEIVE_INDEX_TIMEOUT 10
|
||||
//Timeout for receive 4 bytes of OFFSET and COUNT
|
||||
#define RECEIVE_DATA_LOCATION_TIMEOUT 10
|
||||
//Time out for receive block of data
|
||||
#define RECEIVE_DATA_TIMEOUT 255
|
||||
//Timeout for RESET sequence.
|
||||
#define RECEIVE_RESET_TIMEOUT 1
|
||||
#define RECEIVE_TABLE_TIMEOUT 255
|
||||
|
||||
//Define SCI MODES
|
||||
#define IDLE 0
|
||||
#define TRANSMISSION_IN_PROGRESS 1
|
||||
#define RECEIVE_INDEX 1
|
||||
#define RECEIVE_DATA_LOCATION 2
|
||||
#define RECEIVE_DATA 3
|
||||
#define RECEIVE_TABLE_DATA 4
|
||||
#define RECEIVE_CANID 5
|
||||
#define RECEIVE_RESET_CMD 10
|
||||
|
||||
//DEFINE ERROR CODES FOR TS COMMS
|
||||
#define DATA_OVERRUN_ERROR 1
|
||||
#define FRAME_ERROR 2
|
||||
#define PARITY_ERROR 3
|
||||
#define UNRECOGNIZED_1_LETTER_CMD 4
|
||||
#define REQUEST_TO_TRANSMIT_WHILE_TRANSMITTING 5
|
||||
#define RESET_SEQUENCE_FAILED 6
|
||||
#define RESET_SEQUENCE_RECEIVED 7
|
||||
#define MEMORY_ACCESS_VIOLATION 8
|
||||
#define RX_TIMEOUT 9
|
||||
#define NOICE_ERROR 10
|
||||
|
||||
#define SCI_FLAGS_CRC32 1
|
||||
#define SCI_FLAGS_TX_VARIABLES 2
|
||||
|
||||
#define READ_DATA_FROM_ADC0 0
|
||||
#define READ_DATA_FROM_ADC1 1
|
||||
#define READ_DATA_FROM_CONFIG_ADC0 2
|
||||
#define READ_DATA_FROM_CONFIG_ADC1 3
|
||||
#define READ_DATA_FROM_Z0 4
|
||||
#define READ_DATA_FROM_Z1 5
|
||||
|
||||
typedef struct {
|
||||
|
||||
unsigned char mode; //1
|
||||
unsigned char cmd; //2
|
||||
unsigned char CANid; //3
|
||||
unsigned char table_index; //4
|
||||
unsigned short offset; //5
|
||||
unsigned short data_size; //7
|
||||
unsigned short cnt; //9
|
||||
unsigned short bytes_done; //11
|
||||
unsigned char *address; //13
|
||||
unsigned char current_table_index; //15
|
||||
unsigned char error_cnt; //16
|
||||
unsigned char error_code; //17
|
||||
unsigned short timeout; //18
|
||||
unsigned char pause_flag;
|
||||
unsigned char dummy;
|
||||
unsigned long crc32; //19
|
||||
unsigned char can_bufer[256];
|
||||
} comms_status;
|
||||
|
||||
void Rx_Char(unsigned char data); // pass RX byte stream here
|
||||
void Poll_Tx(void); // function returns pointer to buffer and sets count
|
||||
// of bytes to be transmitted
|
||||
void TX_Done(void); // call this function when all data has been transmitted
|
||||
void Comms_Init(void);
|
||||
|
||||
void Write_Config(void);
|
||||
|
||||
extern comms_status RX;
|
||||
extern comms_status TX;
|
||||
extern unsigned char SCI_flags;
|
||||
extern const char Signature[20];
|
||||
extern const char Revision[20];
|
||||
extern char crc32_bufer[8];
|
||||
void Comms_Reset(comms_status *CS);
|
||||
void TX_Schedule(unsigned char *data, unsigned short count);
|
||||
void Copy_Tx_Vars(void);
|
||||
void CRC32(void);
|
||||
crc_t calc_crc(crc_t message[], int nBytes);
|
||||
uint32_t crc32(void *buf, uint32_t size);
|
||||
uint32_t crc32inc(void *buf, uint32_t crc, uint32_t size);
|
||||
void TS_Comms_RX_Timeout(void);
|
||||
|
||||
#endif /* TS_COMMS_H_ */
|
||||
Reference in New Issue
Block a user