JLC test
Dependencies: PinDetect libmDot mbed-rtos mbed
Diff: common.h
- Revision:
- 1:96c429800568
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/common.h Wed Jan 27 00:57:12 2016 +0000 @@ -0,0 +1,151 @@ +/* ======================================== + * Filename: common.h + * + * Description: common defintions and structures + * + * Copyright J-Factor Embedded Technologies 2015 + * Copyright TJM Embedded Software 2015 + * All Rights Reserved + * UNPUBLISHED, LICENSED SOFTWARE. + * + * CONFIDENTIAL AND PROPRIETARY INFORMATION + * WHICH IS THE PROPERTY OF J-Factor Embedded Technologies. + * + * ======================================== +*/ +/** \file + * \brief contains constants and prototypes needed by other files. + */ +#ifndef COMMON_H +#define COMMON_H + +#include <time.h> +#include "mbed.h" + +/* Project Defines */ +#define FALSE 0 +#define TRUE 1 +#define TRANSMIT_BUFFER_SIZE 80 //!< maximum number of characters to write to console +#define LINE_SIZE 80 //!< maximum number of characters to read from console +#define NUM_LINES 10 //!< number of command lines to save + +/* version history */ +/* +Version Author Date Description +0.1 TJM 01/24/15 Initial Draft +0.2 TJM 01/24/166 first with CLI interface +*/ + +#define VERSION_MAJOR 0 +#define VERSION_MINOR 2 +#define VERSION_DATE "01/26/16" + +typedef unsigned char uint8; +typedef signed char int8; +typedef unsigned short uint16; +typedef signed short int16; +typedef unsigned long uint32; +typedef signed long int32; +typedef unsigned int uint; + +/* parameter type */ +#define BINARY 0 +#define DIGITAL 1 +#define REGISTER 2 +#define ANALOG 3 + +/* command defintions */ +#define HELP 0 +#define VERSION 1 +#define READ 2 +#define READ_REG 3 +#define WRITE 4 +#define WRITE_REG 5 +#define INFO 6 +#define FIND 7 +#define RUN 8 +#define STOP 9 +#define DATE 10 +#define HVSTATE 11 + +/* mode */ +#define READONLY 0 +#define WRITEONLY 1 +#define READWRITE 2 + +#define MAX_REGISTER_DATA 128 + +/* parameter names */ +enum +{ + spi, + i2c, +} ; + +typedef uint8 (*Read)(void); //!< read function template to return 8 bit unsigned int +typedef uint16 (*ReadRegLength)(uint16 regAddress, uint8 *regData, uint16 length); //!< read function template to return 8 bit unsigned int +typedef void (*Write8)(uint8 value); //!< write function template to write 8 bit unsigned value +typedef void (*WriteReg8)(uint16 regAddress, uint8 *regData); //!< write function template to write 8 bit unsigned value +typedef void (*Write16)(uint16 value); //!< write function template to write 16 bit unsigned value +typedef void (*WriteAnalog)(float fltValue); //!< write function template to write analog value + +/* paramater structure */ +struct parameterInfo //!< paramter information structure +{ + char *name; //!< paramter name + char *port; //!< port location (if applicable) on device + char *connector; //!< connector location (if applicable) on board + char *description; //!< brief parameter function and use + uint8 type; //!< binary, digital, or analog + char *uints; //!< parameter units (if applicable) + uint8 mode; //!< read only, write only, read write + uint16 initialInt; //!< initial value if binary or digital + uint16 minInt; //!< minimum value if binary or digital + uint16 maxInt; //!< maximum value if binary or digital + float initialFloat; //!< initial value if analog + float minFloat; //!< minimum value if analog + float maxFloat; //!< maximum value if analog + Read ptrRead; //!< read function needed for this parameter (null if not needed) + ReadRegLength ptrReadRegLength; //!< read function needed for this parameter (null if not needed) + Write8 ptrWrite8; //!< 8 bit write function needed for this paramater (null if not needed) + WriteReg8 ptrWriteReg8; //!< 8 bit write function needed for this paramater (null if not needed) + Write16 ptrWrite16; //!< 16 bit write function needed for this paramater (null if not needed) + WriteAnalog ptrWriteAnalog; //!< analog write function needed for this paramater (null if not needed) +}; + + +/* function prototypes */ +void printVersion(); +uint8 getLine(); +void executeCmd(); +int8 getCmd(); +void setDate(char *str); +void date(void); +int8 getParameter(char *param); +int8 findParameter(char *string); +uint8 readParam(uint8 paramNum); +void writeParam(uint8 paramNum,uint8 *value); +float strtofloat (char *str); +uint16 power(uint8 num, uint8 pow); +void displayParameter(uint8 num); +uint8 tolower(uint8 c); +uint16 readSPIReg(uint16 regAddress, uint8 *regData, uint16 length); +void writeSPIReg(uint16 regAddress, uint8 *regData); +void SPIRead(uint16 addr, uint8 *data, int length); +void SPIWrite(uint16 addr, uint8 *data, int length); +uint16 readI2CReg(uint16 regAddress, uint8 *regData, uint16 length); +void writeI2CReg(uint16 regAddress, uint8 *regData); +void I2CRead(uint16 addr, uint8 *data, int length); +void I2CWrite(uint16 addr, uint8 *data, int length); + +/* externals */ +extern Serial pc; +extern char* c_time_string; +extern char time_string[]; +extern char TransmitBuffer[TRANSMIT_BUFFER_SIZE]; +extern time_t epoch; +extern struct parameterInfo parameters[]; +extern uint16 bytesRead; + +#endif +/* [] END OF FILE */