JLC test
Dependencies: PinDetect libmDot mbed-rtos mbed
common.h
- Committer:
- tmulrooney
- Date:
- 2016-01-30
- Revision:
- 2:376af6a70e8a
- Parent:
- 1:96c429800568
File content as of revision 2:376af6a70e8a:
/* ========================================
* 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 */