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