Commit 3e69499f authored by martin hou's avatar martin hou

增加用于消息解码的测试脚本

parent 8bf74e01
<!doctype html>
<html>
<head>
<meta charset="UTF-8"/>
</head>
<body>
<script>
const INVAILD = 0x00;
const QUERY_DEVICE_INFO = 0x01;
const QUERY_DEVICE_TIME = 0x02;
const SET_DEVICE_TIME = 0x03;
const QUERY_FILE_LIST = 0x04;
const TRANSFER_FILE = 0x05;
const QUERY_FILE_COUNT = 0x06;
const DELETE_FILE = 0x07;
const REQUEST_FIRMWARE_UPGRADE = 0x08;
const FIRMWARE_UPLOAD = 0x09;
const READ_CARD_INFO = 0x10;
const FORMAT_CARD = 0x11;
const GET_RECORDING_FILE = 0x12;
const RESTORE_FACTORY_SETTINGS = 0x13;
const SCHEDULE_INFO = 0x14;
const DEVICE_MSG_TEST = 0x0a;
const BNC_DEMO_TEST = 0x0a;
const GET_SETTINGS = 0x0b;
const SET_SETTINGS = 0x0c;
const GET_FILE_BLOCK = 0x0d;
const TRANSFER_FILE_PARTIAL = 0x15;
const REQUEST_TONE_UPDATE = 0x16;
const TONE_UPDATE = 0x17;
const REQUEST_UAC_UPDATE = 0x18;
const UAC_UPDATE = 0x19;
const FACTORY_RESET = 0xf00b;
const REALTIME_READ_SETTING = 0x20;
const REALTIME_CONTROL = 0x21;
const REALTIME_TRANSFER = 0x22;
const BLUETOOTH_SCAN = 0x1001;
const BLUETOOTH_CMD = 0x1002;
const BLUETOOTH_STATUS = 0x1003;
const TEST_SN_WRITE = 0xf007;
const RECORD_TEST_START = 0xf008;
const RECORD_TEST_END = 0xf009;
const COMMAND_NAMES = {
[INVAILD]: 'invalid-0',
[QUERY_DEVICE_INFO]: 'get-device-info',
[QUERY_DEVICE_TIME]: 'get-device-time',
[SET_DEVICE_TIME]: 'set-device-time',
[QUERY_FILE_LIST]: 'get-file-list',
[TRANSFER_FILE]: 'transfer-file',
[QUERY_FILE_COUNT]: 'get-file-count',
[DELETE_FILE]: 'delete-file',
[REQUEST_FIRMWARE_UPGRADE]: 'request-firmware-upgrade',
[FIRMWARE_UPLOAD]: 'firmware-upload',
[READ_CARD_INFO]: 'read card info',
[FORMAT_CARD]: 'format card',
[GET_RECORDING_FILE]: 'get recording file',
[RESTORE_FACTORY_SETTINGS]: 'restore factory settings',
[SCHEDULE_INFO]: 'send meeting schedule info',
[DEVICE_MSG_TEST]: 'device msg test',
[BNC_DEMO_TEST]: 'bnc demo test',
[GET_SETTINGS]: 'get-settings',
[SET_SETTINGS]: 'set-settings',
[GET_FILE_BLOCK]: 'get file block',
[FACTORY_RESET]: 'factory reset',
[TEST_SN_WRITE]: 'test sn write',
[RECORD_TEST_START]: 'record test start',
[RECORD_TEST_END]: 'record test end',
[BLUETOOTH_SCAN]: 'bluetooth-scan',
[BLUETOOTH_CMD]: 'bluetooth-cmd',
[BLUETOOTH_STATUS]: 'bluetooth-status'
};
</script>
<script>
let hex = ["12","34","0","4","0","0","0","1","0","0","1c","86","ff","ff","0","0","0","82","1","0","0","1b","32","30","32","34","4a","75","6c","31","38","2d","31","31","32","31","34","31","2d","52","65","63","39","35","2e","68","64","61","0","0","0","72","cc","0","0","0","0","0","0","3a","96","45","9a","16","63","6d","d3","cc","78","94","e9","cc","d4","c4","16","1","0","0","1b","32","30","32","34","4a","75","6c","31","38","2d","31","31","32","31","35","31","2d","52","65","63","39","36","2e","68","64","61","0","0","33","83","dc","0","0","0","0","0","0","4","d0","8d","b3","2e","0","e5","e7","b9","57","ad","e1","6b","ae","13","24","1","0","0","1b","32","30","32","34","4a","75","6c","33","31","2d","31","33","35","31","32","32","2d","52","65","63","30","30","2e","68","64","61","0","1","1b","4d","6c","0","0","0","0","0","0","cb","a2","2c","8e","48","f5","ce","80","b3","f8","d6","fb","25","d0","90","5c","0","0","0","1b","32","30","32","34","4d","61","72","30","38","2d","31","36","31","31","33","38","2d","52","65","63","31","36","2e","68","64","61","0","0","0","0","c","0","0","0","0","0","0","79","32","3d","98","d4","af","ec","5e","77","81","8e","e0","4f","f7","cb","d7","0","0","0","1b","32","30","32","34","4d","61","72","30","38","2d","31","36","31","31","34","31","2d","52","65","63","31","37","2e","68","64","61","0","0","0","0","c","0","0","0","0","0","0","79","32","3d","98","d4","af","ec","5e","77","81","8e","e0","4f","f7","cb","d7","0","0","0","1b","32","30","32","34","4d","61","72","30","38","2d","31","36","31","31","34","35","2d","52","65","63","31","38","2e","68","64","61","0","0","0","0","c","0","0","0","0","0","0","79","32","3d","98","d4","af","ec","5e","77","81","8e","e0","4f","f7","cb","d7","0","0","0","1b","32","30","32","34","4d","61","72","30","38","2d","31","36","31","31","34","39","2d","52","65","63","31","39","2e","68","64","61","0","0","0","0","c","0","0","0","0","0","0","79","32","3d","98","d4","af","ec","5e","77","81","8e","e0","4f","f7","cb","d7","0","0","0","1b","32","30","32","34","4d","61","72","30","38","2d","31","36","31","31","35","32","2d","52","65","63","32","30","2e","68","64","61","0","0","0","0","c","0","0","0","0","0","0","79","32","3d","98","d4","af","ec","5e","77","81","8e","e0","4f","f7","cb","d7","0","0","0","1b","32","30","32","34","4d","61","72","30","38","2d","31","36","31","31","35","36","2d","52","65","63","32","31","2e","68","64","61","0","0","0","0","c","0","0","0","0","0","0","79","32","3d","98","d4","af","ec","5e","77","81","8e","e0","4f","f7","cb","d7","0","0","0","1b","32","30","32","34","4d","61","72","30","38","2d","31","36","31","32","30","30","2d","52","65","63","32","32","2e","68","64","61","0","0","0","0","c","0","0","0","0","0","0","79","32","3d","98","d4","af","ec","5e","77","81","8e","e0","4f","f7","cb","d7","0","0","0","1b","32","30","32","34","4d","61","72","30","38","2d","31","36","31","32","30","34","2d","52","65","63","32","33","2e","68","64","61","0","0","0","0","c","0","0","0","0","0","0","79","32","3d","98","d4","af","ec","5e","77","81","8e","e0","4f","f7","cb","d7","0","0","0","1b","32","30","32","34","4d","61","72","30","38","2d","31","36","31","32","31","39","2d","52","65","63","32","34","2e","68","64","61","0","0","0","0","c","0","0","0","0","0","0","79","32","3d","98","d4","af","ec","5e","77","81","8e","e0","4f","f7","cb","d7","0","0","0","1b","32","30","32","34","4d","61","72","32","31","2d","31","30","35","35","31","33","2d","52","65","63","33","34","2e","68","64","61","0","0","2","33","ac","0","0","0","0","0","0","90","81","3","14","f6","f7","6f","6d","44","28","e8","1d","2b","1","4f","20","0","0","0","1b","32","30","32","34","4d","61","72","32","31","2d","31","31","30","30","31","30","2d","52","65","63","33","35","2e","68","64","61","0","0","0","0","c","0","0","0","0","0","0","79","32","3d","98","d4","af","ec","5e","77","81","8e","e0","4f","f7","cb","d7","0","0","0","1b","32","30","32","34","4d","61","72","32","31","2d","31","31","30","37","33","31","2d","52","65","63","33","37","2e","68","64","61","0","0","0","0","c","0","0","0","0","0","0","79","32","3d","98","d4","af","ec","5e","77","81","8e","e0","4f","f7","cb","d7","1","0","0","1b","32","30","32","34","41","75","67","30","36","2d","31","37","35","35","31","30","2d","52","65","63","30","31","2e","68","64","61","0","0","1a","f3","ac","0","0","0","0","0","0","9e","d","d4","3c","d6","16","fb","60","90","43","93","7b","2d","fb","f8","77","0","0","0","1b","32","30","32","34","4d","61","72","32","31","2d","31","34","33","33","34","30","2d","52","65","63","33","39","2e","68","64","61","0","0","0","0","c","0","0","0","0","0","0","79","32","3d","98","d4","af","ec","5e","77","81","8e","e0","4f","f7","cb","d7","0","0","0","1b","32","30","32","34","4d","61","72","32","31","2d","31","34","33","35","35","31","2d","52","65","63","34","30","2e","68","64","61","0","0","0","a2","c","0","0","0","0","0","0","e0","40","78","3f","78","54","ec","55","d8","5a","67","8","d9","4d","94","c3","0","0","0","1b","32","30","32","34","4d","61","72","32","31","2d","31","34","33","37","31","34","2d","52","65","63","34","31","2e","68","64","61","0","0","0","0","c","0","0","0","0","0","0","79","32","3d","98","d4","af","ec","5e","77","81","8e","e0","4f","f7","cb","d7","0","0","0","1b","32","30","32","34","4d","61","72","32","31","2d","31","34","35","35","32","36","2d","52","65","63","34","32","2e","68","64","61","0","0","4","98","d0","0","0","0","0","0","0","16","e2","3","84","51","fd","12","e0","1e","b6","86","8c","66","a6","35","7f","0","0","0","1b","32","30","32","34","4d","61","72","32","31","2d","31","34","35","38","31","33","2d","52","65","63","34","33","2e","68","64","61","0","0","3","6c","70","0","0","0","0","0","0","cf","b5","fa","37","31","52","8c","aa","15","99","41","22","3f","7b","c8","6d","0","0","0","1b","32","30","32","34","4d","61","72","32","31","2d","31","35","30","32","33","32","2d","52","65","63","34","34","2e","68","64","61","0","0","3","27","cc","0","0","0","0","0","0","bc","d0","7","c9","4d","50","5c","19","f2","2b","99","9e","32","9d","f","bd","0","0","0","1b","32","30","32","34","4d","61","72","32","31","2d","31","35","30","34","33","32","2d","52","65","63","34","35","2e","68","64","61","0","0","1","39","ec","0","0","0","0","0","0","ed","6b","b3","31","d4","38","a3","c9","fa","47","7","b9","b1","ff","77","a9","0","0","0","1b","32","30","32","34","4d","61","72","32","31","2d","31","35","30","34","34","37","2d","52","65","63","34","36","2e","68","64","61","0","0","0","0","c","0","0","0","0","0","0","79","32","3d","98","d4","af","ec","5e","77","81","8e","e0","4f","f7","cb","d7","0","0","0","1b","32","30","32","34","4d","61","72","32","31","2d","31","35","30","36","32","34","2d","52","65","63","34","37","2e","68","64","61","0","0","0","0","c","0","0","0","0","0","0","79","32","3d","98","d4","af","ec","5e","77","81","8e","e0","4f","f7","cb","d7","0","0","0","1b","32","30","32","34","4d","61","72","32","31","2d","31","35","31","34","30","30","2d","52","65","63","34","38","2e","68","64","61","0","0","2","e8","d0","0","0","0","0","0","0","7","da","48","8a","48","4e","d3","48","62","5b","ca","75","c4","3","29","fe","0","0","0","1b","32","30","32","34","4d","61","72","32","31","2d","31","35","31","34","32","38","2d","52","65","63","34","39","2e","68","64","61","0","0","1","86","70","0","0","0","0","0","0","7a","b3","8c","15","15","8d","a1","f4","59","98","ec","e","2d","d9","88","f7","0","0","0","1b","32","30","32","34","4d","61","72","32","31","2d","31","35","31","38","30","32","2d","52","65","63","35","30","2e","68","64","61","0","0","3","fa","2c","0","0","0","0","0","0","af","e5","5c","bc","f4","c","49","4c","74","77","f8","d9","e8","1e","8b","53","0","0","0","1b","32","30","32","34","4d","61","72","32","31","2d","31","35","31","38","33","38","2d","52","65","63","35","31","2e","68","64","61","0","0","2","68","90","0","0","0","0","0","0","bf","77","b0","91","cd","ad","d2","44","f4","b2","17","84","ad","ee","2c","21","0","0","0","1b","32","30","32","34","4d","61","72","32","31","2d","31","35","31","39","35","33","2d","52","65","63","35","32","2e","68","64","61","0","0","4","d3","58","0","0","0","0","0","0","45","34","32","39","e1","78","21","cd","96","3a","4f","9f","d7","b8","c5","fb","0","0","0","1b","32","30","32","34","4d","61","72","32","31","2d","31","35","32","32","33","37","2d","52","65","63","35","33","2e","68","64","61","0","0","2","95","90","0","0","0","0","0","0","50","bf","75","1d","c8","3a","fc","c6","e1","ea","35","7a","28","12","ef","8b","0","0","0","1b","32","30","32","34","4d","61","72","32","31","2d","31","35","32","33","30","31","2d","52","65","63","35","34","2e","68","64","61","0","0","1","bf","d4","0","0","0","0","0","0","af","c4","ed","13","a4","c3","55","9a","a4","81","e1","9f","d4","4e","3c","37","0","0","0","1b","32","30","32","34","4d","61","72","32","31","2d","31","35","32","35","33","30","2d","52","65","63","35","35","2e","68","64","61","0","0","3","6c","70","0","0","0","0","0","0","3a","84","f","f4","3b","9e","22","ab","53","81","fd","c8","70","d5","f0","ea","0","0","0","1b","32","30","32","34","4d","61","72","32","31","2d","31","35","32","36","30","31","2d","52","65","63","35","36","2e","68","64","61","0","0","2","c4","d4","0","0","0","0","0","0","5f","67","fa","91","41","91","72","b8","2d","ed","31","db","77","1e","fe","7d","0","0","0","1b","32","30","32","34","4d","61","72","32","31","2d","31","35","32","37","30","32","2d","52","65","63","35","37","2e","68","64","61","0","0","3","8","4c","0","0","0","0","0","0","f2","59","f3","cc","be","96","7d","7c","35","dd","c4","1","13","d5","8a","45","0","0","0","1b","32","30","32","34","4d","61","72","32","35","2d","31","36","33","39","30","33","2d","52","65","63","35","38","2e","68","64","61","0","0","1","13","ac","0","0","0","0","0","0","c1","92","99","95","a8","68","d6","aa","61","e2","eb","87","1","8","34","56","0","0","0","1b","32","30","32","34","4d","61","72","32","35","2d","31","36","33","39","33","36","2d","52","65","63","35","39","2e","68","64","61","0","0","1","ac","b4","0","0","0","0","0","0","1d","8b","6b","9e","f9","d8","8f","df","72","b5","8a","e","b6","aa","9","3f","0","0","0","1b","32","30","32","34","4d","61","72","32","35","2d","31","37","30","38","35","34","2d","52","65","63","36","30","2e","68","64","61","0","0","30","53","c8","0","0","0","0","0","0","f9","cc","99","99","45","f","39","4","1","f4","59","9b","1d","8b","18","82","0","0","0","1b","32","30","32","34","4d","61","72","32","35","2d","31","37","32","33","35","31","2d","52","65","63","36","31","2e","68","64","61","0","0","ed","c","cc","0","0","0","0","0","0","e2","ab","ea","1f","6d","fe","86","6e","e5","fd","cb","54","7e","73","5f","cc","0","0","0","1b","32","30","32","34","4d","61","72","32","35","2d","31","37","35","36","31","39","2d","52","65","63","36","32","2e","68","64","61","0","0","6d","85","4c","0","0","0","0","0","0","64","2d","5d","4a","98","78","3f","bd","fa","30","45","fe","ef","38","20","b3","0","0","0","1b","32","30","32","34","4d","61","72","32","36","2d","31","38","31","31","35","37","2d","52","65","63","36","33","2e","68","64","61","0","0","11","69","58","0","0","0","0","0","0","89","49","78","bc","75","4f","bc","61","4b","51","af","c0","47","39","54","3e","0","0","0","1b","32","30","32","34","4d","61","72","32","36","2d","31","39","30","38","35","33","2d","52","65","63","36","34","2e","68","64","61","0","0","2f","33","b0","0","0","0","0","0","0","4a","e6","b6","3c","30","6a","c6","a5","c8","bd","17","5d","e8","79","d6","82","1","0","0","1b","32","30","32","34","41","70","72","31","30","2d","31","30","30","33","35","37","2d","52","65","63","36","35","2e","68","64","61","0","0","3","7c","2c","0","0","0","0","0","0","63","5b","f4","24","9a","d5","ae","c0","e6","33","ee","bc","54","88","39","47","1","0","0","1b","32","30","32","34","41","70","72","32","36","2d","31","30","32","31","34","31","2d","52","65","63","36","37","2e","68","64","61","0","0","5","97","9c","0","0","0","0","0","0","d0","25","cf","83","d9","8","42","fc","d3","6","d","d7","da","d1","8d","7a","1","0","0","1b","32","30","32","34","41","70","72","32","36","2d","31","30","32","35","34","30","2d","52","65","63","36","38","2e","68","64","61","0","0","3","4d","7c","0","0","0","0","0","0","b5","c7","69","be","99","eb","1d","90","1","bc","e7","4c","f5","86","7c","4e","1","0","0","1b","32","30","32","34","41","70","72","32","36","2d","31","38","34","38","32","31","2d","52","65","63","37","32","2e","68","64","61","0","0","6","ac","60","0","0","0","0","0","0","9","d5","d9","20","39","d8","6","9","ee","3","5b","7d","a0","a","12","e2","1","0","0","1b","32","30","32","34","41","70","72","32","36","2d","31","38","34","34","34","36","2d","52","65","63","37","30","2e","68","64","61","0","0","2","3a","6c","0","0","0","0","0","0","95","7f","a6","3a","ff","34","1d","12","bb","53","c7","ae","6c","6d","71","5c","1","0","0","1b","32","30","32","34","41","70","72","32","36","2d","31","38","35","37","30","36","2d","52","65","63","37","33","2e","68","64","61","0","0","3","38","1c","0","0","0","0","0","0","ac","96","c3","69","d9","cb","36","b","6c","46","c6","1","5b","b6","90","7f","1","0","0","1b","32","30","32","34","41","70","72","32","36","2d","31","39","30","38","31","38","2d","52","65","63","37","34","2e","68","64","61","0","0","2","19","cc","0","0","0","0","0","0","8d","8c","24","1a","94","42","c6","7a","bf","51","33","c8","46","4c","2e","3","1","0","0","1b","32","30","32","34","41","70","72","32","36","2d","31","39","31","34","33","33","2d","52","65","63","37","35","2e","68","64","61","0","0","2","d3","fc","0","0","0","0","0","0","8","7d","22","7f","7e","68","e1","d8","0","b7","6c","14","bd","1b","65","f6","1","0","0","1b","32","30","32","34","41","70","72","32","36","2d","32","30","31","33","30","31","2d","52","65","63","37","38","2e","68","64","61","0","0","1","71","9c","0","0","0","0","0","0","1c","d","94","f4","aa","1a","cb","2d","52","30","75","92","7a","3d","b1","15","1","0","0","1b","32","30","32","34","41","70","72","32","36","2d","31","39","31","39","33","30","2d","52","65","63","37","37","2e","68","64","61","0","0","3","65","1c","0","0","0","0","0","0","49","f0","16","ef","5e","cf","4e","d","d9","fd","e5","a0","7","2","a9","9c","1","0","0","1b","32","30","32","34","41","70","72","32","36","2d","32","30","31","34","32","38","2d","52","65","63","37","39","2e","68","64","61","0","0","3","28","5c","0","0","0","0","0","0","3","7c","2d","cc","d5","28","1b","4c","7","8b","3a","5d","5d","95","9e","c9","1","0","0","1b","32","30","32","34","41","70","72","32","38","2d","31","31","31","34","31","38","2d","52","65","63","38","30","2e","68","64","61","0","0","5","5b","6c","0","0","0","0","0","0","fa","3e","ab","16","42","69","b5","68","67","45","e7","3e","e1","fb","8f","49","1","0","0","1b","32","30","32","34","41","70","72","32","38","2d","31","31","32","33","35","39","2d","52","65","63","38","31","2e","68","64","61","0","0","4","cb","fc","0","0","0","0","0","0","27","5","4a","a8","2d","b9","c2","21","6a","20","95","a1","57","c4","e9","4d","1","0","0","1b","32","30","32","34","4d","61","79","32","32","2d","31","36","35","31","32","37","2d","52","65","63","38","32","2e","68","64","61","0","0","1","d","7c","0","0","0","0","0","0","25","79","22","d6","88","7f","42","70","81","7a","21","79","79","1f","39","b3","1","0","0","1b","32","30","32","34","4d","61","79","32","37","2d","31","39","30","36","30","35","2d","52","65","63","38","33","2e","68","64","61","0","0","0","24","9c","0","0","0","0","0","0","69","10","a7","55","b6","6a","c0","ac","d9","4f","f3","85","eb","8d","e3","d","1","0","0","1b","32","30","32","34","4d","61","79","32","37","2d","31","39","30","36","31","31","2d","52","65","63","38","34","2e","68","64","61","0","0","0","24","c","0","0","0","0","0","0","d","c7","cc","6f","a0","23","29","87","a9","57","de","de","2b","7f","d1","6b","1","0","0","1b","32","30","32","34","4d","61","79","32","39","2d","31","31","32","35","35","37","2d","52","65","63","38","35","2e","68","64","61","0","0","17","ae","ac","0","0","0","0","0","0","24","dd","af","c7","84","86","65","0","3c","9a","9b","a1","23","fd","98","a9","1","0","0","1b","32","30","32","34","41","75","67","30","38","2d","31","30","34","38","35","35","2d","52","65","63","30","32","2e","68","64","61","0","0","4","14","9c","0","0","0","0","0","0","d3","41","eb","bb","5","23","7b","af","b1","9","59","b0","5b","d8","e0","c8","1","0","0","1b","32","30","32","34","41","75","67","32","35","2d","31","38","32","39","30","32","2d","52","65","63","30","33","2e","68","64","61","0","0","3","89","ac","0","0","0","0","0","0","5e","d9","6d","73","1c","4d","70","b6","44","11","af","c0","fd","78","5f","9b","1","0","0","1b","32","30","32","34","4a","75","6e","31","31","2d","31","35","30","33","33","34","2d","52","65","63","38","38","2e","68","64","61","0","0","0","aa","7c","0","0","0","0","0","0","e","79","c4","3b","cc","34","92","bf","8e","67","a","60","6c","64","d7","29","1","0","0","1b","32","30","32","34","4a","75","6e","31","31","2d","31","35","31","30","31","38","2d","52","65","63","38","39","2e","68","64","61","0","0","1","73","50","0","0","0","0","0","0","f","2b","de","3b","cb","fc","9d","58","c0","d8","99","5b","c3","c0","a4","48","1","0","0","1b","32","30","32","34","4a","75","6e","31","34","2d","31","30","31","34","35","35","2d","52","65","63","39","30","2e","68","64","61","0","1","68","b4","c","0","0","0","0","0","0","52","b9","7b","e5","ad","19","d2","4c","d2","cb","1c","3a","2e","59","4d","31","1","0","0","1b","32","30","32","34","41","75","67","32","35","2d","31","38","33","30","30","31","2d","52","65","63","30","34","2e","68","64","61","0","0","7","91","4c","0","0","0","0","0","0","22","f","17","b8","50","f0","e8","9","e","11","ad","71","3a","16","d","97","1","0","0","1b","32","30","32","34","53","65","70","31","39","2d","31","38","34","32","33","30","2d","52","65","63","30","35","2e","68","64","61","0","0","1","2c","fc","0","0","0","0","0","0","b8","9e","80","69","6d","fd","4c","69","90","a2","87","1d","eb","ad","8b","f2","1","0","0","1b","32","30","32","34","53","65","70","32","33","2d","31","37","35","33","35","30","2d","52","65","63","30","36","2e","68","64","61","0","0","0","ae","6c","0","0","0","0","0","0","21","4a","67","a5","d","8f","f1","23","aa","44","96","4","6a","fe","8c","3f","1","0","0","1b","32","30","32","34","53","65","70","32","33","2d","31","37","35","36","33","38","2d","52","65","63","30","37","2e","68","64","61","0","0","2","8e","3c","0","0","0","0","0","0","55","34","4","e4","c3","14","84","f4","60","e1","a8","ef","2","c8","7c","6b","1","0","0","1b","32","30","32","34","53","65","70","32","33","2d","31","37","35","39","35","36","2d","52","65","63","30","38","2e","68","64","61","0","0","1","6e","cc","0","0","0","0","0","0","c3","3a","28","3b","99","0","b9","13","dc","30","80","41","8a","74","86","a6","1","0","0","1b","32","30","32","34","53","65","70","32","33","2d","31","38","30","35","34","39","2d","52","65","63","30","39","2e","68","64","61","0","0","1","c","5c","0","0","0","0","0","0","aa","7d","bf","5e","61","5d","6","72","1c","92","d6","7a","2","87","f2","9b","1","0","0","1b","32","30","32","34","53","65","70","32","33","2d","31","38","31","30","35","31","2d","52","65","63","31","30","2e","68","64","61","0","0","4","43","dc","0","0","0","0","0","0","92","de","c5","ba","8a","5c","16","3c","78","ec","6","45","51","ba","9c","3a","1","0","0","1b","32","30","32","34","53","65","70","32","34","2d","31","37","30","38","31","30","2d","52","65","63","31","31","2e","68","64","61","0","0","0","85","60","0","0","0","0","0","0","cc","b1","48","cb","ca","57","44","bf","6","ec","bc","7","c1","13","f7","5d","1","0","0","1b","32","30","32","34","53","65","70","32","34","2d","31","37","30","38","35","30","2d","52","65","63","31","32","2e","68","64","61","0","0","9","64","bc","0","0","0","0","0","0","3d","f","16","6d","40","2c","b4","90","72","97","f","f0","32","6e","69","cd","0","0","0","1b","32","30","32","34","4f","63","74","32","34","2d","31","32","33","35","33","35","2d","52","65","63","31","33","2e","68","64","61","0","0","0","4d","ac","0","0","0","0","0","0","4d","5d","eb","a6","31","84","32","f9","4e","47","89","84","a0","fc","2d","35","0","0","0","1b","32","30","32","34","4f","63","74","33","31","2d","31","30","32","35","32","38","2d","52","65","63","31","36","2e","68","64","61","0","0","8","53","ec","0","0","0","0","0","0","3a","a6","df","33","e3","7d","e5","70","c2","61","72","17","ff","2a","5e","9e","0","0","0","1b","32","30","32","34","4f","63","74","33","31","2d","31","30","34","37","35","37","2d","52","65","63","31","39","2e","68","64","61","0","0","8","eb","cc","0","0","0","0","0","0","e3","f2","c2","3e","8e","48","7a","ff","b1","8e","de","3e","58","4f","e5","99","0","0","0","1b","32","30","32","34","4f","63","74","33","31","2d","31","30","33","33","34","35","2d","52","65","63","31","38","2e","68","64","61","0","0","11","8e","6c","0","0","0","0","0","0","18","5f","ee","7b","97","f1","cd","75","64","59","8e","3f","13","0","78","36","0","0","0","1b","32","30","32","34","4f","63","74","33","31","2d","31","31","30","30","35","30","2d","52","65","63","32","30","2e","68","64","61","0","0","0","5c","4c","0","0","0","0","0","0","18","4e","81","94","6b","7b","f0","38","a5","e4","6d","e9","c8","21","e7","b0","0","0","0","1b","32","30","32","34","4e","6f","76","30","31","2d","31","36","34","34","34","36","2d","52","65","63","32","33","2e","68","64","61","0","0","9","5d","6c","0","0","0","0","0","0","a5","4f","72","b1","c6","d0","56","70","11","2","be","87","2a","0","e0","8d","0","0","0","1b","32","30","32","34","4f","63","74","33","31","2d","31","31","30","32","34","39","2d","52","65","63","32","32","2e","68","64","61","0","0","b","1","c","0","0","0","0","0","0","8c","1","dd","12","3f","73","b5","c7","b0","5","24","ad","e8","15","a5","b0","0","0","0","1b","32","30","32","34","4e","6f","76","30","34","2d","30","39","34","30","35","30","2d","52","65","63","32","34","2e","68","64","61","0","1","29","8c","f8","0","0","0","0","0","0","e8","e","5b","9d","bf","7a","3e","96","96","78","2d","a9","84","90","f6","ac","0","0","0","1b","32","30","32","34","4e","6f","76","30","34","2d","31","36","32","31","35","33","2d","52","65","63","32","35","2e","68","64","61","0","1","8","d8","9c","0","0","0","0","0","0","64","ef","7b","43","53","34","74","77","1f","c4","3a","8f","46","3","e0","a9","0","0","0","1b","32","30","32","34","4e","6f","76","30","34","2d","32","30","33","37","32","37","2d","52","65","63","32","36","2e","68","64","61","0","0","d7","da","ec","0","0","0","0","0","0","7","63","1b","58","5f","c3","54","d8","1d","1b","83","6","f2","b2","5f","33","0","0","0","1b","32","30","32","34","4e","6f","76","30","35","2d","31","30","30","35","34","33","2d","52","65","63","32","37","2e","68","64","61","0","2","e2","1","2c","0","0","0","0","0","0","ab","45","d8","3c","3a","42","9e","9b","df","5b","d","15","d3","1f","34","70","0","0","0","1b","32","30","32","34","4e","6f","76","30","35","2d","31","32","31","35","35","33","2d","52","65","63","32","38","2e","68","64","61","0","0","3","e0","54","0","0","0","0","0","0","64","57","d3","44","6d","7","cd","9","a2","c0","8","4a","b1","23","57","99","0","0","0","1b","32","30","32","34","4e","6f","76","30","35","2d","31","32","31","36","33","35","2d","52","65","63","32","39","2e","68","64","61","0","0","22","a","4c","0","0","0","0","0","0","88","9b","13","4","1f","ef","69","c8","25","64","61","33","7","db","87","c5","0","0","0","1b","32","30","32","34","4e","6f","76","30","38","2d","31","35","31","35","30","37","2d","52","65","63","33","30","2e","68","64","61","0","0","d","ae","2c","0","0","0","0","0","0","22","dd","aa","b0","5c","90","33","48","36","a5","b6","85","28","d9","dc","74","0","0","0","1b","32","30","32","34","4e","6f","76","31","31","2d","30","39","35","34","30","37","2d","52","65","63","33","31","2e","68","64","61","0","0","3b","a2","4c","0","0","0","0","0","0","35","dd","36","b3","8f","51","b4","44","20","a9","a5","f","b9","f9","32","d7","0","0","0","1b","32","30","32","34","4e","6f","76","31","34","2d","31","34","32","30","32","34","2d","52","65","63","33","32","2e","68","64","61","0","0","c","91","8c","0","0","0","0","0","0","5f","b7","47","58","5","76","b9","6d","d1","1d","7b","f4","a5","e4","31","57","0","0","0","1b","32","30","32","34","4e","6f","76","31","34","2d","31","34","33","32","32","36","2d","52","65","63","33","33","2e","68","64","61","0","0","3","9c","cc","0","0","0","0","0","0","31","9d","7","2f","91","33","9a","f9","78","d","63","fb","d0","28","bb","22","0","0","0","1b","32","30","32","34","4e","6f","76","31","34","2d","31","38","35","33","34","38","2d","52","65","63","33","34","2e","68","64","61","0","0","85","4","ac","0","0","0","0","0","0","2a","b3","74","64","9a","85","fe","5e","2f","ba","69","7c","79","8a","a8","a0","0","0","0","1b","32","30","32","34","4e","6f","76","31","38","2d","30","39","34","30","30","33","2d","52","65","63","33","35","2e","68","64","61","0","1","5","df","ec","0","0","0","0","0","0","64","42","70","a4","d5","1a","6","4c","d1","e5","75","c7","4f","fd","90","47","0","0","0","1b","32","30","32","34","4e","6f","76","31","39","2d","31","31","34","35","34","39","2d","52","65","63","33","36","2e","68","64","61","0","0","3","a6","ec","0","0","0","0","0","0","27","ba","72","a3","3c","77","4f","40","9","9d","e5","44","7e","d7","c8","ab","0","0","0","1b","32","30","32","34","4e","6f","76","32","31","2d","31","35","31","37","35","39","2d","52","65","63","33","37","2e","68","64","61","0","0","2","13","c","0","0","0","0","0","0","d","6b","7a","b6","c7","ed","e6","58","bf","6e","b8","cc","79","6f","68","70","0","0","0","1b","32","30","32","34","4e","6f","76","32","37","2d","31","35","33","31","32","31","2d","52","65","63","33","38","2e","68","64","61","0","0","ab","81","6c","0","0","0","0","0","0","30","d3","d2","a8","46","48","76","42","97","28","f1","26","2e","7d","48","fc","0","0","0","1b","32","30","32","34","4e","6f","76","32","37","2d","31","35","35","35","31","31","2d","52","65","63","33","39","2e","68","64","61","0","0","20","56","ec","0","0","0","0","0","0","e7","fa","2","1c","f1","65","9b","74","ef","df","56","8c","eb","34","71","19","0","0","0","1b","32","30","32","34","4e","6f","76","32","37","2d","31","36","30","30","35","31","2d","52","65","63","34","30","2e","68","64","61","0","0","48","9f","cc","0","0","0","0","0","0","a1","54","42","9b","4d","2a","a","68","c9","d7","ba","9c","72","6e","5c","6f","0","0","0","1b","32","30","32","34","4e","6f","76","32","37","2d","31","36","31","30","35","36","2d","52","65","63","34","31","2e","68","64","61","0","0","3","a","8c","0","0","0","0","0","0","5b","25","42","99","30","f7","7a","bd","75","a3","6d","88","18","10","6f","a8","0","0","0","1b","32","30","32","34","44","65","63","30","39","2d","31","38","33","38","34","33","2d","52","65","63","34","32","2e","68","64","61","0","0","5b","8c","c","0","0","0","0","0","0","96","e8","8d","93","4e","6b","4","9e","4","cd","ce","9d","5d","65","88","21","0","0","0","1b","32","30","32","34","44","65","63","32","37","2d","31","37","31","30","35","36","2d","52","65","63","34","33","2e","68","64","61","0","0","5","59","2c","0","0","0","0","0","0","1a","78","d4","82","2c","f6","a1","64","80","db","6e","98","1f","14","a7","92","0","0","0","1b","32","30","32","35","4a","61","6e","32","34","2d","31","38","30","30","31","35","2d","52","65","63","34","34","2e","68","64","61","0","0","16","98","cc","0","0","0","0","0","0","eb","ca","8c","d","14","be","6b","a3","5e","9e","97","b7","4b","69","e4","62","0","0","0","1b","32","30","32","35","46","65","62","32","31","2d","31","30","35","33","32","38","2d","52","65","63","34","35","2e","68","64","61","0","0","4","f0","8c","0","0","0","0","0","0","3f","ff","36","36","e3","dd","1c","da","5f","28","d7","5c","1c","ca","42","49","0","0","0","1b","32","30","32","35","46","65","62","32","31","2d","31","30","35","38","30","34","2d","52","65","63","34","36","2e","68","64","61","0","0","2","50","ec","0","0","0","0","0","0","2","1b","89","89","10","ad","59","c4","c8","44","78","30","a4","3c","c6","5b","0","0","0","1b","32","30","32","35","46","65","62","32","31","2d","31","30","35","39","35","33","2d","52","65","63","34","37","2e","68","64","61","0","0","6","b4","cc","0","0","0","0","0","0","de","1f","da","96","5e","dd","fd","97","9f","ce","da","7f","4d","b5","26","4b","0","0","0","1b","32","30","32","35","46","65","62","32","31","2d","31","31","30","30","34","38","2d","52","65","63","34","38","2e","68","64","61","0","0","a","5d","ec","0","0","0","0","0","0","1a","20","1f","f7","5e","be","ff","8f","b1","ee","c1","ca","28","2f","29","c5","0","0","0","1b","32","30","32","35","46","65","62","32","31","2d","31","31","30","39","31","38","2d","52","65","63","34","39","2e","68","64","61","0","0","6","1e","c","0","0","0","0","0","0","b1","44","28","e0","18","46","4e","95","78","4","ec","1f","dd","76","46","32","0","0","0","1b","32","30","32","35","46","65","62","32","31","2d","31","31","31","30","34","38","2d","52","65","63","35","30","2e","68","64","61","0","0","4","43","4c","0","0","0","0","0","0","4d","dc","f2","e5","0","0","e2","bb","28","1d","84","50","c5","a3","f8","b3","0","0","0","1b","32","30","32","35","46","65","62","32","38","2d","31","35","35","32","30","32","2d","52","65","63","35","31","2e","68","64","61","0","0","8","d7","8c","0","0","0","0","0","0","df","6b","11","51","31","7d","74","32","ae","29","be","17","87","8c","f0","e2","0","0","0","1b","32","30","32","35","46","65","62","32","38","2d","31","35","35","36","32","39","2d","52","65","63","35","32","2e","68","64","61","0","0","8","ea","ac","0","0","0","0","0","0","1f","bb","62","5","c4","2c","4d","d4","db","4f","67","1e","3","25","70","7d","0","0","0","1b","32","30","32","35","41","70","72","30","31","2d","31","36","33","35","34","32","2d","52","65","63","35","33","2e","68","64","61","0","0","6","18","6c","0","0","0","0","0","0","de","78","be","5c","c7","73","19","d0","69","e8","94","4c","99","5f","cb","38","0","0","0","1b","32","30","32","35","41","70","72","30","31","2d","31","36","33","38","32","34","2d","52","65","63","35","34","2e","68","64","61","0","0","b","5","8c","0","0","0","0","0","0","b9","81","1f","27","b5","d9","5e","84","16","61","31","31","59","2c","d9","28","0","0","0","1b","32","30","32","35","41","70","72","32","31","2d","31","32","31","39","34","31","2d","52","65","63","35","35","2e","68","64","61","0","0","12","ab","c","0","0","0","0","0","0","67","5a","60","95","d","77","72","9d","6d","f5","29","d3","a6","91","35","b","0","0","0","1b","32","30","32","35","41","70","72","32","31","2d","31","32","32","34","34","39","2d","52","65","63","35","36","2e","68","64","61","0","0","c","2","ac","0","0","0","0","0","0","f0","cb","9b","44","77","a2","70","7e","19","ab","f8","6f","8a","f3","92","f0","0","0","0","1b","32","30","32","35","41","70","72","32","32","2d","31","32","31","35","33","38","2d","52","65","63","35","37","2e","68","64","61","0","0","7","a7","cc","0","0","0","0","0","0","8a","25","d","f7","ad","f1","b1","55","77","a8","2b","bb","35","e9","3e","9a","0","0","0","1b","32","30","32","35","41","70","72","32","32","2d","31","39","32","37","32","33","2d","52","65","63","35","38","2e","68","64","61","0","0","c","97","2c","0","0","0","0","0","0","3d","c3","9a","d8","86","e4","7c","a1","ea","4e","47","92","ec","5b","8f","d2","0","0","0","1b","32","30","32","35","4d","61","79","32","36","2d","31","38","35","39","32","32","2d","52","65","63","35","39","2e","68","64","61","0","0","5","14","8c","0","0","0","0","0","0","1a","1e","5","bf","19","51","59","93","29","da","5f","60","34","b4","19","4c","0","0","0","1b","32","30","32","35","4d","61","79","32","36","2d","31","39","30","32","30","34","2d","52","65","63","36","30","2e","68","64","61","0","1","6","3f","8c","0","0","0","0","0","0","b6","cd","81","29","9d","e6","ab","7d","e1","5c","eb","64","24","a2","80","6c","0","0","0","1b","32","30","32","35","4d","61","79","32","36","2d","31","39","35","39","33","36","2d","52","65","63","36","31","2e","68","64","61","0","0","f","8e","8c","0","0","0","0","0","0","b9","ec","ff","32","d7","16","11","6b","99","6b","3e","dd","e1","a5","c9","fa","0","0","0","1b","32","30","32","35","4d","61","79","32","36","2d","32","30","30","31","34","39","2d","52","65","63","36","32","2e","68","64","61","0","1","23","55","ec","0","0","0","0","0","0","c5","9c","99","9f","27","c9","bf","69","d7","15","82","e8","34","4a","fb","29","0","0","0","1b","32","30","32","35","4d","61","79","32","36","2d","32","30","34","34","35","36","2d","52","65","63","36","33","2e","68","64","61","0","0","89","56","8c","0","0","0","0","0","0","85","1f","3a","b","b9","a8","29","27","5b","a3","ea","cd","7","4d","e6","e7","0","0","0","1b","32","30","32","35","4d","61","79","32","37","2d","31","32","33","31","30","35","2d","52","65","63","36","34","2e","68","64","61","0","0","2","2","2c","0","0","0","0","0","0","6c","93","6c","6f","ba","c1","e7","b0","a","11","69","8d","e3","dc","21","16","0","0","0","1b","32","30","32","35","4d","61","79","32","37","2d","31","34","31","30","31","33","2d","52","65","63","36","35","2e","68","64","61","0","0","4","ba","8c","0","0","0","0","0","0","8f","70","b9","1c","1","58","3","1e","94","ff","c6","92","16","e7","50","ea","0","0","0","1b","32","30","32","35","4d","61","79","32","37","2d","31","35","31","33","33","32","2d","52","65","63","36","37","2e","68","64","61","0","0","5","c","ac","0","0","0","0","0","0","e5","ab","70","17","42","c4","33","30","1b","69","92","46","7e","3b","2","ce","0","0","0","1b","32","30","32","35","4d","61","79","32","37","2d","31","35","31","34","34","39","2d","52","65","63","36","38","2e","68","64","61","0","0","5","7f","6c","0","0","0","0","0","0","b8","43","4b","4b","18","be","88","30","40","ca","25","7d","b7","c3","85","c6","0","0","0","1b","32","30","32","35","4d","61","79","32","37","2d","31","35","32","31","35","32","2d","52","65","63","36","39","2e","68","64","61","0","0","0","97","ec","0","0","0","0","0","0","58","d4","bc","f5","68","7b","6b","9f","8c","ee","3f","28","86","9d","7f","8b","0","0","0","1b","32","30","32","35","4d","61","79","32","37","2d","31","35","32","32","31","30","2d","52","65","63","37","30","2e","68","64","61","0","0","0","c3","cc","0","0","0","0","0","0","52","3e","70","f6","7e","13","ed","ca","87","1","17","59","bc","be","3c","c3","0","0","0","1b","32","30","32","35","4d","61","79","32","37","2d","31","35","32","35","31","37","2d","52","65","63","37","31","2e","68","64","61","0","0","1","32","c","0","0","0","0","0","0","e7","75","76","33","e7","f8","9a","f6","1c","5a","75","15","4d","95","9c","f2","0","0","0","1b","32","30","32","35","4d","61","79","32","37","2d","31","35","35","33","34","39","2d","52","65","63","37","32","2e","68","64","61","0","0","1","44","c","0","0","0","0","0","0","ef","7e","15","84","f1","3a","98","c1","1a","d9","9b","c6","7b","6e","9","86"];
const Logger = {
debug : function(module, action, msg)
{
console.log(module, action, msg);
},
error : function(module, action, msg)
{
console.log(module, action, msg);
},
info : function(module, action, msg)
{
console.log(module, action, msg);
}
}
const GLOBAL_CMD_HANDLER = (msg) => {
let data = [];
let files = [];
let fcount = -1;
let start = 0;
/*
// 这里是为了将多次应答的文件列表组合成一个整体
for (let i = 0; i < jensen[tag].length; i++) {
for (let k = 0; k < jensen[tag][i].length; k++) data.push(jensen[tag][i][k]);
}
*/
data = msg.body;
if ((data[0] & 0xff) == 0xff && (data[1] & 0xff) == 0xff) {
fcount = ((data[2] & 0xff) << 24) | ((data[3] & 0xff) << 16) | ((data[4] & 0xff) << 8) | (data[5] & 0xff);
start += 6;
}
let fnpad = function (v) {
return v > 9 ? v : '0' + v;
};
for (let i = start; i < data.length;) {
let len = 0;
let fname = [];
if (i + 4 >= data.length) break;
let ver = data[i++] & 0xff;
let nameLen = ((data[i++] & 0xff) << 16) | ((data[i++] & 0xff) << 8) | (data[i++] & 0xff);
for (let k = 0; k < nameLen && i < data.length; k++) {
let c = data[i++] & 0xff;
if (c > 0) fname.push(String.fromCharCode(c));
}
// 4 + nameLen + 4 + 6 + 16
if (i + 4 + 6 + 16 > data.length) {
break;
}
let flen = ((data[i++] & 0xff) << 24) | ((data[i++] & 0xff) << 16) | ((data[i++] & 0xff) << 8) | (data[i++] & 0xff);
i += 6;
let sign = [];
for (let k = 0; k < 16; k++, i++) {
let h = (data[i] & 0xff).toString(16);
sign.push(h.length == 1 ? '0' + h : h);
}
let ftime = fname.join('');
let duration = 0;
if (ftime.match(/^\d{14}REC\d+\.wav$/gi)) {
ftime = ftime.replace(/^(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})REC.*$/gi, '$1-$2-$3 $4:$5:$6');
ftime = new Date(ftime);
duration = flen / 32;
} else if (ftime.match(/^(\d{2})?(\d{2})(\w{3})(\d{2})-(\d{2})(\d{2})(\d{2})-.*\.(hda|wav)$/gi)) {
// 2024Mar19-110932-Rec00.hda
ftime = ftime.replace(/^(\d{2})?(\d{2})(\w{3})(\d{2})-(\d{2})(\d{2})(\d{2})-.*\.(hda|wav)$/gi, '20$2 $3 $4 $5:$6:$7');
ftime = new Date(ftime);
duration = (flen / 32) * 4;
}
else {
ftime = null;
}
if (ver == 1) {
duration = duration * 2;
}
else if (ver == 2) {
duration = (flen - 44) / 48 / 2;
}
else if (ver == 3) {
duration = (flen - 44) / 48 / 2 / 2;
}
else if (ver == 5) {
duration = flen / 12;
}
let createDate = '';
let createTime = '';
if (ftime) {
createDate = ftime.getFullYear() + '/' + fnpad(ftime.getMonth() + 1) + '/' + fnpad(ftime.getDate());
createTime = fnpad(ftime.getHours()) + ':' + fnpad(ftime.getMinutes()) + ':' + fnpad(ftime.getSeconds());
}
console.log(fname.join(''));
files.push({
name: fname.join(''),
createDate: createDate,
createTime: createTime,
time: ftime,
duration: duration,
version: ver,
length: flen,
signature: sign.join('')
});
}
// if (fcount == -1 && (fc))
// 如果没有判断数量的依据
if (fcount == -1) {
// return [];
}
// console.log('done');
// console.log(files);
// console.log(files.length);
/*
if ((fc && files.length >= fc.count) || (fcount > -1 && files.length >= fcount)) {
console.log(files);
// delete jensen[tag];
// jensen[tag] = null;
return files.filter((f) => {
return Boolean(f.time);
});
}
*/
}
function Test()
{
let device = null;
let actions = {};
let buffer = [];
let blocks = [];
let sequence = 0;
let current = null;
let commands = [];
let handlers = [];
let statusTimeout = null;
let recv = false;
let ready = false;
let totalBytes = 0;
let self = this;
this.data = {};
// 消息
this.decodeTimeout = 0;
this.timewait = 1;
this.ondisconnect = null;
this.isStopConnectionCheck = false;
this.onconnect = null;
this.onreceive = null;
const RECV_BUFF_SIZE = 51200;
const receive = function (result) {
totalBytes += result.data.byteLength;
// 做一个回调,怎么样找到它呢?
blocks.push(result.data);
tryReceive();
if (self.decodeTimeout) clearTimeout(self.decodeTimeout);
self.decodeTimeout = setTimeout(function () {
tryDecode();
}, self.timewait);
if (self.onreceive) {
try {
self.onreceive(totalBytes);
} catch (e) {}
}
};
const read_int = function (a, b, c, d) {
if (arguments.length === 2) {
return ((a & 0xff) << 8) | (b & 0xff);
} else if (arguments.length === 4) {
return ((a & 0xff) << 24) | ((b & 0xff) << 16) | ((c & 0xff) << 8) | (d & 0xff);
}
};
// 传入一个ArrayBuffer,对它的数据进行解码测试
this.check = function(buff)
{
blocks.push(buff);
tryDecode();
}
const trigger = function (resp, msgid) {
if (current == null) return;
Logger.debug('jensen', 'trigger', 'trigger - ' + current.substring(0, current.lastIndexOf('-')) + ' <---> cmd-' + msgid);
if (current.substring(0, current.lastIndexOf('-')) != 'cmd-' + msgid) {
current = null;
return;
}
if (current in actions == false) {
Logger.debug('jensen', 'trigger', 'no action registered');
return;
}
let p = actions[current];
if (p.timeout) clearTimeout(p.timeout);
p.resolve(resp);
delete actions[current];
current = null;
};
const tryDecode = function () {
// 一个容器,比单独任意一个小包要大一点儿,好像还差一点儿
let stime = new Date();
let buff = new ArrayBuffer(RECV_BUFF_SIZE * 2);
let bview = new Uint8Array(buff);
// buff中实际使用的字节数,有效字节数
let buffLength = 0;
let crash = false;
for (let i = 0, l = blocks.length; i < l; i++) {
let block = blocks.shift();
// 把block加到buff的最末尾
for (let k = 0; k < block.byteLength; k++)
{
bview[k + buffLength] = block.getInt8(k);
}
buffLength += block.byteLength;
let startIndex = 0;
while (true) {
let rst = null;
try {
rst = decodeMessage(bview, startIndex, buffLength);
} catch (e) {
crash = true;
break;
}
if (rst == null) {
break;
}
startIndex += rst.length;
let msg = rst.message;
// WARN: 接下来怎么整
let cname = msg.id === FACTORY_RESET ? 'factory-reset' : COMMAND_NAMES[msg.id];
let heading = [];
for (let x = 0; x < msg.body?.byteLength && x < 32; x++) {
heading.push('0' + (msg.body[x] & 0xff).toString(16).replace(/^0(\w{2})$/gi, '$1'));
}
if (msg.id !== TRANSFER_FILE)
Logger.debug(
'jensen',
'receive',
'recv: ' + cname + ', seq: ' + msg.sequence + ', data bytes: ' + msg.body?.byteLength + ', data: ' + heading.join(' ')
);
try {
let handler = GLOBAL_CMD_HANDLER;
let r = handler(msg, self);
if (r) trigger(r, msg.id);
} catch (e) {
trigger(e);
Logger.error('jensen', 'receive', 'recv: ' + COMMAND_NAMES[msg.id] + ', seq: ' + msg.sequence + ', error: ' + String(e));
}
// sendNext();
}
// 是否已经崩溃了?
if (crash) {
// cmd-5-42
// 5是msgid
let msgid = parseInt(current.replace(/^cmd-(\d+)-(\d+)$/gi, '$1'));
try {
let handler = GLOBAL_CMD_HANDLER;
handler(null, self);
} catch (e) {
trigger(e);
Logger.error('jensen', 'decode', 'decode error: ' + String(e));
}
trigger(null, msgid);
blocks.length = 0;
break;
}
// WARN: 需要把剩余的字节数挪到最前面去
// startIndex已经抵达最后的位置,startIndex -> buffLength就是需要移到最前面去的字节内容了
for (let k = 0, bs = buffLength - startIndex; k < bs; k++) {
bview[k] = bview[k + startIndex];
}
buffLength = buffLength - startIndex;
}
// console.error('Decode: ' + (new Date().getTime() - stime.getTime()) + 'ms');
};
const decodeMessage = function (dataView, startIndex, buffLength) {
let dataLen = buffLength - startIndex;
if (dataLen < 12) return null;
if (dataView[startIndex + 0] !== 0x12 || dataView[startIndex + 1] !== 0x34) throw new Error('invalid header');
// 2 字节的指令id
let idx = 2;
// let cmdid = this.nextShort(idx);
let cmdid = read_int(dataView[startIndex + idx], dataView[startIndex + idx + 1]);
idx += 2;
let sequeue = read_int(
dataView[startIndex + idx + 0],
dataView[startIndex + idx + 1],
dataView[startIndex + idx + 2],
dataView[startIndex + idx + 3]
);
idx += 4;
let len = read_int(
dataView[startIndex + idx + 0],
dataView[startIndex + idx + 1],
dataView[startIndex + idx + 2],
dataView[startIndex + idx + 3]
);
let padding = (len >> 24) & 0xff;
len = len & 0xffffff;
idx += 4;
// 需要去除的字节数
var cutLen = 0;
// 数据还没有完全准备好
if (dataLen < 12 + len + padding) return null;
// 去掉header部分
// 下面这一行做什么用的?
// for (let i = 0; i < 12; i++) this.buffer[i + cutLen];
cutLen += 12;
// 取走body部分
// 数据体部分
// let body = new Uint8Array(new ArrayBuffer(len));
// for (let i = 0; i < len; i++) body.push(this.buffer[i + cutLen]);
let body = dataView.slice(startIndex + cutLen, startIndex + cutLen + len);
cutLen += len;
// 干掉补上来的数据
// 下面这一行做什么用的?
// for (let i = 0; i < padding; i++) this.buffer[i + cutLen];
cutLen += padding;
// self.buffer = self.buffer.slice(cutLen);
return { message: new Message(cmdid, sequeue, body), length: cutLen };
};
this.to_bcd = function (str) {
let x = [];
for (let i = 0; i < str.length; i += 2) {
let h = (str.charCodeAt(i) - 48) & 0xff;
let l = (str.charCodeAt(i + 1) - 48) & 0xff;
x.push((h << 4) | l);
}
return x;
};
this.from_bcd = function () {
let str = '';
for (let i = 0; i < arguments.length; i++) {
let v = arguments[i] & 0xff;
str += (v >> 4) & 0x0f;
str += v & 0x0f;
}
return str;
};
}
function Message(id, sequence, body) {
this.id = id;
this.sequence = sequence;
this.body = body;
}
let data = new ArrayBuffer(hex.length);
let dv = new Uint8Array(data);
for (let i = 0; i < hex.length; i++)
{
dv[i] = parseInt(hex[i], 16) & 0xff;
}
new Test().check(new DataView(data));
</script>
</body>
</html>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment