2024-06-18 14:27:48 +08:00
|
|
|
|
|
|
|
|
|
```shell
|
|
|
|
|
amixer sset 'Master' 50% # 设置音量
|
|
|
|
|
mount -o remount rw /system/ # 读写挂载
|
|
|
|
|
keydata get mac # 操作mac
|
|
|
|
|
keydata set mac 6C:5C:3D:B2:27:78
|
|
|
|
|
keydata set hardware HW00000011C3000R -f
|
|
|
|
|
MAC存储位置:/data/.mac
|
|
|
|
|
|
|
|
|
|
ps -ef | egrep start-app.sh | grep -v grep | awk '{print $2}' | xargs kill -9 2 > /dev/null
|
|
|
|
|
|
|
|
|
|
ps -ef | egrep dk_uart_id_reader | grep -v grep | awk '{print $2}' | xargs kill -9 2 > /dev/null
|
|
|
|
|
|
|
|
|
|
killall start-app.sh && killall GateFace
|
|
|
|
|
killall dk_uart_id_reader
|
|
|
|
|
tail -f /sdcard/logs/b020.log
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mount -o remount rw /system/ && mv /system/bin/start-app.sh /system/bin/start-app.sh.bak
|
|
|
|
|
mount -o remount rw /system/ && mv /system/bin/start-app.sh.bak /system/bin/start-app.sh
|
|
|
|
|
echo 1 > /dev/watchdog
|
|
|
|
|
|
|
|
|
|
dk_uart_id_reader
|
|
|
|
|
|
|
|
|
|
keydata set hardware HW00000011C3000U -f
|
|
|
|
|
keydata get hardware
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/etc/init.d/S97_lunch_init
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
`script/start-app.sh`有个`write_mac()`函数生成`/data/.mac`文件。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## 隐藏页面参数设置
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
http://192.168.8.120/otherPage.php?cmd=get_other_page_params
|
|
|
|
|
|
|
|
|
|
http://192.168.8.120/otherPage.php?cmd=set_other_page_params&distanceType=1&distance=1&dynamicFeatSimTh=70&dynamicFeatImgQualityTh=90&fast_temp_sw=true&save_reg_img_sw=true&audio_out_enabled=true
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
{
|
|
|
|
|
"cmd": "set_other_page_params",
|
|
|
|
|
"distanceType": 1,
|
|
|
|
|
"save_reg_img_sw": true,
|
|
|
|
|
"fast_temp_sw": true,
|
|
|
|
|
"dynamicFeatSimTh": 70,
|
|
|
|
|
"dynamicFeatImgQualityTh": 90,
|
|
|
|
|
"audio_out_enabled": true
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
"ret": 0,
|
|
|
|
|
"code": 200,
|
|
|
|
|
"message": "OK",
|
|
|
|
|
"data": {
|
|
|
|
|
"distanceType": 1,
|
|
|
|
|
"distance": 100,
|
|
|
|
|
"dynamicFeatSimTh": 70,
|
|
|
|
|
"dynamicFeatImgQualityTh": 90,
|
|
|
|
|
"fast_temp_sw": true,
|
|
|
|
|
"save_reg_img_sw": true,
|
|
|
|
|
"audio_out_enabled": true
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## FacePass平台交互
|
|
|
|
|
|
|
|
|
|
### 连接不成功,UI上图标不对
|
|
|
|
|
|
|
|
|
|
```c++
|
|
|
|
|
void statusbarUi::updatePlatformConnectionStatus(const int status)
|
|
|
|
|
{
|
|
|
|
|
QPixmap pm;
|
|
|
|
|
switch(status)
|
|
|
|
|
{
|
|
|
|
|
case UiInterfaceForBackstage::PLATFORM_CONNECTION_STATUS_DISCONNECTED:
|
|
|
|
|
pm.load(":/res/image/disconnect.png");
|
|
|
|
|
break;
|
|
|
|
|
case UiInterfaceForBackstage::PLATFORM_CONNECTION_STATUS_CONNECTED:
|
|
|
|
|
pm.load(":/res/image/display.png");
|
|
|
|
|
break;
|
|
|
|
|
case UiInterfaceForBackstage::PLATFORM_CONNECTION_STATUS_LOGGED:
|
|
|
|
|
pm.load(":/res/image/display.png");
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
m_label_platform->setPixmap(pm.scaled(20, 20, Qt::KeepAspectRatio));
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## 测试/开发帐号
|
|
|
|
|
|
|
|
|
|
设备业务服务器地址统一都为9002。
|
|
|
|
|
|
|
|
|
|
- FacePass开发地址:http://172.16.7.16/
|
|
|
|
|
|
|
|
|
|
- 账号:luocai
|
|
|
|
|
|
|
|
|
|
- 密码:.Luo19961030
|
|
|
|
|
|
|
|
|
|
- 管理员账号:admin
|
|
|
|
|
|
|
|
|
|
- 管理员密码:Reconova_123456
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- 可视对讲(阳江博物馆项目):https://172.16.100.22/
|
|
|
|
|
- 账号:admin
|
|
|
|
|
- 密码:Reconova_123456
|
2024-07-09 10:41:51 +08:00
|
|
|
|
- FacePass测试地址:http://172.16.7.36/
|
2024-06-18 14:27:48 +08:00
|
|
|
|
|
|
|
|
|
## 人脸识别函数调用
|
|
|
|
|
|
|
|
|
|
相关模块初始化:
|
|
|
|
|
|
|
|
|
|
```c++
|
|
|
|
|
GoThread::taskProc(); // 初始化摄像头
|
|
|
|
|
FaceGate::preLoad(); // 等待摄像头初始化完成
|
|
|
|
|
FaceGate::taskProc(); // 初始化算法
|
|
|
|
|
|
|
|
|
|
AntiSpoof4Rv1109::init();
|
|
|
|
|
AttrDetector4Rv1109::init()
|
|
|
|
|
DetectorImpl4Rv1109::init()
|
|
|
|
|
LandmarkDetectorRk::init()
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```mermaid
|
|
|
|
|
classDiagram
|
|
|
|
|
RwRecoResult
|
|
|
|
|
GRecoID --|> GObject
|
|
|
|
|
GRecoID --* RecoIDInfo
|
|
|
|
|
|
|
|
|
|
detector
|
|
|
|
|
attr_detector
|
|
|
|
|
landmark_detector
|
|
|
|
|
anti_spoof
|
|
|
|
|
GTrackerMng *-- AntiSpoof
|
|
|
|
|
GTrackerMng *-- LandmarkDetector
|
|
|
|
|
GDetectorHeadAttr *-- AttrDetector
|
|
|
|
|
AntiSpoof4Rv1109 ..|> AntiSpoof
|
|
|
|
|
LandmarkDetectorRk ..|> LandmarkDetector
|
|
|
|
|
AttrDetector4Rv1109 ..|> AttrDetector
|
|
|
|
|
GObject <|-- GTrackerLock
|
|
|
|
|
GDetectorTracker *-- Detector
|
|
|
|
|
RecoAlgorithm *-- Detector
|
|
|
|
|
RecoAlgorithm *-- LandmarkDetector
|
|
|
|
|
|
|
|
|
|
ParamManage --* GoThread
|
|
|
|
|
UdpServer --* GoThread
|
|
|
|
|
GCamera --* GoThread
|
|
|
|
|
GDetectorTracker --* GoThread
|
|
|
|
|
GTrackerMng --* GoThread
|
|
|
|
|
GTrackerLock --* GoThread
|
|
|
|
|
GDetectorHeadAttr --* GoThread
|
|
|
|
|
GReco1vsN --* GoThread
|
|
|
|
|
GReco1vs1 --* GoThread
|
|
|
|
|
GRecoID --* GoThread
|
|
|
|
|
GPeInput --* GoThread
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
逻辑实现都在`src/workflow/output/decision_actuator/decision_actuator.h`
|
|
|
|
|
|
|
|
|
|
```mermaid
|
|
|
|
|
flowchart TB
|
|
|
|
|
A["ADMsg::showDisplayMsg()"]
|
|
|
|
|
B["View::showRecoSuccess()"]
|
|
|
|
|
C["GDecisionActuator::showRecoResult()"]
|
|
|
|
|
D["GDecisionCenter::maskProc()"]
|
|
|
|
|
D-->C-->B-->A
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## 人证核验逻辑
|
|
|
|
|
|
|
|
|
|
```mermaid
|
|
|
|
|
flowchart TB
|
|
|
|
|
A-->B-->C-->D-->E-->F-->G
|
|
|
|
|
F-->H-->I-->J
|
|
|
|
|
|
|
|
|
|
A["UDPIDCardReader::detect()"]
|
|
|
|
|
B["IdReader::isNewCardAvailable()"]
|
|
|
|
|
C["IdReader::polling()"]
|
|
|
|
|
D["Peripheral::idPolling()"]
|
|
|
|
|
E["ReaderThread::taskProc()"]
|
|
|
|
|
F["ReaderThread::readerInputAvailNoti()"]
|
|
|
|
|
G["GPeInput::readerInputAvailCallback()"]
|
|
|
|
|
H["GPeInput::idReaderCallback()"]
|
|
|
|
|
I["GDecisionCenter::idCardReaded()"]
|
|
|
|
|
J["GDecisionCenter::_idCardProc()"]
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
recoUi::slotShowSceneResult()
|
|
|
|
|
recoUiRecognize::slotsDrawScanner()
|
|
|
|
|
mainUi::notifyFaceInfo()
|
|
|
|
|
|
|
|
|
|
`recoUi::slotTimer()`负责将结果页面切回待机页面
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### 人证核验限制
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
http://192.168.8.127/deviceAction.php?mask_check_sw=false&no_mask_no_entry=true&mask_no_entry=false&temp_check_sw=true&temp_anomaly_no_entry=true&min=35&max=37.3&sw=false&temp_unit=0&temp_type=1&temp_audio_sw=false&temp_show_sw=true&sim_th=0&reco_distance_type=3&face_sw=true&reco_from=1&fast_access_sw=false&ic_card_sw=false&face_and_id_sw=true&yuejuma=false&succ_interval=3&fail_interval=1&helmet_sw=false&dynamic_feature=false&face_frame_sw=false&dev_local_pwd_type=1&dev_local_pwd=&health_code_sw=false&health_code_allow_stranger_sw=false&health_code_allow_access_color=1&health_code_allow_access_c19t=4&health_code_allow_access_trip=0&health_code_allow_access_abt=0&travel_card_sw=false&disable_face_sw=false&health_code_needed_tip_type=0&health_trip_fail_times=3&health_trip_need_id_sw=false&health_ui_display_time=3&access_condition=[0,1]&light_and_background=[1,1,0,0,2]&health_check_phone_num_sw=false&health_ok_display_time=3&health_white_list_free_sw=false&health_code_c19t_hours_limit=0&health_trip_show_tip_sw=false&disable_dev_setting_sw=false&temp_sensitivity=0.75&cmd=set_device&face_id_card_verify_rule={"age_limit":{"enabled":true,"precision":2,"range":[{"from":40,"to":60},{"from":30,"to":-1},{"from":-1,"to":70}]},"zone_limit":{"enabled":true,"range":["14512","78945","31103"]}}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## 第三方票务平台注册
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
GDecisionCenter::ReconfirmReq
|
|
|
|
|
RWProtocol::sendRequestOpenDoorReconfirm()
|
|
|
|
|
UdpParse::voucher_verify_result_proc()
|
|
|
|
|
RWProtocol::voucherVerifyProc()
|
|
|
|
|
|
|
|
|
|
## 读取到身份证之后
|
|
|
|
|
GDecisionCenter::idCardReaded()
|
|
|
|
|
GRecoID::onIDCard() 保存图标
|
|
|
|
|
ReaderInfo 保存了nv21的图像编码
|
|
|
|
|
GDecisionCenter::m_idInfo 保存了nv21的图像编码
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## 闸机
|
|
|
|
|
|
|
|
|
|
### 故障上报
|
|
|
|
|
|
|
|
|
|
| 功能列表 | 类别 | |
|
|
|
|
|
| -------------------- | ------ | -------------- |
|
|
|
|
|
| 闸机主机电机故障 | 故障类 | 0x21+100=133 |
|
|
|
|
|
| 闸机副机电机故障 | 故障类 | 0x22+100=134 |
|
|
|
|
|
| 闸机主机离合器故障 | 故障类 | 2003+100= 2103 |
|
|
|
|
|
| 闸机副机离合器故障 | 故障类 | 2004+100=2104 |
|
|
|
|
|
| 闸机持续开闸信号故障 | 故障类 | 0x5A+100=190 |
|
|
|
|
|
| 闸机红外故障 | 故障类 | 0x5B+100=191 |
|
|
|
|
|
| 闸机遇阻停机故障 | 故障类 | 0x0A+100=110 |
|
|
|
|
|
| 闸机自检失败故障 | 故障类 | 0x23+100=135 |
|
|
|
|
|
| 闸机固件升级失败 | 故障类 | 1001+100=1104 |
|
|
|
|
|
| 闸机消防告警 | 告警类 | 0x04+100=104 |
|
|
|
|
|
| 闸机门长久未关告警 | 告警类 | 0x5C+100=192 |
|
|
|
|
|
| 人员强闯告警 | 告警类 | 0x60+100=196 |
|
|
|
|
|
| 人员非法推杆告警 | 告警类 | 2001+100=2101 |
|
|
|
|
|
| 人员逆行告警 | 告警类 | 0x61+100=197 |
|
|
|
|
|
| 人员尾随告警 | 告警类 | 0x62+100=198 |
|
|
|
|
|
| 人员逗留告警 | 告警类 | 0x5F+100=195 |
|
|
|
|
|
|
|
|
|
|
### 通行记录
|
|
|
|
|
|
|
|
|
|
```protobuf
|
|
|
|
|
//index=593 设备上报人员通过闸机事件
|
|
|
|
|
message PersonAccessedReport{
|
|
|
|
|
Common base=1;
|
|
|
|
|
string alarmId=2; //消息id
|
|
|
|
|
int64 recordId=3; //记录id
|
|
|
|
|
string timestamp=4;//时间戳,格式:"yyyy-MM-dd HH:mm:ss" 举例 "2023-11-30 11:32:45"
|
|
|
|
|
int32 direction=5;//方向,1:进,2:出
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//index=594 平台应答人员通过闸机事件
|
|
|
|
|
message ReplyPersonAccessedReport {
|
|
|
|
|
Common base=1;
|
|
|
|
|
string alarmId=2; //消息id
|
|
|
|
|
int64 recordId=3; //记录id
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
参考人脸通行记录
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
createAccessRecord
|
|
|
|
|
setAccessRecordsUploadStaByRecordIdRang
|
|
|
|
|
deleteAccessRecordByRecordId
|
|
|
|
|
getAccessRecordsNumByUploadSta
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
GPeInput::rs485DataProc 处理闸机进出
|
|
|
|
|
|
|
|
|
|
createGateAccessRecord
|
|
|
|
|
|
|
|
|
|
# upload thread
|
|
|
|
|
bool checkIfSendAccessInfoData(long long curSysSec);
|
|
|
|
|
int pushAccessInfoListToSrv(long long curSysSec);
|
|
|
|
|
int uploadAccessInfo(long long curSysSec);
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## netconfig网络管理
|
|
|
|
|
|
|
|
|
|
```mermaid
|
|
|
|
|
classDiagram
|
|
|
|
|
NetConfigThread --> NetConfig
|
|
|
|
|
NetConfig --> Linker
|
|
|
|
|
EthLinker ..|> Linker
|
|
|
|
|
WlanLinker ..|> Linker
|
|
|
|
|
SIMLinker ..|> Linker
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
wifi_connect 连接wifi耗时过长
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## UI组织
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```mermaid
|
|
|
|
|
---
|
|
|
|
|
title: FaceGate UI
|
|
|
|
|
---
|
|
|
|
|
classDiagram
|
|
|
|
|
View *-- Backstage
|
|
|
|
|
View *-- mainUi
|
|
|
|
|
mainUi ..|> UiInterfaceForBackstage
|
|
|
|
|
mainUi *-- SetupUi
|
|
|
|
|
mainUi *-- settingUi
|
|
|
|
|
mainUi *-- recoUi
|
|
|
|
|
recoUi *-- recoUiRecognize
|
|
|
|
|
recoUi *-- recoUiRecognizeTypeColor
|
|
|
|
|
recoUi *-- recoUiRecognizeTypeAd
|
|
|
|
|
recoUi *-- recoUiScreensaver
|
|
|
|
|
recoUi *-- recoUiPassword
|
|
|
|
|
recoUi *-- recoUiHealthCode
|
|
|
|
|
recoUi *-- recoUiSceneResult
|
|
|
|
|
|
|
|
|
|
class View {
|
|
|
|
|
viewInitBackstage();
|
|
|
|
|
viewCreateUi();
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
### SetupUi
|
|
|
|
|
|
|
|
|
|
仅当`/data/config/need_setup_wizard`文件存在时显示,流程完成时再删除此文件。
|
|
|
|
|
|
|
|
|
|
### settingUi
|
|
|
|
|
|
|
|
|
|
```mermaid
|
|
|
|
|
classDiagram
|
|
|
|
|
SettingUiPage --|> MyWidgetWithMainStyleColor
|
|
|
|
|
settingUiDevMngNetWifi --|> SettingUiPage
|
|
|
|
|
settingUiDevMngNetWifiAccPoint --|> SettingUiPage
|
|
|
|
|
SettingUiPage *-- QListWidget
|
|
|
|
|
myListWidget --|> QWidget
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### recoUi
|
|
|
|
|
|
|
|
|
|
```mermaid
|
|
|
|
|
classDiagram
|
|
|
|
|
SceneMsgWidget --|> QWidget
|
|
|
|
|
MsgWidget --|> QWidget
|
|
|
|
|
recoUiSceneResult *-- SceneMsgWidget
|
|
|
|
|
recoUi *-- recoUiSceneResult
|
|
|
|
|
recoUiRecognize --|> PageAcceptMouseAndTouch
|
|
|
|
|
PageAcceptMouseAndTouch --|> WidgetWithBackstageInterface
|
|
|
|
|
recoUiRecognize *-- PersonWidget
|
|
|
|
|
recoUiRecognizeTypeBase *-- MsgWidget
|
|
|
|
|
recoUiRecognizeTypeBase --|> PageAcceptMouseAndTouch
|
|
|
|
|
recoUiRecognizeTypeColor --|> recoUiRecognizeTypeBase
|
|
|
|
|
recoUiRecognizeTypeAd --|> recoUiRecognizeTypeBase
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-07-09 10:41:51 +08:00
|
|
|
|
```
|
|
|
|
|
recoUiRecognize::event() 点击拨号按钮
|
|
|
|
|
recoUiRecognizeTypeBase::event() 点击拨号按钮
|
|
|
|
|
recoUiCallDial(拨号页面) 是 recoUi 的成员
|
|
|
|
|
recoUiRecognize和 recoUiRecognizeTypeBase(recoUiRecognizeTypeColor、recoUiRecognizeTypeAd) 也是 recoUi 的成员
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-06-18 14:27:48 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## 硬件、固件版本说明
|
|
|
|
|
|
|
|
|
|
硬件版本说明: http://wiki.reconova.cn/pages/viewpage.action?pageId=36798802
|
|
|
|
|
|
|
|
|
|
### B045 CI构建包存放地址
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
\\172.16.2.222\瑞为版本\Test\shop\B045
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 测试机信息记录
|
|
|
|
|
|
|
|
|
|
扫码枪:
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
/dev/hidraw0
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
万睿面板机
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
// MAC 6C:5C:3D:B2:27:81
|
|
|
|
|
{
|
|
|
|
|
"mt": 98,
|
|
|
|
|
"ct": "HWA0310722C1110W",
|
|
|
|
|
"mac": "6C5C3DB22781",
|
|
|
|
|
"id": "412d00003263",
|
|
|
|
|
"key": "412d9f3500c79fb3",
|
|
|
|
|
"sct": "b42f6f643aedaf00"
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
B045 V05带屏幕
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
{"mt": 98,"ct": "HWA0310722C1110U","mac": "6C5C3DB229A0"}
|
|
|
|
|
|
|
|
|
|
keydata set hardware HWA0310722C1110W -f
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
B033 V05裸板
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
// MAC 6C:5C:3D:B2:27:82
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
"mt": 98,
|
|
|
|
|
"ct": "HW00000011C3000U",
|
|
|
|
|
"mac": "6C5C3DB22782",
|
|
|
|
|
"id": "6c5c3db22782",
|
|
|
|
|
"key": "6d711a5543353b5a",
|
|
|
|
|
"sct": "06b619feadfae838"
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
B026啪啪运动裸板
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
// keydata set hardware HW00000011C3000R -f
|
|
|
|
|
// keydata set mac 6C:5C:3D:B2:27:83 -f
|
|
|
|
|
{
|
|
|
|
|
"mt": 98,
|
|
|
|
|
"ct": "HW00000011C3000U",
|
|
|
|
|
"mac": "6C5C3DB22783"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 带屏幕
|
|
|
|
|
{
|
|
|
|
|
"mt": 98,
|
|
|
|
|
"ct": "HWA0310511C1000R",
|
|
|
|
|
"mac": "6C5C3DB22783"
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|