public static WriteLogRealize GetInstance() { if (instance == null) { lock (objLock) { if (instance == null) { instance = new WriteLogRealize(); } } } return(instance); }
private void JavaClientControl_DataReceived(short code, byte[] bytes) { try { WriteLogRealize.GetInstance().WriteTo_rTxtJavaCode(false, code, bytes); switch (code) { case SELECTFACE: //查询人脸名单 var str01 = Encoding.UTF8.GetString(bytes); byte byte01 = (byte)int.Parse(str01); byte selectCode = 0x05; RobotClientControl.GetInstance().SendMsg(selectCode, new byte[] { byte01 }); ////模拟数据返回 //List<SelectFaceInfo> tempList = new List<SelectFaceInfo>() //{ // new SelectFaceInfo() // { // type = "white", // filename = "123.jpg", // idnumber = "10011", // index = 1, // name = "张山", // serialnumber = "1", // sex = "男", // toal = 2 // }, // new SelectFaceInfo() // { // type = "black", // filename = "234.jpg", // idnumber = "10021", // index = 2, // name = "李四", // serialnumber = "2", // sex = "男", // toal = 2 // } //}; //string jsonStr1 = UtilityJson.SerializeObject(tempList); //byte[] bytes1 = Encoding.UTF8.GetBytes(jsonStr1); //SendDataToJava(SELECTFACE, bytes1).Employ(); break; case UPDATEFACE: //上传人脸名单 byte updateCode = 0x04; RobotClientControl.GetInstance().SendMsg(updateCode, bytes); //模拟数据返回 //SendDataToJava(UPDATEFACE, Encoding.UTF8.GetBytes("0x1F")).Employ(); break; case DELETEFACE: //删除人脸名单 byte deleteCode = 0x06; //var str02 = Encoding.UTF8.GetString(bytes); //byte byte02 = (byte)int.Parse(str02); RobotClientControl.GetInstance().SendMsg(deleteCode, bytes); //模拟数据返回 //SendDataToJava(DELETEFACE, Encoding.UTF8.GetBytes("0x1F")).Employ(); break; case CLEARFACE: //清空人脸名单 byte clearCode = 0x07; RobotClientControl.GetInstance().SendMsg(clearCode, bytes); //模拟数据返回 //SendDataToJava(CLEARFACE, Encoding.UTF8.GetBytes("0x1F")).Employ(); break; case IDENTIFYFACE: //人脸识别 byte identifyCode = 0x03; RobotClientControl.GetInstance().SendMsg(identifyCode, bytes); //模拟数据返回 //SendDataToJava(IDENTIFYFACE, Encoding.UTF8.GetBytes("0x1F")).Employ(); //short tempshort1 = 0x08; //报警 //string filename = @"C:\Users\Administrator\Desktop\20180811113140.jpg"; //byte[] tempBytes = File.ReadAllBytes(filename); ////bas64编码 //string base64txt = Convert.ToBase64String(tempBytes); //AlarmFaceInfo alarmFaceInfo = new AlarmFaceInfo() //{ // name = "夏六马", // robotnumber = 1, // serialnumber = "1", // type = "white", // imagebytes = base64txt //}; //string jsonStr2 = UtilityJson.SerializeObject(alarmFaceInfo); //byte[] bytes2 = Encoding.UTF8.GetBytes(jsonStr2); //SendDataToJava(tempshort1, bytes2).Employ(); break; case REGIONDETECTION: //区域监测 byte detectionCode = 0x20; RobotClientControl.GetInstance().SendMsg(detectionCode, bytes); break; case UPLOADCONFIG: //上传人脸名单 byte uploadconfigCode = 0x21; RobotClientControl.GetInstance().SendMsg(uploadconfigCode, bytes); break; } } catch (Exception ex) { WriteLogRealize.GetInstance().WriteTo_rTxtLog("解析Java数据异常:" + ex.ToString()); } }
/// <summary> /// 发送数据 /// </summary> /// <param name="code">功能码</param> /// <param name="bs">正文</param> /// <returns></returns> public async Task SendDataToJava(short code, byte[] bs) { WriteLogRealize.GetInstance().WriteTo_rTxtJavaCode(true, code, bs); await ServerCommunicationRealize.GetInitialize().Send(code, bs); }
/// <summary> /// 发送TCP信息 /// </summary> /// <param name="code">功能码</param> /// <param name="data">正文数据</param> public void SendMsg(byte code, byte[] data) { TransitRaalize.GetInstance().DealRobotMsg(code, data); WriteLogRealize.GetInstance().WriteTo_rTxtCode(true, code, data); }
/// <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()); } }