Пример #1
0
        void ReceiveMCUData(int len, BinaryReader reader, string ip)
        {
            if (len == 1)
            {
                char ret = (char)reader.ReadByte();

                if (ret == 'o')
                {
                    _CurrentMCUFrame++;

                    MainEntry.SendToTerminal(SendMCUData(MainEntry.GetTerminalIPEndPoint(ip)));

                    Console.WriteLine("ReceiveMCUData Frame OK");
                }
                else if (ret == 'e')
                {
                    _CurrentMCUFrame = 0;

                    Console.WriteLine("ReceiveMCUData Error");
                }
                else if (ret == 'c')
                {
                    _CurrentMCUFrame = 0;
                    Console.WriteLine("ReceiveMCUData All OK");
                }
            }
        }
Пример #2
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);

            //    }
            //}



            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);

            Console.WriteLine("ReceiveSensorData " + (len - 12) / 2);
        }
Пример #3
0
        void ReceiveCheck(int len, BinaryReader reader, string ip)
        {
            Console.WriteLine("ReceiveCheck OK");

            var pkg = SendCheck(MainEntry.GetTerminalIPEndPoint(ip));

            Console.WriteLine("ReceiveCheck OK Pkg");
            MainEntry.SendToTerminal(pkg, false);

            Console.WriteLine("ReceiveCheck OK Finish");
        }
Пример #4
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);
        }
Пример #5
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);
            }
        }
Пример #6
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);
        }
Пример #7
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);
            }
        }
Пример #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
 void ReceiveMessage(int len, BinaryReader reader, string ip)
 {
     Console.WriteLine("ReceiveMessage OK");
     MainEntry.SendToTerminal(SendMessageRsp(MainEntry.GetTerminalIPEndPoint(ip)), false);
 }