public void Insert(DeviceDescrip dd)
        {
            DeviceDescrip ddRef;

            if (_map.TryGetValue(dd.ToKeyValue(), out ddRef))
            {
                /* already there - update strings */
                ddRef.jsonStrings     = dd.jsonStrings;
                ddRef.updateTimestamp = DateTime.UtcNow;
                /* do not update configs, this comes from a seperate command */

                _map[ddRef.ToKeyValue()] = ddRef;
            }
            else
            {
                /* first insert */
                dd.updateTimestamp = DateTime.UtcNow;
                _map.Add(dd.ToKeyValue(), dd);
            }
        }
        public bool ChangeID(DeviceDescrip dd, byte newID)
        {
            DeviceDescrip ddRef;

            if (_map.TryGetValue(dd.ToKeyValue(), out ddRef))
            {
                /* remove the original */
                _map.Remove(ddRef.ToKeyValue());

                /* modify the ID manually, this should match the next device poll */
                ddRef.deviceID = (byte)newID;

                /* re-insert */
                Insert(ddRef);
                return(true);
            }
            return(false);
        }
        public bool Remove(DeviceDescrip dd)
        {
            bool existed = _map.Remove(dd.ToKeyValue());

            return(existed);
        }