Ejemplo n.º 1
0
 private void _DataPort_ReveivedPacket(LinkUpConnector connector, LinkUpPacket packet)
 {
     Dispatcher.Invoke(delegate()
     {
         textBox_DataOut.Text = Encoding.UTF8.GetString(packet.Data);
     });
 }
Ejemplo n.º 2
0
 private static void Connector_SentPacket(LinkUpConnector connector, LinkUpPacket packet)
 {
     lock (Console.Out)
     {
         Console.ForegroundColor = ConsoleColor.Yellow;
         Console.WriteLine("{0} - Sent:\n\t{1}", watch.ElapsedTicks * 1000 / Stopwatch.Frequency, string.Join(" ", packet.Data.Select(b => string.Format("{0:X2} ", b))));
         Console.ResetColor();
     }
 }
Ejemplo n.º 3
0
 private static void Connector_ReveivedPacket(LinkUpConnector connector, LinkUpPacket packet)
 {
     lock (Console.Out)
     {
         Console.ForegroundColor = ConsoleColor.Cyan;
         Console.WriteLine("- Master from Slave:\n\t{0}", string.Join(" ", packet.Data.Select(b => string.Format("{0:X2} ", b))));
         Console.ResetColor();
     }
 }
Ejemplo n.º 4
0
 private static void SentPacket(LinkUpConnector connector, LinkUpPacket packet)
 {
     lock (Console.Out)
     {
         Console.ForegroundColor = ConsoleColor.Yellow;
         Console.WriteLine("- Sent Data:\n\t{0}", string.Join(" ", packet.Data.Select(b => string.Format("{0:X2} ", b))));
         Console.ResetColor();
     }
 }
Ejemplo n.º 5
0
 private void Connector_ReveivedPacket(LinkUpConnector connector, LinkUpPacket packet)
 {
     if (addData)
     {
         Context.Post((c) =>
         {
             lock (Data)
             {
                 Data.Add(packet);
                 Count = Data.Count;
             }
         }, null);
     }
     //Console.WriteLine("{0} - Receive:\n\t{1}", watch.ElapsedTicks * 1000 / Stopwatch.Frequency, string.Join(" ", packet.Data.Select(b => string.Format("{0:X2} ", b))));
 }
Ejemplo n.º 6
0
 private static void ClientToServer_SentPacket(LinkUpConnector connector, LinkUpPacket packet)
 {
     //lock (Console.Out)
     //{
     //    Console.ForegroundColor = ConsoleColor.Magenta;
     //    Console.WriteLine("- Sent:\n\t{0}", string.Join(" ", packet.Data.Select(b => string.Format("{0:X2} ", b))));
     //    Console.ResetColor();
     //}
     //lock (Console.Out)
     //{
     //    if (packet.Data.Length > 2 && packet.Data[0] == 0x02 && packet.Data[1] == 0x9)
     //    {
     //Console.WriteLine("- Sent: {0}", string.Join(" ", packet.Data.Select(b => string.Format("{0:X2} ", b))));
     //    }
     //}
 }
Ejemplo n.º 7
0
 private static void ClientToServer_ReveivedPacket(LinkUpConnector connector, LinkUpPacket packet)
 {
     //lock (Console.Out)
     //{
     //    Console.ForegroundColor = ConsoleColor.Yellow;
     //    if (packet.Data.Length > 2 && packet.Data[0] == 0x01 && packet.Data[1] == 0x9)
     //    {
     //       Console.WriteLine("- Reveived ({0}):\n\t{1}", count++, string.Join(" ", packet.Data.Select(b => string.Format("{0:X2} ", b))));
     //    }
     //    else
     //    {
     //Console.WriteLine("- Reveived:\n\t{0}", string.Join(" ", packet.Data.Select(b => string.Format("{0:X2} ", b))));
     //    }
     //    Console.ResetColor();
     //}
 }
