private void S_Receive_Result(sys_receive_data obj) { switch (obj.ReturnType) { case ReturnDataType.SettingRet: sys_send_result ret = obj.Send_Result; Console.WriteLine(ret.txt); break; case ReturnDataType.ProduceRet: this.tb_c_ang.Text = obj.Angle_data; this.tb_c_ang_unit.Text = obj.Ang_unit; this.tb_c_check.Text = obj.IsOk.ToString(); this.tb_c_no.Text = obj.SeqNo.ToString(); this.tb_c_result.Text = obj.Result; this.tb_c_sn.Text = obj.Sn; this.tb_c_torque.Text = obj.Torque_data; this.tb_c_torque_unit.Text = obj.Torque_unit; this.tb_c_worktype.Text = s.WorkType.ToString(); break; default: break; } }
/// <summary> /// 数据解析逻辑 /// </summary> /// <param name="strResult"></param> private void ReceiveData_Logic(string strResult) { sys_receive_data return_data = new sys_receive_data(); bool ok = strResult.IndexOf("RE003,OK") >= 0 ? true : false; bool error = strResult.IndexOf("RE004,ERROR") >= 0 ? true : false; bool e10 = strResult.IndexOf("E10") >= 0 ? true : false; bool re = strResult.IndexOf("RE,") >= 0 ? true : false; //接收发送指令后的返回值 if (ok || error || e10) { sys_send_result ret = new sys_send_result(); string[] r = strResult.Replace("\r\n", "").Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries); if (r.Length == 2) { ret.code = r[0]; ret.msg = r[1]; } switch (r[0]) { case "RE003": ret.txt = "设置成功"; msg.msgtype = Common.Common.MessageType.Info; msg.messageinfo = ret.txt; msg.is_success = true; Event_Msg?.Invoke(msg); break; case "RE004": ret.txt = "设定值错误"; msg.msgtype = Common.Common.MessageType.Error; msg.messageinfo = ret.txt; msg.is_success = false; Event_Msg?.Invoke(msg); break; case "E10": ret.txt = "设定值错误,送信指令的前端没有附加AT指令"; msg.msgtype = Common.Common.MessageType.Error; msg.messageinfo = ret.txt; msg.is_success = false; Event_Msg?.Invoke(msg); break; default: ret.txt = strResult; msg.msgtype = Common.Common.MessageType.Info; msg.messageinfo = ret.txt; msg.is_success = false; Event_Msg?.Invoke(msg); break; } return_data.ReturnType = Common.Common.ReturnDataType.SettingRet; return_data.Send_Result = ret; } //接收仪器主动发送的值 else if (re) { List <string> data = strResult.Replace("\r\n", "").Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries).ToList(); switch (_Singleton._sys_serial.CommuitType) { case Common.Common.ComType.M3ID: return_data.Head = data[0]; return_data.SeqNo = data[1]; return_data.Torque_data = data[2]; return_data.Torque_unit = data[3]; return_data.Angle_data = data[4]; return_data.Ang_unit = data[5]; return_data.Result = data[6]; return_data.Sn = data[7]; switch (_Singleton._sys_serial.WorkType) { case Common.Common.WorkMode.Torque: return_data.IsOk = data[6].Substring(0, 1) == "O"; break; case Common.Common.WorkMode.Ang: return_data.IsOk = data[6].Substring(1, 1) == "O"; break; case Common.Common.WorkMode.Both: return_data.IsOk = data[6] == "OO"; break; default: break; } break; case Common.Common.ComType.M3: return_data.Head = data[0]; return_data.SeqNo = data[1]; return_data.Torque_data = data[2]; break; default: break; } return_data.ReturnType = Common.Common.ReturnDataType.ProduceRet; } else { } Receive_Result?.Invoke(return_data); }