#define IN_BUF_SIZE 1024 typedef unsigned int uint; typedef unsigned int WORD; typedef unsigned char uchar; typedef unsigned char BYTE; typedef unsigned long ulong; typedef unsigned long DWORD; #define NoError 0 #define InitPinIsOpen 0 #define InitPinIsNotopen 1 #define QueueIsEmpty 0 #define QueueIsNotEmpty 1 #define PortError -1 #define DataError -2 #define ParityError -3 #define StopError -4 #define TimeOut -5 #define QueueEmpty -6 #define QueueOverflow -7 #define PosError -8 #define AddrError -9 #define BlockError -10 #define WriteError -11 #define SegmentError -12 #define BaudRateError -13 #define CheckSumError -14 #define ChannelError -15 #define BaudrateError -16 #define TriggerLevelError -17 #define DateError -18 #define TimeError -19 #define TimeIsUp 1 #ifndef __FILE_DATA__ #define __FILE_DATA__ typedef struct { unsigned mark; /* 0x7188 -> is file */ unsigned char fname[12]; unsigned char year; unsigned char month; unsigned char day; unsigned char hour; unsigned char minute; unsigned char sec; unsigned long size; char far *addr; unsigned CRC; unsigned CRC32; } FILE_DATA; #endif #define SEND_CMD(port,cmd,timeout,checksum) SendCmdTo7000(port,cmd,checksum) #define RECEIVE_CMD ReceiveResponseFrom7000 extern char hex_to_ascii[16]; #ifdef __cplusplus extern "C" { #endif void InitLib(void); int InstallCom(int port, unsigned long baud, int data, int parity, int stop); int InstallCom3(unsigned long baud, int data, int parity); int InstallCom4(unsigned long baud, int data, int parity); int RestoreCom(int port); int RestoreCom3(void); int RestoreCom4(void); int IsCom(int port); int IsCom3(void); int IsCom4(void); int ReadCom(int port); int ReadCom3(void); int ReadCom4(void); int ToCom(int port, int data); int ToCom3(int data); int ToCom4(int data); int ToComBufn(int port,char *buf,int no); int ToCom3Bufn(char *buf,int no); int ToCom4Bufn(char *buf,int no); int ToComStr(int port, char *str); int ToCom3Str(char *str); int ToCom4Str(char *str); int ClearCom(int port); int ClearCom3(void); int ClearCom4(void); int WaitTransmitOver(int port); int WaitTransmitOver3(void); int WaitTransmitOver4(void); int ReadInitPin(void); void LedOff(void); void LedOn(void); void Init5DigitLed(void); int Show5DigitLed(int position, int value); int Show5DigitLedSeg(int pos, unsigned char data); void DelayTimeMs(unsigned int time); int ReadNVRAM(int addr); int WriteNVRAM(int addr, int data); /* [10/15/2002] remove the following 4 functions, use EE_WriteEnable(),EE_WriteProtect(),EE_RandomRead(),EE_RandomWrite() instead. int WriteEEP(int block, int addr, int data); int ReadEEP(int block, int addr); void EnableEEP(void); void ProtectEEP(void); */ #define WriteEEP EE_RandomWrite #define ReadEEP EE_RandomRead #define EnableEEP EE_WriteEnable #define ProtectEEP EE_WriteProtect void EnableWDT(void); void RefreshWDT(void); void DisableWDT(void); int FlashReadId(void); int FlashWrite(unsigned int seg, unsigned int offset, char data); int FlashErase(unsigned int seg); int FlashRead(unsigned int seg, unsigned int offset); void Delay(unsigned ms); void Delay_1(unsigned ms); int Is7188xa(void); int Getch(void); int Kbhit(void); int Ungetch(int key); void Putch(int data); void Puts(char *str); int Print(char *fmt,...); int ascii_to_hex(char ascii); int SendCmdTo7000(int iPort, unsigned char *cCmd, int iChksum); int ReceiveResponseFrom7000(int iPort, unsigned char *cCmd, long lTimeout, int iChksum); void far *_MK_FP(unsigned segment,unsigned offset); int IsResetByWatchDogTimer(void); int IsResetByPowerOff(void); /* for bios date 12/12/98 or later */ int Show5DigitLedWithDot(int pos, int data); void Set5DigitLedTestMode(int mode); void Set5DigitLedIntensity(int mode); void Disable5DigitLed(void); void Enable5DigitLed(void); unsigned GetLibVersion(void); /* 01/07/1999 Add Timer function */ int TimerOpen(void); int TimerClose(void); void TimerResetValue(void); unsigned long TimerReadValue(void); void DelayMs(unsigned t); int StopWatchReset(int channel); int StopWatchStart(int channel); int StopWatchStop(int channel); int StopWatchPause(int channel); int StopWatchContinue(int channel); int StopWatchReadValue(int channel,unsigned long *value); int CountDownTimerStart(int channel,unsigned long count); int CountDownTimerReadValue(int channel,unsigned long *value); void InstallUserTimer(void (*fun)(void)); void InstallUserTimer1C(void (*fun)(void)); int DataSizeInCom(int port); int DataSizeInCom3(void); int DataSizeInCom4(void); /* New for Ver 1.13 */ /* 07-23-1999 add 4 function for COM1 /DTR,/RTS output pins */ void SetRtsActive(void); void SetRtsInactive(void); /* [New for Ver 1.14] */ /**** 07/27/1999 add 5 function for COM1/2/3/4 formated output ****/ int printCom(int port,char *fmt,...); int printCom3(char *fmt,...); int printCom4(char *fmt,...); /* 08/06/1999 add 2 function for COM1 CTS,DSR input pins */ int GetCtsStatus(void); /* 08/25/1999 add 5 function for COM1-4 */ int IsTxBufEmpty(int port); int IsTxBufEmpty3(void); int IsTxBufEmpty4(void); int IsCom3OutBufEmpty(void); int IsCom4OutBufEmpty(void); /* 10/19/1999 add 5 function for COM1/2/3/4 change baudrate */ int SetBaudrate(int port,unsigned long baud); int SetBaudrate3(unsigned long baud); int SetBaudrate4(unsigned long baud); /* 10/20/1999 */ /* (1) add 10 function for COM1/2/3/4 send/detect BREAK signal */ int SendBreak(int port,unsigned timems); void SendBreak3(unsigned timems); void SendBreak4(unsigned timems); int IsDetectBreak(int port); int IsDetectBreak3(void); int IsDetectBreak4(void); /* (2) Add 3 functions for clear COM1/2/3/4 output buffer */ int ClearTxBuffer(int port); void ClearTxBuffer3(void); void ClearTxBuffer4(void); /* 12/29/1999 */ /* Add functions for ReadOnly file system of 7188R/7188X */ int GetFileNo(void); int GetFileName(int no,char *fname); char far *GetFilePositionByNo(int no); char far *GetFilePositionByName(char *fname); FILE_DATA far *GetFileInfoByNo(int no); /* 04/11/2000 */ FILE_DATA far *GetFileInfoByName(char *fname); /* 04/11/2000 */ /* 02/15/2000 Add functions for system DATE/TIME */ void GetTime(int *hour,int *minute,int *sec); int SetTime(int hour,int minute,int sec); void GetDate(int *year,int *month,int *day); int SetDate(int year,int month,int day); void ClockHighLow(void); void ClockHigh(void); void ClockLow(void); /* 03/15/2000 Add function Scanf ... */ int LineInput(char *buf,int maxlen); /* input one line from StdInput */ void ResetScanBuffer(void); /* Set Scanf to use default buffer(maxlen=80) */ void SetScanBuffer(unsigned char *buf,int len); /* Set user's buffer for Scanf*/ int Scanf(char *fmt, ...); /* like C's scanf */ /* [10/15/2002] mark these functions, use new functions instead. (user also can use these old function name.) int InstallCom1(unsigned long baud, int data, int parity, int stop); int RestoreCom1(void); int IsCom1(void); int ToCom1(int data); int ToCom1Str(char *str); int ToCom1Bufn(char *buf,int no); int printCom1(char *fmt,...); void ClearTxBuffer1(void); int SetCom1FifoTriggerLevel(int level); int SetBaudrate1(unsigned long baud); int ReadCom1(void); int ClearCom1(void); int DataSizeInCom1(void); int WaitTransmitOver1(void); int IsTxBufEmpty1(void); int IsCom1OutBufEmpty(void); void SetDtrActive1(void); void SetDtrInactive1(void); void SetRtsActive1(void); void SetRtsInactive1(void); int GetCtsStatus1(void); int GetDsrStatus1(void); */ /* [10/15/2002] mark these functions, use new functions instead. (user also can use these old function name.) int InstallCom2(unsigned long baud, int data, int parity, int stop); int RestoreCom2(void); int IsCom2(void); int ToCom2(int data); int ToCom2Str(char *str); int ToCom2Bufn(char *buf,int no); int printCom2(char *fmt,...); void ClearTxBuffer2(void); int SetCom2FifoTriggerLevel(int level); int SetBaudrate2(unsigned long baud); int ReadCom2(void); int ClearCom2(void); int DataSizeInCom2(void); int WaitTransmitOver2(void); int IsTxBufEmpty2(void); int IsCom2OutBufEmpty(void); */ /* 10/16/2000 start Ver 1.17 Add new EEPROM functions */ void EE_WriteEnable(void); void EE_WriteProtect(void); int EE_RandomRead(int Block,int Addr); int EE_ReadNext(int Block); int EE_MultiRead(int StartBlock,int StartAddr,int no,char *databuf); int EE_RandomWrite(int Block,int Addr,int Data); int EE_MultiWrite(int Block,int Addr,int no,char *Data); /* 05/15/2001 Add new Led functions */ void LedToggle(void); /* 09/14/2001 Add new variable for system hardware serial number */ extern unsigned char far * const SystemSerialNumber; /* 09/21/2001 Add new functions for DI1,DI2,DO1,DO2 Add new functions for PIO pins on I/O expansion bus */ void SetDo1On(void); /* DO1 is open collector output, SetDo1On will set the output Tx On. */ void SetDo1Off(void); /* DO1 is open collector output, SetDo1Off will set the output Tx Off. */ int GetDo1(void); /* DO1 is open collector output, GetDo1 will get the output Tx status. return value: 0: the output Tx is Off. others(!=0):the output Tx is On. */ void SetDo2On(void); /* DO2 is open collector output, SetDo2On will set the output Tx On. */ void SetDo2Off(void); /* DO2 is open collector output, SetDo2Off will set the output Tx Off. */ int GetDo2(void); /* DO2 is open collector output, GetDo2 will get the output Tx status. return value: 0: the output Tx is Off. others(!=0):the output Tx is On. */ int GetDi1(void); /* return value: 0: the input is Low. others(!=0):the input is Low. */ int GetDi2(void); /* return value: 0: the input is Low. others(!=0):the input is Low. */ void SetDio4Dir(int dir); void SetDio9Dir(int dir); void SetDio14Dir(int dir); void SetTi1Dir(int dir); void SetTo1Dir(int dir); void SetTi0Dir(int dir); void SetTo0Dir(int dir); void SetInt4Dir(int dir); /* set the mode for PIO(Programmable I/O) pins [Input] dir: 0: set to output mode 1: set to Input With pull up/down mode(To0 & To1 are pull down, others pull up) 2: set to Input Without pull up/down mode 3: set to Normal mode */ void SetDio4High(void); void SetDio9High(void); void SetDio14High(void); void SetTo1High(void); void SetTi0High(void); void SetTo0High(void); void SetInt4High(void); /* set the PIO(Programmable I/O) pins to output high. (work only when they are set on output mode ) */ void SetDio4Low(void); void SetDio9Low(void); void SetDio14Low(void); void SetTo1Low(void); void SetTi0Low(void); void SetTo0Low(void); void SetInt4Low(void); /* set the PIO(Programmable I/O) pins to output low. (work only when they are set on output mode ) */ int GetDio4(void); int GetDio9(void); int GetDio14(void); int GetTo1(void); int GetTi0(void); int GetTo0(void); int GetInt4(void); /* get the current input status of PIO(Programmable I/O) pins.(when set to input mode.) or get the current output status of PIO(Programmable I/O) pins.(when set to output mode.) return value: 0:input/output low. 1:input/output high. */ /* 08/01/2001 Add new timer functions */ extern const unsigned long far * const TimeTicks; /* for StopWatch [計時碼表] */ #ifndef _T_STOPWATCH_ #define _T_STOPWATCH_ typedef struct { ulong ulStart,ulPauseTime; uint uMode; /* 0: pause, 1:run(start) */ } STOPWATCH; #endif void T_StopWatchStart(STOPWATCH *sw); ulong T_StopWatchGetTime(STOPWATCH *sw); void T_StopWatchPause(STOPWATCH *sw); void T_StopWatchContinue(STOPWATCH *sw); /* For CountDown Timer[倒數計時] */ #ifndef _T_COUNTDOWNTIMER_ #define _T_COUNTDOWNTIMER_ typedef struct { ulong ulTime,ulStartTime,ulPauseTime; uint uMode; /* 0: pause, 1:run(start) */ } COUNTDOWNTIMER; #endif void T_CountDownTimerStart(COUNTDOWNTIMER *cdt,ulong timems); void T_CountDownTimerPause(COUNTDOWNTIMER *cdt); void T_CountDownTimerContinue(COUNTDOWNTIMER *cdt); int T_CountDownTimerIsTimeUp(COUNTDOWNTIMER *cdt); ulong T_CountDownTimerGetTimeLeft(COUNTDOWNTIMER *cdt); /* 11/09/2001 Add new timer functions */ void T2_UpdateCurrentTimeTicks(void); void T2_StopWatchStart(STOPWATCH *sw); ulong T2_StopWatchGetTime(STOPWATCH *sw); void T2_StopWatchPause(STOPWATCH *sw); void T2_StopWatchContinue(STOPWATCH *sw); void T2_CountDownTimerStart(COUNTDOWNTIMER *cdt,ulong timems); void T2_CountDownTimerPause(COUNTDOWNTIMER *cdt); void T2_CountDownTimerContinue(COUNTDOWNTIMER *cdt); int T2_CountDownTimerIsTimeUp(COUNTDOWNTIMER *cdt); ulong T2_CountDownTimerGetTimeLeft(COUNTDOWNTIMER *cdt); /* 07/30/2002*/ extern int TriggerLevel[8]; // define in COM1ISR.c #define COM1 0 #define COM2 1 #define COM3 2 #define COM4 3 #define COM5 4 #define COM6 5 #define COM7 6 #define COM8 7 /* Functions for COM5 COM5 for X560 */ #define InstallCom5 InstallCom_5 #define RestoreCom5 RestoreCom_5 #define IsCom5 IsCom_5 #define ToCom5 ToCom_5 #define ToCom5Str ToComStr_5 #define ToCom5Bufn ToComBufn_5 #define printCom5 printCom_5 #define ClearTxBuffer5 ClearTxBuffer_5 #define SetCom5FifoTriggerLevel SetComFifoTriggerLevel_5 #define SetBaudrate5 SetBaudrate_5 #define ReadCom5 ReadCom_5 #define ClearCom5 ClearCom_5 #define DataSizeInCom5 DataSizeInCom_5 #define WaitTransmitOver5 WaitTransmitOver_5 #define IsTxBufEmpty5 IsTxBufEmpty_5 #define IsCom5OutBufEmpty IsComOutBufEmpty_5 #define ReadCom5n ReadComn_5 #define SetDataFormat5 SetDataFormat_5 #define SendBreak5 SendBreak_5 int InstallCom5(unsigned long baud, int data, int parity, int stop); int RestoreCom5(void); int IsCom5(void); int ToCom5(int data); int ToCom5Str(char *str); int ToCom5Bufn(char *buf,int no); int printCom5(char *fmt,...); void ClearTxBuffer5(void); int SetCom5FifoTriggerLevel(int level); int SetBaudrate5(unsigned long baud); int ReadCom5(void); int ClearCom5(void); int DataSizeInCom5(void); int WaitTransmitOver5(void); int IsTxBufEmpty5(void); int IsCom5OutBufEmpty(void); int SetDataFormat5(int databit,int parity,int stopbit); int ReadCom5n(unsigned char *buf,int n); void SendBreak_5(unsigned time_ms); void SetBreakMode_5(int mode); /* Functions for COM6 COM6 for X560 */ #define InstallCom6 InstallCom_6 #define RestoreCom6 RestoreCom_6 #define IsCom6 IsCom_6 #define ToCom6 ToCom_6 #define ToCom6Str ToComStr_6 #define ToCom6Bufn ToComBufn_6 #define printCom6 printCom_6 #define ClearTxBuffer6 ClearTxBuffer_6 #define SetCom6FifoTriggerLevel SetComFifoTriggerLevel_6 #define SetBaudrate6 SetBaudrate_6 #define ReadCom6 ReadCom_6 #define ClearCom6 ClearCom_6 #define DataSizeInCom6 DataSizeInCom_6 #define WaitTransmitOver6 WaitTransmitOver_6 #define IsTxBufEmpty6 IsTxBufEmpty_6 #define IsCom6OutBufEmpty IsComOutBufEmpty_6 #define ReadCom6n ReadComn_6 #define SetDataFormat6 SetDataFormat_6 #define SendBreak6 SendBreak_6 int InstallCom6(unsigned long baud, int data, int parity, int stop); int RestoreCom6(void); int IsCom6(void); int ToCom6(int data); int ToCom6Str(char *str); int ToCom6Bufn(char *buf,int no); int printCom6(char *fmt,...); void ClearTxBuffer6(void); int SetCom6FifoTriggerLevel(int level); int SetBaudrate6(unsigned long baud); int ReadCom6(void); int ClearCom6(void); int DataSizeInCom6(void); int WaitTransmitOver6(void); int IsTxBufEmpty6(void); int IsCom6OutBufEmpty(void); int SetDataFormat6(int databit,int parity,int stopbit); int ReadCom6n(unsigned char *buf,int n); void SendBreak_6(unsigned time_ms); void SetBreakMode_6(int mode); /* Functions for COM7 COM7 for X560 */ #define InstallCom7 InstallCom_7 #define RestoreCom7 RestoreCom_7 #define IsCom7 IsCom_7 #define ToCom7 ToCom_7 #define ToCom7Str ToComStr_7 #define ToCom7Bufn ToComBufn_7 #define printCom7 printCom_7 #define ClearTxBuffer7 ClearTxBuffer_7 #define SetCom7FifoTriggerLevel SetComFifoTriggerLevel_7 #define SetBaudrate7 SetBaudrate_7 #define ReadCom7 ReadCom_7 #define ClearCom7 ClearCom_7 #define DataSizeInCom7 DataSizeInCom_7 #define WaitTransmitOver7 WaitTransmitOver_7 #define IsTxBufEmpty7 IsTxBufEmpty_7 #define IsCom7OutBufEmpty IsComOutBufEmpty_7 #define ReadCom7n ReadComn_7 #define SetDataFormat7 SetDataFormat_7 #define SendBreak7 SendBreak_7 int InstallCom7(unsigned long baud, int data, int parity, int stop); int RestoreCom7(void); int IsCom7(void); int ToCom7(int data); int ToCom7Str(char *str); int ToCom7Bufn(char *buf,int no); int printCom7(char *fmt,...); void ClearTxBuffer7(void); int SetCom7FifoTriggerLevel(int level); int SetBaudrate7(unsigned long baud); int ReadCom7(void); int ClearCom7(void); int DataSizeInCom7(void); int WaitTransmitOver7(void); int IsTxBufEmpty7(void); int IsCom7OutBufEmpty(void); int SetDataFormat7(int databit,int parity,int stopbit); int ReadCom7n(unsigned char *buf,int n); void SendBreak_7(unsigned time_ms); void SetBreakMode_7(int mode); /* 10/15/2002 Add new function for COM1 RTS/CTS control */ #define FLOW_CONTROL_DISABLE 0 #define FLOW_CONTROL_ENABLE 1 #define FLOW_CONTROL_AUTO_BY_HW 2 #define FLOW_CONTROL_AUTO_BY_SW 3 /* 10/15/2002 Functions for COM1 (New version) */ #define InstallCom1 InstallCom_1 #define RestoreCom1 RestoreCom_1 #define IsCom1 IsCom_1 #define ToCom1 ToCom_1 #define ToCom1Str ToComStr_1 #define ToCom1Bufn ToComBufn_1 #define printCom1 printCom_1 #define ClearTxBuffer1 ClearTxBuffer_1 #define SetCom1FifoTriggerLevel SetComFifoTriggerLevel_1 #define SetBaudrate1 SetBaudrate_1 #define ReadCom1 ReadCom_1 #define ClearCom1 ClearCom_1 #define DataSizeInCom1 DataSizeInCom_1 #define WaitTransmitOver1 WaitTransmitOver_1 #define IsTxBufEmpty1 IsTxBufEmpty_1 #define IsCom1OutBufEmpty IsComOutBufEmpty_1 #define ReadCom1n ReadComn_1 #define SetDataFormat1 SetDataFormat_1 #define SendBreak1 SendBreak_1 int InstallCom_1(unsigned long baud, int data, int parity, int stop); int RestoreCom_1(void); int IsCom_1(void); int ToCom_1(int data); int ToComStr_1(char *str); int ToComBufn_1(char *buf,int no); int printCom_1(char *fmt,...); void ClearTxBuffer_1(void); int SetComFifoTriggerLevel_1(int level); int SetBaudrate_1(unsigned long baud); int ReadCom_1(void); int ClearCom_1(void); int DataSizeInCom_1(void); int WaitTransmitOver_1(void); int IsTxBufEmpty_1(void); int IsComOutBufEmpty_1(void); int SetDataFormat_1(int databit,int parity,int stopbit); int ReadComn_1(unsigned char *buf,int n); void SendBreak_1(unsigned time_ms); void SetBreakMode_1(int mode); void SetDtrActive_1(void); void SetDtrInactive_1(void); void SetRtsActive_1(void); void SetRtsInactive_1(void); int GetCtsStatus_1(void); int GetDsrStatus_1(void); void SetCtsControlMode_1(int mode); void SetRtsControlMode_1(int mode); /* 10/15/2002 Functions for COM2 (New version) */ #define InstallCom2 InstallCom_2 #define RestoreCom2 RestoreCom_2 #define IsCom2 IsCom_2 #define ToCom2 ToCom_2 #define ToCom2Str ToComStr_2 #define ToCom2Bufn ToComBufn_2 #define printCom2 printCom_2 #define ClearTxBuffer2 ClearTxBuffer_2 #define SetCom2FifoTriggerLevel SetComFifoTriggerLevel_2 #define SetBaudrate2 SetBaudrate_2 #define ReadCom2 ReadCom_2 #define ClearCom2 ClearCom_2 #define DataSizeInCom2 DataSizeInCom_2 #define WaitTransmitOver2 WaitTransmitOver_2 #define IsTxBufEmpty2 IsTxBufEmpty_2 #define IsCom2OutBufEmpty IsComOutBufEmpty_2 #define ReadCom2n ReadComn_2 #define SetDataFormat2 SetDataFormat_2 #define SendBreak2 SendBreak_2 int InstallCom_2(unsigned long baud, int data, int parity, int stop); int RestoreCom_2(void); int IsCom_2(void); int ToCom_2(int data); int ToComStr_2(char *str); int ToComBufn_2(char *buf,int no); int printCom_2(char *fmt,...); void ClearTxBuffer_2(void); int SetComFifoTriggerLevel_2(int level); int SetBaudrate_2(unsigned long baud); int ReadCom_2(void); int ClearCom_2(void); int DataSizeInCom_2(void); int WaitTransmitOver_2(void); int IsTxBufEmpty_2(void); int IsComOutBufEmpty_2(void); int SetDataFormat_2(int databit,int parity,int stopbit); int ReadComn_2(unsigned char *buf,int n); void SendBreak_2(unsigned time_ms); void SetBreakMode_2(int mode); #ifdef __cplusplus } #endif