DELL_jzs
2022-02-26 c25482e9cc5aa1343d7b38bff3d06d0d9c86c1c7
init
2个文件已添加
307 ■■■■■ 已修改文件
自助机测试/index.html 144 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
自助机测试/js/WebSocketClient.js 163 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
×ÔÖú»ú²âÊÔ/index.html
New file
@@ -0,0 +1,144 @@
<!DOCTYPE html>
<html>
<head>
    <title>自助机测试</title>
    <script src="./js/WebSocketClient.js"></script>
</head>
<body>
    <div>
        <p id="con_ststus">连接成功</p>
    </div>
    <div>
        <p id="dev_ststus">设备状态</p>
    </div>
    <div>
        <P id="dev_info">设备信息</P>
    </div>
    <div>
        <input type="button" value="打印单管" onclick="btn_click_Dan()">
        <input type="button" value="打印多管" onclick="btn_click_Duo()">
        <input type="button" value="清除状态" onclick="btn_click_Clear()">
    </div>
    <div>
    </div>
</body>
<script type="text/javascript">
    //更新连接状态
    function Update_Con_Status(msg) {
        document.getElementById('con_ststus').innerHTML = msg;
    }
    function Update_Dev_Info() {
    }
    Client.OnOpen = function () {
        Update_Con_Status("连接成功");
    };
    Client.OnClose = function () {
        Update_Con_Status("连接断开");
    };
    Client.OnMsg = function (result) {
        document.getElementById('dev_info').innerHTML = JSON.stringify(result);
    }
    function btn_click_Dan() {
        console.log("打印单管");
        var itemObj = {
            "Code": 10, // 10,表示 æ‰“印项目,ItemData ä¸ºé¡¹ç›®ä¿¡æ¯
            "ItemData": {
                "TubeType": 1, //必填,1:病毒,2:试剂
                "Id": "打印项目的唯一Id", //必填,打印项目的唯一Id
                "TestItem": "如:病毒采样", //必须指定,打印项目名称
                "Barcode": "010203040506", //必填,条码号
                //以下信息和标签打印的内容有关,根据实际情况赋值
                "PatientNo": "1002",
                "PatientName": "张三",
                "PatientSex": "男",
                "PatientAge": "18岁",
                "DeptDoc": "申请科室",
                "DeptTest": "检验科室",
                "SampleName": "标本名称",
                "ItemAddTime": "2021-11-12 23:12:39"
            }
        };
        if (Client.IsOpen) {
            ClientSendToServerObj(itemObj);
            console.log("打印单管完成");
            Update_Con_Status("连接成功 [打印单管发送完成]");
        } else {
            console.log("未连接设备!");
            Update_Con_Status("连接断开 [打印单管发送失败]");
        }
    }
    function btn_click_Duo() {
        console.log("打印多管");
        var itemObj = {
            "Code": 100, // 10,表示 æ‰“印项目,ItemData ä¸ºé¡¹ç›®ä¿¡æ¯
            "ItemDatas": [{
                "TubeType": 1, //必填,1:病毒,2:试剂
                "Id": "打印项目的唯一Id", //必填,打印项目的唯一Id
                "TestItem": "如:病毒采样", //必须指定,打印项目名称
                "Barcode": "010203040506", //必填,条码号
                //以下信息和标签打印的内容有关,根据实际情况赋值
                "PatientNo": "1002",
                "PatientName": "张三",
                "PatientSex": "男",
                "PatientAge": "18岁",
                "DeptDoc": "申请科室",
                "DeptTest": "检验科室",
                "SampleName": "标本名称",
                "ItemAddTime": "2021-11-12 23:12:39"
            }, {
                "TubeType": 1, //必填,1:病毒,2:试剂
                "Id": "打印项目的唯一Id1", //必填,打印项目的唯一Id
                "TestItem": "如:病毒采样1", //必须指定,打印项目名称
                "Barcode": "010203040507", //必填,条码号
                //以下信息和标签打印的内容有关,根据实际情况赋值
                "PatientNo": "1002",
                "PatientName": "张三",
                "PatientSex": "男",
                "PatientAge": "18岁",
                "DeptDoc": "申请科室",
                "DeptTest": "检验科室",
                "SampleName": "标本名称",
                "ItemAddTime": "2021-11-12 23:12:39"
            }]
        };
        if (Client.IsOpen) {
            ClientSendToServerObj(itemObj);
            console.log("打印多管完成");
            Update_Con_Status("连接成功 [打印多管发送完成]");
        } else {
            console.log("未连接设备!");
            Update_Con_Status("连接断开 [打印多管发送失败]");
        }
    }
    function btn_click_Clear() {
        console.log("打印多管");
        var itemObj = {
            "Code": 11 // 10,表示 æ‰“印项目,ItemData ä¸ºé¡¹ç›®ä¿¡æ¯
        };
        if (Client.IsOpen) {
            ClientSendToServerObj(itemObj);
            console.log("清除试管完成");
            Update_Con_Status("连接成功 [清除试管发送完成]");
        } else {
            console.log("未连接设备!");
            Update_Con_Status("连接断开 [清除试管发送失败]");
        }
    }
