protected override void CommingPackage(NetworkPackageCompress pack)
        {
            base.CommingPackage(pack);
            var ip   = pack.targetIPs[0];
            var port = pack.targetPorts[0];

            byte pulse = 0;

            if (pack.GetFromBin <byte>("#", out pulse))
            {
                AddFriend(ip, port);
                parameters.MarkAllChanged();
            }

            var friend = GetFriend(ip, port) as RobotAgent;

            if (friend == null)
            {
                AddFriend(ip, port);
                parameters.MarkAllChanged();
                return;
            }


            friend.parameters.ReceivePackage(pack);
        }
示例#2
0
        protected override void CommingPackage(NetworkPackageCompress pack)
        {
            base.CommingPackage(pack);
            byte pulse = 0;

            if (pack.GetFromBin <byte>("#", out pulse))
            {
                var ip   = pack.targetIPs[0];
                var port = pack.targetPorts[0];
                AddFriend(ip, port);

                SetEvent(DSEvent.Receive, "Pulse " + pulse.ToString() + " < " + ip + ":" + port.ToString());
            }
        }
 protected override void Receiving(byte[] data, IPEndPoint e)
 {
     try
     {
         base.Receiving(data, e);
         NetworkPackageCompress newPack = new NetworkPackageCompress();
         newPack.DeserializeBin(data);
         newPack.AddTarget(e.Address.ToString(), e.Port);
         CommingPackage(newPack);
     }
     catch (Exception ee)
     {
         SetEvent(DSEvent.Error, "Receive Package error" + ee.ToString());
     }
 }
        //Decode Incomming package
        public override void ReceiveFinsh(StateObject state)
        {
            base.ReceiveFinsh(state);
            NetworkPackageCompress np = new NetworkPackageCompress();

            np.DeserializeBin(state.data.ToArray());
            var cmd = np.Get <string>("CMD");

            if (cmd != null)
            {
                AddMsg("CMD: " + cmd);
                switch (cmd)
                {
                case "NeedConnectedIPs":
                    var list = GetConnectedIP();
                    packageNeedToSend.Add("ConnectedIPs", list);
                    packageNeedToSend.SetTarget(state.workSocket);     //send back to original
                    SetNextTask(MyTask.ServerSend);
                    break;

                case "SendCMDtoALL":
                {
                    var dat = np.Get <string>("DAT");
                    packageNeedToSend.Add("CMD", dat);
                    SetNextTask(MyTask.ServerBoardCast);
                }
                break;

                case "SendCMDtoIP":
                {
                    var dat     = np.Get <string>("DAT");
                    var ip      = np.Get <string>("IP");
                    var sockets = GetSocketsByIP(ip);
                    packageNeedToSend.Add("CMD", dat);
                    packageNeedToSend.SetTargets(sockets);
                    SetNextTask(MyTask.ServerMultiSend);
                }
                break;
                }
            }
        }
 public void BuildUpPackage(ref NetworkPackageCompress packageCompress)
 {
     lock (locker)
     {
         if (c_Movement)
         {
             packageCompress.Add("c_Movement", v_Movement);
             c_Movement = false;
         }
         if (c_DisSensor)
         {
             packageCompress.Add("c_DisSensor", v_DisSensor);
             c_DisSensor = false;
         }
         if (c_name)
         {
             packageCompress.Add("c_Name", v_name);
             c_name = false;
         }
     }
 }
 public void ReceivePackage(NetworkPackageCompress pack)
 {
     lock (locker)
     {
         List <float> dat = new List <float>();
         if (pack.GetFromBin("c_Movement", out dat))
         {
             v_Movement = dat;
         }
         List <float> dat2 = new List <float>();
         if (pack.GetFromBin("c_DisSensor", out dat2))
         {
             v_DisSensor = dat2;
         }
         string str;
         if (pack.GetFromBin("c_Name", out str))
         {
             v_name = str;
         }
     }
 }
        public override void ReceiveFinsh(StateObject state)
        {
            base.ReceiveFinsh(state);
            NetworkPackageCompress np = new NetworkPackageCompress();

            np.DeserializeBin(state.data.ToArray());
            var dat = np.Get <List <string> >("ConnectedIPs");

            if (dat != null)
            {
                connectedIP = dat;
                SetEvent(DSEvent.ClientSendAndReceive);
                AddMsg("--> ConnectedIPs list");
            }
            var cmd = np.Get <string>("CMD");

            if (cmd != null)
            {
                AddMsg("--> CMD:" + cmd);
            }
        }
 protected virtual void CommingPackage(NetworkPackageCompress pack)
 {
 }