protected List <MessageElement> PackPacket(T data, TimeSpec time) { List <MessageElement> timespec1 = new List <MessageElement>(); timespec1.Add(new MessageElement("seconds", time.seconds)); timespec1.Add(new MessageElement("nanoseconds", time.nanoseconds)); MessageElementStructure s = new MessageElementStructure("RobotRaconteur.TimeSpec", timespec1); List <MessageElement> elems = new List <MessageElement>(); elems.Add(new MessageElement("packettime", s)); if (!rawelements) { object pdata = PackAnyType(ref data); elems.Add(new MessageElement("packet", pdata)); } else { MessageElement pme = ((MessageElement)(object)data); pme.ElementName = "packet"; elems.Add(pme); } return(elems); }
public virtual T UnpackStructure <T>(MessageElementStructure l) { string typename; if (CompareNamespace(l.Type, out typename)) { return((T)FindStructureStub(typename).UnpackStructure <T>(l)); } else { return(node.UnpackStructure <T>(l, context)); } }
public T UnpackStructure <T>(MessageElementStructure m) { if (m == null) { return(default(T)); } ostruct2 s = new ostruct2(); s.a1 = MessageElementUtil.UnpackArray <double>(MessageElement.FindElement(m.Elements, "a1")); T st; try { st = (T)((object)s); } catch (InvalidCastException) { throw new DataTypeMismatchException("Wrong structuretype"); } return(st); }
public T UnpackStructure <T>(MessageElementStructure m) { if (m == null) { return(default(T)); } NodeInfo s = new NodeInfo(); s.NodeName = MessageElement.FindElement(m.Elements, "NodeName").CastData <string>(); s.NodeID = MessageElement.FindElement(m.Elements, "NodeID").CastData <byte[]>(); s.ServiceIndexConnectionURL = (Dictionary <int, string>)def.UnpackMapType <int, string>(MessageElement.FindElement(m.Elements, "ServiceIndexConnectionURL").Data); T st; try { st = (T)((object)s); } catch (InvalidCastException e) { throw new DataTypeMismatchException("Wrong structuretype"); } return(st); }
public T UnpackStructure <T>(MessageElementStructure m) { if (m == null) { return(default(T)); } FTData s = new FTData(); using (vectorptr_messageelement mm = m.Elements) { s.time = (MessageElementUtil.CastDataAndDispose <long[]>(MessageElement.FindElement(mm, "time")))[0]; s.ft_data = MessageElementUtil.CastDataAndDispose <double[]>(MessageElement.FindElement(mm, "ft_data")); T st; try { st = (T)((object)s); } catch (InvalidCastException) { throw new DataTypeMismatchException("Wrong structuretype"); } return(st); } }
public T UnpackStructure <T>(MessageElementStructure m) { if (m == null) { return(default(T)); } ServiceInfo s = new ServiceInfo(); s.Name = MessageElement.FindElement(m.Elements, "Name").CastData <string>(); s.RootObjectType = MessageElement.FindElement(m.Elements, "RootObjectType").CastData <string>(); s.RootObjectImplements = (Dictionary <int, string>)def.UnpackMapType <int, string>(MessageElement.FindElement(m.Elements, "RootObjectImplements").Data); s.ConnectionURL = (Dictionary <int, string>)def.UnpackMapType <int, string>(MessageElement.FindElement(m.Elements, "ConnectionURL").Data); s.Attributes = (Dictionary <string, object>)def.UnpackMapType <string, object>(MessageElement.FindElement(m.Elements, "Attributes").Data); T st; try { st = (T)((object)s); } catch (InvalidCastException e) { throw new DataTypeMismatchException("Wrong structuretype"); } return(st); }
protected T UnpackPacket(List <MessageElement> me, out TimeSpec timespec) { MessageElementStructure s = (MessageElement.FindElement(me, "packettime").CastData <MessageElementStructure>()); long seconds = MessageElement.FindElement(s.Elements, "seconds").CastData <long[]>()[0]; int nanoseconds = MessageElement.FindElement(s.Elements, "nanoseconds").CastData <int[]>()[0]; timespec = new TimeSpec(seconds, nanoseconds); object data; if (!rawelements) { data = UnpackAnyType(MessageElement.FindElement(me, "packet")); } else { data = MessageElement.FindElement(me, "packet"); } return((T)data); }
public override T UnpackStructure <T>(MessageElementStructure l) { if (l == null) { return(default(T)); } if (ServiceDefinitionUtil.SplitQualifiedName(l.Type).Item1 == "RobotRaconteurServiceIndex") { string objshort = RemovePath(l.Type); switch (objshort) { case "NodeInfo": return(NodeInfo_stubentry.UnpackStructure <T>(l)); case "ServiceInfo": return(ServiceInfo_stubentry.UnpackStructure <T>(l)); } } else { return(base.UnpackStructure <T>(l)); } throw new DataTypeException("Could not unpack structure"); }
public override T UnpackStructure <T>(MessageElementStructure l) { if (l == null) { return(default(T)); } if (RobotRaconteurNode.SplitQualifiedName(l.Type)[0].TrimEnd(new char[] { '_' }) == "sensors.ati.mini45") { string objshort = RemovePath(l.Type); switch (objshort) { case "FTData": return(FTData_stubentry.UnpackStructure <T>(l)); default: break; } } else { return(RobotRaconteurNode.s.UnpackStructure <T>(l)); } throw new DataTypeException("Could not unpack structure"); }
public T UnpackStructure <T>(MessageElementStructure l) { return(ServiceDef.UnpackStructure <T>(l)); }