/// <summary> /// 通过 socket 发送 finished 指令 /// </summary> /// <returns></returns> public override bool socketSendFinished() { // 停止仪器工作 foreach (var itm in _instDevices) { itm.DisableInstDevice(); } // 解析收到的指令 SocketCmdMessage msg = new SocketCmdMessage(SocketCmd.Finished); msg.ExecuteSucceed = true; _socketServer.pushMessage(JObject.FromObject(msg)); return(true); }
/// <summary> /// Socket 接收到消息 - 事件处理函数 /// </summary> /// <param name="message"></param> private void _socketServer_MessageReceievedEvent(JObject message) { // 解析收到的指令 SocketCmdMessage msg = message.ToObject <SocketCmdMessage>(); // todo: 如何处理错误情况 switch (msg.cmdType) { // 开始控温流程 case SocketCmd.AutoStart: msg.ExecuteSucceed = SocketReceiveMessageEvent.Invoke(message); _socketServer.pushMessage(JObject.FromObject(msg)); break; // 停止控温流程 case SocketCmd.Stop: msg.ExecuteSucceed = SocketReceiveMessageEvent.Invoke(message); _socketServer.pushMessage(JObject.FromObject(msg)); break; // 读取仪器信息 case SocketCmd.TestId: // 接收到 testID SocketTestIdxMessage msgSend1 = message.ToObject <SocketTestIdxMessage>(); bool rlt = getInstInfoFromSql(msgSend1.TestIdx); msgSend1.ExecuteSucceed = rlt; _socketServer.pushMessage(JObject.FromObject(msgSend1)); break; case SocketCmd.DeviceState: // 返回收到的指令 SocketStateMessage msgSend2 = message.ToObject <SocketStateMessage>(); SocketReceiveMessageEvent.Invoke(message); break; case SocketCmd.DeviceStatus: msg.ExecuteSucceed = SocketReceiveMessageEvent.Invoke(message); break; default: //nlogger.Error("unknow socket cmd: " + msg.cmdType.ToString()); break; } }