📄 main.h
字号:
extern uchar xdata SalerNo; //收款员编号
extern uchar xdata WinHint[12][26],WinDat[12][26];//WinVfd[12][3],窗体函数参数
//-----------------------------------函数声明-----------------------------------------------------------
// ------------------------- Others--------------------------------------------------------
ulong CalculateTime(ulong time,uchar x);
void PowerOffHint(uchar *str,uchar *dat,uchar flg);
void ErrorHint(uchar *str,uint num);
void Hint(uchar x,uchar y,uchar *str,uchar mode);
void Beep(ulong n);
uchar Windows(uchar no,uchar mode,uchar *key);
void WindowsSet(uchar x);
uchar ScanNumber(uchar row,uchar col,uchar dat,uchar mode);
void SalerManage();
void ManageSet();
uint CRC16(uchar *ptr, uint len);
void Report();
void AmendPrice(uchar f,uchar t,ulong price);
void WareDown();
void FlashTest();//?????????????????????
void CheckSystem(void);//????????????????
void PosTest();//?????????????????????
// ------------------------- Convert---------------------------
void BcdToBar(uchar *bcd,uchar *bar);
void BarToBcd(uchar *bar,uchar *bcd);
void StrToBar(uchar *str,uchar *bar);
void StrToBcd(uchar len,uchar *str,uchar *bcd);
void BcdToStr(uchar len,uchar *bcd,uchar *str,uchar mode);
void NumToStr(ulong dat, uchar *str, uchar mode);
//-------------------- Sale------------------------------------------------------------//
void PowerDispose(uint no,uchar len,uchar *str);
void SysIni();
uchar InvoiceCheck(uchar x);
void Sale();
void GetPlu(uchar n);
uchar VerifyBossPwd();
uchar Login();
void DeclareAddUp();
void DailySign(uchar mode);
//-------------------- USB------------------------------------------------------------//
void InitUSB(void);
uchar Receive(uint Len,uchar *Dat);
void UsbSend(uint Len,uchar *Dat);
//--------------------UART------------------------------------------------------------//
void UartSet(uchar ch,uchar timer,uchar mode,uchar net,uint baudrate);
void UartTxd(uint Len,uchar *str);
void UartRxd(uint Len,uchar *str);
void UartTxd_Down(uchar flag,uint Len,uchar *str);
uchar UartRxd_Down(uchar flag,uint Len,uchar *str);
void PcCom();
void RS485Rxd(uint Len,uchar *str);
void RS485Txd(uint Len,uchar *str);
//--------------------ScanerIni----------------------------------------------------------//
void ScanerIni();
//------------------SIM---------------------------------------------------------------//
void SimIni(uchar ch);
void SimDeactive(uchar ch);
void SimInt();
uchar SimRstCold(uchar ch);
uint SimBpsSet(uint bps,uchar card);
uchar SimDetect(uchar x);
uint SimCmd(uchar tlen,uchar no);
void ReadBinary(uchar xp1,uchar xp2,uchar le,uchar card);
void VerifyFiscalPin();
void VerifyPin(uchar xp2,uchar lc,uchar *dat,uchar card);
void FiscalCashRegisterIni();
void SelectFile(uchar xp1,uchar xp2,uchar lc,uchar *dat,uchar card);
void GetChallenge(uchar le,uchar *dat,uchar card);
uint GetResponse(uchar le,uchar card);
void IssueInvoice(uchar *dat);
void Distribute_Invoice_NB();
void InternalAtuhntication(uchar xp2,uchar *dat,uchar card);
void ExternalAuthentication(uchar xp2,uchar *dat,uchar card);
uchar UpdateControls();
uchar AutoDailySign();
void DeclareDuty(ulong time,uchar mode);
void DailyCollectSign(uchar xp2,uchar *dat,uchar *str);
uint ReadRecord(uchar m,uchar xp1,uchar xp2,uchar le,uchar card);
void UpdateRecord(uchar xp1,uchar lc,uchar *dat,uchar card);
uchar DistributeInvoice(uchar x);
uchar InputInvoice(uchar *dat);
void InvoTomeWrite();
uchar FiscalIdentify(uchar x);
uchar UserIdentify(uchar x);
uchar ImportInvoice();
uchar ManagementIdentify();
uchar CheckDeclareDat(uchar *dat,uchar mode);
uchar CheckDailyDat(uchar *dat,uchar mode);
uchar CheckInvoiceDat(uchar *dat,uchar mode);
uchar DeclareFlgQuery();
void WriteCheckDat();
void TaxCom();
void TaxManage();
//-----------------------Printer----------------------------------------------------------------//
void PrinterIni();
void PrintStr(uchar *str); //打印字符串
void PrintItem(uchar *str,ulong num,ulong price);//打印项目,PLU
// *str:项目名称;rice:价格;Num:数量;
void PrintStrNum(uchar *str,ulong dat,uchar mode);
//打印一个字符串*str,后面紧跟一个数字dat,flag=0:打印为整数,flag=1:打印为浮点数
void PrintTimeNo(uchar no);
//time:时间(BCD码);no:收款员编号
void PaperControl(bit direction,uchar num);
//direction=0:退纸,direction=1:进纸;num:走纸的长度(1/144英寸)
void PaperSet(uchar direction,uchar n);
void UartTxdPrinter(uchar len,uchar *str);
void PrintCodeNum(uchar *str,bit flag,uchar *Invoice_CN,uchar n);
//税控码与发票代码功能函数
//str:打印字符串 Invoice_CN:打印数据
//flag=1打印发票代码(BCD格式) flag=0打印税控码(HEX格式)
//n:长度(BCD格式有效)
void BlackOrientation();
void PrintHome();
void BlackSetup();//黑标设置
void PtintInvoTome(uchar *str);//???????????????????????????????????????????????????????
void PrintStartToEnd(uchar *time);
//-------------LCD--宏定义------------------------------------------------------------------//
///////////////////////////////////////////////////////////////////////////////
//#define LcdChip1 0x8000 //第四版
//#define LcdChip2 0x8004
//#define LcdChip3 0x8008
//#define LcdChip1 0x8400 //第五版
//#define LcdChip2 0x8800
//#define LcdChip3 0x9000
//#define InstructionSetAdr 0x00 //第四版
//#define WriteDataAdr 0x01
//#define StatusReadAdr 0x02
//#define ReadDataAdr 0x03
//#define InstructionSetAdr 0x0000 //第五版
//#define WriteDataAdr 0x0100
//#define StatusReadAdr 0x0200
//#define ReadDataAdr 0x0300
//-----------------------第六版---------------------
#define LcdChip1 0xa400
#define LcdChip2 0xa800
#define LcdChip3 0xb000
#define InstructionSetAdr 0x2000
#define WriteDataAdr 0x2100
#define StatusReadAdr 0x2200
#define ReadDataAdr 0x2300
//-----------------LCD-函数声明--------------------------------
///////////////////////////////////////////////////////////////////////////////
void LcdDisplay(uchar x,uchar y,uchar *str,uchar mode);
//DisStr为汉字内码或ASCII码,DisX为行地址(0~63) DisX为列地址(0~191)
void LcdTurnOn();
void DisplayFullRec(uchar Dot_y1,uchar Dot_x1,uchar Dot_y2,uchar Dot_x2,uchar DisON);
void DisplayRectangle(uchar Dot_y1,uchar Dot_x1,uchar Dot_y2,uchar Dot_x2,uchar DisON);
void LcdDisplayDot(uchar Dot_X,uchar Dot_Y,uchar DisON);
void LcdDisBlock();
void LcdClear(uchar LastCol); //清屏
//CursorX,CursorY为光标位置;DisTime(单位:10ms)光标闪烁时间,DisShow光标外观(0~4): 0:关光标; 1:1*8点阵光标; 2: 2*8点阵光标; 3:4*8点阵光标;
void LcdClearLine(uchar Line,uchar LastCol);
void LCD_Float_Display(uchar Ln,uchar Col,uchar *IntNum,uchar *DecimalNum);
void LcdPicture(uchar StartLn, uchar EndLn, uchar StartCol, uchar LnLen, uchar *p);
void ShowPicture(uchar startrow,uchar startcol,uchar endrow,uchar endcol,uchar *dat);
void ScrollBar(uchar CurrentRow, uchar FullRow);//lcd光标条
void LcdShowLineX(uchar row,uchar start,uchar end);
void LcdShowLineY(uchar column,uchar start,uchar end);
void LcdWriteCommand(uchar Command,uint CS);
void LcdWriteData(uchar WriteData,uint CS);
//-------------VFD--------------------------------------------------------------------//
void VfdDisplay(uchar DisBuff[],uint Cursor,uint Dot);
//DisBuff显示缓冲区(非压缩BCD码) Cursor光标显示 和 Dot小数点显示 对应位为1则该点亮 最高位对应最左边位
void VfdBright(uchar Quantity); //亮度控制
//Quantity=低三位为0~7级亮度调节 0为最暗 7为最亮 如果第四位为0关显示;为1开显示
void Vfd_Dis(uchar x0,uchar x1,uchar x2);
void VfdDisStr(uchar *str);
void VfdDisplayInt(uchar *str,uchar MaxNum,uchar Pwd);
void VfdClear();
//-------------KEY--------------------------------------------------------------------//
ulong GetInt(uchar row, uchar col, ulong dat, uchar len,uchar flg,uchar *key);
ulong GetFloat(uchar row, uchar col, ulong dat,uchar len,uchar *key);
uchar GetBcd(uchar row, uchar col, uchar *bcd,uchar len,uchar *key);
uchar GetKey();
//得到一个按键值,没有显示提示
uchar KeyScan();
void OpenBox();
uchar GetLock();
//-------------Time-------------------------------------------------------------------//
void SetTime(uchar *time);
//注:time为BCD码格式,time[0]=秒-分-时-星期-(世纪)日-月-年=time[6]
void TimeSetup(uchar val);
void Readtime(uchar *time);
void ReadDate();
//返回的值是BCD码格式:
uchar Verdict(uchar *bcdtime);
uchar Tamper(uchar *time);//侵入
void M41st87Ini();
//-------------25P80------------------------------------------------------------------//
void SpiSendChar(uchar Dat);
uchar SpiReceiveChar();
void SpiReceiveData();
void SpiSendData();
void FlashWriteEnable(uchar x);
uchar SerialFlashWrite(uchar chip,ulong address,uint Len,uchar *Dat);
//ch: 选择操作芯片 address: 写入地址 len: 写入长度 dat[]: 写入数组
// 返回 1 操作成功 返回 0 操作失败
void SerialFlashRead(uchar chip,ulong address,uint Len,uchar *Dat);
//读某个25P80的num个字节数:chip: 选择芯片 add: 读起始地址 len: 读取长度 dat[]: 读取存放数据
uchar SerialFlashSectorErase(uchar chip,uchar Sector);
//se: sector value form 0 to 15
uchar SerialFlashBulkErase(uchar chip);
//chip: 选择芯片
void Modify(uchar cs,ulong WrDatStAdd,uint len,uchar *dat);
//-------------24C64------------------------------------------------------------------//
void I2cStop(void);
void I2cStart(void);
uchar I2cRead(uint adr,uint len,uchar *dat);
uchar I2cWrite(uint adr,uint len,uchar *dat);
uchar I2cRd(uchar device,uint adr,uint len, uchar *dat);
uchar I2cWr(uchar device,uint adr,uint len,uchar *dat);
uchar RfidRd(uint adr,uint len, uchar *dat);
uchar RfidWr(uint adr,uint len,uchar *dat);
//-------------手写板-----------------------------------------------------------------//
uchar ImeInput(uchar *outbuff);
uchar ManuscriptInput(uchar disstartln, uchar disstartcol, uchar *outbuff);
char *ImeQuery(char *imestr);
uint ImeKeyScan(uchar ln,uchar col);
void LcdDisNum(uchar ln, uchar col, uchar *str,uchar flg);
uchar QuWeiInput(uchar disstartln, uchar disstartcol,uchar *charout);
uchar EnglishInput(uchar disstartln, uchar disstartcol,uchar *charout);
uchar Gb18030Input(uchar *buf);
//---------------------------------USBHOST-----------------------------------------------//
void UsbDiskstatus(void);
void UsbOperationFinish(void);
uchar USBWriteReadTest(bit file);
void UsbByteWrite(uchar *filesname, uchar len,uchar *str);
void UsbFilesWrite(uchar *filesname,ulong Sectorlen ,uchar *str);
void UsbByteRead(uchar *filesname,ulong startaddress ,uchar readBytelen,uchar *str);
void UsbFilesRead(uchar *filesname,ulong startSector ,uchar readsectorlen,uchar *str);
void USBHOSTWrite(void);
//--------------------RFID------------------------
void RfidTest(void);
void ClearRam();
//--------------------LED------------------------
void CH452_Init(void);
uchar StatusREG_Read(void);
uchar Memory_Read(ulong adr,ulong len,uchar *dat);
uchar Memory_Page_Write(ulong adr,ulong len, uchar *dat);
uchar Memory_Write(ulong adr,ulong len,uchar *dat);
void Memory_Erase_All_Page();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -