Merge remote-tracking branch 'origin/dev_tcp2byte' into dev_tcp2byte

# Conflicts:
#	entry/src/main/ets/tcp2byte/index.ts
This commit is contained in:
surenjun 2025-03-05 14:10:32 +08:00
commit aab38515ed
6 changed files with 52 additions and 37 deletions

View File

@ -4,13 +4,13 @@
{ {
"name": "default", "name": "default",
"material": { "material": {
"certpath": "/Users/surenjun/.ohos/config/openharmony/auto_ohos_default_subject-two_com.oh.dts.cer", "certpath": "/Users/wangzhongjie/.ohos/config/openharmony/default_subject-two_Kl4t-ZSvZeuUm9s8O-e6FIH2VFR_OaNyhDP8kPjIWgU=.cer",
"storePassword": "0000001BE4BBADDF656A884E7A7BB5FD51F64FBB61DD24A944FEA969482DD693210ED5FF3D29F13642E3A3", "storePassword": "0000001B1A6C605B348CE1F76970E037662E7240FC9A88762FF9CC0FBF41CD85BB9F44F66A7002A0A4226D",
"keyAlias": "debugKey", "keyAlias": "debugKey",
"keyPassword": "0000001BDEFFDC280B45617E7FC447CB21F2D133540301F543454643D3F5E9F6E5ED2A583A7FA92B260433", "keyPassword": "0000001B0C7AC8946180EE4BBCB5880D04DF499C741EBA9485672DD1C6902D3944018F866199FFD1B10B30",
"profile": "/Users/surenjun/.ohos/config/openharmony/auto_ohos_default_subject-two_com.oh.dts.p7b", "profile": "/Users/wangzhongjie/.ohos/config/openharmony/default_subject-two_Kl4t-ZSvZeuUm9s8O-e6FIH2VFR_OaNyhDP8kPjIWgU=.p7b",
"signAlg": "SHA256withECDSA", "signAlg": "SHA256withECDSA",
"storeFile": "/Users/surenjun/.ohos/config/openharmony/auto_ohos_default_subject-two_com.oh.dts.p12" "storeFile": "/Users/wangzhongjie/.ohos/config/openharmony/default_subject-two_Kl4t-ZSvZeuUm9s8O-e6FIH2VFR_OaNyhDP8kPjIWgU=.p12"
} }
} }
], ],

View File

