mini_program_gizwits_sdk 3.6.4 → 3.6.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +3 -3
- package/package.json +1 -1
- package/yarn-error.log +6901 -0
- package/dist/src/GizLog.d.ts +0 -18
- package/dist/src/crc/calculators/crc16modbus.d.ts +0 -2
- package/dist/src/crc/calculators/crc32.d.ts +0 -2
- package/dist/src/crc/crc16modbus.d.ts +0 -7
- package/dist/src/crc/crc32.d.ts +0 -7
- package/dist/src/crc/create_buffer.d.ts +0 -3
- package/dist/src/crc/define_crc.d.ts +0 -7
- package/dist/src/crc/index.d.ts +0 -19
- package/dist/src/crc/types.d.ts +0 -11
- package/dist/src/errorCode.d.ts +0 -3
- package/dist/src/globalData.d.ts +0 -2
- package/dist/src/handler/EventListener.d.ts +0 -9
- package/dist/src/handler/ble.d.ts +0 -105
- package/dist/src/handler/lan.d.ts +0 -78
- package/dist/src/handler/socket.d.ts +0 -151
- package/dist/src/openApiRequest.d.ts +0 -3
- package/dist/src/productConfigFileManage.d.ts +0 -11
- package/dist/src/protocol/Bind.d.ts +0 -7
- package/dist/src/protocol/DeviceInfo.d.ts +0 -11
- package/dist/src/protocol/DiscoverUDP.d.ts +0 -17
- package/dist/src/protocol/GetDeviceStatus.d.ts +0 -5
- package/dist/src/protocol/Login.d.ts +0 -12
- package/dist/src/protocol/Ntp.d.ts +0 -5
- package/dist/src/protocol/OTA/AwaitNoti.d.ts +0 -7
- package/dist/src/protocol/OTA/CheckCanOTA.d.ts +0 -10
- package/dist/src/protocol/OTA/OTAPackPackage.d.ts +0 -8
- package/dist/src/protocol/OTA/OtaComplete.d.ts +0 -8
- package/dist/src/protocol/OTA/PreOTA.d.ts +0 -11
- package/dist/src/protocol/OTA/ResetPosition.d.ts +0 -6
- package/dist/src/protocol/OffLineData.d.ts +0 -23
- package/dist/src/protocol/ProtocolBase.d.ts +0 -11
- package/dist/src/protocol/Reset.d.ts +0 -8
- package/dist/src/protocol/SetReset.d.ts +0 -7
- package/dist/src/protocol/WifiConfig.d.ts +0 -6
- package/dist/src/protocol/dataPoint.d.ts +0 -34
- package/dist/src/protocol/tool.d.ts +0 -14
- package/dist/src/randomCode.d.ts +0 -3
- package/dist/src/request.d.ts +0 -1
- package/dist/src/sdk.d.ts +0 -136
- package/dist/src/sentry.d.ts +0 -2
- package/dist/src/services/devices.d.ts +0 -47
- package/dist/src/services/login.d.ts +0 -4
- package/dist/src/services/monitor.d.ts +0 -12
- package/dist/src/services/ota.d.ts +0 -7
- package/dist/src/services/tool.d.ts +0 -4
- package/dist/src/services/uploadP0.d.ts +0 -14
- package/dist/src/sleep.d.ts +0 -2
- package/dist/src/types/index.d.ts +0 -361
- package/dist/src/utils.d.ts +0 -46
- package/dist/src/wechatApi.d.ts +0 -19
- package/dist/src/wifiConfig/ConfigBase.d.ts +0 -27
- package/dist/src/wifiConfig/ap.d.ts +0 -11
- package/dist/src/wifiConfig/ble.d.ts +0 -41
- package/dist/src/wifiConfig/nfc/disposeData.d.ts +0 -2
- package/dist/src/wifiConfig/nfc/formatData.d.ts +0 -3
- package/dist/src/wifiConfig/nfc/formatSSID.d.ts +0 -6
- package/dist/src/wifiConfig/nfc/index.d.ts +0 -22
- package/dist/src/wifiConfig/nfc/isIncludedCH.d.ts +0 -1
- package/dist/src/wifiConfig/nfc/nfcAConnect.d.ts +0 -6
- package/dist/src/wifiConfig/nfc/nfcATransceive.d.ts +0 -5
- package/dist/src/wifiConfig/nfc/ssIDToASC.d.ts +0 -1
- package/dist/src/wifiConfig/nfc/stringToGbk.d.ts +0 -1
- package/dist/src/wifiConfig/nfc/transceive.wx.d.ts +0 -2
- package/dist/src/wifiConfig/nfc/types.d.ts +0 -15
- package/index.ts +0 -8
- package/src/GizLog.ts +0 -51
- package/src/crc/calculators/crc16modbus.ts +0 -36
- package/src/crc/calculators/crc32.ts +0 -47
- package/src/crc/crc16modbus.ts +0 -3
- package/src/crc/crc32.ts +0 -4
- package/src/crc/create_buffer.ts +0 -7
- package/src/crc/define_crc.ts +0 -9
- package/src/crc/index.ts +0 -10
- package/src/crc/package.json +0 -3
- package/src/crc/types.ts +0 -10
- package/src/errorCode.ts +0 -83
- package/src/globalData.ts +0 -9
- package/src/handler/EventListener.ts +0 -44
- package/src/handler/ble.ts +0 -1369
- package/src/handler/lan.ts +0 -389
- package/src/handler/socket.ts +0 -686
- package/src/openApiRequest.ts +0 -50
- package/src/productConfigFileManage.ts +0 -72
- package/src/protocol/Bind.ts +0 -22
- package/src/protocol/DeviceInfo.ts +0 -37
- package/src/protocol/DiscoverUDP.ts +0 -80
- package/src/protocol/GetDeviceStatus.ts +0 -61
- package/src/protocol/Login.ts +0 -43
- package/src/protocol/Ntp.ts +0 -13
- package/src/protocol/OTA/AwaitNoti.ts +0 -14
- package/src/protocol/OTA/CheckCanOTA.ts +0 -23
- package/src/protocol/OTA/OTAPackPackage.ts +0 -37
- package/src/protocol/OTA/OtaComplete.ts +0 -17
- package/src/protocol/OTA/PreOTA.ts +0 -48
- package/src/protocol/OTA/ResetPosition.ts +0 -14
- package/src/protocol/OffLineData.ts +0 -81
- package/src/protocol/ProtocolBase.ts +0 -54
- package/src/protocol/Reset.ts +0 -16
- package/src/protocol/SetReset.ts +0 -13
- package/src/protocol/WifiConfig.ts +0 -42
- package/src/protocol/dataPoint.ts +0 -687
- package/src/protocol/tool.ts +0 -140
- package/src/randomCode.ts +0 -25
- package/src/request.ts +0 -22
- package/src/sdk.ts +0 -1536
- package/src/sentry.ts +0 -55
- package/src/services/devices.ts +0 -313
- package/src/services/login.ts +0 -11
- package/src/services/monitor.ts +0 -117
- package/src/services/ota.ts +0 -17
- package/src/services/tool.ts +0 -10
- package/src/services/uploadP0.ts +0 -57
- package/src/sleep.ts +0 -2
- package/src/types/index.ts +0 -456
- package/src/utils.ts +0 -449
- package/src/wechatApi.ts +0 -211
- package/src/wifiConfig/ConfigBase.ts +0 -235
- package/src/wifiConfig/ap.ts +0 -185
- package/src/wifiConfig/ble.ts +0 -460
- package/src/wifiConfig/nfc/disposeData.ts +0 -63
- package/src/wifiConfig/nfc/formatData.ts +0 -46
- package/src/wifiConfig/nfc/formatSSID.ts +0 -59
- package/src/wifiConfig/nfc/index.ts +0 -134
- package/src/wifiConfig/nfc/isIncludedCH.ts +0 -8
- package/src/wifiConfig/nfc/nfcAConnect.ts +0 -30
- package/src/wifiConfig/nfc/nfcATransceive.ts +0 -29
- package/src/wifiConfig/nfc/ssIDToASC.ts +0 -12
- package/src/wifiConfig/nfc/stringToGbk.ts +0 -51
- package/src/wifiConfig/nfc/transceive.wx.ts +0 -124
- package/src/wifiConfig/nfc/types.ts +0 -18
- package/src/wifiConfig/timeZoneName.json +0 -1
|
@@ -1,134 +0,0 @@
|
|
|
1
|
-
import { disposeData } from './disposeData';
|
|
2
|
-
import { formatData } from './formatData';
|
|
3
|
-
import { formatSSID } from './formatSSID';
|
|
4
|
-
import { transceive } from './transceive.wx';
|
|
5
|
-
import ConfigBase from "../ConfigBase";
|
|
6
|
-
import { IDevice, IResult } from '../../types';
|
|
7
|
-
|
|
8
|
-
// type IParams = {
|
|
9
|
-
// SSID: string;
|
|
10
|
-
// BSSID: string;
|
|
11
|
-
// pwd: string;
|
|
12
|
-
// passIP: string;
|
|
13
|
-
// };
|
|
14
|
-
/**
|
|
15
|
-
* 配网
|
|
16
|
-
*/
|
|
17
|
-
// export const distribution = ({ SSID, BSSID, pwd, passIP }: IParams) => {
|
|
18
|
-
// const { SSIDTLV, isSSIDIncludedCH } = formatSSID(SSID);
|
|
19
|
-
// const BSSIDTLV = formatData(BSSID, 'BSSID');
|
|
20
|
-
// const pwdTLV = formatData(pwd, 'pwd');
|
|
21
|
-
// const passIPTLV = formatData(passIP, 'passIP');
|
|
22
|
-
// const DATA = disposeData(SSIDTLV, isSSIDIncludedCH, pwdTLV, passIPTLV, BSSIDTLV);
|
|
23
|
-
// console.log(DATA, 'DATA');
|
|
24
|
-
|
|
25
|
-
// // 发送数据
|
|
26
|
-
// transceive(DATA);
|
|
27
|
-
// };
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
interface configDeviceParams {
|
|
32
|
-
ssid: string;
|
|
33
|
-
password: string;
|
|
34
|
-
bssid: string;
|
|
35
|
-
address: string;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
interface ISetDeviceOnboardingDeployProps {
|
|
39
|
-
timeout: number;
|
|
40
|
-
isBind: boolean;
|
|
41
|
-
BSSID: string;
|
|
42
|
-
softAPSSIDPrefix: string;
|
|
43
|
-
}
|
|
44
|
-
class NFCConfig extends ConfigBase {
|
|
45
|
-
// 服务器地址
|
|
46
|
-
address: string = '';
|
|
47
|
-
constructor(ssid: string, bssid: string, password: string,
|
|
48
|
-
specialProductKeys: string[], specialProductKeySecrets: string[], address: string) {
|
|
49
|
-
super(ssid, bssid, password, specialProductKeys, specialProductKeySecrets)
|
|
50
|
-
this.address = address;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
destroy = () => {
|
|
54
|
-
this.cleanTimeout();
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
/**
|
|
58
|
-
* 负责发指令
|
|
59
|
-
*/
|
|
60
|
-
configDevice = async ({ ssid, password, bssid, address }: configDeviceParams) => {
|
|
61
|
-
// TODO 发包
|
|
62
|
-
const { SSIDTLV, isSSIDIncludedCH } = formatSSID(ssid);
|
|
63
|
-
const BSSIDTLV = formatData(bssid, 'BSSID');
|
|
64
|
-
const pwdTLV = formatData(password, 'pwd');
|
|
65
|
-
const passIPTLV = formatData(address, 'address');
|
|
66
|
-
const DATA = disposeData(SSIDTLV, isSSIDIncludedCH, pwdTLV, passIPTLV, BSSIDTLV);
|
|
67
|
-
console.log(DATA, 'DATA');
|
|
68
|
-
|
|
69
|
-
// 发送数据
|
|
70
|
-
transceive(DATA);
|
|
71
|
-
// 大循环搜索
|
|
72
|
-
const devicesReturn = await this.searchDevice({ ssid, password });
|
|
73
|
-
return devicesReturn
|
|
74
|
-
};
|
|
75
|
-
/**
|
|
76
|
-
* 配网接口
|
|
77
|
-
* setDeviceOnboardingDeploy方法不可重复调用
|
|
78
|
-
*/
|
|
79
|
-
setDeviceOnboardingDeploy = ({
|
|
80
|
-
timeout,
|
|
81
|
-
isBind = true,
|
|
82
|
-
}: ISetDeviceOnboardingDeployProps) => {
|
|
83
|
-
const ssid = this.ssid;
|
|
84
|
-
const password = this.password;
|
|
85
|
-
return new Promise<IResult<IDevice[]>>(async (res, rej) => {
|
|
86
|
-
console.log('ssid0', ssid, password, this.bssid, this.address)
|
|
87
|
-
this.destroy();
|
|
88
|
-
this.initDeviceOnboardingDeploy(res, rej);
|
|
89
|
-
this.startTimeoutTimer(timeout);
|
|
90
|
-
console.log('ssid', ssid, password, this.bssid, this.address)
|
|
91
|
-
try {
|
|
92
|
-
const result = await this.configDevice({
|
|
93
|
-
ssid,
|
|
94
|
-
password,
|
|
95
|
-
bssid: this.bssid,
|
|
96
|
-
address: this.address
|
|
97
|
-
});
|
|
98
|
-
const newData: IDevice[] = (result.data || []).map(item => {
|
|
99
|
-
return {
|
|
100
|
-
mac: item.mac,
|
|
101
|
-
productKey: item.product_key,
|
|
102
|
-
did: item.did,
|
|
103
|
-
localName: '',
|
|
104
|
-
name: '',
|
|
105
|
-
isBind: false,
|
|
106
|
-
connectType: 'NONE',
|
|
107
|
-
isBleOnline: false,
|
|
108
|
-
isLanOnline: false,
|
|
109
|
-
isOnline: false,
|
|
110
|
-
}
|
|
111
|
-
})
|
|
112
|
-
if (isBind) {
|
|
113
|
-
try {
|
|
114
|
-
res(await this.bindDevices(newData));
|
|
115
|
-
} catch (error) {
|
|
116
|
-
rej(error);
|
|
117
|
-
}
|
|
118
|
-
} else {
|
|
119
|
-
// 不需要绑定 直接返回成功
|
|
120
|
-
res({
|
|
121
|
-
success: true,
|
|
122
|
-
data: newData,
|
|
123
|
-
});
|
|
124
|
-
}
|
|
125
|
-
} catch (error) {
|
|
126
|
-
rej(error);
|
|
127
|
-
} finally {
|
|
128
|
-
this.destroy();
|
|
129
|
-
}
|
|
130
|
-
});
|
|
131
|
-
};
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
export default NFCConfig;
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
type T = {
|
|
2
|
-
success: boolean;
|
|
3
|
-
nfcA: any;
|
|
4
|
-
};
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* 连接NFCA实例
|
|
8
|
-
* @param NFCAdapter NFCAdapter实例
|
|
9
|
-
* @returns Promise<{success: boolean, nfcA: any}>
|
|
10
|
-
*/
|
|
11
|
-
export const nfcAConnect = (NFCAdapter: any): Promise<T> => {
|
|
12
|
-
return new Promise((resolve) => {
|
|
13
|
-
// nfcA实例
|
|
14
|
-
const nfcA = NFCAdapter.getNfcA();
|
|
15
|
-
nfcA.connect({
|
|
16
|
-
success() {
|
|
17
|
-
resolve({
|
|
18
|
-
success: true,
|
|
19
|
-
nfcA,
|
|
20
|
-
});
|
|
21
|
-
},
|
|
22
|
-
fail() {
|
|
23
|
-
resolve({
|
|
24
|
-
success: false,
|
|
25
|
-
nfcA,
|
|
26
|
-
});
|
|
27
|
-
},
|
|
28
|
-
});
|
|
29
|
-
});
|
|
30
|
-
};
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
type T = {
|
|
2
|
-
transceiveSuccess: boolean;
|
|
3
|
-
};
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* NfcA.transceive
|
|
7
|
-
* @param nfcA: NFCA实例
|
|
8
|
-
* @param buffer: ArrayBuffer实例
|
|
9
|
-
* @returns Promise<T>
|
|
10
|
-
*/
|
|
11
|
-
export const nfcATransceive = (nfcA: any, buffer: ArrayBuffer): Promise<T> => {
|
|
12
|
-
return new Promise((resolve) => {
|
|
13
|
-
nfcA.transceive({
|
|
14
|
-
data: buffer,
|
|
15
|
-
success: (res) => {
|
|
16
|
-
console.log('success', res);
|
|
17
|
-
resolve({
|
|
18
|
-
transceiveSuccess: true,
|
|
19
|
-
});
|
|
20
|
-
},
|
|
21
|
-
fail: (err) => {
|
|
22
|
-
console.log('fail', err);
|
|
23
|
-
resolve({
|
|
24
|
-
transceiveSuccess: false,
|
|
25
|
-
});
|
|
26
|
-
},
|
|
27
|
-
});
|
|
28
|
-
});
|
|
29
|
-
};
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 传入不含中文的SSID,返回SSID(TLV)中的Value
|
|
3
|
-
* @param SSID string;
|
|
4
|
-
* @returns Uint8Array SSID(Value部分)
|
|
5
|
-
*/
|
|
6
|
-
export const ssIDToASC = (SSID: string): Uint8Array => {
|
|
7
|
-
const uint8Array = new Uint8Array(SSID.length);
|
|
8
|
-
SSID.split('').forEach((byte, index) => {
|
|
9
|
-
uint8Array[index] = byte.charCodeAt(0);
|
|
10
|
-
});
|
|
11
|
-
return uint8Array;
|
|
12
|
-
};
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
const encoding = require('./text-encoding-master/lib/encoding')
|
|
2
|
-
const ranges = [
|
|
3
|
-
[0xA1, 0xA9, 0xA1, 0xFE],
|
|
4
|
-
[0xB0, 0xF7, 0xA1, 0xFE],
|
|
5
|
-
[0x81, 0xA0, 0x40, 0xFE],
|
|
6
|
-
[0xAA, 0xFE, 0x40, 0xA0],
|
|
7
|
-
[0xA8, 0xA9, 0x40, 0xA0],
|
|
8
|
-
[0xAA, 0xAF, 0xA1, 0xFE],
|
|
9
|
-
[0xF8, 0xFE, 0xA1, 0xFE],
|
|
10
|
-
[0xA1, 0xA7, 0x40, 0xA0],
|
|
11
|
-
];
|
|
12
|
-
const codes = new Uint16Array(23940);
|
|
13
|
-
let i = 0;
|
|
14
|
-
|
|
15
|
-
for (const [b1Begin, b1End, b2Begin, b2End] of ranges) {
|
|
16
|
-
for (let b2 = b2Begin; b2 <= b2End; b2++) {
|
|
17
|
-
if (b2 !== 0x7F) {
|
|
18
|
-
for (let b1 = b1Begin; b1 <= b1End; b1++) {
|
|
19
|
-
codes[i++] = b2 << 8 | b1;
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
const str = new encoding.TextDecoder('gbk').decode(codes);
|
|
25
|
-
const table = new Uint16Array(65536);
|
|
26
|
-
for (let i = 0; i < str.length; i++) {
|
|
27
|
-
table[str.charCodeAt(i)] = codes[i];
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* string转GBK编码
|
|
32
|
-
* @param str
|
|
33
|
-
* @returns 参数的GBK编码
|
|
34
|
-
*/
|
|
35
|
-
export default function stringToGbk(str: string): Uint8Array {
|
|
36
|
-
const buf = new Uint8Array(str.length * 2);
|
|
37
|
-
let n = 0;
|
|
38
|
-
|
|
39
|
-
for (let i = 0; i < str.length; i++) {
|
|
40
|
-
const code = str.charCodeAt(i);
|
|
41
|
-
if (code < 0x80) {
|
|
42
|
-
buf[n++] = code;
|
|
43
|
-
} else {
|
|
44
|
-
const gbk = table[code];
|
|
45
|
-
buf[n++] = gbk & 0xFF;
|
|
46
|
-
buf[n++] = gbk >> 8;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
return buf.subarray(0, n);
|
|
50
|
-
}
|
|
51
|
-
|
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
import { nfcAConnect } from './nfcAConnect';
|
|
2
|
-
import { nfcATransceive } from './nfcATransceive';
|
|
3
|
-
import { IDATA } from './types';
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* 向nfc芯片发送数据
|
|
7
|
-
* @param DATA 需要传输的DATA
|
|
8
|
-
*/
|
|
9
|
-
export const transceive = (DATA: IDATA) => {
|
|
10
|
-
// NFCAdapter实例
|
|
11
|
-
const nfc = wx.getNFCAdapter();
|
|
12
|
-
nfc.startDiscovery();
|
|
13
|
-
|
|
14
|
-
// 监听nfc Tag
|
|
15
|
-
nfc.onDiscovered(async (techs) => {
|
|
16
|
-
console.log(techs, 'onDiscovered');
|
|
17
|
-
let allSuccess: boolean = true;
|
|
18
|
-
const { success, nfcA } = await nfcAConnect(nfc);
|
|
19
|
-
if (success) {
|
|
20
|
-
// 先发送SSID、PWD、PaaS IP、BSSID
|
|
21
|
-
const byteLength = DATA.ArrayBuffer_others.byteLength;
|
|
22
|
-
// @ts-ignore
|
|
23
|
-
const remainder = parseInt(byteLength % 4); // 余数
|
|
24
|
-
// @ts-ignore
|
|
25
|
-
const quotient = parseInt(byteLength / 4); // 商数
|
|
26
|
-
let temp_quo = quotient; // 用于计算blockID
|
|
27
|
-
const DATAUint8 = new Uint8Array(DATA.ArrayBuffer_others);
|
|
28
|
-
|
|
29
|
-
// 商数 - 写入数据
|
|
30
|
-
for (let i = 0; i <= quotient * 4 - 4; i += 4) {
|
|
31
|
-
if (temp_quo > 0) {
|
|
32
|
-
const buffer = new ArrayBuffer(6);
|
|
33
|
-
const uint8Array = new Uint8Array(buffer);
|
|
34
|
-
const blockID = 49 + quotient - temp_quo;
|
|
35
|
-
uint8Array[0] = parseInt('0xa2', 16);
|
|
36
|
-
uint8Array[1] = blockID;
|
|
37
|
-
uint8Array[2] = DATAUint8[0 + i];
|
|
38
|
-
uint8Array[3] = DATAUint8[1 + i];
|
|
39
|
-
uint8Array[4] = DATAUint8[2 + i];
|
|
40
|
-
uint8Array[5] = DATAUint8[3 + i];
|
|
41
|
-
const { transceiveSuccess } = await nfcATransceive(nfcA, buffer);
|
|
42
|
-
temp_quo -= 1;
|
|
43
|
-
if (!transceiveSuccess) {
|
|
44
|
-
// 某次写入失败
|
|
45
|
-
allSuccess = false;
|
|
46
|
-
wx.hideLoading();
|
|
47
|
-
wx.showToast({
|
|
48
|
-
title: 'NFC写入失败!',
|
|
49
|
-
icon: 'error',
|
|
50
|
-
duration: 2000,
|
|
51
|
-
});
|
|
52
|
-
break;
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
if (remainder !== 0 && allSuccess) {
|
|
57
|
-
// 余数 - 写入数据
|
|
58
|
-
const buffer = new ArrayBuffer(6);
|
|
59
|
-
const uint8Array = new Uint8Array(buffer);
|
|
60
|
-
const blockID = 49 + quotient;
|
|
61
|
-
uint8Array[0] = parseInt('0xa2', 16);
|
|
62
|
-
uint8Array[1] = blockID;
|
|
63
|
-
switch (remainder) {
|
|
64
|
-
case 1:
|
|
65
|
-
uint8Array[2] = DATAUint8[byteLength - 1];
|
|
66
|
-
break;
|
|
67
|
-
case 2:
|
|
68
|
-
uint8Array[2] = DATAUint8[byteLength - 2];
|
|
69
|
-
uint8Array[3] = DATAUint8[byteLength - 1];
|
|
70
|
-
break;
|
|
71
|
-
case 3:
|
|
72
|
-
uint8Array[2] = DATAUint8[byteLength - 3];
|
|
73
|
-
uint8Array[3] = DATAUint8[byteLength - 2];
|
|
74
|
-
uint8Array[4] = DATAUint8[byteLength - 1];
|
|
75
|
-
break;
|
|
76
|
-
}
|
|
77
|
-
const { transceiveSuccess } = await nfcATransceive(nfcA, buffer);
|
|
78
|
-
if (!transceiveSuccess) {
|
|
79
|
-
// 写入失败
|
|
80
|
-
wx.hideLoading();
|
|
81
|
-
wx.showToast({
|
|
82
|
-
title: 'NFC写入失败!',
|
|
83
|
-
icon: 'error',
|
|
84
|
-
duration: 2000,
|
|
85
|
-
});
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
// 再发送标志位数据: block30
|
|
90
|
-
const buffer = new ArrayBuffer(6);
|
|
91
|
-
const uint8Array = new Uint8Array(buffer);
|
|
92
|
-
const uint8Array_sign = new Uint8Array(DATA.ArrayBuffer_sign);
|
|
93
|
-
uint8Array[0] = parseInt('0xa2', 16);
|
|
94
|
-
uint8Array[1] = 48;
|
|
95
|
-
uint8Array[2] = uint8Array_sign[0];
|
|
96
|
-
uint8Array[3] = uint8Array_sign[1];
|
|
97
|
-
uint8Array[4] = uint8Array_sign[2];
|
|
98
|
-
uint8Array[5] = uint8Array_sign[3];
|
|
99
|
-
const { transceiveSuccess } = await nfcATransceive(nfcA, buffer);
|
|
100
|
-
wx.hideLoading();
|
|
101
|
-
wx.showToast(
|
|
102
|
-
transceiveSuccess
|
|
103
|
-
? {
|
|
104
|
-
title: 'NFC写入成功!',
|
|
105
|
-
icon: 'success',
|
|
106
|
-
duration: 2000,
|
|
107
|
-
}
|
|
108
|
-
: {
|
|
109
|
-
title: 'NFC写入失败!',
|
|
110
|
-
icon: 'error',
|
|
111
|
-
duration: 2000,
|
|
112
|
-
}
|
|
113
|
-
);
|
|
114
|
-
nfcA.close();
|
|
115
|
-
} else {
|
|
116
|
-
wx.hideLoading();
|
|
117
|
-
wx.showToast({
|
|
118
|
-
title: 'NFC连接失败!',
|
|
119
|
-
icon: 'error',
|
|
120
|
-
duration: 2000,
|
|
121
|
-
});
|
|
122
|
-
}
|
|
123
|
-
});
|
|
124
|
-
};
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
type PageStateProps = {
|
|
2
|
-
store: {};
|
|
3
|
-
};
|
|
4
|
-
|
|
5
|
-
interface WifiInfo {
|
|
6
|
-
SSID: string;
|
|
7
|
-
BSSID: string;
|
|
8
|
-
secure: boolean;
|
|
9
|
-
signalStrength: number;
|
|
10
|
-
frequency: number;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
type IDATA = {
|
|
14
|
-
ArrayBuffer_sign: ArrayBuffer;
|
|
15
|
-
ArrayBuffer_others: ArrayBuffer;
|
|
16
|
-
};
|
|
17
|
-
|
|
18
|
-
export { PageStateProps, WifiInfo, IDATA };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"0": "Africa/Abidjan", "1": "Africa/Accra", "2": "Africa/Addis_Ababa", "3": "Africa/Algiers", "4": "Africa/Asmara", "5": "Africa/Asmera", "6": "Africa/Bamako", "7": "Africa/Bangui", "8": "Africa/Banjul", "9": "Africa/Bissau", "10": "Africa/Blantyre", "11": "Africa/Brazzaville", "12": "Africa/Bujumbura", "13": "Africa/Cairo", "14": "Africa/Casablanca", "15": "Africa/Ceuta", "16": "Africa/Conakry", "17": "Africa/Dakar", "18": "Africa/Dar_es_Salaam", "19": "Africa/Djibouti", "20": "Africa/Douala", "21": "Africa/El_Aaiun", "22": "Africa/Freetown", "23": "Africa/Gaborone", "24": "Africa/Harare", "25": "Africa/Johannesburg", "26": "Africa/Juba", "27": "Africa/Kampala", "28": "Africa/Khartoum", "29": "Africa/Kigali", "30": "Africa/Kinshasa", "31": "Africa/Lagos", "32": "Africa/Libreville", "33": "Africa/Lome", "34": "Africa/Luanda", "35": "Africa/Lubumbashi", "36": "Africa/Lusaka", "37": "Africa/Malabo", "38": "Africa/Maputo", "39": "Africa/Maseru", "40": "Africa/Mbabane", "41": "Africa/Mogadishu", "42": "Africa/Monrovia", "43": "Africa/Nairobi", "44": "Africa/Ndjamena", "45": "Africa/Niamey", "46": "Africa/Nouakchott", "47": "Africa/Ouagadougou", "48": "Africa/Porto-Novo", "49": "Africa/Sao_Tome", "50": "Africa/Timbuktu", "51": "Africa/Tripoli", "52": "Africa/Tunis", "53": "Africa/Windhoek", "54": "America/Adak", "55": "America/Anchorage", "56": "America/Anguilla", "57": "America/Antigua", "58": "America/Araguaina", "59": "America/Argentina/Buenos_Aires", "60": "America/Argentina/Catamarca", "61": "America/Argentina/ComodRivadavia", "62": "America/Argentina/Cordoba", "63": "America/Argentina/Jujuy", "64": "America/Argentina/La_Rioja", "65": "America/Argentina/Mendoza", "66": "America/Argentina/Rio_Gallegos", "67": "America/Argentina/Salta", "68": "America/Argentina/San_Juan", "69": "America/Argentina/San_Luis", "70": "America/Argentina/Tucuman", "71": "America/Argentina/Ushuaia", "72": "America/Aruba", "73": "America/Asuncion", "74": "America/Atikokan", "75": "America/Atka", "76": "America/Bahia", "77": "America/Bahia_Banderas", "78": "America/Barbados", "79": "America/Belem", "80": "America/Belize", "81": "America/Blanc-Sablon", "82": "America/Boa_Vista", "83": "America/Bogota", "84": "America/Boise", "85": "America/Buenos_Aires", "86": "America/Cambridge_Bay", "87": "America/Campo_Grande", "88": "America/Cancun", "89": "America/Caracas", "90": "America/Catamarca", "91": "America/Cayenne", "92": "America/Cayman", "93": "America/Chicago", "94": "America/Chihuahua", "95": "America/Coral_Harbour", "96": "America/Cordoba", "97": "America/Costa_Rica", "98": "America/Creston", "99": "America/Cuiaba", "100": "America/Curacao", "101": "America/Danmarkshavn", "102": "America/Dawson", "103": "America/Dawson_Creek", "104": "America/Denver", "105": "America/Detroit", "106": "America/Dominica", "107": "America/Edmonton", "108": "America/Eirunepe", "109": "America/El_Salvador", "110": "America/Ensenada", "111": "America/Fort_Nelson", "112": "America/Fort_Wayne", "113": "America/Fortaleza", "114": "America/Glace_Bay", "115": "America/Godthab", "116": "America/Goose_Bay", "117": "America/Grand_Turk", "118": "America/Grenada", "119": "America/Guadeloupe", "120": "America/Guatemala", "121": "America/Guayaquil", "122": "America/Guyana", "123": "America/Halifax", "124": "America/Havana", "125": "America/Hermosillo", "126": "America/Indiana/Indianapolis", "127": "America/Indiana/Knox", "128": "America/Indiana/Marengo", "129": "America/Indiana/Petersburg", "130": "America/Indiana/Tell_City", "131": "America/Indiana/Vevay", "132": "America/Indiana/Vincennes", "133": "America/Indiana/Winamac", "134": "America/Indianapolis", "135": "America/Inuvik", "136": "America/Iqaluit", "137": "America/Jamaica", "138": "America/Jujuy", "139": "America/Juneau", "140": "America/Kentucky/Louisville", "141": "America/Kentucky/Monticello", "142": "America/Knox_IN", "143": "America/Kralendijk", "144": "America/La_Paz", "145": "America/Lima", "146": "America/Los_Angeles", "147": "America/Louisville", "148": "America/Lower_Princes", "149": "America/Maceio", "150": "America/Managua", "151": "America/Manaus", "152": "America/Marigot", "153": "America/Martinique", "154": "America/Matamoros", "155": "America/Mazatlan", "156": "America/Mendoza", "157": "America/Menominee", "158": "America/Merida", "159": "America/Metlakatla", "160": "America/Mexico_City", "161": "America/Miquelon", "162": "America/Moncton", "163": "America/Monterrey", "164": "America/Montevideo", "165": "America/Montreal", "166": "America/Montserrat", "167": "America/Nassau", "168": "America/New_York", "169": "America/Nipigon", "170": "America/Nome", "171": "America/Noronha", "172": "America/North_Dakota/Beulah", "173": "America/North_Dakota/Center", "174": "America/North_Dakota/New_Salem", "175": "America/Ojinaga", "176": "America/Panama", "177": "America/Pangnirtung", "178": "America/Paramaribo", "179": "America/Phoenix", "180": "America/Port-au-Prince", "181": "America/Port_of_Spain", "182": "America/Porto_Acre", "183": "America/Porto_Velho", "184": "America/Puerto_Rico", "185": "America/Punta_Arenas", "186": "America/Rainy_River", "187": "America/Rankin_Inlet", "188": "America/Recife", "189": "America/Regina", "190": "America/Resolute", "191": "America/Rio_Branco", "192": "America/Rosario", "193": "America/Santa_Isabel", "194": "America/Santarem", "195": "America/Santiago", "196": "America/Santo_Domingo", "197": "America/Sao_Paulo", "198": "America/Scoresbysund", "199": "America/Shiprock", "200": "America/Sitka", "201": "America/St_Barthelemy", "202": "America/St_Johns", "203": "America/St_Kitts", "204": "America/St_Lucia", "205": "America/St_Thomas", "206": "America/St_Vincent", "207": "America/Swift_Current", "208": "America/Tegucigalpa", "209": "America/Thule", "210": "America/Thunder_Bay", "211": "America/Tijuana", "212": "America/Toronto", "213": "America/Tortola", "214": "America/Vancouver", "215": "America/Virgin", "216": "America/Whitehorse", "217": "America/Winnipeg", "218": "America/Yakutat", "219": "America/Yellowknife", "220": "Antarctica/Casey", "221": "Antarctica/Davis", "222": "Antarctica/DumontDUrville", "223": "Antarctica/Macquarie", "224": "Antarctica/Mawson", "225": "Antarctica/McMurdo", "226": "Antarctica/Palmer", "227": "Antarctica/Rothera", "228": "Antarctica/South_Pole", "229": "Antarctica/Syowa", "230": "Antarctica/Troll", "231": "Antarctica/Vostok", "232": "Arctic/Longyearbyen", "233": "Asia/Aden", "234": "Asia/Almaty", "235": "Asia/Amman", "236": "Asia/Anadyr", "237": "Asia/Aqtau", "238": "Asia/Aqtobe", "239": "Asia/Ashgabat", "240": "Asia/Ashkhabad", "241": "Asia/Atyrau", "242": "Asia/Baghdad", "243": "Asia/Bahrain", "244": "Asia/Baku", "245": "Asia/Bangkok", "246": "Asia/Barnaul", "247": "Asia/Beirut", "248": "Asia/Bishkek", "249": "Asia/Brunei", "250": "Asia/Calcutta", "251": "Asia/Chita", "252": "Asia/Choibalsan", "253": "Asia/Chongqing", "254": "Asia/Chungking", "255": "Asia/Colombo", "256": "Asia/Dacca", "257": "Asia/Damascus", "258": "Asia/Dhaka", "259": "Asia/Dili", "260": "Asia/Dubai", "261": "Asia/Dushanbe", "262": "Asia/Famagusta", "263": "Asia/Gaza", "264": "Asia/Harbin", "265": "Asia/Hebron", "266": "Asia/Ho_Chi_Minh", "267": "Asia/Hong_Kong", "268": "Asia/Hovd", "269": "Asia/Irkutsk", "270": "Asia/Istanbul", "271": "Asia/Jakarta", "272": "Asia/Jayapura", "273": "Asia/Jerusalem", "274": "Asia/Kabul", "275": "Asia/Kamchatka", "276": "Asia/Karachi", "277": "Asia/Kashgar", "278": "Asia/Kathmandu", "279": "Asia/Katmandu", "280": "Asia/Khandyga", "281": "Asia/Kolkata", "282": "Asia/Krasnoyarsk", "283": "Asia/Kuala_Lumpur", "284": "Asia/Kuching", "285": "Asia/Kuwait", "286": "Asia/Macao", "287": "Asia/Macau", "288": "Asia/Magadan", "289": "Asia/Makassar", "290": "Asia/Manila", "291": "Asia/Muscat", "292": "Asia/Nicosia", "293": "Asia/Novokuznetsk", "294": "Asia/Novosibirsk", "295": "Asia/Omsk", "296": "Asia/Oral", "297": "Asia/Phnom_Penh", "298": "Asia/Pontianak", "299": "Asia/Pyongyang", "300": "Asia/Qatar", "301": "Asia/Qostanay", "302": "Asia/Qyzylorda", "303": "Asia/Rangoon", "304": "Asia/Riyadh", "305": "Asia/Saigon", "306": "Asia/Sakhalin", "307": "Asia/Samarkand", "308": "Asia/Seoul", "309": "Asia/Shanghai", "310": "Asia/Singapore", "311": "Asia/Srednekolymsk", "312": "Asia/Taipei", "313": "Asia/Tashkent", "314": "Asia/Tbilisi", "315": "Asia/Tehran", "316": "Asia/Tel_Aviv", "317": "Asia/Thimbu", "318": "Asia/Thimphu", "319": "Asia/Tokyo", "320": "Asia/Tomsk", "321": "Asia/Ujung_Pandang", "322": "Asia/Ulaanbaatar", "323": "Asia/Ulan_Bator", "324": "Asia/Urumqi", "325": "Asia/Ust-Nera", "326": "Asia/Vientiane", "327": "Asia/Vladivostok", "328": "Asia/Yakutsk", "329": "Asia/Yangon", "330": "Asia/Yekaterinburg", "331": "Asia/Yerevan", "332": "Atlantic/Azores", "333": "Atlantic/Bermuda", "334": "Atlantic/Canary", "335": "Atlantic/Cape_Verde", "336": "Atlantic/Faeroe", "337": "Atlantic/Faroe", "338": "Atlantic/Jan_Mayen", "339": "Atlantic/Madeira", "340": "Atlantic/Reykjavik", "341": "Atlantic/South_Georgia", "342": "Atlantic/St_Helena", "343": "Atlantic/Stanley", "344": "Australia/ACT", "345": "Australia/Adelaide", "346": "Australia/Brisbane", "347": "Australia/Broken_Hill", "348": "Australia/Canberra", "349": "Australia/Currie", "350": "Australia/Darwin", "351": "Australia/Eucla", "352": "Australia/Hobart", "353": "Australia/LHI", "354": "Australia/Lindeman", "355": "Australia/Lord_Howe", "356": "Australia/Melbourne", "357": "Australia/NSW", "358": "Australia/North", "359": "Australia/Perth", "360": "Australia/Queensland", "361": "Australia/South", "362": "Australia/Sydney", "363": "Australia/Tasmania", "364": "Australia/Victoria", "365": "Australia/West", "366": "Australia/Yancowinna", "367": "Brazil/Acre", "368": "Brazil/DeNoronha", "369": "Brazil/East", "370": "Brazil/West", "371": "CET", "372": "CST6CDT", "373": "Canada/Atlantic", "374": "Canada/Central", "375": "Canada/Eastern", "376": "Canada/Mountain", "377": "Canada/Newfoundland", "378": "Canada/Pacific", "379": "Canada/Saskatchewan", "380": "Canada/Yukon", "381": "Chile/Continental", "382": "Chile/EasterIsland", "383": "Cuba", "384": "EET", "385": "EST", "386": "EST5EDT", "387": "Egypt", "388": "Eire", "389": "Etc/GMT", "390": "Etc/GMT+0", "391": "Etc/GMT+1", "392": "Etc/GMT+10", "393": "Etc/GMT+11", "394": "Etc/GMT+12", "395": "Etc/GMT+2", "396": "Etc/GMT+3", "397": "Etc/GMT+4", "398": "Etc/GMT+5", "399": "Etc/GMT+6", "400": "Etc/GMT+7", "401": "Etc/GMT+8", "402": "Etc/GMT+9", "403": "Etc/GMT-0", "404": "Etc/GMT-1", "405": "Etc/GMT-10", "406": "Etc/GMT-11", "407": "Etc/GMT-12", "408": "Etc/GMT-13", "409": "Etc/GMT-14", "410": "Etc/GMT-2", "411": "Etc/GMT-3", "412": "Etc/GMT-4", "413": "Etc/GMT-5", "414": "Etc/GMT-6", "415": "Etc/GMT-7", "416": "Etc/GMT-8", "417": "Etc/GMT-9", "418": "Etc/GMT0", "419": "Etc/Greenwich", "420": "Etc/UCT", "421": "Etc/UTC", "422": "Etc/Universal", "423": "Etc/Zulu", "424": "Europe/Amsterdam", "425": "Europe/Andorra", "426": "Europe/Astrakhan", "427": "Europe/Athens", "428": "Europe/Belfast", "429": "Europe/Belgrade", "430": "Europe/Berlin", "431": "Europe/Bratislava", "432": "Europe/Brussels", "433": "Europe/Bucharest", "434": "Europe/Budapest", "435": "Europe/Busingen", "436": "Europe/Chisinau", "437": "Europe/Copenhagen", "438": "Europe/Dublin", "439": "Europe/Gibraltar", "440": "Europe/Guernsey", "441": "Europe/Helsinki", "442": "Europe/Isle_of_Man", "443": "Europe/Istanbul", "444": "Europe/Jersey", "445": "Europe/Kaliningrad", "446": "Europe/Kiev", "447": "Europe/Kirov", "448": "Europe/Lisbon", "449": "Europe/Ljubljana", "450": "Europe/London", "451": "Europe/Luxembourg", "452": "Europe/Madrid", "453": "Europe/Malta", "454": "Europe/Mariehamn", "455": "Europe/Minsk", "456": "Europe/Monaco", "457": "Europe/Moscow", "458": "Europe/Nicosia", "459": "Europe/Oslo", "460": "Europe/Paris", "461": "Europe/Podgorica", "462": "Europe/Prague", "463": "Europe/Riga", "464": "Europe/Rome", "465": "Europe/Samara", "466": "Europe/San_Marino", "467": "Europe/Sarajevo", "468": "Europe/Saratov", "469": "Europe/Simferopol", "470": "Europe/Skopje", "471": "Europe/Sofia", "472": "Europe/Stockholm", "473": "Europe/Tallinn", "474": "Europe/Tirane", "475": "Europe/Tiraspol", "476": "Europe/Ulyanovsk", "477": "Europe/Uzhgorod", "478": "Europe/Vaduz", "479": "Europe/Vatican", "480": "Europe/Vienna", "481": "Europe/Vilnius", "482": "Europe/Volgograd", "483": "Europe/Warsaw", "484": "Europe/Zagreb", "485": "Europe/Zaporozhye", "486": "Europe/Zurich", "487": "GB", "488": "GB-Eire", "489": "GMT", "490": "GMT+0", "491": "GMT-0", "492": "GMT0", "493": "Greenwich", "494": "HST", "495": "Hongkong", "496": "Iceland", "497": "Indian/Antananarivo", "498": "Indian/Chagos", "499": "Indian/Christmas", "500": "Indian/Cocos", "501": "Indian/Comoro", "502": "Indian/Kerguelen", "503": "Indian/Mahe", "504": "Indian/Maldives", "505": "Indian/Mauritius", "506": "Indian/Mayotte", "507": "Indian/Reunion", "508": "Iran", "509": "Israel", "510": "Jamaica", "511": "Japan", "512": "Kwajalein", "513": "Libya", "514": "MET", "515": "MST", "516": "MST7MDT", "517": "Mexico/BajaNorte", "518": "Mexico/BajaSur", "519": "Mexico/General", "520": "NZ", "521": "NZ-CHAT", "522": "Navajo", "523": "PRC", "524": "PST8PDT", "525": "Pacific/Apia", "526": "Pacific/Auckland", "527": "Pacific/Bougainville", "528": "Pacific/Chatham", "529": "Pacific/Chuuk", "530": "Pacific/Easter", "531": "Pacific/Efate", "532": "Pacific/Enderbury", "533": "Pacific/Fakaofo", "534": "Pacific/Fiji", "535": "Pacific/Funafuti", "536": "Pacific/Galapagos", "537": "Pacific/Gambier", "538": "Pacific/Guadalcanal", "539": "Pacific/Guam", "540": "Pacific/Honolulu", "541": "Pacific/Johnston", "542": "Pacific/Kiritimati", "543": "Pacific/Kosrae", "544": "Pacific/Kwajalein", "545": "Pacific/Majuro", "546": "Pacific/Marquesas", "547": "Pacific/Midway", "548": "Pacific/Nauru", "549": "Pacific/Niue", "550": "Pacific/Norfolk", "551": "Pacific/Noumea", "552": "Pacific/Pago_Pago", "553": "Pacific/Palau", "554": "Pacific/Pitcairn", "555": "Pacific/Pohnpei", "556": "Pacific/Ponape", "557": "Pacific/Port_Moresby", "558": "Pacific/Rarotonga", "559": "Pacific/Saipan", "560": "Pacific/Samoa", "561": "Pacific/Tahiti", "562": "Pacific/Tarawa", "563": "Pacific/Tongatapu", "564": "Pacific/Truk", "565": "Pacific/Wake", "566": "Pacific/Wallis", "567": "Pacific/Yap", "568": "Poland", "569": "Portugal", "570": "ROC", "571": "ROK", "572": "Singapore", "573": "Turkey", "574": "UCT", "575": "US/Alaska", "576": "US/Aleutian", "577": "US/Arizona", "578": "US/Central", "579": "US/East-Indiana", "580": "US/Eastern", "581": "US/Hawaii", "582": "US/Indiana-Starke", "583": "US/Michigan", "584": "US/Mountain", "585": "US/Pacific", "586": "US/Samoa", "587": "UTC", "588": "Universal", "589": "W-SU", "590": "WET", "591": "Zulu"}
|