Ejemplo n.º 8
0
        internal static LinkUpLogic ParseFromPacket(LinkUpPacket packet)
        {
            //TODO: implement checks
            LinkUpLogicType type  = (LinkUpLogicType)packet.Data[0];
            LinkUpLogic     logic = null;

            switch (type)
            {
            case LinkUpLogicType.NameRequest:
                logic = new LinkUpNameRequest();
                break;

            case LinkUpLogicType.NameResponse:
                logic = new LinkUpNameResponse();
                break;

            case LinkUpLogicType.PropertyGetRequest:
                logic = new LinkUpPropertyGetRequest();
                break;

            case LinkUpLogicType.PropertyGetResponse:
                logic = new LinkUpPropertyGetResponse();
                break;

            case LinkUpLogicType.PropertySetRequest:
                logic = new LinkUpPropertySetRequest();
                break;

            case LinkUpLogicType.PropertySetResponse:
                logic = new LinkUpPropertySetResponse();
                break;

            case LinkUpLogicType.PingRequest:
                logic = new LinkUpPingRequest();
                break;

            case LinkUpLogicType.PingResponse:
                logic = new LinkUpPingResponse();
                break;

            case LinkUpLogicType.EventFireRequest:
                logic = new LinkUpEventFireRequest();
                break;

            case LinkUpLogicType.EventFireResponse:
                logic = new LinkUpEventFireResponse();
                break;

            case LinkUpLogicType.EventSubscribeRequest:
                logic = new LinkUpEventSubscribeRequest();
                break;

            case LinkUpLogicType.EventSubscribeResponse:
                logic = new LinkUpEventSubscribeResponse();
                break;

            case LinkUpLogicType.EventUnsubscribeRequest:
                logic = new LinkUpEventUnsubscribeRequest();
                break;

            case LinkUpLogicType.EventUnsubscribeResponse:
                logic = new LinkUpEventUnsubscribeResponse();
                break;

            case LinkUpLogicType.FunctionCallRequest:
                logic = new LinkUpFunctionCallRequest();
                break;

            case LinkUpLogicType.FunctionCallResponse:
                logic = new LinkUpFunctionCallResponse();
                break;
            }

            logic?.ParseFromRaw(packet.Data);

            return(logic);
        }
