public static JavaClientControl GetInstance() { if (instance == null) { lock (objLock) { if (instance == null) { instance = new JavaClientControl(); } } } return(instance); }
/// <summary> /// 接收数据 /// </summary> /// <param name="code">功能码</param> /// <param name="data">正文数据</param> public void ReceiveMsg(byte code, byte[] data) { try { switch (code) { case CODE_HEARTBEAT: WriteLogRealize.GetInstance().WriteTo_rTxtHeart(false, code, data); break; case CODE_FACELOCATION: WriteLogRealize.GetInstance().WriteTo_rTxtOffset(CODE_FACELOCATION, data); break; case CODE_DETECTION: //行人检测 WriteLogRealize.GetInstance().WriteTo_rTxtCode(false, code, data); var str1 = BitConverter.ToString(data, 0).Replace("-", string.Empty).ToLower(); byte[] bytes1 = Encoding.UTF8.GetBytes(str1); JavaClientControl.GetInstance().SendDataToJava((short)code, bytes1).Employ(); break; case CODE_UPDATECONFIG: //上传配置 WriteLogRealize.GetInstance().WriteTo_rTxtCode(false, code, data); var str2 = BitConverter.ToString(data, 0).Replace("-", string.Empty).ToLower(); byte[] bytes2 = Encoding.UTF8.GetBytes(str2); JavaClientControl.GetInstance().SendDataToJava((short)code, bytes2).Employ(); break; case CODE_ISSUECONFIG: //下发配置图片 WriteLogRealize.GetInstance().WriteTo_rTxtCode(false, code, data); JavaClientControl.GetInstance().SendDataToJava((short)code, data).Employ(); break; case CODE_ISSUEALARM: //下发行人报警 var tempStr1 = Encoding.UTF8.GetString(data); PedestriansAlarm obj1 = JsonConvert.DeserializeObject <PedestriansAlarm>(tempStr1); if (obj1 != null) { WriteLogRealize.GetInstance().WriteTo_rTxtLog(string.Format("机器人{0}发现X1:{1},Y1:{2},X2:{3},Y2:{4}处,有人{5}", obj1.Robotnumber, obj1.X1, obj1.Y1, obj1.X2, obj1.Y2, obj1.type)); } WriteLogRealize.GetInstance().WriteTo_rTxtCode(false, code, data); JavaClientControl.GetInstance().SendDataToJava((short)code, data).Employ(); break; case CODE_FOLLOW: //跟随 WriteLogRealize.GetInstance().WriteTo_rTxtCode(false, code, data); byte followFail = 0x6F; if (data[0].Equals(followFail)) { SendMsg(CODE_FOLLOW, new byte[] { 0x5E }); } break; case CODE_SELECT: WriteLogRealize.GetInstance().WriteTo_rTxtSelect(data); WriteLogRealize.GetInstance().WriteTo_rTxtCode(false, code, data); JavaClientControl.GetInstance().SendDataToJava((short)code, data).Employ(); break; case CODE_ALARM: var tempStr = Encoding.UTF8.GetString(data); AlarmFaceInfo obj = JsonConvert.DeserializeObject <AlarmFaceInfo>(tempStr); if (obj != null) { WriteLogRealize.GetInstance().WriteTo_rTxtLog(string.Format("机器人{0}发现{1}名单,人员编号为{2}", obj.robotnumber, obj.type, obj.serialnumber)); } WriteLogRealize.GetInstance().WriteTo_rTxtCode(false, code, data); JavaClientControl.GetInstance().SendDataToJava((short)code, data).Employ(); break; case CODE_IDENTIFY: WriteLogRealize.GetInstance().WriteTo_rTxtCode(false, code, data); var str3 = BitConverter.ToString(data, 0).Replace("-", string.Empty).ToLower(); byte[] bytes3 = Encoding.UTF8.GetBytes(str3); JavaClientControl.GetInstance().SendDataToJava((short)code, bytes3).Employ(); break; case CODE_UPDATE: WriteLogRealize.GetInstance().WriteTo_rTxtCode(false, code, data); var str4 = BitConverter.ToString(data, 0).Replace("-", string.Empty).ToLower(); byte[] bytes4 = Encoding.UTF8.GetBytes(str4); JavaClientControl.GetInstance().SendDataToJava((short)code, bytes4).Employ(); break; case CODE_DELETE: WriteLogRealize.GetInstance().WriteTo_rTxtCode(false, code, data); var str5 = BitConverter.ToString(data, 0).Replace("-", string.Empty).ToLower(); byte[] bytes5 = Encoding.UTF8.GetBytes(str5); JavaClientControl.GetInstance().SendDataToJava((short)code, bytes5).Employ(); break; case CODE_CLEAR: WriteLogRealize.GetInstance().WriteTo_rTxtCode(false, code, data); var str6 = BitConverter.ToString(data, 0).Replace("-", string.Empty).ToLower(); byte[] bytes6 = Encoding.UTF8.GetBytes(str6); JavaClientControl.GetInstance().SendDataToJava((short)code, bytes6).Employ(); break; } } catch (Exception ex) { WriteLogRealize.GetInstance().WriteTo_rTxtLog("解析算法数据异常:" + ex.ToString()); } }