Ejemplo n.º 1
0
        private void UpdateDecodeInfo(ZigBeeDecoder.ZigBeeHeader header)
        {
            //something has changed, clear old data
            _decodeDataTable.Clear();

            //No decode info is available, create defaults
            if (DecoderGroups.Count(x => x.Header == header) == 0)
            {
                SetDecodeDefaults(header.Len);
            }
            else
            {
                var dg = DecoderGroups.First(x => x.Header == header);

                //No decode info is available, create defaults
                if (dg.DecoderInfoList.Count == 0)
                {
                    SetDecodeDefaults(header.Len);
                }
                else
                {
                    foreach (var di in dg.DecoderInfoList)
                    {
                        var dr = _decodeDataTable.NewRow();
                        dr["Name"]        = di.Name;
                        dr["Start Bit"]   = di.StartBit;
                        dr["Bit Length"]  = di.BitLength;
                        dr["Start Byte"]  = di.StartByte;
                        dr["Byte Length"] = di.ByteLength;
                        dr["Signed"]      = di.Signed;
                        dr["Factor"]      = di.Factor;
                        dr["Unit"]        = di.Unit;
                        dr["Notes"]       = di.Notes;
                        dr["Raw Data"]    = "";
                        dr["Value"]       = "";
                        _decodeDataTable.Rows.Add(dr);
                    }
                }
            }
        }
Ejemplo n.º 2
0
        //Update our memory of the decoder info
        private void SaveDecoderInfo()
        {
            YuneecDecoder.DecoderGroup dg;

            if (DecoderGroups.Count(x => x.Header == (SelectedMessageHeader)) == 0)
            {
                dg = new YuneecDecoder.DecoderGroup
                {
                    Header = SelectedMessageHeader
                };
                DecoderGroups.Add(dg);
            }
            else
            {
                dg = DecoderGroups.First(x => x.Header == (SelectedMessageHeader));
                dg.DecoderInfoList.Clear();
            }

            for (var i = 0; i < _decodeDataTable.Rows.Count; i++)
            {
                var dr = _decodeDataTable.Rows[i];

                var di = new YuneecDecoder.DecoderInfo
                {
                    Name       = dr["Name"] == DBNull.Value ? "" : (string)dr["Name"],
                    StartBit   = int.Parse((string)dr["Start Bit"]),
                    BitLength  = int.Parse((string)dr["Bit Length"]),
                    StartByte  = int.Parse((string)dr["Start Byte"]),
                    ByteLength = float.Parse((string)dr["Byte Length"]),
                    Signed     = bool.Parse((string)dr["Signed"]),
                    Factor     = float.Parse((string)dr["Factor"]),
                    Unit       = (string)dr["Unit"],
                    Notes      = (string)dr["Notes"]
                };

                dg.DecoderInfoList.Add(di);
            }
        }