113 lines
3.5 KiB
C
113 lines
3.5 KiB
C
#pragma once
|
|
#ifndef __ELITE_DEF_H__
|
|
#define __ELITE_DEF_H__
|
|
|
|
#include <stdint.h>
|
|
|
|
// define BT instruction
|
|
#define INS_TYPE_RIS 0x30
|
|
#define INS_TYPE_VIS 0xC0
|
|
#define INS_TYPE_CIS 0x70
|
|
|
|
// VIS (virtual instruction)
|
|
#define VIS_RST 0xF0
|
|
#define VIS_ASK 0x30
|
|
#define VIS_STI 0xC0
|
|
#define VIS_INT 0x60
|
|
#define VIS_DEVICE_SHINY 0x10
|
|
#define VIS_SHINY_DIS 0x20
|
|
|
|
// RIS (real instruction)
|
|
enum all_mode_e
|
|
{
|
|
CURVE_IV = 0x01, // I-V Curve
|
|
CURVE_IV_CY = 0x02, // Cycle I-V
|
|
CURVE_VO = 0x03, // Function Generator
|
|
CURVE_RT = 0x04, // R-T Graph
|
|
CURVE_VT = 0x05, // V-T Graph
|
|
CURVE_IT = 0x06, // I-T Graph
|
|
CURVE_CC = 0x07, // Constant Current (CC)
|
|
CURVE_OCP = 0x08, // Open Circuit Potential (OCP)
|
|
CURVE_CV = 0x09, // Cyclic Voltammetry (CV)
|
|
CURVE_LSV = 0x0A, // Linear Sweep Voltammetry (LSV)
|
|
CURVE_CA = 0x0B, // Chronoamperometric Graph (CA)
|
|
CURVE_CP = 0x0C, // Chronopotentiometry (CP)
|
|
CURVE_UNI_PULSE = 0x0D, // Pulse Sensing (universal pulse)
|
|
CURVE_DPV = 0x0E, // Differential Pulse Voltammetry (DPV)
|
|
CURVE_DPV_ADVANCE = 0x0F,
|
|
CURVE_DPV_SMPRATE = 0x10,
|
|
CURVE_DPV_ADVANCE_SMPRATE = 0x11,
|
|
CURVE_EIS = 0x12,
|
|
CURVE_CF = 0x13, // Constant Frequency(CF)
|
|
CURVE_CALI = 0xF1,
|
|
SET_SAMPLE_RATE = 0xE0,
|
|
DEV_MODE = 0xFF, // Develop Mode
|
|
};
|
|
|
|
// CIS (control instruction)
|
|
#define CIS_VERSION 0x40
|
|
#define CIS_VOLT 0x10
|
|
#define CIS_LED_TEST 0x70
|
|
#define CIS_CALI 0x30
|
|
#define CIS_CALI2 0x90
|
|
|
|
#define CTL_WRT 0x20
|
|
#define CTL_RD 0x21
|
|
#define CTL_RD_DFTR 0x78
|
|
#define CTL_RD_DFTI 0x7C
|
|
#define CTL_RD_ADC 0x7A
|
|
#define CTL_RESET 0x11
|
|
|
|
// mode parameter
|
|
|
|
#define VMAX(v1, v2) ((v1 >= v2) ? v1 : v2)
|
|
#define VMIN(v1, v2) ((v1 < v2) ? v1 : v2)
|
|
#define VDIRECTION(v1, v2) ((v1 > v2) ? 0 : 1)
|
|
#define AFTER_READ_I 0
|
|
#define AFTER_READ_V 1
|
|
#define PARA_1 0x01
|
|
#define PARA_2 0x02
|
|
#define PARA_3 0x03
|
|
#define PARA_4 0x04
|
|
#define PARA_5 0x05
|
|
#define PARA_6 0x06
|
|
#define PARA_7 0x07
|
|
#define PARA_8 0x08
|
|
#define PARA_9 0x09
|
|
#define PARA_10 0x0A
|
|
#define PARA_11 0x0B
|
|
#define PARA_12 0x0C
|
|
#define PARA_13 0x0D
|
|
#define PARA_14 0x0E
|
|
#define PARA_15 0x0F
|
|
#define PARA_16 0x10
|
|
#define PARA_17 0x11
|
|
|
|
// Elite LED
|
|
#define COLOR_BLACK 0x00
|
|
#define COLOR_RED 0x01
|
|
#define COLOR_ORANGE 0x02
|
|
#define COLOR_YELLOW 0x03
|
|
#define COLOR_GREEN 0x04
|
|
#define COLOR_BLUE 0x05
|
|
#define COLOR_CYAN 0x06
|
|
#define COLOR_MAGENTA 0x07
|
|
#define COLOR_PURPLE 0x08
|
|
#define COLOR_WHITE 0x09
|
|
#define COLOR_YELLOWGREEN 0x0A
|
|
|
|
#define BT_WAIT 0x01
|
|
#define NO_EVENT 0x02
|
|
#define PRE_WORK 0x03
|
|
#define WORKING 0x04
|
|
#define POST_WORK 0x05
|
|
|
|
typedef struct
|
|
{
|
|
void (*cis_func[256])(uint8_t *ins, uint16_t size);
|
|
void (*vis_func[256])(uint8_t *ins, uint16_t size);
|
|
void (*ris_func[256])(uint8_t *ins, uint16_t size);
|
|
} elite_instance_t;
|
|
|
|
#endif /* ! __ELITE_DEF_H__ */
|