initial check in based on SVN revision 575
This commit is contained in:
73
source/USB/usbComms.h
Normal file
73
source/USB/usbComms.h
Normal file
@@ -0,0 +1,73 @@
|
||||
/*
|
||||
* usbComms.h
|
||||
*
|
||||
* Created on: May 17, 2023
|
||||
* Author: Brian.Bailey
|
||||
*/
|
||||
|
||||
#ifndef COMMS_USBCOMMS_H_
|
||||
#define COMMS_USBCOMMS_H_
|
||||
|
||||
#include "virtual_com.h" //required for USB_RX_BUFFER_SIZE
|
||||
|
||||
/*******************************************************************************
|
||||
* Definitions
|
||||
******************************************************************************/
|
||||
|
||||
#define USB_RX_BUFFER_SIZE 512 //Size of rxDataBuffer in bytes (same size as USB_DATA_BUFFER)
|
||||
|
||||
#define ACK "ACK"
|
||||
#define NAK "NAK"
|
||||
#define OK "ACK"
|
||||
#define NO "NAK"
|
||||
|
||||
//Packet Mode
|
||||
#define USB_PACKET_START_BYTE 0xA5 //start byte
|
||||
#define USB_PACKET_HEADER_SIZE 3 //header size in bytes
|
||||
#define USB_PACKET_MAX_LENGTH 63 //503 //max length of packet including header
|
||||
#define USB_PACKET_MAX_PAYLOAD 60 //500 //max bytes for packet payload
|
||||
|
||||
#define USB_PACKET_HEADER_OFFSET 0 //header byte offset
|
||||
#define USB_PACKET_LENGTH_H_OFFSET 1 //packet size high byte offset
|
||||
#define USB_PACKET_LENGTH_L_OFFSET 2 //packet size low byte offset
|
||||
#define USB_PACKET_PAYLOAD_OFFSET 3 //payload byte offset
|
||||
|
||||
//PACKET FORMAT:
|
||||
//PACKET_START byte
|
||||
//Size byte high - Size of packet including header
|
||||
//Size byte low
|
||||
//Payload
|
||||
|
||||
|
||||
|
||||
typedef struct
|
||||
{
|
||||
uint8_t rxDataBuffer[USB_RX_BUFFER_SIZE]; //buffer for received data (copied from rxBuffer)
|
||||
uint32_t rxDataIndex; //index in rxDataBuffer
|
||||
bool rxStringReceived; //string received and ready to process
|
||||
|
||||
bool programMode; //USB program mode: use packet format
|
||||
|
||||
uint32_t sendErrorCount; //number of times USB_SendString() has failed to send
|
||||
bool initialized;
|
||||
}USB_t;
|
||||
|
||||
|
||||
|
||||
uint8_t USB_IsConnected(void);
|
||||
|
||||
void USB_ProcessString(uint32_t size);
|
||||
void USB_ProcessCommand(void);
|
||||
void USB_ProcessProgramCommand(void);
|
||||
void USB_ProcessSystemCommand(void);
|
||||
void USB_ProcessFrequencyCommand(void);
|
||||
|
||||
bool USB_CommandCompare(uint8_t *str);
|
||||
bool USB_CommandPrefixCompare(uint8_t *str);
|
||||
|
||||
void USB_Send(uint8_t * data);
|
||||
|
||||
|
||||
|
||||
|
||||
#endif /* COMMS_USBCOMMS_H_ */
|
||||
Reference in New Issue
Block a user