📄 struct.h
字号:
/******************************************************************************/
/* hm1801 DATA STRUCTURES struct.h */
/******************************************************************************/
#ifndef __struct_h
#define __struct_h 1
#define preset_in_flash 0
typedef char *PTR;
typedef char str32[33];
typedef char str80[81];
typedef struct { /* MENU STRUCTURE */
char const* text[2]; /* pointers to the menu text */
char prev; /* previous screen */
char next; /* next screen */
UINT screen; /* screen # to go to */
} menu_struct;
typedef struct { /* allows multiple print commands to use one overlay screen */
UINT ret; /* return screen # */
char stn; /* the index # of the station 0-3. */
char option; /* not used at this time */
char const*heading; /* pointer to the heading string to display */
int data; /* print data - may be a type cast pointer */
void (*pfn)(void *); /* pointer to the print function to use */
} print_data;
struct serial_port { /* serial port configuraton */
unsigned char baud ; /* 0=1200 1=2400 2=9600 3=19200 */
unsigned char data ; /* 0 = 7 bits 1 = 8 bits */
unsigned char start ; /* 0 = 1 start bit 1 = 2 start bits */
unsigned char stop ; /* 0 = 1 stop bit 1 = 2 stop bits */
unsigned char protocol; /* 0 = cts/rts 1 = xon/xoff 2-none */
unsigned char parity ; /* 0 = none 1 = odd 2 = even */
unsigned char device ; /* 0=disabled 1=printer 2=label 3=computer 4=batshop 5=barcode */
unsigned char cts_wait;
unsigned char spare ;
};
struct Alarm_Param{
uint bat_NTC_H; /* 电池NTC电阻高门限 */
uint bat_NTC_L; /* 电池NTC电阻低门限 */
uint bat_ID_H; /* 电池ID电阻高门限 */
uint bat_ID_L; /* 电池ID电阻低门限 */
uint impedance_H; /* 电池内阻高门限 */
uint impedance_L; /* 电池内阻低门限 */
uint OCV_H; /* 开路电压高门限 */
uint OCV_L; /* 开路电压低门限 */
char OCV_offset; /* 开路电压失调门限 */
uint DCHGV_LD; /* 电池负载电压 */
uint DCHGV_HD; /* 电池负载电压 */
uint OverCurrentH; /* 电池过流电流高 */
uint OverCurrentL; /* 电池过流电流低 */
uint CHGPV_H; /* 过充保护电压高门限 */
uint CHGPV_L; /* 过充保护电压低门限 */
uint CHGPV_RH; /* 过充保护释放电压高门限 */
uint CHGPV_RL; /* 过充保护释放电压高门限 */
uint DCHGPV_H; /* 过放保护电压高门限 */
uint DCHGPV_L; /* 过放保护电压低门限 */
uint DCHGPV_RH; /* 过放保护释放电压高门限 */
uint DCHGPV_RL; /* 过放保护释放电压低门限 */
};
struct system_parameters { /* general system parameters */
char program; /* default processing program */
char capacity; /* default target capacity */
struct serial_port serial; /* serial port data */
char password[5]; /* system password */
char company[21]; /* company name */
char data_log; /* data logging enable (bit0-3=station1-4) */
char labels; /* labels per battery */
unsigned char prt_port :3; /* parallel port device */
unsigned char prt_serial:1; /* set for using serial port */
unsigned char ccode :1; /* set for verbose c-code display */
unsigned char key_beep :1; /* keypress beep on/off */
unsigned char alert_beep:1; /* other beeps on/off */
unsigned char vpc :1; /* voltage display method 0=per cell 1=terminal */
char standby_process; /* station on standby discharge/charge cycle */
char security; /* security level */
unsigned char ohmtest :1; /* automatic ohmtest */
unsigned char pgm_target:1; /* 0=C-Code 1=Station */
unsigned char nixx_v :1; /* 0=1.20V 1=1.25V per cell Nixx */
unsigned char optimize :1; /* charge optimization 0=capacity 1=time */
unsigned char usb :1; /* USB port in use flag */
unsigned char batshop :1; /* connected to BatteryShop */
unsigned char :2;
char sdchg_hrs; /* rest hours for self discharge program */
UINT resume_tm; /* resume time (minutes) */
unsigned int life_rest_time; /* life_cycle test discharge rest time */
struct Alarm_Param Alarm_Param;
/* end of variables stored in E2 */
UINT process[21]; /* overlay process stack */
char process_idx; /* overlay process index */
unsigned long charge_pwr; /* current charge power usage (mW) */
unsigned long discharge_pwr[2]; /* current discharge power usage (mW per stn pair) */
char station; /* currently selected station (0-3) */
char stations; /* number of stations unit has */
char adapter; /* currently selected adapter */
char relay; /* current relay states */
char driver; /* current driver states */
char bdetect; /* battery detect port state */
char key; /* last key pressed */
char resume; /* # of stations resuming */
UINT key_wait; /* wait for key press seconds */
unsigned char key_tmr; /* key debounce timer */
unsigned char spi_tmr; /* spi comm timer */
char USB_tmr; /* lcd timeout timer */
unsigned char usb_tmr; /* usb comm timer */
UINT delay; /* ms delay timer */
unsigned char fpage; /* constant page */
unsigned char tune_tmr; /* current tune timer */
UINT led; /* LED settings */
UINT led_bak; /* previous LED settings */
UINT tempA;
UINT tempB;
char usb_ctrl; /* USB control register shadow */
unsigned char reset :1; /* system reset flag 1=reset system */
unsigned char bdbmode :1; /* Battery Database programming mode */
unsigned char beep_busy :1; /* set if a tone is being played */
unsigned char alt_key :1; /* ALT key pressed flag */
unsigned char fn_key :1; /* FN key pressed flag */
unsigned char sys_temp :1; /* flag to check the system temperature */
unsigned char rtc :1; /* rtc present flag */
unsigned char test :1; /* waveform test mode */
unsigned char lpt :1; /* parallel print port present */
unsigned char usb_port :1; /* USB port present flag */
unsigned char barcode :1; /* barcode reader flag */
unsigned char smb_check :1; /* check smart battery status */
unsigned char temp_fault:1; /* set if a temperature fault occured */
unsigned char lcd_fault :1; /* set if an LCD fault occured */
unsigned char diagnostic:1; /* set if system passed start up diagnostics */
unsigned char bar_enter :1; /* set to use auto enter */
unsigned char tst_led :1; /* set during LED test to prevent clearing */
unsigned char burnin :1; /* burnin jumper present flag */
unsigned char spi_busy :1; /* SPI port busy flag */
unsigned char prt_cancel:1; /* printing cancelled flag */
unsigned char ucc_mode :1; /* UCC adapter programming mode */
unsigned char diagmode :1; /* in diagnostics mode */
unsigned char usb_title :1; /* temporary until USB actually released */
unsigned char power_up :1; /* powerup completed flag */
};
struct diagnostics {
char stn;
UINT value[4];
int ma;
char step;
struct station_parameters *sptr;
unsigned char enabled :1; /* diagnostic mode enabled */
unsigned char running :1; /* diagnostic function being performed */
unsigned char vsense :1; /* vsense test flag */
unsigned char isense :1; /* isense test flag */
unsigned char tsense :1; /* tsense test flag */
unsigned char iset :1; /* iset test flag */
unsigned char :2;
};
typedef struct BATTERY_COUNTER { /* Battery Service Counter */
unsigned long odometer; /* total number of batteries processed */
unsigned int trip_odometer; /* batteries processed during this trip */
unsigned int max_trip_odometer; /* maximum value for trip odometer */
char initialized; /* non-zero if not eeprom not initilized */
char fill; /* EEPROM works on word data */
} battery_counter;
struct system_messages { /* battery insereted/removed display flags */
unsigned char batid :1; /* battery ID# */
unsigned char c_code :1; /* prompt for "working" c-code */
unsigned char print :2; /* print stats when removed */
unsigned char :4;
};
struct error_message {
UINT no;
char const*msg;
};
struct sys_time { /* system time structure */
char hour; /* hours (0 - 23) */
char minute; /* minutes (0 - 59) */
char second; /* seconds (0 - 59) */
UINT ms; /* milli-seconds (0 - 999) */
UINT elapsed; /* minutes since midnight */
/* char ms30; 30ms count down timer */
char ms100; /* 100ms count down timer */
char stn_ms[4]; /* 1ms station counter */
};
struct sys_date { /* system date structure */
UINT year; /* year (eg. 2001) */
char month; /* month (1 - 12) */
char day; /* day (1 - 31) */
char dow; /* day of week (1=Sunday) */
UINT julian; /* julian date (1=Jan. 1, 1996) */
};
struct rtc_data { /* system RTC clock data structure */
struct sys_time time; /* contains the time */
struct sys_date date; /* and the date */
};
struct days_hours_minutes { /* pretty much explains itself */
UINT days;
UINT hours;
UINT minutes;
};
struct screen_parameters { /* structure for screen control */
UINT current; /* screen currently using */
UINT overlay; /* screen to overlay */
void* dataptr; /* pointer to screen's data structure */
UINT stack[SCREEN_STACK+1]; /* stack of screen #'s */
UINT *data[SCREEN_STACK+1]; /* stack of screen data pointers */
char stack_idx; /* current location in screen stack */
};
typedef struct { /* screen look-up table structure */
UINT no; /* screen number */
int (*io)(); /* I/O function for screen */
void (*display)(); /* screen display function */
} screen_table;
struct code_table1 {
UINT code; /* status code */
char const *s_msg; /* short message pointer */
char const *l_msg; /* long message pointer */
unsigned int flags; /* the flags */
};
struct code_table {
UINT code; /* status code */
char *s_msg; /* short message pointer */
char *l_msg; /* long message pointer */
unsigned cap :1; /* global display - capacity */
unsigned pgm :1; /* - current program */
unsigned volt :1; /* - voltage */
unsigned mah :1; /* - milliamps */
unsigned time :1; /* - cycle time */
unsigned error :1; /* - error */
unsigned blink :1; /* - blink message (not used) */
unsigned beep :1; /* - sound beeper */
unsigned fatal :1; /* fatal error */
unsigned system_event :1; /* system event */
unsigned warning :1; /* warning */
unsigned battery_event :1; /* battery event */
unsigned battery_cycle :1; /* battery cycle */
unsigned spares :3;
};
#include "D_code.h"
typedef struct scaled_ccode { /* The C-Code scaled for maximum currents */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -