Пример #1
0
 public static void SendS(string ip, bool start, Action <object> cb)
 {
     if (start)
     {
         _SendCheckCallBackDic["SendST"][ip] = cb;
         SendToTerminal(_CmdParser.SendStartStop(MainEntry.GetTerminalIPEndPoint(ip), true));
     }
     else
     {
         _SendCheckCallBackDic["SendSP"][ip] = cb;
         SendToTerminal(_CmdParser.SendStartStop(MainEntry.GetTerminalIPEndPoint(ip), false));
     }
 }
Пример #2
0
 void ReceiveSyncRsp(StringPackage pkg)
 {
     if (pkg._StringContent == "Y>o")
     {
         Console.WriteLine("ReceiveSyncRsp OK");
         MainEntry.SendCBParse("SendY", "");
     }
     else if (pkg._StringContent == "Y>e")
     {
         Console.WriteLine("ReceiveSyncRsp Failed");
         MainEntry.SendCBParse("SendY", "error");
     }
 }
Пример #3
0
        void ReceiveSensorData(int len, BinaryReader reader, string ip)
        {
            MainEntry.SendToTerminal(SendSensorDataRsp(MainEntry.GetTerminalIPEndPoint(ip)), false);

            UInt32 timestamps  = reader.ReadUInt32();
            UInt32 timestampms = reader.ReadUInt32();
            UInt16 rate        = reader.ReadUInt16();
            UInt16 gain        = reader.ReadUInt16();

            //for(int i = 0;i < len - 12;i += 2)//每次处理2个字节   len - 12 = 1200
            //{
            //    Int16 advalue = reader.ReadInt16();


            //    if(_MySqlConnector != null)
            //    {
            //        _MySqlConnector.InsertSensor(ip, timestampms, advalue);

            //    }
            //}

            if (TerminalController._ConnectedTerminals.ContainsStringKey(ip))
            {
                TerminalController._ConnectedTerminals.GetStringKey(ip).mIsStart = true;
                TerminalController._ConnectedTerminals.GetStringKey(ip).mRate    = rate;
                TerminalController._ConnectedTerminals.GetStringKey(ip).mGain    = gain;
                TerminalController._ConnectedTerminals.GetStringKey(ip).ResetTimer();
            }
            else
            {
                TerminalController._ConnectedTerminals.AddIfNotExistStringKey(ip);
                TerminalController._ConnectedTerminals.GetStringKey(ip).mRate    = rate;
                TerminalController._ConnectedTerminals.GetStringKey(ip).mGain    = gain;
                TerminalController._ConnectedTerminals.GetStringKey(ip).mIsStart = true;
            }


            byte[] bufferdata = reader.ReadBytes(len - 12);
            //if (_MySqlConnector != null)
            //{
            //    _MySqlConnector.InsertSensor(ip, timestamps, timestampms,rate,gain,bufferdata);

            //}

            //测试用
            //ip = string.Format("192.168.{0}.{1}", rate, gain);

            _SensorCache.Insert(ip, timestamps, timestampms, rate, gain, bufferdata);

            Console.WriteLine("ReceiveSensorData " + (len - 12) / 2);
        }
Пример #4
0
        //void ReceiveGroundTruth(StringPackage pkg)
        void ReceiveGroundTruth(int len, BinaryReader reader, string ip)
        {
            try
            {
                //string ip = pkg._ReceiveFrom.Address.ToString();

                //string s = pkg._StringContent;
                //int start = s.IndexOf('>');
                //int end = s.IndexOf('=');
                //string time = s.Substring(start + 1, end - start - 1);
                //string slr = s.Substring(end + 1, 1);
                //ushort lr = Convert.ToUInt16(slr);

                //string[] timeparam = time.Split(':');
                //if (timeparam.Length == 4)
                //{
                //    int hour = Convert.ToInt32(timeparam[0]);
                //    int min = Convert.ToInt32(timeparam[1]);
                //    int sec = Convert.ToInt32(timeparam[2]);
                //    int ms = Convert.ToInt32(timeparam[3]);
                //}


                byte nodeIndex   = reader.ReadByte();
                byte lr          = reader.ReadByte();
                int  timestamps  = reader.ReadInt32();
                int  timestampms = reader.ReadInt32();



                //if (_MySqlConnector != null)
                //{
                //    _MySqlConnector.InsertGroundTruth(ip, timestamps, timestampms, nodeIndex,lr);

                //}


                _GroundTruthCache.Insert(ip, nodeIndex, timestamps, timestampms, lr);

                //MainEntry.SendToTerminal(SendGroundTruthRsp(pkg._ReceiveFrom, true),false);
                MainEntry.SendToTerminal(SendGroundTruthRsp(MainEntry.GetTerminalIPEndPoint(ip), true), false);
            }
            catch (Exception e)
            {
                //MainEntry.SendToTerminal(SendGroundTruthRsp(pkg._ReceiveFrom, false),false);
                MainEntry.SendToTerminal(SendGroundTruthRsp(MainEntry.GetTerminalIPEndPoint(ip), false), false);
            }
        }
