使用方法: 将测试工具目录文件全部拷贝到收银程序目录中,首先使用海信POS秤工具,在设置页面中选择正确机型配置并保持配置。 必备文件 pos_ad_dll.dll------------第三方开发接口 pos_ad_dll.dll接口函数返回值 #define HS_OK 0xf0 //正常 #define HS_ERROR 0xff //异常 备注: 所有接口函数均有一个以_stdcall结尾的副本,对于三方使用PowerBuilder作为开发工具时,请 调用后缀为_stdcall的接口函数。 //**********************打印相关************************* //格式化待打印字符串 int PrintText(char *str,int FontSize) 参数: str长度必须小于20480 FontSize 正常字体为24,倍宽倍高为48 返回值: HS_OK HS_ERROR //位图文件打印 int PrintBitmapFile(char *BmpFileName,int LabelAngle) 参数: BmpFileName:位图图片文件(支持24位色以下位图) LabelAngle=0:不旋转,其它值旋转180度 返回值: HS_OK HS_ERROR //开始打印 int BeginPrint(int PrintType) 参数: PrintType PrintType 4:走纸 返回值: HS_OK HS_ERROR //打印二维码 //参数: //QRCode:二维码内容 //Mode,位图大小 设置模块大小1 ≤ n ≤ 16 ,打印机默认3 DllExport int PrintQrCode(char *QRCode,int Mode); DllExport int PrintQrCode_stdcall(char *QRCode,int Mode); //打印条码 //参数: //barcode :条码数据 //height :高度,取值范围,1-255,单位点。 //width:宽度 ,取值范围 2-6,默认2 //textpositon :n 打印位置 0不打印 1在条码上方 2在条码下方 3在条码上方及下方 int PrintBarCode(char *barcode,int textPosition=2,int height=50,int width=2); //发送打印机指令 //参数: //cmd :指令数据 //len :数据长度 DllExport int PrintCommand(char *cmd,int len); 比如打印机开钱箱指令:unsigned char psCmd[] = {0x1B,0x70,0x0,0xE1,0xE1}; //27,112,0,225,225 PrintCommand((char *)psCmd,5); //设置行间距 //参数: //space :行间距,打印机默认是30,spaceX0.125 mm DllExport int SetLineSpace(int space); //切纸命令 DllExport int CutPaper() //**********************称重相关************************* //读取量程信息----在访问称重相关接口函数之前,必须至少调用一次此函数,并将取得的相关量程信息如实的显示到应用程序界面上。 int read_baseinfo(char *buf) buf长度要大于等于65字节 返回值: HS_OK HS_ERROR 如返回HS_OK,则成功取得量程信息,数据结构如下 long max_range[3]; //最大秤量 long min_range; //最小秤量 long max_tare; //最大皮重 long max_pre_tare; //最大预置皮重 long resolution[3]; //分度 char Weight_unit[4];//重量单位 char money_unit[4]; //货币单位 char system_version[20];//数传版本 //清零 int send_zero(void) 返回值: HS_OK成功 1 非稳定状态且处于非欠载状态禁止清零 2 负载超出去皮范围 3 过载超出去皮范围 -1 异常 -2 数传通讯异常 -3 数传内:语法、逻辑/无法执行、内部函数错误 -8 与IDNET_Service连接失败 -9 与IDNET_Service数据通讯错误 //设置皮重(预制皮重),为了兼容旧的接口而保留 int send_tare(char *buf) 参数: buf的长度必须大于等于10字节。 buf中的值为空字符串或"0"或"0.000",有两种函义: 1,如果有皮重,如毛重=0,则清除皮重,否则如净重大于0,则按键去皮 2,如果没有皮重,则按键去皮 buf为皮重字符串则表示预置去皮,如:需要设置的皮重值的字符串,如20克,则参数为字符串"0.020"。 返回值: HS_OK成功,此时buf中存放当前皮重 1 不合法规禁止操作 2 欠载 3 过载超出去皮范围 4 参数异常 5 数据处理异常 当返回HS_OK时,表明当前次皮重操作成功,操作后实际的皮重值会存放在buf中,如皮重操作后皮重值为20克,则buf中的内容为"00.0200"。 //设置预置皮重,根据传入的皮重参数进行去皮 //参数buf既作为传入参数,又作为返回皮重使用,长度要大于等于10字节 int send_pre_tare(char *buf) 参数: 需要设置的皮重值的字符串,如20克,则参数为字符串"0.020"。 如果参数为空字符串或等于"0.000",则功能等价于清除皮重。 返回值: HS_OK成功,此时buf中存放当前皮重 1 不合法规禁止操作 2 欠载 3 过载超出去皮范围 4 参数异常 5 数据处理异常 //按键去皮,根据秤盘上当前重量进行自动去皮 //参数buf供返回皮重使用,长度要大于等于10字节 int set_tare_bykey(char *buf) 返回值: HS_OK成功,此时buf中存放当前皮重 1 不合法规禁止操作 2 欠载 3 过载超出去皮范围 5 数据处理异常 //清除皮重 //参数buf供返回皮重使用,长度要大于等于10字节 int clear_tare(char *buf) 返回值: HS_OK成功,此时buf中存放当前皮重 1 不合法规禁止操作 2 欠载 3 过载超出去皮范围 5 数据处理异常 //读取重量 int read_standard(char *buf) buf长度要大于等于18字节 返回值: HS_OK 成功 -1 欠载 -2 过载 HS_ERROR 异常 如返回HS_OK,则成功取得重量信息,数据结构如下 char status; //status的bit0(第一位)表示是否稳定,如为1则表示稳定 //status的bit1(第二位)表示是否在零位,如为1则表示零位 //status的bit2(第三位)表示是否有皮重,如为1则表示有皮重 char net_weight[7]; char FixSeparator;//固定为"P" char tare_weight[7]; 当处于欠载状态时,net_weight中的数据为"┗━┛",返回值为-1 当处于过载状态时,net_weight中的数据为"┏━┓",返回值为-2 ;开钱箱 int OpenCashDrawerEx(void) 第一次运行需要用管理员模式 ;钱箱状态 bool GetCashDrawerStatus(void); 返回值: true 打开状态 false 关闭状态