Exemple #1
0
 //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 }
             });
         }
     }
 }
Exemple #2
0
        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);
            }
        }