Пример #5
0
        void ReceiveMessage(int len, BinaryReader reader, string ip)
        {
            Console.WriteLine("ReceiveMessage OK");

            if (TerminalController._ConnectedTerminals.ContainsStringKey(ip))
            {
                TerminalController._ConnectedTerminals.GetStringKey(ip).ResetTimer();
            }
            else
            {
                TerminalController._ConnectedTerminals.AddIfNotExistStringKey(ip);
            }


            MainEntry.SendToTerminal(SendMessageRsp(MainEntry.GetTerminalIPEndPoint(ip)), false);
        }
Пример #6
0
        void ReceiveSyncAutoRsp(StringPackage pkg)
        {
            if (pkg._StringContent.StartsWith("y"))
            {
                string T1 = pkg._StringContent.Replace("y>", "Y>");

                DateTime recTime = (DateTime)pkg._AddtionalData;
                string   T2      = string.Format("+{0:D2}:{1:D2}:{2:D2}:{3}", recTime.Hour, recTime.Minute, recTime.Second, recTime.Millisecond);

                DateTime now = DateTime.Now;
                string   T3  = string.Format("+{0:D2}:{1:D2}:{2:D2}:{3}", now.Hour, now.Minute, now.Second, now.Millisecond);

                string str = T1 + T2 + T3;
                Console.WriteLine("ReceiveSyncAuto OK");
                MainEntry.SendToTerminal(new StringPackage(pkg._ReceiveFrom, null, str), false);
            }
        }
Пример #7
0
        void ReceiveCollection(int len, BinaryReader reader, string ip)
        {
            if (len == 1)
            {
                char ret = (char)reader.ReadByte();

                if (ret == 'o')
                {
                    Console.WriteLine("ReceiveCollection OK");
                    MainEntry.SendCBParse("SendC", ip);
                }
                else if (ret == 'e')
                {
                    Console.WriteLine("ReceiveCollection Error");
                    MainEntry.SendCBParse("SendC", "error");
                }
            }
        }
