中控消费机SDK接口.docx

上传人:b****7 文档编号:11420783 上传时间:2023-02-28 格式:DOCX 页数:15 大小:19.78KB
下载 相关 举报
中控消费机SDK接口.docx_第1页
第1页 / 共15页
中控消费机SDK接口.docx_第2页
第2页 / 共15页
中控消费机SDK接口.docx_第3页
第3页 / 共15页
中控消费机SDK接口.docx_第4页
第4页 / 共15页
中控消费机SDK接口.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

中控消费机SDK接口.docx

《中控消费机SDK接口.docx》由会员分享,可在线阅读,更多相关《中控消费机SDK接口.docx(15页珍藏版)》请在冰豆网上搜索。

中控消费机SDK接口.docx

中控消费机SDK接口

目录

1概述2

2函数简述2

2.1Connect2

2.2Disconnect3

2.3DataQuery3

2.4DataCount4

2.5DataAppend5

2.6DataUpdate6

2.7DataDelete6

2.8InfoQuery7

2.9InfoUpdate8

2.10GetRTLog8

3表名附件9

Dataapi接口使用指南(简要)

1概述

dataapi接口是一组功能函数,使用类似于SQL语句方式访问考勤机中的数据表及设备信息。

相对原有通信接口,dataapi接口提供仅10个函数,使用简单、直观。

提供dataapi接口的commro.dll动态库,依然兼容原有的通信接口。

2函数简述

以下为dataapi接口包含的函数,仅列出了函数名及功能叙述。

参数描述和详细的调用方法,参考提供的demo例程。

2.1Connect

[函数]

DLLIMPORTvoid*__stdcallConnect(constchar*Parameters);

[功能]

连接到设备,连接成功后返回连接的句柄。

[示例]

VC:

CStringszPara="protocol=HTTP,ipaddress=192.168.1.201,port=80,name=12345,passwd=12345";

HANDLEh=Connect(szPara);

VB:

PrivateDeclareFunctionConnectLib"commpro.dll"(ByValParametersAsString)AsLong

DimhAsLong'连接设备句柄

DimretAsLong'函数返回

h=

Connect("protocol=HTTP,ipaddress=192.168.1.213,port=80,name=12345,passwd=12345")

MsgBox"Connectreturn=0x"+Hex(h)

Java:

commpro2javaco=newcommpro2java();

longh=

co.Connect("protocol=HTTP,ipaddress=192.168.1.213,port=80,name=12345,passwd=12345");

System.out.printf("ReturnHandle=0x%x\n",h);

2.2Disconnect

[函数]

DLLIMPORTvoid__stdcallDisconnect(void*Handle);

[功能]

断开与设备的连接。

[示例]

VC:

Disconnect(h);

VB:

Disconnect(h)

Java:

co.Disconnect(h);

2.3DataQuery

[函数]

DLLIMPORTint__stdcallDataQuery(void*Handle,char*Buffer,intBufferSize,constchar*TableName,constchar*FieldNames,constchar*Filter,constchar*Options);

[功能]

根据输入的表名、过滤条件、选项来查询设备中的数据,返回符合条件的记录数。

表名见附件

[示例]

VC:

char*bufOut=(char*)malloc(2*1024*1024);//至少分配K以上,这里分配的是M字节

CStringstrTable="UserInfo";

CStringstrFields="*";

CStringstrFilter="pin<100";

CStringstrOptions="";

ret=DataQuery(h,(char*)bufOut,2*1024*1024,strTable,strFields,strFilter,strOptions);

VB:

BufferSize=204800

Buffer=Space(BufferSize)

TableName="UserInfo"'//可选择的表有:

UserInfo/FPTemplate/Transaction/OpLog/Sms/Workcode

FieldNames="*"'//“*”为显示全部字段

fil=""'//过滤条件,不填写为没有指定过滤条件

Options=""

ret=DataQuery(h,Buffer,BufferSize,TableName,FieldNames,fil,Options)

MsgBox"DataQueryreturn="+Str$(ret)

PrintBuffer

Java:

inti=0;

byte[]Buffer=newbyte[5*1024*1024];//分配M内存

for(i=0;i<5*1024*1024;i++)

Buffer[i]=0x00;//清空这片内存

intBufferSize=Buffer.length;

StringTableName="FPTemplate";'//可选择的表有:

UserInfo/FPTemplate/Transaction/OpLog/Sms/Workcode

StringFieldNames="*";//“*”为显示全部字段

StringFilter="";//出现中文时,使用Filter.getBytes(“gb2312”)传递参数

StringOptions="";

intlen=co.DataQuery(h,Buffer,BufferSize,TableName.getBytes(),FieldNames.getBytes(),Filter.getBytes(),Options.getBytes());

StringszBuffer=newString(Buffer);

intnNull=szBuffer.indexOf(0)+1;//找到第一个'\0'的位置,重新构造一个串

StringszRet=newString(Buffer,0,nNull);

System.out.println(szRet);