</script>
</html>
×ÔÖú»ú²âÊÔ/js/WebSocketClient.js
New file
@@ -0,0 +1,163 @@
/**
 * æœåŠ¡åœ°å€
 */
let url = "ws://127.0.0.1:5050/";
/**
 * WebSocketClient å®¢æˆ·ç«¯
 */
let WebSocketClient;
/**
 * å®¢æˆ·ç«¯çŠ¶æ€
 */
let Client = {
    /**是否连接 */
    IsOpen: false,
    /**最新收到的服务端信息 */
    Receive: null,
    /**重连检测计时器 */
    JiShiQi: null,
    /**打开事件 */
    OnOpen: null,
    /**关闭事件 */
    OnClose: null,
    /**接收到信息事件 */
    OnMsg: null,
}
/**
 * ä¿¡æ¯è¿”回类型
 */
let Result = {
    Order: "",
    Time: new Date()
};
/**
 * æ‰“开连接完成
 * @param {*} model
 */
function OnOpen(model) {
    console.log("打开连接完成");
    Client.IsOpen = true;
    if (typeof (Client.OnOpen) == 'function') {
        Client.OnOpen();
    }
}
/**
 * è¿žæŽ¥æ–­å¼€
 * @param {*} model
 */
function OnClose(model) {
    // console.log("连接断开");
    Client.IsOpen = false;
    if (typeof (Client.OnClose) == 'function') {
        Client.OnClose();
    }
}
/**
 * é”™è¯¯
 * @param {*} error
 */
function OnError(error) {
    //console.error(error);
}
/**
 * å®¢æˆ·ç«¯ä¸»åŠ¨å‘æœåŠ¡ç«¯å‘é€æ¶ˆæ¯
 * @param {String} msg å‘送的字符串
 */
function ClientSendToServerMsg(msg) {
    if (msg != null && msg.length > 0) {
        WebSocketClient.send(msg);
    }
}
/**
 * å®¢æˆ·ç«¯ä¸»åŠ¨å‘æœåŠ¡ç«¯å‘é€å®žä¾‹
 * @param {Object} obj å¯¹è±¡å®žä¾‹
 */
function ClientSendToServerObj(obj) {
    if (null != obj) {
        var msg = JSON.stringify(obj);
        WebSocketClient.send(msg);
    }
}
/**
 * æ•°æ®æŽ¥æ”¶
 * @param {*} model
 */
function OnMessage(model) {
    var result = JSON.parse(model.data);
    console.log(result);
    Client.Receive = result;
    // Result.Order = result.Order;
    // Result.Time = new Date();
    // ClientSendToServerObj(Result);
    if (typeof (Client.OnMsg) == 'function') {
        Client.OnMsg(result);
    }
}
/**
 * æ‰“开连接
 */
function Open() {
    //隔离执行,连接失败后可继续连接
    (function () {
        //初始化参数
        Client.IsOpen = false;
        Client.Receive = null;
        Result.Order = "";
        Result.Time = new Date();
        if ('WebSocket' in window) {
            WebSocketClient = new WebSocket(url);
        }
        else if ('MozWebSocket' in window) {
            WebSocketClient = new MozWebSocket(url);
        }
        else {
            alert("浏览器不支持WebSocket");
        }
        WebSocketClient.onopen = OnOpen;
        WebSocketClient.onclose = OnClose;
        WebSocketClient.onerror = OnError;
        WebSocketClient.onmessage = OnMessage;
    })();
}
/**
 * æ£€æµ‹çŠ¶æ€
 */
function Detect() {
    //已连接
    if (Client.IsOpen && WebSocketClient.readyState == 1) {
        //Result.Time = new Date();
        //ClientSendToServerObj(Result);
    } else {
        Open();
    }
    // console.log(Client);
    // console.log(WebSocketClient);
}
//启动
(function () {
    Open();
    Client.JiShiQi = setInterval(Detect, 5000);
})()