//Add a new TocElement to the TOC container. public void add_element(object obj) { if (obj.GetType().Name == "ParamTocElement") { ParamTocElement element = (ParamTocElement)obj; if (toc.Keys.Contains(element.group)) { toc[element.group].Add(element.name, obj); } else { toc.Add(element.group, new Dictionary <string, object>() { { element.name, element } }); } } }
public void set_value(string complete_name, string value) { ParamTocElement element = (ParamTocElement)toc.get_element_by_complete_name(complete_name); if (element != null && element.access == ParamTocElement.RW_ACCESS) { int varid = element.ident; CRTPPacket pk = new CRTPPacket(); pk.set_header(CRTPPort.PARAM, (byte)CHANNEL.WRITE_CHANNEL); List <byte> data = new List <byte>() { }; if (this._useV2) { data.AddRange(BitConverter.GetBytes((ushort)varid)); } else { data.AddRange(BitConverter.GetBytes((byte)varid)); } switch (element.type) { case ParamTocElement.ELEMENT_TYPE.int8_t: data.AddRange(BitConverter.GetBytes(char.Parse(value))); break; case ParamTocElement.ELEMENT_TYPE.int16_t: data.AddRange(BitConverter.GetBytes(short.Parse(value))); break; case ParamTocElement.ELEMENT_TYPE.int32_t: data.AddRange(BitConverter.GetBytes(int.Parse(value))); break; case ParamTocElement.ELEMENT_TYPE.int64_t: data.AddRange(BitConverter.GetBytes(long.Parse(value))); break; case ParamTocElement.ELEMENT_TYPE.float_t: data.AddRange(BitConverter.GetBytes(float.Parse(value))); break; case ParamTocElement.ELEMENT_TYPE.double_t: data.AddRange(BitConverter.GetBytes(double.Parse(value))); break; case ParamTocElement.ELEMENT_TYPE.uint8_t: data.AddRange(BitConverter.GetBytes(byte.Parse(value))); break; case ParamTocElement.ELEMENT_TYPE.uint16_t: data.AddRange(BitConverter.GetBytes(ushort.Parse(value))); break; case ParamTocElement.ELEMENT_TYPE.uint32_t: data.AddRange(BitConverter.GetBytes(uint.Parse(value))); break; case ParamTocElement.ELEMENT_TYPE.uint64_t: data.AddRange(BitConverter.GetBytes(ulong.Parse(value))); break; default: break; } this.param_updater.request_param_setvalue(pk); } }