2.4DataCount

[函数]

DLLIMPORTint__stdcallDataCount(void*Handle,constchar*TableName,constchar*Filter,constchar*Options);

[功能]

根据输入的表名、过滤条件来查询设备中的数据记录数。

[示例]

VC:

CStringstrTable="UserInfo";

CStringstrFilter="pin<100";

CStringstrOptions="";

ret=dataCount(h,strTable,strFilter,strOptions);

VB:

TableName="UserInfo"

fil=""

Options=""

ret=DataCount(h,TableName,fil,Options)

MsgBox"DataCountreturn="+Str$(ret)

Java:

TableName="UserInfo";

Filter="";//出现中文时,使用Filter.getBytes(“gb2312”)传递参数

Options="";

len=co.DataCount(h,TableName.getBytes(),Filter.getBytes(),Options.getBytes());

System.out.printf("DataCountReturn=%d\n",len);

2.5DataAppend

[函数]

DLLIMPORTint__stdcallDataAppend(void*Handle,constchar*TableName,constchar*Datas,constchar*Options);

[功能]

增加数据到设备中,返回设备成功新增的数据记录数

[示例]

VC:

CStringstrTable="UserInfo";

CStringstrPost="PIN=2111\r\nPIN=2112\tname=www\r\nPIN=2113";//在代码中要明确的使用”\r\n”及”\r”

CStringstrOptions="";

ret=dataAppend(h,strTable,strPost,strOptions);

VB:

TableName="UserInfo"

Options=""

Datas="PIN=2111"+vbTab+"name=ixie"+vbCrLf+"PIN=2113"+vbCrLf+"PIN=2112"

ret=DataAppend(h,TableName,Datas,Options)

MsgBox"DataAppendreturn="+Str$(ret)

Java:

TableName="UserInfo";

Options="";

StringDatas="PIN=2111\r\nPIN=2112\r\nPIN=2113";//出现中文时,使用

//Datas.getBytes(“gb2312”)传递参数

len=co.DataAppend(h,TableName.getBytes(),Datas.getBytes(),Options.getBytes());

System.out.printf("DataAppendReturn=%d\n",len);

2.6DataUpdate

[函数]

DLLIMPORTint__stdcallDataUpdate(void*Handle,constchar*TableName,constchar*DataValues,constchar*Filter,constchar*Options);

[功能]

更新设备中的表的数据

[示例]

VC:

CStringstrTable="UserInfo";

CStringstrPost="name=xyz";

CStringstrFilter="pin<100";//将用户表中pin<100的用户的姓名,更改为xyz

CStringstrOptions="";

ret=dataUpdate(h,strTable,strPost,strFilter,strOptions);//

VB:

TableName="UserInfo"

fil="pin<100"'//过滤条件

Options=""

DataValues="name=xyz"

ret=DataUpdate(h,TableName,DataValues,fil,Options)

MsgBox"DataUpdatereturn="+Str$(ret)

Java:

TableName="UserInfo";

Filter="pin<2111";

Options="";

StringDataValues="name=xyz";//出现中文时,使用DataValues.getBytes(“gb2312”)传递参数

len=co.DataUpdate(h,TableName.getBytes(),DataValues.getBytes(),Filter.getBytes(),Options.getBytes());

System.out.printf("DataUpdateReturn=%d\n",len);

2.7DataDelete

[函数]

DLLIMPORTint__stdcallDataDelete(void*Handle,constchar*TableName,constchar*Filter,constchar*Options);

[功能]

根据表名、过滤条件及选项,删除设备中的表的数据。

[示例]

VC:

CStringstrTable="UserInfo";

CStringstrFilter="namelike张*";

CStringstrOptions="";

ret=dataDelete(h,strTable,strFilter,strOptions);

VB:

TableName="UserInfo"

fil="pin=2112"'//过滤条件

Options=""

ret=DataDelete(h,TableName,fil,Options)

MsgBox"DataDeletereturn="+Str$(ret)

Java:

TableName="UserInfo";

Filter="pin=2112";//出现中文时,使用DataValues.getBytes(“gb2312”)传递参数

Options="";

len=co.DataDelete(h,TableName.getBytes(),Filter.getBytes(),Options.getBytes());

System.out.printf("DataDeleteReturn=%d\n",len);

2.8InfoQuery

[函数]

DLLIMPORTint__stdcallInfoQuery(void*Handle,char*Buffer,intBufferSize,constchar*Items);

[功能]

查询设备信息,如当前时间、制造商、设备号等。

返回值为数据的长度。

设备信息定义见附录

[示例]

VC:

char*bufOut=(char*)malloc(2*1024*1024);//至少分配K以上,这里分配的是2M字节

CStringszKey="System.GetTime,System.OS"

ret=infoQuery(h,(char*)bufOut,2*1024*1024,szKey);

VB:

BufferSize=204800

Buffer=Space(BufferSize)

Cls

Items="System.GetTime,System.OS"

