⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 struct.h

📁 串行通讯程序,为电池分析仪与电脑通讯软件,效果不错.
💻 H
📖 第 1 页 / 共 3 页
字号:
/******************************************************************************/
/*		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 + -