private void _DataPort_ReveivedPacket(LinkUpConnector connector, LinkUpPacket packet) { Dispatcher.Invoke(delegate() { textBox_DataOut.Text = Encoding.UTF8.GetString(packet.Data); }); }
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(); } }
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(); } }
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(); } }
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)))); }
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)))); // } //} }
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(); //} }
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); }
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) { } }
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(); }
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(); }