Пример #8
0
        void ParseJsonFromWeb(JsonPackage pkg)
        {
            try
            {
                string cmd = pkg.GetString("cmd").ToString();

                if (cmd == "check")
                {
                    IPEndPoint iep = MainEntry.GetTerminalIPEndPoint(pkg.GetString("ip"));
                    MainEntry.SendToTerminal(SendCheck(iep));

                    MainEntry.SendToWeb(SendCmdJson("checkrsp", pkg.GetString("ip"), "ok"));
                }
                else if (cmd == "reset")
                {
                    IPEndPoint iep = MainEntry.GetTerminalIPEndPoint(pkg.GetString("ip"));
                    MainEntry.SendToTerminal(SendReset(iep));

                    MainEntry.SendToWeb(SendCmdJson("resetrsp", pkg.GetString("ip"), "ok"));
                }
                else if (cmd == "startstop")
                {
                    IPEndPoint iep = MainEntry.GetTerminalIPEndPoint(pkg.GetString("ip"));
                    MainEntry.SendToTerminal(SendStartStop(iep, pkg.GetBool("isstart")));
                }
                else if (cmd == "collection")
                {
                    IPEndPoint iep = MainEntry.GetTerminalIPEndPoint(pkg.GetString("ip"));
                    MainEntry.SendToTerminal(SendCollect(iep, pkg.GetUInt16("gain"), pkg.GetUInt16("rate")));
                }
                else if (cmd == "mcu")
                {
                    IPEndPoint iep = MainEntry.GetTerminalIPEndPoint(pkg.GetString("ip"));
                    MainEntry.SendToTerminal(SendMCU(iep, pkg.GetString("binpath")));
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }
        }
Пример #9
0
        void ReceiveMCU(int len, BinaryReader reader, string ip)
        {
            if (len == 1)
            {
                char ret = (char)reader.ReadByte();

                if (ret == 'o')
                {
                    Console.WriteLine("ReceiveMCU OK");

                    MainEntry.SendCBParse("SendU", ip);

                    _CurrentMCUFrame = 0;

                    MainEntry.SendToTerminal(SendMCUData(MainEntry.GetTerminalIPEndPoint(ip)));
                }
                else if (ret == 'e')
                {
                    Console.WriteLine("ReceiveMCU Error");
                    MainEntry.SendCBParse("SendU", "error");
                }
            }
        }
Пример #10
0
        private void HandleTimer(object data)
        {
            PackageTimerData ptdata = data as PackageTimerData;

            ptdata._Count++;

            if (ptdata._Count > _MaxRetry && _WaitingRspDic.ContainsKey(ptdata._Package._Cmd))
            {
                RemovePackage(ptdata._Package._Cmd);

                Console.WriteLine(string.Format("QueueNeedRsp Retry Failed: {0} IP: {1}", ptdata._Package._Cmd, ptdata._Package._SendTo.Address));
            }
            else
            {
                Console.WriteLine(string.Format("QueueNeedRsp Retry Cmd: {0} count: {1}", ptdata._Package._Cmd, ptdata._Count));

                MainEntry.SendToTerminal(ptdata._Package, false);


                var stateTimer = new Timer(HandleTimer,
                                           data, _Timeout, Timeout.Infinite);
                ptdata._Timer = stateTimer;
            }
        }
Пример #11
0
 public static void SendYAuto(string ip, Action <object> cb)
 {
     _SendCheckCallBackDic["SendYAuto"][ip] = cb;
     SendToTerminal(_CmdParser.SendSyncAuto(MainEntry.GetTerminalIPEndPoint(ip), ""));
 }
Пример #12
0
 public static void SendC(string ip, short m, short n, Action <object> cb)
 {
     _SendCheckCallBackDic["SendC"][ip] = cb;
     SendToTerminal(_CmdParser.SendCollect(MainEntry.GetTerminalIPEndPoint(ip), m, n));
 }
Пример #13
0
        public static void DebugSend()
        {
            string s = Console.ReadLine();

            string cmd   = "";
            string ip    = "";
            string param = "";

            if (cmd == "quit")
            {
                _bQuit = true;
            }
            else if (cmd == "stop")
            {
                char timercmd = (ParseConsoleLine(s, 1))[0];
                QueueNeedRsp.Instance.RemovePackage(timercmd);
            }
            else if (cmd == "t")
            {
                SendToTerminal(_CmdParser.SendCheck(MainEntry.GetTerminalIPEndPoint(ip)));
            }
            else if (cmd == "r")
            {
                SendToTerminal(_CmdParser.SendReset(MainEntry.GetTerminalIPEndPoint(ip)));
            }
            else if (cmd == "s")
            {
                if (param == "t")
                {
                    SendToTerminal(_CmdParser.SendStartStop(MainEntry.GetTerminalIPEndPoint(ip), true));
                }
                else if (param == "p")
                {
                    SendToTerminal(_CmdParser.SendStartStop(MainEntry.GetTerminalIPEndPoint(ip), false));
                }
            }
            else if (cmd == "c")
            {
                short n = Convert.ToInt16(ParseConsoleLine(s, 2));
                short m = Convert.ToInt16(ParseConsoleLine(s, 3));

                SendToTerminal(_CmdParser.SendCollect(MainEntry.GetTerminalIPEndPoint(ip), n, m));
            }
            else if (cmd == "u")
            {
                string path = ParseConsoleLine(s, 2);

                SendToTerminal(_CmdParser.SendMCU(MainEntry.GetTerminalIPEndPoint(ip), path));
            }
            else if (cmd == "A")
            {
                SendToTerminal(_CmdParser.SendSensorDataRsp(MainEntry.GetTerminalIPEndPoint(ip)));
            }
            else if (cmd == "G")
            {
                if (param == "o")
                {
                    SendToTerminal(_CmdParser.SendGroundTruthRsp(MainEntry.GetTerminalIPEndPoint(ip), true));
                }
                else if (param == "e")
                {
                    SendToTerminal(_CmdParser.SendGroundTruthRsp(MainEntry.GetTerminalIPEndPoint(ip), false));
                }
            }
            else if (cmd == "y")
            {
                SendToTerminal(_CmdParser.SendSync(MainEntry.GetTerminalIPEndPoint(ip)));
            }
            else if (cmd == "Y")
            {
                SendToTerminal(_CmdParser.SendSyncAuto(MainEntry.GetTerminalIPEndPoint(ip), "Y>t1+t2"));
            }
        }
Пример #14
0
 void ReceiveCheck(int len, BinaryReader reader, string ip)
 {
     Console.WriteLine("ReceiveCheck OK");
     MainEntry.SendCBParse("SendT", ip);
 }
Пример #15
0
 public static void SendT(string ip, Action <object> cb)
 {
     _SendCheckCallBackDic["SendT"][ip] = cb;
     SendToTerminal(_CmdParser.SendCheck(MainEntry.GetTerminalIPEndPoint(ip)), false);
 }
Пример #16
0
 void ReceiveMessage(int len, BinaryReader reader, string ip)
 {
     Console.WriteLine("ReceiveMessage OK");
     MainEntry.SendToTerminal(SendMessageRsp(MainEntry.GetTerminalIPEndPoint(ip)), false);
 }