SunVote Dll协议接口说明
Ver5.1.1
长沙中天电子设计开发有限公司
二〇二三年十月
文件控制:
文件名:SunVote Dll接口说明
起草人:陈定敏
最新版本作者: 陈定敏
| 文档版本 | 日期 | 作者 | 版本说明 |
|---|---|---|---|
|5.1.1| 2023年10月09日|陈定敏|1. 初始版|
[TOC]
# 系统概述
# 设计目的
# 通讯接口设计概要
# 通信方式
数据交互采取发送<-->应答的方式。应用程序发送数据到WSCmdApp,WSCmdApp收到后执行完成后回复。
应用程序没有数据发送给WSCmdApp时,需要发送心跳,WSCmdApp收到心跳后会回复心跳,用于判断与应用程序的连接状态。(配置文件中,如果启用了心跳检查,应用程序如果未按要求发送心跳,WSCmdApp会断开当前连接,重新尝试连接)
# 编程流程说明
# 回调函数部分
## 基站事件的回调
| **参数名称** | **参数说明** | **范围** | **备注** |
| --- | --- | --- | --- |
|UCHAR iBaseID|基站ID|0~32||
|int mode|回调反馈数据模式|||
|const char* sInfo|回调反馈数据|根据模式解析数据||
回调接口代码:
```C++
typedef void(*HDParamCallBack)(int iBaseID, int mode, const char* sInfo);// 基站事件回调
```
设置回调代码:
```C++
extern"C" __declspec(dllexport) void SetHDParamCallBack(HDParamCallBack cb); //设置基站事件回调
```
## 投票事件回调
| **参数名称** | **参数说明** | **范围** | **备注** |
| --- | --- | --- | --- |
|UCHAR iBaseID|基站ID|0~32||
|int mode|回调反馈数据模式|||
|const char* sInfo|回调反馈数据|根据模式解析数据||
回调接口代码:
```C++
typedef void(*VoteEventCallBack)(int iBaseID, int mode, const char* sInfo);// 投票事件回调
```
设置回调代码:
```C++
extern"C" __declspec(dllexport) void SetVoteEventCallBack(VoteEventCallBack cb); //设置投票事件回调
```
## 键盘事件回调
| **参数名称** | **参数说明** | **范围** | **备注** |
| --- | --- | --- | --- |
|UCHAR iBaseID|基站ID|0~32||
|unsigned long long keySn|键盘SN|||
|float Time|反馈时间|||
|int mode|回调反馈数据模式|||
|int RxMode|预留|||
|const char* sInfo|回调反馈数据|根据模式解析数据||
回调接口代码:
```C++
typedef void(*KeyEventCallBack)(int iBaseID, unsigned long long keySn, float Time, int mode, int RxMode, const char* sInfo);// 键盘事件回调
```
设置回调代码:
```C++
extern"C" __declspec(dllexport) void SetKeyEventCallBack(KeyEventCallBack cb); //设置键盘事件回调回调
```
## 语音事件回调
| **参数名称** | **参数说明** | **范围** | **备注** |
| --- | --- | --- | --- |
|UCHAR iBaseID|基站ID|0~32||
|unsigned long long keySn|键盘SN|||
|float Time|反馈时间|||
|int mode|回调反馈数据模式|||
|USHORT voiceId|语音按键ID|||
|USHORT dataIndex|语音数据包ID|||
|const char* data|回调反馈数据|根据模式解析数据||
|USHORT dataIndex|语音数据包ID|||
|int len|语音数据长度|||
|int sampleRate| |||
|int bitsPerSample| |||
|int channel| |||
|int recFlag| |||
回调接口代码:
```C++
typedef void(*VoiceStreamEventCallBack)(int iBaseID, ULONG keySn, int mode, USHORT voiceId, USHORT dataIndex, const char* data, int len, int sampleRate, int bitsPerSample, int channel, int recFlag);//
```
设置回调代码:
```C++
extern"C" __declspec(dllexport) void SetVoiceStreamEventCallBack(VoiceStreamEventCallBack); //设置语音数据回调函数
```
# 基站参数部分
## 复位基站
函数名称:resetBase
参数说明:
| **参数名称** | **参数说明** | **范围** | **备注** |
| --- | --- | --- | --- |
|UCHAR iBaseID|基站ID|0~32||
接口代码:
```C++
extern"C" __declspec(dllexport) bool resetBase(UCHAR iBaseID);
```
## 获取SDK Ver
函数名称:GetSDKVer
返回参数:字符串
接口代码:
```C++
extern"C" __declspec(dllexport) char* GetSDKVer();
```
## 退出线程释放资源
函数名称:SetThread_Exit
接口代码:
```C++
extern"C" __declspec(dllexport) void SetThread_Exit(void); //退出线程释放资源
```
## 获取基站列表
函数名称:GetHidList_len
接口代码:
```C++
extern"C" __declspec(dllexport) int GetHidList_len();
```
# 投票业务部分
## 设置广播投票是标题
函数名称:Set_Custom_Title
功能:设置广播投票是标题
说明:配合广播启动业务使用
| **参数名称** | **参数说明** | **范围** | **备注** |
| --- | --- | --- | --- |
|UCHAR iBaseID|基站ID|0~32||
|UCHAR Title_Len|标题字符串长度|||
|const char* Title|标题字符串|||
接口代码:
```C++
extern"C" __declspec(dllexport) bool Set_Custom_Title(
UCHAR iBaseID,
UCHAR Title_Len,
const char* Title);
```
## 设置空闲模式功能[广播]
函数名称:EndFreeEvent
功能:设置空闲模式功能[广播]
说明:把SDK管理的所有基站的在线键盘设置为空闲模式
接口代码:
```C++
extern"C" __declspec(dllexport) bool EndFreeEvent(void); //空闲模式功能
```
## 带参数进入空闲模式
函数名称:ExitEvent
功能:退出当前模式功能[广播]
说明:把SDK管理的所有基站的在线键盘设置为空闲模式,并在回调 函数中说明是什么模式切换到空闲模式
| **参数名称** | **参数说明** | **范围** | **备注** |
| --- | --- | --- | --- |
|int mode_ID|用户提供的当前需要的模式||websocket情况下使用|
接口代码:
```C++
extern"C" __declspec(dllexport) bool ExitEvent(int mode_ID); //带参数进入空闲模式功能
```
## 签到功能[广播]
函数名称:Start_Sign_in_Event
功能:签到功能[广播]
说明:把SDK管理的所有基站的在线键盘设置为签到功能模式
| **参数名称** | **参数说明** | **范围** | **备注** |
| --- | --- | --- | --- |
|int Moed1|签到模式| 1:指定键签到
2:PIN码签到(默认值)||
|int Moed2|修改模式|0:不可修改
1:可以修改(默认值)||
|int Moed3|迫选模式|0:(默认值)||
|int Moed4|选项数目|10:(默认值)||
|int Moed5|可选项数|1≤N≤14 (指定位数才需要设置)||
|int KeyValue|指定按键键值|0:未指定[OK键签到]
1:1
2:2
3:3
4:4
5:5
6:6
7:7
8:8
9:9
10:0
11:上键
12:下键
13:OK
14:ESC
15: Menu ||
接口代码:
```C++
extern"C" __declspec(dllexport) bool Start_Sign_in_Event(
int Moed1 = 1,
int Moed2 = 0,
int Moed3 = 0,
int Moed4 = 0,
int Moed5 = 0,
int KeyValue=0); //开始签到功能
```
## 签到功能[指定键盘SN]
函数名称:Start_Sign_in_Event_SN
功能:签到功能[指定键盘SN]
说明:把SDK管理的指定在线键盘设置为签到功能模式
| **参数名称** | **参数说明** | **范围** | **备注** |
| --- | --- | --- | --- |
|UCHAR iBaseID|基站ID|0~32||
|ULONG KeySN|指定键盘SN|||
|int Moed1|签到模式| 1:指定键签到
2:PIN码签到(默认值)||
|int Moed2|修改模式|0:不可修改
1:可以修改(默认值)||
|int Moed3|迫选模式|0:(默认值)||
|int Moed4|选项数目|10:(默认值)||
|int Moed5|可选项数|1≤N≤14 (指定位数才需要设置)||
|int KeyValue|指定按键键值|0:未指定[OK键签到]
1:1
2:2
3:3
4:4
5:5
6:6
7:7
8:8
9:9
10:0
11:上键
12:下键
13:OK
14:ESC
15: Menu ||
|UCHAR Txt_Len|提示标题长度|1~16字节||
|const char* Txt|提示标题|字符串||
接口代码:
```C++
extern"C" __declspec(dllexport) bool Start_Sign_in_Event_SN(
UCHAR iBaseID,
ULONG KeySN,
int Moed1,
int Moed2,
int Moed3,
int Moed4,
int Moed5,
int KeyValue,
UCHAR Txt_Len,
const char* Txt); //开始签到功能
```
## 数字题功能[广播]
函数名称:Start_Number_Event
功能:数字题功能[广播]
说明:把SDK管理的所有基站的在线键盘设置为数字功能模式
| **参数名称** | **参数说明** | **范围** | **备注** |
|---|---|---|---|
|secrecyMode|保密模式|0:不保密(默认值)
1:保密||
|modifyMode|修改模式|0:不可修改
1:可以修改(默认值)|
|aswOption|按键模式|0:无规则 (S6最多16位,T2最多14位)
1:预留
2:预留
3:带小数位上下限(T2不支持)|
|digits|小数位数|0:没有小数点
1:一位小数点
2:二位小数点|
|numMin|下限|aswOption=3
digits=0 范围:0~65535
digits=1 范围:0~6553
digits=2 范围:0~655|
|numMax|上限|aswOption=3
digits=0 范围:0~65535
digits=1 范围:0~6553
digits=2 范围:0~655|
接口代码:
```C++
extern"C" __declspec(dllexport) bool Start_Number_Event(
int Moed1 = 1,
int Moed2 = 0,
int Moed3 = 0,
int digits = 0,
USHORT numMax = 0,
USHORT numMin = 0); //
```
## 数字题功能[指定键盘SN]
函数名称:Start_Number_Event_SN
功能:数字题功能[指定键盘SN]
说明:把SDK管理的指定在线键盘设置为数字题功能模式
| **参数名称** | **参数说明** | **范围** | **备注** |
| --- | --- | --- | --- |
|UCHAR iBaseID|基站ID|0~32||
|ULONG KeySN|指定键盘SN|||
|secrecyMode|保密模式|0:不保密(默认值)
1:保密||
|modifyMode|修改模式|0:不可修改
1:可以修改(默认值)|
|aswOption|按键模式|0:无规则 (S6最多16位,T2最多14位)
1:预留
2:预留
3:带小数位上下限(T2不支持)|
|digits|小数位数|0:没有小数点
1:一位小数点
2:二位小数点|
|numMin|下限|aswOption=3
digits=0 范围:0~65535
digits=1 范围:0~6553
digits=2 范围:0~655|
|numMax|上限|aswOption=3
digits=0 范围:0~65535
digits=1 范围:0~6553
digits=2 范围:0~655|
|UCHAR Txt_Len|提示标题长度|1~16字节||
|Txt|提示标题|字符串,长度最多不超过16个字节|
接口代码:
```C++
extern"C" __declspec(dllexport) bool Start_Number_Event_SN(
UCHAR iBaseID,
ULONG KeySN,
int Moed1,
int Moed2,
int Moed3,
int digits,
USHORT numMax,
USHORT numMin,
UCHAR Txt_Len,
const char* Txt); //
```
## 判断题功能[广播]
函数名称:Start_TrueFalse_Event
功能:判断题功能[广播]
说明:把SDK管理的所有基站的在线键盘设置为判断题功能模式
| **参数名称** | **参数说明** | **范围** | **备注** |
|---|---|---|---|
| optionsMode | 选项类别 | 1:True/False 对/错 2:Yes/No 是/否 3:√/×|
| secrecyMode | 保密模式 | 0:不保密(默认值) 1:保密|
| modifyMode | 修改模式 | 0:不可修改1:可以修改(默认值)|
接口代码:
```C++
extern"C" __declspec(dllexport) bool Start_TrueFalse_Event(
int Moed1 = 1,
int Moed2 = 0,
int Moed3 = 0);
```
## 判断题功能[指定键盘SN]
函数名称:Start_TrueFalse_Event_SN
功能:判断题功能[指定键盘SN]
说明:把SDK管理的指定在线键盘设置为判断题功能模式
| **参数名称** | **参数说明** | **范围** | **备注** |
| --- | --- | --- | --- |
|UCHAR iBaseID|基站ID|0~32||
|ULONG KeySN|指定键盘SN|||
| optionsMode | 选项类别 | 1:True/False 对/错 2:Yes/No 是/否 3:√/×|
| secrecyMode | 保密模式 | 0:不保密(默认值) 1:保密|
| modifyMode | 修改模式 | 0:不可修改1:可以修改(默认值)|
|UCHAR Txt_Len|提示标题长度|1~16字节||
|Txt|提示标题|字符串,长度最多不超过16个字节|
接口代码:
```C++
extern"C" __declspec(dllexport) bool T2_Start_TrueFalse_Event(
UCHAR iBaseID,
ULONG KeySN,
int Moed1,
int Moed2,
int Moed3,
UCHAR Txt_Len,
const char* Txt); //
```
## 选择题功能[广播]
函数名称:Start_TrueFalse_Event
功能:选择题功能[广播]
说明:把SDK管理的所有基站的在线键盘设置为选择题功能模式
| **参数名称** | **参数说明** | **范围** | **备注** |
|---|---|---|---|
|optionsMode|选项类别|1:显示字母(默认值) 2:显示数字 |
|secrecyMode|保密模式|0:不保密(默认值)1:保密 |
|modifyMode|修改模式|0:不可修改 1:可以修改(默认值) |
|lessMode|迫选模式| 0:可缺选(默认值) 1:不可缺选2:允许重复输入3:允许重复输入且不可缺选 |
| options|选项数目|1≤M≤10(默认值4)|
| optionalN|可选项数|1≤N≤M(默认值1)|
接口代码:
```C++
extern"C" __declspec(dllexport) bool Start_Choice_Event(
int Moed1 = 1,
int Moed2 = 0,
int Moed3 = 0,
int Moed4 = 0,
int Moed5 = 0,
int Moed6 = 0);
```
## 选择题功能[指定键盘SN]
函数名称:Start_Choice_Event_SN
功能:选择题功能[指定键盘SN]
说明:把SDK管理的指定在线键盘设置为选择题功能模式
| **参数名称** | **参数说明** | **范围** | **备注** |
| --- | --- | --- | --- |
|UCHAR iBaseID|基站ID|0~32||
|ULONG KeySN|指定键盘SN|||
|optionsMode|选项类别|1:显示字母(默认值) 2:显示数字 |
|secrecyMode|保密模式|0:不保密(默认值)1:保密 |
|modifyMode|修改模式|0:不可修改 1:可以修改(默认值) |
|lessMode|迫选模式| 0:可缺选(默认值) 1:不可缺选2:允许重复输入3:允许重复输入且不可缺选 |
| options|选项数目|1≤M≤10(默认值4)|
| optionalN|可选项数|1≤N≤M(默认值1)|
|UCHAR Txt_Len|提示标题长度|1~16字节||
|Txt|提示标题|字符串,长度最多不超过16个字节|
接口代码:
```C++
extern"C" __declspec(dllexport) bool Start_Choice_Event_SN(
UCHAR iBaseID,
ULONG KeySN,
int Moed1,
int Moed2,
int Moed3,
int Moed4,
int Moed5,
int Moed6,
UCHAR Txt_Len,
const char* Txt);
```
## 语音题功能[广播]
函数名称:Start_Voice_Event
功能:语音题功能[广播]
说明:把SDK管理的所有基站的在线键盘设置为语音题功能模式
| **参数名称** | **参数说明** | **范围** | **备注** |
|---|---|---|---|
|recordingMode|录音模式|0:按键录音(默认值)|
|submitTimes|提交次数|0 (0:不限制, 默认值0)|
|recordingTimeLimit|预留|0|
|recordingFormat|预留|0(默认值0)|
|recordAudioFormat|音频格式|0:mp3(默认值)
1:实时流|
接口代码:
```C++
extern"C" __declspec(dllexport) bool Start_Voice_Event(
int Moed1,
int Time,
int Num,
int Alert,
int OutMode);
```
## 语音题功能[指定键盘SN]
函数名称:Start_Voice_Event_SN
功能:语音题功能[指定键盘SN]
说明:把SDK管理的指定在线键盘设置为语音题功能模式
| **参数名称** | **参数说明** | **范围** | **备注** |
| --- | --- | --- | --- |
|UCHAR iBaseID|基站ID|0~32||
|ULONG KeySN|指定键盘SN|||
|recordingMode|录音模式|0:按键录音(默认值)|
|submitTimes|提交次数|0 (0:不限制, 默认值0)|
|recordingTimeLimit|预留|0|
|recordingFormat|预留|0(默认值0)|
|recordAudioFormat|音频格式|0:mp3(默认值)
1:实时流|
|UCHAR Txt_Len|提示标题长度|1~16字节||
|Txt|提示标题|字符串,长度最多不超过16个字节|
接口代码:
```C++
extern"C" __declspec(dllexport) bool Start_Voice_Event_SN(
UCHAR iBaseID,
ULONG KeySN,
int Moed1,
int Time,
int Num,
int Alert,
int OutMode,
UCHAR Txt_Len,
const char* Txt);//
```
## 自由题功能
函数名称:Start_Free_Question_Event
功能:自由题功能
说明:把SDK管理的所有基站的在线键盘设置为自由题功能模式
| **参数名称** | **参数说明** | **范围** | **备注** |
|---|---|---|---|
|UCHAR iBaseID|基站ID|0~32||
|ULONG KeySN|指定键盘SN|||
接口代码:
```C++
extern"C" __declspec(dllexport) bool Start_Free_Question_Event(
UCHAR iBaseID,
ULONG KeySN);
```
## 抢答题功能
函数名称:Start_Rush_Answer_Event
功能:抢答题功能
说明:把SDK管理的所有基站的在线键盘设置为抢答题功能模式
| **参数名称** | **参数说明** | **范围** | **备注** |
|---|---|---|---|
|rushAnswerMode| 抢答模式|0:普通抢答(默认值)|
|Moed2| 预留|0:(默认值)|
|modifyMode|修改模式|0:不可修改
1:可以修改(默认值)|
接口代码:
```C++
extern"C" __declspec(dllexport) bool Start_Rush_Answer_Event(
int Moed1 = 1,
int Moed2 = 0,
int Moed3 = 0); //抢答
```
## 抢答题功能[指定键盘SN]
函数名称:Start_Rush_Answer_Event_SN
功能:抢答题功能[指定键盘SN]
说明:把SDK管理的指定在线键盘设置为抢答题功能模式
| **参数名称** | **参数说明** | **范围** | **备注** |
| --- | --- | --- | --- |
|UCHAR iBaseID|基站ID|0~32||
|ULONG KeySN|指定键盘SN|||
|rushAnswerMode| 抢答模式|0:普通抢答(默认值)|
|Moed2| 预留|0:(默认值)|
|modifyMode|修改模式|0:不可修改
1:可以修改(默认值)|
|UCHAR Txt_Len|提示标题长度|1~16字节||
|Txt|提示标题|字符串,长度最多不超过16个字节|
接口代码:
```C++
extern"C" __declspec(dllexport) bool Start_Rush_Answer_Event_SN(
UCHAR iBaseID,
ULONG KeySN,
int Moed1 = 1,
int Moed2 = 0,
int Moed3 = 0); //抢答模式
```
## 填空题功能
函数名称:Start_Rush_Answer_Event
功能:填空题功能
说明:把SDK管理的所有基站的在线键盘设置为填空题功能模式
| **参数名称** | **参数说明** | **范围** | **备注** |
|---|---|---|---|
| optionsMode | 填空类型 | 1:任意输入(默认值) |
| modifyMode | 预留 | 1: (默认值) |
| secrecyMode | 预留 | 0: (默认值) |
接口代码:
```C++
extern"C" __declspec(dllexport) bool Start_TextAnswer_Event(
int Moed1 = 1,
int Moed2 = 0,
int Moed3 = 0);
```
## 填空题功能[指定键盘SN]
函数名称:Start_Rush_Answer_Event_SN
功能:填空题功能[指定键盘SN]
说明:把SDK管理的指定在线键盘设置为填空题功能模式
| **参数名称** | **参数说明** | **范围** | **备注** |
| --- | --- | --- | --- |
|UCHAR iBaseID|基站ID|0~32||
|ULONG KeySN|指定键盘SN|||
| optionsMode | 填空类型 | 1:任意输入(默认值) |
| modifyMode | 预留 | 1: (默认值) |
| secrecyMode | 预留 | 0: (默认值) |
接口代码:
```C++
extern"C" __declspec(dllexport) bool Start_TextAnswer_Event_SN(
UCHAR iBaseID,
ULONG KeySN,
int Moed1 = 1,
int Moed2 = 0,
int Moed3 = 0); //抢答模式
```
## 模拟测试功能[广播]
函数名称:MockTest_Event
功能:模拟测试功能[广播]
说明:把SDK管理的所有基站的在线键盘设置为自由题功能模式
| **参数名称** | **参数说明** | **范围** | **备注** |
|---|---|---|---|
|UCHAR iBaseID|基站ID|0~32||
|int Moed1|模式|||
|UCHAR KeyTime|按键开启时间|启动后,多少秒内随机模拟按下按键,0=马上||
|UCHAR GapTime|按键间隔时间|提交成功后,多少秒内再重新提交,模拟修改按键,0=不测试||
接口代码:
```C++
extern"C" __declspec(dllexport) bool MockTest_Event(
UCHAR iBaseID,
int Moed1 = 1,
UCHAR KeyTime = 1,
UCHAR GapTime = 1); //模拟测试[1 报告状态]
```
## 异步测验功能[广播]
函数名称:TestMode_Event
功能:异步测验功能[广播]
说明:把SDK管理的所有基站的在线键盘设置为异步测验功能模式
| **参数名称** | **参数说明** | **范围** | **备注** |
|---|---|---|---|
|UCHAR iBaseID|基站ID|0~32||
|int Moed|模式|||
|USHORT TestNum||||
接口代码:
```C++
extern"C" __declspec(dllexport) bool TestMode_Event(
UCHAR iBaseID,
int Moed,
USHORT TestNum);
```
## 多题型模式
### 启动多题型模式
函数名称:Start_Multiple_Questions_Event
功能:启动多题型模式功能[广播]
说明:把SDK管理的所有基站的在线键盘设置为启动多题型模式功能模式
| **参数名称** | **参数说明** | **范围** | **备注** |
|---|---|---|---|
|UCHAR iBaseID|基站ID|0~32||
|USHORT EXAMNO|测验编号|||
|USHORT TOTAL|题目总数|||
|UCHAR SELMAX|单选多选缺省选项数目|||
|UCHAR QUES_MODE|题号显示类型|||
|const char* str|题号+题型类型字符串|1,1,1,1,1;2,1,1,1,4;||
接口代码:
```C++
extern"C" __declspec(dllexport) bool Start_Multiple_Questions_Event(
UCHAR iBaseID,
USHORT EXAMNO,
USHORT TOTAL,
UCHAR SELMAX,
UCHAR QUES_MODE,
const char* str);
```
### 暂停多题型模式
函数名称:Pause_Multiple_Questions_Event
功能:暂停多题型模式功能[广播]
说明:把SDK管理的所有基站的在线键盘设置为暂停多题型模式功能模式
| **参数名称** | **参数说明** | **范围** | **备注** |
|---|---|---|---|
|UCHAR iBaseID|基站ID|0~32||
接口代码:
```C++
extern"C" __declspec(dllexport) bool Pause_Multiple_Questions_Event(UCHAR iBaseID);
```
### 继续多题型模式
函数名称:Continue_Multiple_Questions_Event
功能:启动多题型模式功能[广播]
说明:把SDK管理的所有基站的在线键盘设置为启动多题型模式功能模式
| **参数名称** | **参数说明** | **范围** | **备注** |
|---|---|---|---|
|UCHAR iBaseID|基站ID|0~32||
|USHORT EXAMNO|测验编号|||
|USHORT TOTAL|题目总数|||
|UCHAR SELMAX|单选多选缺省选项数目|||
|UCHAR QUES_MODE|题号显示类型|||
|const char* str|题号+题型类型字符串|1,1,1,1,1;2,1,1,1,4;||
接口代码:
```C++
extern"C" __declspec(dllexport) bool Continue_Multiple_Questions_Event(
UCHAR iBaseID,
USHORT EXAMNO,
USHORT TOTAL,
UCHAR SELMAX,
UCHAR QUES_MODE,
const char* str);
```
### 正确答案下发
函数名称:Ok_Multiple_Questions_Event
功能:启动多题型模式功能[广播]
说明:把SDK管理的所有基站的在线键盘设置为启动多题型模式功能模式
| **参数名称** | **参数说明** | **范围** | **备注** |
|---|---|---|---|
|UCHAR iBaseID|基站ID|0~32||
|USHORT TOTAL|题目总数|||
|const char* str|答案字符串|||
接口代码:
```C++
extern"C" __declspec(dllexport) bool Ok_Multiple_Questions_Event(
UCHAR iBaseID,
USHORT TOTAL,
char* str);
```
### 键盘数据转移
函数名称:Ok_Multiple_Questions_Event
功能:启动多题型模式功能[广播]
说明:把SDK管理的所有基站的在线键盘设置为启动多题型模式功能模式
| **参数名称** | **参数说明** | **范围** | **备注** |
|---|---|---|---|
|UCHAR iBaseID|基站ID|0~32||
|ULONG KeySN|键盘SN|||
|USHORT EXAMNO|测验编号|||
|USHORT TOTAL|题目总数|||
|const char* str|答案字符串|||
接口代码:
```C++
extern"C" __declspec(dllexport) bool Copy_Multiple_Questions_Event(
UCHAR iBaseID,
ULONG KeySN,
USHORT EXAMNO,
USHORT TOTAL,
char* str);
```
## 自定义题型
### 自定义题型
函数名称:Custom_Questions_Event
功能:启动自定义题型功能[广播]
说明:把SDK管理的所有基站的在线键盘设置为启动自定义题型功能模式
| **参数名称** | **参数说明** | **范围** | **备注** |
|---|---|---|---|
|UCHAR iBaseID|基站ID|0~32||
|const char* sInfo|题目字符串|||
接口代码:
```C++
extern"C" __declspec(dllexport) bool Custom_Questions_Event(
UCHAR iBaseID,
const char* sInfo);
```
# 键盘设置
## 键盘自定义姓名
### 设置键盘自定义姓名
函数名称:SetKeyNameTxt_C100B_S6
功能:设置键盘自定义姓名,C100B+S6键盘自定义姓名
参数说明:
| **参数名称** | **参数说明** | **范围** | **备注** |
| --- | --- | --- | --- |
|UCHAR iBaseID|基站ID|0~32||
|ULONG KeySN|键盘SN| ||
|UCHAR Cont|操作类型|0:不操作
1:清除
2:写入||
|UCHAR Name_Len|姓名字符串长度| ||
|const char* Name|姓名字符串| ||
接口代码:
```C++
extern"C" __declspec(dllexport) bool SetKeyNameTxt(
UCHAR iBaseID,
ULONG KeySN,
UCHAR Cont,
UCHAR Name_Len,
const char *Name);
```
## 键盘自定义姓名[C100B+S6]
### 设置C100B+S6键盘自定义姓名
函数名称:SetKeyNameTxt_C100B_S6
功能:设置键盘自定义姓名,C100B+S6键盘自定义姓名
参数说明:
| **参数名称** | **参数说明** | **范围** | **备注** |
| --- | --- | --- | --- |
|UCHAR iBaseID|基站ID|0~32||
|ULONG KeySN|键盘SN| ||
|UCHAR Name_Len|姓名字符串长度| ||
|const char* Name|姓名字符串| ||
接口代码:
```C++
extern"C" __declspec(dllexport) bool SetKeyNameTxt_C100B_S6(
UCHAR iBaseID,
ULONG KeySN,
UCHAR Name_Len,
const char* Name);
```
### 获取C100B+S6键盘自定义姓名
函数名称:GetKeyNameTxt_C100B_S6
功能:获取键盘自定义姓名,C100B+S6键盘自定义姓名
参数说明:
| **参数名称** | **参数说明** | **范围** | **备注** |
| --- | --- | --- | --- |
|UCHAR iBaseID|基站ID|0~32||
|ULONG KeySN|键盘SN| ||
接口代码:
```C++
extern"C" __declspec(dllexport) bool GetKeyNameTxt_C100B_S6(
UCHAR iBaseID,
ULONG KeySN);
```
### 设置键盘评分[积分]
函数名称:SetKeyScore
功能:设置键盘评分[积分]
参数说明:
| **参数名称** | **参数说明** | **范围** | **备注** |
| --- | --- | --- | --- |
|UCHAR iBaseID|基站ID|0~32||
|ULONG KeySN|键盘SN| ||
|UCHAR Cont|操作类型|0:不操作
1:清除
2:字符串模式
3:五角星模式
4:爱心[S6有效]
5:写测验题分数[S6有效]||
|UCHAR Score_Len|积分字符串长度| ||
|char* Score|积分字符串| ||
接口代码:
```C++
extern"C" __declspec(dllexport) bool SetKeyScore(
UCHAR iBaseID,
ULONG KeySN,
UCHAR Cont,
UCHAR Score_Len,
char* Score);
```
### 键盘自定义标题字符串[第二行]
函数名称:SetKeyTitleTxt2
功能:设置键盘自定义标题字符串[第二行]
参数说明:
| **参数名称** | **参数说明** | **范围** | **备注** |
| --- | --- | --- | --- |
|UCHAR iBaseID|基站ID|0~32||
|ULONG KeySN|键盘SN| ||
|UCHAR Cont|操作类型|0:不操作
1:清除
2:写入||
|UCHAR Mode|操作类型|0:空闲模式[仅T2有效]
1:工作模式||
|UCHAR Txt_Len|字符串长度| ||
|const char* Txt|字符串| ||
接口代码:
```C++
extern"C" __declspec(dllexport) bool SetKeyTitleTxt2(
UCHAR iBaseID,
ULONG KeySN,
UCHAR Cont,
UCHAR Mode,
UCHAR Txt_Len,
const char* Txt);
```
### 键盘自定义标题字符串[第三行]
函数名称:SetKeyTitleTxt3
功能:设置键盘自定义标题字符串[第三行]
参数说明:
| **参数名称** | **参数说明** | **范围** | **备注** |
| --- | --- | --- | --- |
|UCHAR iBaseID|基站ID|0~32||
|ULONG KeySN|键盘SN| ||
|UCHAR Cont|操作类型|0:不操作
1:清除
2:写入||
|UCHAR Txt_Len|字符串长度| ||
|const char* Txt|字符串| ||
接口代码:
```C++
extern"C" __declspec(dllexport) bool SetKeyTitleTxt3(
UCHAR iBaseID,
ULONG KeySN,
UCHAR Cont,
UCHAR Txt_Len,
const char* Txt);
```
### 键盘自定义评分[积分]和标题字符串[第二行]
函数名称:SetKeyScreTxt2
功能:设置键盘自定义评分[积分]和标题字符串[第二行]
参数说明:
| **参数名称** | **参数说明** | **范围** | **备注** |
| --- | --- | --- | --- |
|UCHAR iBaseID|基站ID|0~32||
|ULONG KeySN|键盘SN| ||
|UCHAR Score_Type|操作类型|0:不操作
1:清除
2:字符串模式
3:五角星模式
4:爱心[S6有效]
5:写测验题分数[S6有效]||
|UCHAR Score_Len|字符串长度| ||
|char* Score|字符串| ||
|UCHAR Txt_Cont|操作类型|0:不操作
1:清除
2:写入||
|UCHAR Txt_Len|字符串长度| ||
|const char* Txt|字符串| ||
接口代码:
```C++
extern"C" __declspec(dllexport) bool SetKeyScreTxt2(
UCHAR iBaseID,
ULONG KeySN,
UCHAR Score_Type,
UCHAR Score_Len,
char* Score,
UCHAR Txt_Cont,
UCHAR Txt_Len,
const char* Txt);
```
### 键盘自定义短信
函数名称:SetKeyMessage
功能:设置键盘自定义短信
参数说明:
| **参数名称** | **参数说明** | **范围** | **备注** |
| --- | --- | --- | --- |
|UCHAR iBaseID|基站ID|0~32||
|ULONG KeySN|键盘SN| ||
|const char* Txt|字符串| ||
接口代码:
```C++
extern"C" __declspec(dllexport) bool SetKeyMessage(
UCHAR iBaseID,
ULONG KeySN,
const char* Txt);
```
## 键盘暂停休眠时间
设置键盘暂停休眠时间
函数名称:Key_Pause_Sleep
参数说明:
| **参数名称** | **参数说明** | **范围** | **备注** |
| --- | --- | --- | --- |
|UCHAR iBaseID|基站ID|0~32||
|UCHAR Time|休眠时间| 0:10秒[默认]||
接口代码:
```C++
extern"C" __declspec(dllexport) bool Key_Pause_Sleep(UCHAR iBaseID, UCHAR Time);//
```
## 键盘关机设置
获取键盘关机时间等级
函数名称:GetKeyboardAutoPowerOffLevel
参数说明:
| **参数名称** | **参数说明** | **范围** | **备注** |
| --- | --- | --- | --- |
|UCHAR iBaseID|基站ID|0~32||
接口代码:
```C++
extern"C" __declspec(dllexport) bool GetKeyboardAutoPowerOffLevel(UCHAR iBaseID);
```
设置键盘关机时间等级
函数名称:SetKeyboardAutoPowerOffLevel
参数说明:
| **参数名称** | **参数说明** | **范围** | **备注** |
| --- | --- | --- | --- |
|UCHAR iBaseID|基站ID|0~32||
|UCHAR Level|关机时间等级|0:30秒
1:2分钟
2:15分钟
3:45分钟
255:不自动关机||
接口代码:
```C++
extern"C" __declspec(dllexport) bool SetKeyboardAutoPowerOffLevel(UCHAR iBaseID, UCHAR Level);
```
## 键盘外设操作[仅T2有效]
设置键盘外设操作[仅T2有效]
函数名称:SetKeyPeripheral
参数说明:写键盘外设,由led灯、蜂鸣器、马达组合
| **参数名称** | **参数说明** | **范围** | **备注** |
| --- | --- | --- | --- |
|UCHAR iBaseID|基站ID|0~32||
| keySn | 键盘SN |空字符串,为所有在线键盘|
| ledTimes | Led灯闪烁次数 | 0~255 (0是马上灭,255是长亮)|
| ledOnTime | Led灯每次开时间 |0~255 (单位0.1s)|
| ledOffTime | Led灯每次关时间 |0~255 (单位0.1s,为0就是连续亮)|
| ledColorR | Led灯灯颜色,红值 |0~255(现只支持0灭和1亮,,>1也认为是1)|
| ledColorG | Led灯灯颜色,绿值 |0~255(现只支持0灭和1亮,,>1也认为是1)|
| ledColorB | Led灯灯颜色,蓝值 |0~255(现只支持0灭和1亮,,>1也认为是1)|
| beepTimes | 蜂鸣器响次数 | 0~255 (0是马上响,255是长响) |
| beepOnTime | 蜂鸣器每次开时间 |0~255 (单位0.1s)|
| beepOffTime | 蜂鸣器每次关时间 |0~255 (单位0.1s,为0就是连续响)|
| motorTimes |马达震动次数|0~255|
| motorOnTime | 马达每次开时间 |0~255 (单位0.1s)|
| motorOffTime | 马达每次关时间 |0~255 (单位0.1s,为0就是连续振动)|
接口代码:
```C++
extern"C" __declspec(dllexport) bool SetKeyPeripheral(
UCHAR iBaseID,
ULONG KeySN,
UCHAR LED_CTRL,
UCHAR LED_TIMES,
UCHAR LED_TON,
UCHAR LED_TOFF,
UCHAR R,
UCHAR G,
UCHAR B,
UCHAR BEEP_CTRL,
UCHAR BEEP_TIMES,
UCHAR BEEP_TON,
UCHAR BEEP_TOFF,
UCHAR MOTO_CTRL,
UCHAR MOTO_TIMES,
UCHAR MOTO_TON,
UCHAR MOTO_TOFF);
```
## 键盘遥控关机
遥控关机
函数名称:SetKeyRemoteShutdown
参数说明:键盘遥控关机
| **参数名称** | **参数说明** | **范围** | **备注** |
| --- | --- | --- | --- |
|UCHAR iBaseID|基站ID|0~32||
| keySn | 键盘SN |空字符串,为所有在线键盘|
接口代码:
```C++
extern"C" __declspec(dllexport) bool SetKeyRemoteShutdown(
UCHAR iBaseID,
ULONG KeySN);
```
## 键盘ID遥控关机生产模式
键盘ID遥控关机生产模式
函数名称:SetKeyRemoteShutdown_Pro
参数说明:键盘遥控关机
| **参数名称** | **参数说明** | **范围** | **备注** |
| --- | --- | --- | --- |
|UCHAR iBaseID|基站ID|0~32||
|UCHAR Mode| 模式 |0~255;0:正常关机 255:一直遥控开机|
|USHORT KeyIdMin| 开始编号 |1~9999;指定键盘编号范围时候的开始值|
|USHORT KeyIdMax| 结束编号 |1~9999;指定键盘编号范围时候的结束值|
接口代码:
```C++
extern"C" __declspec(dllexport) bool SetKeyRemoteShutdown_Pro(
UCHAR iBaseID,
UCHAR Mode,
USHORT KeyIdMin,
USHORT KeyIdMax);
```
## 键盘恢复出厂设置
设置键盘恢复出厂设置
函数名称:SetKeyFactory
参数说明:
| **参数名称** | **参数说明** | **范围** | **备注** |
| --- | --- | --- | --- |
|UCHAR iBaseID|基站ID|0~32||
| ULONG KeySN | 键盘SN |空字符串,为所有在线键盘|
接口代码:
```C++
extern"C" __declspec(dllexport) bool SetKeyFactory(
UCHAR iBaseID,
ULONG KeySN);
```
## 显著显示表决器信息
设置显著显示表决器信息
函数名称:SetKey_SignificantlyDisplay
参数说明:
| **参数名称** | **参数说明** | **范围** | **备注** |
| --- | --- | --- | --- |
|UCHAR iBaseID|基站ID|0~32||
| UCHAR Mode | 显示模式 |1 大字体显示表决器编号
2 液晶闪烁显示,利于查找|
接口代码:
```C++
extern"C" __declspec(dllexport) bool SetKey_SignificantlyDisplay(
UCHAR iBaseID,
UCHAR Mode);
```
## 无线修改键盘配对码(解绑)
无线修改键盘配对码(解绑)
函数名称:SetKeyUnbind
参数说明:
| **参数名称** | **参数说明** | **范围** | **备注** |
| --- | --- | --- | --- |
|UCHAR iBaseID|基站ID|0~32||
|ULONG KeySN| 键盘SN |0:为所有在线键盘|
|const char* MatchCode| 配对码 ||
接口代码:
```C++
extern"C" __declspec(dllexport) bool SetKeyUnbind(
UCHAR iBaseID,
ULONG KeySN,
const char* MatchCode);
```
## 设置OEM型号显示名称
设置OEM型号显示名称
函数名称:SetKeyOEMModel
参数说明:
| **参数名称** | **参数说明** | **范围** | **备注** |
| --- | --- | --- | --- |
|UCHAR iBaseID|基站ID|0~32||
|ULONG KeySN| 键盘SN |0:为所有在线键盘|
|UCHAR Model_Len| OEM字符串长度 ||
|const char* Model| OEM字符串 ||
接口代码:
```C++
extern"C" __declspec(dllexport) bool SetKeyOEMModel(
UCHAR iBaseID,
ULONG KeySN,
UCHAR Model_Len,
const char* Model);//设置键盘OEM型号名称
```
## 锁定键盘,解锁键盘
锁定键盘,解锁键盘
函数名称:KeySN_Manage
参数说明:
| **参数名称** | **参数说明** | **范围** | **备注** |
| --- | --- | --- | --- |
|UCHAR iBaseID|基站ID|0~32||
|UCHAR Mode|模式|4:锁定指定键盘
5:锁定当前在线键盘
6:解锁指定键盘
7:解锁所有锁定的键盘|
|UCHAR NUM| 键盘数组有效个数 ||
|ULONG KeySN[250]| 键盘列表数组 ||
接口代码:
```C++
extern"C" __declspec(dllexport) bool KeySN_Manage(
UCHAR iBaseID,
UCHAR Mode,
UCHAR NUM,
ULONG KeySN[250]);
```
## 键盘的出厂日期
设置键盘的出厂日期
函数名称:SetKeyDate
参数说明:
| **参数名称** | **参数说明** | **范围** | **备注** |
| --- | --- | --- | --- |
|UCHAR iBaseID|基站ID|0~32|
|ULONG KeySN| 键盘SN ||
|UCHAR Date[12]| 出厂日期 |2022-01-01|
接口代码:
```C++
extern"C" __declspec(dllexport) bool SetKeyDate(
UCHAR iBaseID,
ULONG KeySN,
UCHAR Date[12]);//设置键盘的出厂日期2022-01-01
```
## 键盘的ID[S6使用]
设置键盘的ID[S6使用]
函数名称:SetKeyID
参数说明:
| **参数名称** | **参数说明** | **范围** | **备注** |
| --- | --- | --- | --- |
|UCHAR iBaseID|基站ID|0~32|
|ULONG KeySN| 键盘SN ||
|USHORT ID| 键盘的ID ||
接口代码:
```C++
extern"C" __declspec(dllexport) bool SetKeyID(
UCHAR iBaseID,
ULONG KeySN,
USHORT ID);//设置键盘的ID
```
# 基站参数设置
## 基站的设备ID
设置基站的设备ID
函数名称:SetDevBaseId
参数说明:
| **参数名称** | **参数说明** | **范围** | **备注** |
| --- | --- | --- | --- |
|int pathAdd|USB设备地址|可以通过GetDevBaseId()获取到||
|UCHAR iBaseID|基站ID|1~32|
接口代码:
```C++
extern"C" __declspec(dllexport) bool SetDevBaseId(
int pathAdd,
UCHAR iBaseID); //设置基站的设备ID
```
获取基站的设备ID
函数名称:GetDevBaseId
参数说明:
| **参数名称** | **参数说明** | **范围** | **备注** |
| --- | --- | --- | --- |
|UCHAR iBaseID|基站ID|0~32|
接口代码:
```C++
extern"C" __declspec(dllexport) bool GetDevBaseId(UCHAR iBaseID); //获取基站的设备ID
```
## 基站黑名单
设置基站到基站黑名单
函数名称:SetDevBaseBlacklist
参数说明:
| **参数名称** | **参数说明** | **范围** | **备注** |
| --- | --- | --- | --- |
|int pathAdd|USB设备地址|可以通过GetDevBaseId()获取到||
接口代码:
```C++
extern"C" __declspec(dllexport) bool SetDevBaseBlacklist(int pathAdd); //设置基站到基站黑名单
```
获取基站黑名单列表
函数名称:GetDevBaseBlacklist
参数说明:
接口代码:
```C++
extern"C" __declspec(dllexport) bool GetDevBaseBlacklist(); //获取基站黑名单列表
```
## 基站的设备RF功率
设置基站的设备RF功率
函数名称:SetDevRFPWR
参数说明:
| **参数名称** | **参数说明** | **范围** | **备注** |
| --- | --- | --- | --- |
|UCHAR iBaseID|基站ID|0~32|
|UCHAR RFPWR|设备RF功率|1:低功率
2:中功率
3:高功率|
接口代码:
```C++
extern"C" __declspec(dllexport) bool SetDevRFPWR(
UCHAR iBaseID,
UCHAR RFPWR); //设置基站的设备RF功率
```
获取基站的设备RF功率
函数名称:GetDevRFPWR
参数说明:
| **参数名称** | **参数说明** | **范围** | **备注** |
| --- | --- | --- | --- |
|UCHAR iBaseID|基站ID|0~32|
接口代码:
```C++
extern"C" __declspec(dllexport) bool GetDevRFPWR(UCHAR iBaseID); //获取基站的设备RF功率
```
## 基站信道
设置基站的设备信道
函数名称:SetDevCHAN
参数说明:
| **参数名称** | **参数说明** | **范围** | **备注** |
| --- | --- | --- | --- |
|UCHAR iBaseID|基站ID|0~32|
|UCHAR chans|信道数量|1~4|
|UCHAR * chan信道数组||
接口代码:
```C++
extern"C" __declspec(dllexport) bool SetDevCHAN(
UCHAR iBaseID,
UCHAR chans,
UCHAR * chan); //设置基站的设备信道
```
获取基站的设备信道
函数名称:GetDevCHAN
参数说明:
| **参数名称** | **参数说明** | **范围** | **备注** |
| --- | --- | --- | --- |
|UCHAR iBaseID|基站ID|0~32|
接口代码:
```C++
extern"C" __declspec(dllexport) bool GetDevCHAN(UCHAR iBaseID);
```
## 基站配对码
设置基站配对码
函数名称:SetDevSYSCODE
参数说明:
| **参数名称** | **参数说明** | **范围** | **备注** |
| --- | --- | --- | --- |
|UCHAR iBaseID|基站ID|0~32|
|UCHAR code[4]|配对码||
接口代码:
```C++
extern"C" __declspec(dllexport) bool SetDevSYSCODE(
UCHAR iBaseID,
UCHAR code[4]); //设置基站配对码
```
获取基站配对码
函数名称:GetDevSYSCODE
参数说明:
| **参数名称** | **参数说明** | **范围** | **备注** |
| --- | --- | --- | --- |
|UCHAR iBaseID|基站ID|0~32|
接口代码:
```C++
extern"C" __declspec(dllexport) bool GetDevSYSCODE(UCHAR iBaseID); //获取基站配对码
```
## 基站配对模式
设置基站配对模式
函数名称:SetDevPairMode
参数说明:
| **参数名称** | **参数说明** | **范围** | **备注** |
| --- | --- | --- | --- |
|UCHAR iBaseID|基站ID|0~32|
|UCHAR mode|配对模式|1:固定模式
2:自由模式
3:免配对模式
4:配对SN号模式
5:自由SN号模式
6:免配对SN号模式
7:免配对同频点SN模式
8:白名单模式
9:免配对白名单模式|
接口代码:
```C++
extern"C" __declspec(dllexport) bool SetDevPairMode(
UCHAR iBaseID,
UCHAR mode); //设置基站配对模式
```
获取基站配对模式
函数名称:GetDevPairMode
参数说明:
| **参数名称** | **参数说明** | **范围** | **备注** |
| --- | --- | --- | --- |
|UCHAR iBaseID|基站ID|0~32|
接口代码:
```C++
extern"C" __declspec(dllexport) bool GetDevPairMode(UCHAR iBaseID); //获取基站配对模式
```
## 基站名称
设置基站名称
函数名称:SetDevNmae
参数说明:
| **参数名称** | **参数说明** | **范围** | **备注** |
| --- | --- | --- | --- |
|UCHAR iBaseID|基站ID|0~32|
|UCHAR Len| 基站名称字符串长度 ||
|const char *Name| 基站名称字符串 ||
接口代码:
```C++
extern"C" __declspec(dllexport) bool SetDevNmae(
UCHAR iBaseID,
UCHAR Len,
const char *Name); //设置基站名称
```
获取基站名称
函数名称:GetDevNmae
参数说明:
| **参数名称** | **参数说明** | **范围** | **备注** |
| --- | --- | --- | --- |
|UCHAR iBaseID|基站ID|0~32|
接口代码:
```C++
extern"C" __declspec(dllexport) bool GetDevNmae(UCHAR iBaseID); //获取基站名称
```
## 基站键盘容量
设置基站键盘容量
函数名称:SetDevKPNUMS
参数说明:
| **参数名称** | **参数说明** | **范围** | **备注** |
| --- | --- | --- | --- |
|UCHAR iBaseID|基站ID|0~32|
|USHORT kPnums| 键盘数量 |B200_5.8G+T2 :1~70|
|UCHAR Lock| 预留 |0:默认|
接口代码:
```C++
extern"C" __declspec(dllexport) bool SetDevKPNUMS(
UCHAR iBaseID,
USHORT kPnums,
UCHAR Lock=0); //设置基站键盘容量
```
获取基站键盘容量
函数名称:GetDevKPNUMS
参数说明:
| **参数名称** | **参数说明** | **范围** | **备注** |
| --- | --- | --- | --- |
|UCHAR iBaseID|基站ID|0~32|
接口代码:
```C++
extern"C" __declspec(dllexport) bool GetDevKPNUMS(UCHAR iBaseID); //获取基站键盘容量
```
## 键盘关机时间等级
设置键盘关机时间等级
函数名称:SetKeyboardAutoPowerOffLevel
参数说明:
| **参数名称** | **参数说明** | **范围** | **备注** |
| --- | --- | --- | --- |
|UCHAR iBaseID|基站ID|0~32|
|UCHAR Level| 等级 |0:30秒
1:2分钟
2:15分钟
3:45分钟
255:不自动关机|
接口代码:
```C++
extern"C" __declspec(dllexport) bool SetKeyboardAutoPowerOffLevel(
UCHAR iBaseID,
UCHAR Level);
```
获取键盘关机时间等级
函数名称:GetKeyboardAutoPowerOffLevel
参数说明:
| **参数名称** | **参数说明** | **范围** | **备注** |
| --- | --- | --- | --- |
|UCHAR iBaseID|基站ID|0~32|
接口代码:
```C++
extern"C" __declspec(dllexport) bool GetKeyboardAutoPowerOffLevel(UCHAR iBaseID);
```
## 键盘登录菜单显示允许[S6适用]
设置键盘登录菜单显示允许[S6适用]
函数名称:SetKeyboardLoginMenu
参数说明:
| **参数名称** | **参数说明** | **范围** | **备注** |
| --- | --- | --- | --- |
|UCHAR iBaseID|基站ID|0~32|
|UCHAR OnOff| 登录模式 |0:不允许登录
1:允许登录|
接口代码:
```C++
extern"C" __declspec(dllexport) bool SetKeyboardLoginMenu(
UCHAR iBaseID,
UCHAR OnOff);
```
获取键盘登录菜单显示允许[S6适用]
函数名称:GetKeyboardLoginMenu
参数说明:
| **参数名称** | **参数说明** | **范围** | **备注** |
| --- | --- | --- | --- |
|UCHAR iBaseID|基站ID|0~32|
接口代码:
```C++
extern"C" __declspec(dllexport) bool GetKeyboardLoginMenu(UCHAR iBaseID);
```
## 键盘和基站之间开启或关闭心跳
设置键盘和基站之间开启或关闭心跳
函数名称:SetKeyboardHeartbeat
参数说明:
| **参数名称** | **参数说明** | **范围** | **备注** |
| --- | --- | --- | --- |
|UCHAR iBaseID|基站ID|0~32|
|UCHAR OnOff| 登录模式 |0:关闭
1:开启|
接口代码:
```C++
extern"C" __declspec(dllexport) bool SetKeyboardHeartbeat(
UCHAR iBaseID,
UCHAR OnOff);
```
获取键盘和基站之间开启或关闭心跳
函数名称:GetKeyboardHeartbeat
参数说明:
| **参数名称** | **参数说明** | **范围** | **备注** |
| --- | --- | --- | --- |
|UCHAR iBaseID|基站ID|0~32|
接口代码:
```C++
extern"C" __declspec(dllexport) bool GetKeyboardHeartbeat(UCHAR iBaseID);
```
## 键盘登录密码[S6适用]
设置键盘登录密码[S6适用]
函数名称:SetKeyboardLoginPW
参数说明:
| **参数名称** | **参数说明** | **范围** | **备注** |
| --- | --- | --- | --- |
|UCHAR iBaseID|基站ID|0~32|
|USHORT PW| 登录密码 |范围0~9999,0:不用核对密码|
接口代码:
```C++
extern"C" __declspec(dllexport) bool SetKeyboardLoginPW(
UCHAR iBaseID,
USHORT PW);
```
获取键盘登录密码[S6适用]
函数名称:GetKeyboardLoginPW
参数说明:
| **参数名称** | **参数说明** | **范围** | **备注** |
| --- | --- | --- | --- |
|UCHAR iBaseID|基站ID|0~32|
接口代码:
```C++
extern"C" __declspec(dllexport) bool GetKeyboardLoginPW(UCHAR iBaseID);
```
## 基站手动登录开关
设置基站手动登录开关
函数名称:SetDevBaseManualLogin
参数说明:
| **参数名称** | **参数说明** | **范围** | **备注** |
| --- | --- | --- | --- |
|UCHAR iBaseID|基站ID|0~32|
|UCHAR OnOff| 登录模式 |0:不允许键盘查看基站信道或名称
1:允许键盘查看基站信道或名称|
接口代码:
```C++
extern"C" __declspec(dllexport) bool SetDevBaseManualLogin(
UCHAR iBaseID,
UCHAR OnOff);
```
获取基站手动登录开关
函数名称:GetDevBaseManualLogin
参数说明:
| **参数名称** | **参数说明** | **范围** | **备注** |
| --- | --- | --- | --- |
|UCHAR iBaseID|基站ID|0~32|
接口代码:
```C++
extern"C" __declspec(dllexport) bool GetDevBaseManualLogin(UCHAR iBaseID);
```
## 基站配套的语言
设置基站配套的语言
函数名称:SetDevLanguage
参数说明:
| **参数名称** | **参数说明** | **范围** | **备注** |
| --- | --- | --- | --- |
|UCHAR iBaseID|基站ID|0~32|
|UCHAR Language| 语言 |0:默认
1:中文
2:英文|
接口代码:
```C++
extern"C" __declspec(dllexport) bool SetDevLanguage(
UCHAR iBaseID,
UCHAR Language);
```
获取基站配套的语言
函数名称:GetDevLanguage
参数说明:
| **参数名称** | **参数说明** | **范围** | **备注** |
| --- | --- | --- | --- |
|UCHAR iBaseID|基站ID|0~32|
接口代码:
```C++
extern"C" __declspec(dllexport) bool GetDevLanguage(UCHAR iBaseID);
```
## 基站和键盘之间开启CRC
设置基站和键盘之间开启CRC
函数名称:SetDevCRC
参数说明:
| **参数名称** | **参数说明** | **范围** | **备注** |
| --- | --- | --- | --- |
|UCHAR iBaseID|基站ID|0~32|
|UCHAR CRC| 语言 |0:不启用
1:启用|
接口代码:
```C++
extern"C" __declspec(dllexport) bool SetDevCRC(
UCHAR iBaseID,
UCHAR CRC);
```
获取基站和键盘之间开启CRC
函数名称:GetDevCRC
参数说明:
| **参数名称** | **参数说明** | **范围** | **备注** |
| --- | --- | --- | --- |
|UCHAR iBaseID|基站ID|0~32|
接口代码:
```C++
extern"C" __declspec(dllexport) bool GetDevCRC(UCHAR iBaseID);
```
## 基站软件狗功能
设置基站软件狗密码[内部使用]
函数名称:SetDevCRC
参数说明:
| **参数名称** | **参数说明** | **范围** | **备注** |
| --- | --- | --- | --- |
|UCHAR iBaseID|基站ID|0~32|
|UCHAR Len| 密码长度 ||
|char* buf| 密码字符串 ||
接口代码:
```C++
extern"C" __declspec(dllexport) bool SetDevVotePW(
UCHAR iBaseID,
UCHAR Len,
char* buf);
```
获取基站软件狗密码[内部使用]
函数名称:GetDevVotePW
参数说明:
| **参数名称** | **参数说明** | **范围** | **备注** |
| --- | --- | --- | --- |
|UCHAR iBaseID|基站ID|0~32|
接口代码:
```C++
extern"C" __declspec(dllexport) bool GetDevVotePW(UCHAR iBaseID);
```
校验基站软件狗密码
函数名称:CheckDevVotePW
参数说明:
| **参数名称** | **参数说明** | **范围** | **备注** |
| --- | --- | --- | --- |
|UCHAR iBaseID|基站ID|0~32|
|UCHAR Len| 密码长度 ||
|char* buf| 密码字符串 ||
接口代码:
```C++
extern"C" __declspec(dllexport) bool CheckDevVotePW(UCHAR iBaseID, UCHAR Len, char* buf);
```
## 基站用户自定字符串
设置基站用户自定字符串
函数名称:SetDevUserTxt
参数说明:
| **参数名称** | **参数说明** | **范围** | **备注** |
| --- | --- | --- | --- |
|UCHAR iBaseID|基站ID|0~32|
|UCHAR id| 字符串下标 |1~2|
|UCHAR Len| 密码长度 ||
|char* buf| 密码字符串 ||
接口代码:
```C++
extern"C" __declspec(dllexport) bool SetDevUserTxt(
UCHAR iBaseID,
UCHAR id,
UCHAR Len,
char* buf);
```
获取基站用户自定字符串
函数名称:GetDevVotePW
参数说明:
| **参数名称** | **参数说明** | **范围** | **备注** |
| --- | --- | --- | --- |
|UCHAR iBaseID|基站ID|0~32|
|UCHAR id| 字符串下标 |1~2|
接口代码:
```C++
extern"C" __declspec(dllexport) bool GetDevUserTxt(UCHAR iBaseID, UCHAR id);
```
## 基站唯一硬件编号UID
获取基站唯一硬件编号UID
函数名称:GetDevUID
参数说明:
| **参数名称** | **参数说明** | **范围** | **备注** |
| --- | --- | --- | --- |
|UCHAR iBaseID|基站ID|0~32|
接口代码:
```C++
extern"C" __declspec(dllexport) bool GetDevUID(UCHAR iBaseID);
```
## 基站反馈参数设置
设置空闲模式-反馈参数设置
函数名称:SetFeedbackMode
参数说明:
| **参数名称** | **参数说明** | **范围** | **备注** |
| --- | --- | --- | --- |
|UCHAR iBaseID|基站ID|0~32|
|UCHAR Mode| 反馈模式 ||
|UCHAR KeyValue| 反馈键值 ||
接口代码:
```C++
extern"C" __declspec(dllexport) bool SetFeedbackMode(
UCHAR iBaseID,
UCHAR Mode,
UCHAR KeyValue);
```
获取空闲模式-反馈参数设置
函数名称:GetFeedbackMode
参数说明:
| **参数名称** | **参数说明** | **范围** | **备注** |
| --- | --- | --- | --- |
|UCHAR iBaseID|基站ID|0~32|
|UCHAR id| 字符串下标 |1~2|
接口代码:
```C++
extern"C" __declspec(dllexport) bool GetFeedbackMode(UCHAR iBaseID);
```
## 基站SN
设置基站SN
函数名称:SetDevBaseSn
参数说明:
| **参数名称** | **参数说明** | **范围** | **备注** |
| --- | --- | --- | --- |
|UCHAR iBaseID|基站ID|0~32|
|UCHAR SN[5]| 基站SN ||
接口代码:
```C++
extern"C" __declspec(dllexport) bool SetDevBaseSn(
UCHAR iBaseID,
UCHAR SN[5]);
```
获取基站SN
函数名称:GetDevBaseSn
参数说明:
| **参数名称** | **参数说明** | **范围** | **备注** |
| --- | --- | --- | --- |
|UCHAR iBaseID|基站ID|0~32|
接口代码:
```C++
extern"C" __declspec(dllexport) bool GetDevBaseSn(UCHAR iBaseID);
```
## 基站软件版本
获取基站软件版本
函数名称:GetDevBaseVer
参数说明:
| **参数名称** | **参数说明** | **范围** | **备注** |
| --- | --- | --- | --- |
|UCHAR iBaseID|基站ID|0~32|
接口代码:
```C++
extern"C" __declspec(dllexport) bool GetDevBaseVer(UCHAR iBaseID);
```
## 基站型号
获取基站型号
函数名称:GetDevBaseModel
参数说明:
| **参数名称** | **参数说明** | **范围** | **备注** |
| --- | --- | --- | --- |
|UCHAR iBaseID|基站ID|0~32|
接口代码:
```C++
extern"C" __declspec(dllexport) bool GetDevBaseModel(UCHAR iBaseID);
```
extern"C" __declspec(dllexport) bool SetKeyDate(
UCHAR iBaseID,
ULONG KeySN,
UCHAR Date[12]);//设置键盘的出厂日期2022-01-01
```
## 异常处理
### WSCmdApp收到数据异常
WSCmdApp收到异常数据,会不做处理,并返回以下错误信息描述。
接收:
fun: "error" //功能错误
baseId: //无该值
infos:{ "funId":"F0001","code":"10002"}//
指令样例:
```json
{
"fun": "error",
"infos": {
"funId": "F0001",
"code": "10002"
},
"packetTag": "1"
}
```
| **code** | **含义** |
| --- | --- |
|10001|不能正确解析的JSON数据|
|10002|解析JSON错误|
|20001|基站未连接|
|20002|功能不支持|
|20003|基站ID为负数,应用可以不传ID,默认为0|
|20004|参数错误|
|30001|找不到对应的SN|
|40001|升级功能只能支持一个基站在线|
|50001|此功能必须指定基站ID|
|60001|此功能必须指定键盘SN|
| **funId** | **含义** |
| --- | --- |
|F0001|基站未连接|
|F0002|读基站信道|
|F0003|写基站信道|
|F0004|读取基站baseId 、信道、RF功率等级|
|F0005|写基站baseId|
|F0006|读基站名称|
|F0007|写基站名称|
|F0008|读键盘关机时间等级|
|F0009|写键盘关机时间等级|
|F0010|读基站配对码|
|F0011|写基站配对码|
|F0012|读基站序列号|
|F0013|写基站序列号|
|F0014|读取基站的型号、硬件版本、软件版本、设备SN号|
|F0015|写基站硬件版本|
|F0016|读基站类型|
|F0017|写基站类型|
|F0018|读基站键盘容量和Lock|
|F0019|写基站键盘容量和Lock|
|F0020|读手动获取返回在线信息|
|F0021|写手动获取返回在线信息|
|F0022|读基站设备RF功率|
|F0023|写基站设备RF功率|
|F0024|基站设备配对模式或基站名称(自定义)|
|F0025|预留|
|F0026|读基站快速配对低功率模式|
|F0027|写基站快速配对低功率模式|
|F0028|读键盘登录菜单显示允许[S6适用]|
|F0029|写键盘登录菜单显示允许[S6适用]|
|F0030|读键盘登录密码[S6适用]|
|F0031|写键盘登录密码[S6适用]|
|F0032|读基站名称隐藏开关|
|F0033|写基站名称隐藏开关|
|F0034|读基站和键盘之间的心跳开关|
|F0035|写基站和键盘之间的心跳开关|
|F0036|读基站语言|
|F0037|写基站语言|
|F0038|读基站CRC|
|F0039|写基站CRC|
|F0040|写广播投票标题|
|F0041|核对投票开启密码|
|F0042|读基站获取投票开启密码|
|F0043|写基站获取投票开启密码|
|F0044|读基站用户自定义字符串|
|F0045|写基站用户自定义字符串|
|F0046|读基站UID|
|F0047|写基站UID|
|F0048|读键盘反馈模式参数|
|F0049|写键盘反馈模式参数|
|F0050|读基站当前是开启升级状态|
|F0051|写基站当前是开启升级状态|
|F0052|手动停止键盘升级状态|
|F0053|写键盘当前是开启升级状态|
|F0054|写踢出单只键盘|
|F0055|写清掉所有键盘|
|F0056|写锁定键盘|
|F0057|写解锁键盘|
|F0058|写T2键盘第二行文本【空闲模式】|
|F0059|读考勤基站时钟设置|
|F0060|写考勤基站时钟设置|
|F0061|读考勤键盘每秒发送考勤信号次数|
|F0062|写考勤键盘每秒发送考勤信号次数|
|F0063|读考勤键盘发送考勤信号功率|
|F0064|写考勤键盘发送考勤信号功率|
|F0065|写修改键盘配对码|
|F0066|写键盘功能提示预设字符串反馈|
|F0067|写空闲模式|
|F0068|单选多选带计时模式|
|F0069|判断题带计时模式|
|F0070|抢答题带计时模式|
|F0071|数字题带计时模式|
|F0072|绑定带计时模式|
|F0073|基站快速配对|
|F0074|读基站特征数据|
|F0075|遥控关机|
|F0076|读键盘在线SN|
|F0077|写基站复位|
|F0078|写键盘外设指令|
|F0079|写键盘配对码|
|F0080|写锁定键盘,解锁键盘|
|F0081|填空题模式|
|F0082|读NFC信息 姓名|
|F0083|写NFC信息 姓名|
|F0084|写NFC配对码|
|F0085|NFC清除指令|
|F0086|多题题型开始|
|F0087|多题题型暂停|
|F0088|多题题型继续上一次|
|F0089|多题题型正确答案下发|
|F0090|多题题型已答题结果转移|
|F0091|写白名单|
|F0092|读白名单|
|F0093|写基站黑名单|
|F0094|读基站黑名单|
|F0095|C100B+S6[旧款]写键盘姓名|
|F0096|C100B+S6[旧款]读键盘姓名|
|F0097|键盘暂停休眠操作|
|F0098|异步测试模式|
|F0099|Tcp参数读|
|F0100|Tcp参数写|
|F0101|自定义题型参数|
|F0102|写S6短信|
|F0103|写S6键盘FSN|
|F0104|自由题模式|
|F0105|基站AES|
|F0106|基站AES 克隆|
|F0107|基础参数配置|
|F0108|删除指定白名单SN|
|F0109|追加指定SN 到白名单|
|F0110|语音题模式|
|F0111|多题快答模式|
|F0112|快速配对模式|
|F0113|键盘测试模式|
|F0114|写入积分和第二行文本|
|F0115|写入键盘姓名|
|F0116|键盘关机时间等级|