Ejemplo n.º 9
0
        private void _Connector_ReveivedPacket(LinkUpConnector connector, LinkUpPacket packet)
        {
            try
            {
                LinkUpLogic logic = LinkUpLogic.ParseFromPacket(packet);
                if (logic is LinkUpNameRequest)
                {
                    LinkUpNameRequest nameRequest = logic as LinkUpNameRequest;

                    if (nameRequest.LabelType == LinkUpLabelType.Node)
                    {
                        _IsInitialized = true;
                        _Name          = nameRequest.Name;

                        LinkUpNameResponse nameResponse = new LinkUpNameResponse();
                        nameResponse.Name       = nameRequest.Name;
                        nameResponse.Identifier = 0;
                        nameResponse.LabelType  = LinkUpLabelType.Node;
                        //_Master.RemoveLabels(_Name);
                        Task.Run(() =>
                        {
                            _Connector.SendPacket(nameResponse.ToPacket());
                        });
                    }
                    if (nameRequest.LabelType != LinkUpLabelType.Node)
                    {
                        LinkUpLabel label = _Master.AddSubLabel(string.Format("{0}/{1}", _Name, nameRequest.Name), nameRequest.LabelType, nameRequest.Options);
                        if (label.ChildIdentifier == 0)
                        {
                            label.ChildIdentifier = GetNextIdentifier();
                            //Console.WriteLine("ID: {0} Name: {1}", label.ChildIdentifier, label.Name);
                        }
                        label.Owner = this;

                        LinkUpNameResponse nameResponse = new LinkUpNameResponse();
                        nameResponse.Name       = nameRequest.Name;
                        nameResponse.Identifier = label.ChildIdentifier;
                        nameResponse.LabelType  = nameRequest.LabelType;

                        _Connector.SendPacket(nameResponse.ToPacket());

                        if (label.LabelType == LinkUpLabelType.Event)
                        {
                            Task.Run(() =>
                            {
                                try
                                {
                                    (label as LinkUpEventLabel).Resubscribe();
                                }
                                catch (Exception ex) { }
                            });
                        }
                    }
                }
                else if (logic is LinkUpEventFireRequest)
                {
                    LinkUpEventFireRequest eventFireRequest = (LinkUpEventFireRequest)logic;
                    LinkUpLabel            label            = _Master.Labels.FirstOrDefault(c => c.ChildIdentifier == eventFireRequest.Identifier);
                    if (label != null)
                    {
                        if (label is LinkUpEventLabel)
                        {
                            (label as LinkUpEventLabel).DoEvent(eventFireRequest.Data);
                        }
                    }
                }
                else if (logic is LinkUpEventSubscribeResponse)
                {
                    LinkUpEventSubscribeResponse eventSubscribeResponse = (LinkUpEventSubscribeResponse)logic;
                    LinkUpLabel label = _Master.Labels.FirstOrDefault(c => c.ChildIdentifier == eventSubscribeResponse.Identifier);
                    if (label != null)
                    {
                        if (label is LinkUpEventLabel)
                        {
                            (label as LinkUpEventLabel).SubscribeDone();
                        }
                    }
                }
                else if (logic is LinkUpEventUnsubscribeResponse)
                {
                    LinkUpEventUnsubscribeResponse eventUnsubscribeResponse = (LinkUpEventUnsubscribeResponse)logic;
                    LinkUpLabel label = _Master.Labels.FirstOrDefault(c => c.ChildIdentifier == eventUnsubscribeResponse.Identifier);
                    if (label != null)
                    {
                        if (label is LinkUpEventLabel)
                        {
                            (label as LinkUpEventLabel).UnsubscribeDone();
                        }
                    }
                }
                else if (logic is LinkUpPropertyGetResponse)
                {
                    LinkUpPropertyGetResponse propertyGetResponse = (LinkUpPropertyGetResponse)logic;
                    LinkUpLabel label = _Master.Labels.FirstOrDefault(c => c.ChildIdentifier == propertyGetResponse.Identifier);
                    if (label != null)
                    {
                        if (label is LinkUpPropertyLabelBase)
                        {
                            (label as LinkUpPropertyLabelBase).GetDone(propertyGetResponse.Data);
                        }
                    }
                }
                else if (logic is LinkUpPropertySetResponse)
                {
                    LinkUpPropertySetResponse propertySetResponse = (LinkUpPropertySetResponse)logic;
                    LinkUpLabel label = _Master.Labels.FirstOrDefault(c => c.ChildIdentifier == propertySetResponse.Identifier);
                    if (label != null)
                    {
                        if (label is LinkUpPropertyLabelBase)
                        {
                            (label as LinkUpPropertyLabelBase).SetDone();
                        }
                    }
                }
                else if (logic is LinkUpFunctionCallResponse)
                {
                    LinkUpFunctionCallResponse functionCallResponse = (LinkUpFunctionCallResponse)logic;
                    LinkUpLabel label = _Master.Labels.FirstOrDefault(c => c.ChildIdentifier == functionCallResponse.Identifier);
                    if (label != null)
                    {
                        if (label is LinkUpFunctionLabel)
                        {
                            (label as LinkUpFunctionLabel).DoEvent(functionCallResponse.Data);
                        }
                    }
                }
                else if (logic is LinkUpPingResponse)
                {
                    _LostPings = 0;
                }
            }
            catch (Exception)
            {
            }
        }
Ejemplo n.º 10
0
 private static void ClientToServer_ReveivedPacket(LinkUpConnector connector, LinkUpPacket packet)
 {
     Console.ForegroundColor = ConsoleColor.Yellow;
     Console.WriteLine("- Client from Server:\n\t{0}", string.Join(" ", packet.Data.Select(b => string.Format("{0:X2} ", b))));
     Console.ResetColor();
 }
Ejemplo n.º 11
0
 private static void SlaveToMaster_ReveivedPacket(LinkUpConnector connector, LinkUpPacket packet)
 {
     Console.ForegroundColor = ConsoleColor.Magenta;
     Console.WriteLine("- Slave from Master:\n\t{0}", string.Join(" ", packet.Data.Select(b => string.Format("{0:X2} ", b))));
     Console.ResetColor();
 }