ret=InfoQuery(h,Buffer,BufferSize,Items)

PrintBuffer

MsgBox"InfoQueryreturn="+Str$(ret)

Java:

byte[]Buffer=newbyte[5*1024*1024];//分配5M内存

for(i=0;i<5*1024*1024;i++)Buffer[i]=0x00;//清空这片内存

StringItems="System.GetTime,System.OS";

len=co.InfoQuery(h,Buffer,BufferSize,Items.getBytes());

intnNull2=szBuffer2.indexOf(0)+1;//找到第一个'\0'的位置,重新构造一个串

StringszRet2=newString(Buffer,0,nNull2);

System.out.println(szRet2);

2.9InfoUpdate

[函数]

DLLIMPORTint__stdcallInfoUpdate(void*Handle,constchar*ItemAndValues);

[功能]

设置设备信息。

[示例]

VC:

CStringpCode="System.Beep=3\r\nSystem.PlayVoice=FILE:

S_2.wav";

intret=infoUpdate(h,pCode);//

VB:

ItemAndValues="System.PlayVoice=FILE:

S_3.wav"

ItemAndValues=ItemAndValues+vbCrLf‘//\r\n

ItemAndValues=ItemAndValues+"System.Beep=3"

ret=InfoUpdate(h,ItemAndValues)

MsgBox"InfoUpdatereturn="+Str$(ret)

Java:

StringItemAndValues="System.Beep=3\r\nSystem.PlayVoice=FILE:

S_2.wav";

len=co.InfoUpdate(h,ItemAndValues.getBytes());

System.out.printf("InfoUpdateReturn=%d\n",len);

2.10GetRTLog

[函数]

DLLIMPORTint__stdcallGetRTLog(void*Handle,char*Buffer,intBufferSize);

[功能]

实时获取考勤机的数据。

[示例]

VC:

while

(1)

{

memset(buffer,0x00,OUT_SIZE);//注意每次使用buffer前清空

ret=GetRTLog(h,buffer,OUT_SIZE);

if(ret>=0)

{

//打印buffer中的值

//.........

}

Sleep(1000);//延时一秒

}

Java:

while(true)

{

for(i=0;i<5*1024*1024;i++)Buffer[i]=0x00;//Clearbuffer

ret=co.GetRTLog(h,Buffer,Buffer.length);

if(ret>=0)

{

StringszBuffer=newString(Buffer);

intnNull=szBuffer.indexOf(0)+1;//找到第一个'\0'的位置,重新构造一个串

StringszRet=newString(Buffer,0,nNull);

System.out.println(szRet);

}

if(kkk++>1000)break;

Thread.sleep(1000);//延时

}

3表名附件

表名

说明

使用模式

UserInfo

用户信息表

可上传下载

Template

指纹模板表

可上传下载

OpLog

操作记录表

可下载,不可上传

PosLog

消费记录表

可下载,不可上传

PressKey

按键金额设置表

可上传下载

StoreInfo

商品信息设置表

可上传下载

Mealtype

餐别设置表

可上传下载

TimeSeg

就餐时间段设置表

可上传下载

Fixed

分段定值表

可上传下载

PayDetail

商品消费明细

可下载,不可上传

TmPosLog

计时消费记录

可下载,不可上传

CardType

卡类设置表

可上传下载

FullValue

充值记录表

可下载,不可上传

SubSidyLog

下载待补贴表

可上传下载

SidyLog

补贴记录表

可下载,不可上传

KeyDetail

按键消费明细表

可下载,不可上传

设备信息定义

参数定义

说明

KeyPadBeep=0

键盘Beep(1打开,0关闭)

ShowName=0

是否显示姓名(1打开,0关闭)

CardMaxMoney=999999

卡最大限额

DeviceID=1

机号

ComKey=0

连接密码

UseSection=1

主扇区

BackSection=2

备份扇区

CardPass=0

扇区密码

BlackList=1

是否开启黑名单

WhiteList=0

是否开启白名单

Operatorcard

是否启用操作员卡锁定

UseFinger

使用指纹验证

ConsKeap

是否使用记帐

FixMoney

定值金额

TimeSegMod

使用分段定值模式

Consmod

消费模式(1定值,2金额,3按键,4记次模式,5商品模式,6时间模式,7记帐模式)

GetIntmod

取整(记时模式下)

HourPrice

时价(记时模式下)

hypos

刷一次卡记几次(记次模式下)

VoiceFunOn

是否开启语音

Favourable

优惠充值

FullValueMod

充值模式0定额1金额

FullFixVaule

定值金额

FullType

充值状态0充值1退款

AllowUseOK

是否使用确定键补贴

MachineType

机器类型0消费机1充值机2补贴机3订餐机

UseBarcode

使用条码

CardWitdh

卡号显示宽度

AddAllow

累加补贴

ZeroAllow

写卡清零

MaxRecordCount

最大记录数7*10000

MaxUserCount

最大用户数3*10000

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 法学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1