@ -2,6 +2,11 @@
"apiType": 'stageMode', "apiType": 'stageMode',
"buildOption": { "buildOption": {
"externalNativeOptions": { "externalNativeOptions": {
"abiFilters": [
"arm64-v8a",
"armeabi-v7a",
"x86_64"
],
"path": "./src/main/cpp/CMakeLists.txt", "path": "./src/main/cpp/CMakeLists.txt",
"arguments": "", "arguments": "",
"cppFlags": "", "cppFlags": "",

View File

@ -1,13 +1,15 @@
{ {
"lockfileVersion": 1, "lockfileVersion": 2,
"ATTENTION": "THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.", "ATTENTION": "THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.",
"specifiers": { "specifiers": {
"@ohos/hypium@1.0.6": "@ohos/hypium@1.0.6" "@ohos/hypium@1.0.6": "@ohos/hypium@1.0.6"
}, },
"packages": { "packages": {
"@ohos/hypium@1.0.6": { "@ohos/hypium@1.0.6": {
"resolved": "https://repo.harmonyos.com/ohpm/@ohos/hypium/-/hypium-1.0.6.tgz", "resolved": "https://ohpm.openharmony.cn/ohpm/@ohos/hypium/-/hypium-1.0.6.tgz",
"integrity": "sha512-bb3DWeWhYrFqj9mPFV3yZQpkm36kbcK+YYaeY9g292QKSjOdmhEIQR2ULPvyMsgSR4usOBf5nnYrDmaCCXirgQ==" "integrity": "sha512-bb3DWeWhYrFqj9mPFV3yZQpkm36kbcK+YYaeY9g292QKSjOdmhEIQR2ULPvyMsgSR4usOBf5nnYrDmaCCXirgQ==",
"registryType": "ohpm",
"shasum": "3f5fed65372633233264b3447705b0831dfe7ea1"
} }
} }
} }

View File

@ -2,18 +2,19 @@ import socket from '@ohos.net.socket'
import util from '@ohos.util' import util from '@ohos.util'
import promptAction from '@ohos.promptAction' import promptAction from '@ohos.promptAction'
import TcpToByte from './utils/tcp2byte' import TcpToByte from './utils/tcp2byte'
import {bytesToDecimal} from './utils/tools' import { bytesToDecimal } from './utils/tools'
const TAG = '[TCP2BYTE]' const TAG = '[TCP2BYTE]'
interface RES { interface RES {
code: number|string, code: number | string,
message?: string message?: string
} }
const config = { const config = {
address: '114.55.125.222', address: '172.37.55.191',
port: 50189 port: 40000
} }
export default async function tcp2ByteRequest(data): Promise<RES> { export default async function tcp2ByteRequest(data): Promise<RES> {
@ -27,7 +28,11 @@ export default async function tcp2ByteRequest(data): Promise<RES> {
console.info(TAG, 'sendData=>' + JSON.stringify(sendData)) console.info(TAG, 'sendData=>' + JSON.stringify(sendData))
try { try {
await tcpClient.connect({address: {address, port}}) await tcpClient.connect({
address: {
address, port
}
})
//发送消息 //发送消息
handSendMessage(tcpClient, data.sjbs, sendData) handSendMessage(tcpClient, data.sjbs, sendData)
} catch (e) { } catch (e) {
@ -42,7 +47,7 @@ export default async function tcp2ByteRequest(data): Promise<RES> {
//收到消息 //收到消息
tcpClient.on('message', (data) => { tcpClient.on('message', (data) => {
const res = handReceiveMessage(tcpClient, sendData, data.message) const res = handReceiveMessage(tcpClient, sendData, data.message)
if(res){ if (res) {
tcpClient.close() tcpClient.close()
resolve(res) resolve(res)
} }
@ -68,7 +73,7 @@ export default async function tcp2ByteRequest(data): Promise<RES> {
function handSendMessage(client: socket.TCPSocket, type, data) { function handSendMessage(client: socket.TCPSocket, type, data) {
switch (type) { switch (type) {
//开始考试 过程照片 考试结束需要分包 //开始考试 过程照片 考试结束需要分包
case '02-21-000009': case '02-21-000009':
case '02-21-000012': case '02-21-000012':
case '02-21-000014': case '02-21-000014':
@ -83,46 +88,47 @@ function handSendMessage(client: socket.TCPSocket, type, data) {
client.send({ data: new Uint8Array(data).buffer }) client.send({ data: new Uint8Array(data).buffer })
break; break;
default:break; default:
break;
} }
} }
//处理接收的数据 //处理接收的数据
function handReceiveMessage(client: socket.TCPSocket, sendData, rData:ArrayBuffer):RES { function handReceiveMessage(client: socket.TCPSocket, sendData, rData: ArrayBuffer): RES {
const receiveData = new Uint8Array(rData) const receiveData = new Uint8Array(rData)
//返回的消息类型 //返回的消息类型
const messageType = receiveData[1]; const messageType = receiveData[1];
//流水号 //流水号
const lsh = bytesToDecimal([receiveData[2],receiveData[3]]); const lsh = bytesToDecimal([receiveData[2], receiveData[3]]);
//开始补包 //开始补包
if(messageType === 0xF0){ if (messageType === 0xF0) {
//获取消息体长度 //获取消息体长度
const messageLength = receiveData[13] const messageLength = receiveData[12]
//分包总数 //分包总数
const packages = receiveData.slice(14, 14 + messageLength * 2); const packages = bytesToDecimal(receiveData.slice(13, 13 + messageLength * 2));
const forArr = new Array(messageLength).fill(1) const forArr = new Array(packages).fill(1)
forArr.forEach((item,index)=>{ forArr.forEach((item, index) => {
const start = index * 2; const start = index * 2;
const end = start + 1; const end = start + 2;
const packageIndex = bytesToDecimal([packages[start],packages[end]]); const packageIndex = bytesToDecimal([start, end]);
console.info(TAG, '补包内容' + JSON.stringify(new Uint8Array(sendData[packageIndex]))) console.info(TAG, '补包内容' + JSON.stringify(new Uint8Array(sendData[packageIndex])))
client.send({data:new Uint8Array(sendData[packageIndex]).buffer}); client.send({ data: new Uint8Array(sendData[packageIndex]).buffer });
}) })
}else{ } else {
const decoder = util.TextDecoder.create('utf-8'); const decoder = util.TextDecoder.create('utf-8');
const messageLength = bytesToDecimal([receiveData[9],receiveData[10]]); const messageLength = bytesToDecimal([receiveData[9], receiveData[10]]);
const markLength = receiveData[11]; const markLength = receiveData[11];
const markContent = decoder.decodeWithStream(receiveData.slice(12, 12 + markLength )); const markContent = decoder.decodeWithStream(receiveData.slice(12, 12 + markLength));
console.info(TAG, 'markContent=>' + markContent) console.info(TAG, 'markContent=>' + markContent)
const tipLength = receiveData[13]; const tipLength = receiveData[13];
const messageContent = decoder.decodeWithStream(receiveData.slice(13 + markLength, 13 + markLength + tipLength)); const messageContent = decoder.decodeWithStream(receiveData.slice(13 + markLength, 13 + markLength + tipLength));
console.info(TAG, 'messageContent=>' + messageContent) console.info(TAG, 'messageContent=>' + messageContent)
return { return {
code:markContent, code: markContent,
message:messageContent message: messageContent
} }
} }
} }

View File

@ -1,6 +1,6 @@
{ {
"hvigorVersion": "3.0.9", "hvigorVersion": "3.2.4",
"dependencies": { "dependencies": {
"@ohos/hvigor-ohos-plugin": "3.0.9" "@ohos/hvigor-ohos-plugin": "3.2.4"
} }
} }

View File

@ -1,13 +1,15 @@
{ {
"lockfileVersion": 1, "lockfileVersion": 2,
"ATTENTION": "THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.", "ATTENTION": "THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.",
"specifiers": { "specifiers": {
"@ohos/hypium@1.0.6": "@ohos/hypium@1.0.6" "@ohos/hypium@1.0.6": "@ohos/hypium@1.0.6"
}, },
"packages": { "packages": {
"@ohos/hypium@1.0.6": { "@ohos/hypium@1.0.6": {
"resolved": "https://repo.harmonyos.com/ohpm/@ohos/hypium/-/hypium-1.0.6.tgz", "resolved": "https://ohpm.openharmony.cn/ohpm/@ohos/hypium/-/hypium-1.0.6.tgz",
"integrity": "sha512-bb3DWeWhYrFqj9mPFV3yZQpkm36kbcK+YYaeY9g292QKSjOdmhEIQR2ULPvyMsgSR4usOBf5nnYrDmaCCXirgQ==" "integrity": "sha512-bb3DWeWhYrFqj9mPFV3yZQpkm36kbcK+YYaeY9g292QKSjOdmhEIQR2ULPvyMsgSR4usOBf5nnYrDmaCCXirgQ==",
"registryType": "ohpm",
"shasum": "3f5fed65372633233264b3447705b0831dfe7ea1"
} }
} }
} }