示例#1
0
 public static WriteLogRealize GetInstance()
 {
     if (instance == null)
     {
         lock (objLock)
         {
             if (instance == null)
             {
                 instance = new WriteLogRealize();
             }
         }
     }
     return(instance);
 }
示例#2
0
        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());
            }
        }
示例#3
0
 /// <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);
 }
示例#4
0
 /// <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);
 }
示例#5
0
        /// <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());
            }
        }