public bool UpdateTask(CanMsg msg) { if (CanDb.GetNodeTypeId(msg.ArbId) == CanDb.Instance.Nodes.FirstOrDefault(n => n.Name == NodeCollection.NODE_MCEL).NodeTypeId) { byte node = CanDb.GetNodeAddress(msg.ArbId); byte msgId = CanDb.GetMsgId(msg.ArbId); if (Devices.FirstOrDefault(n => n.Address == node) is IDevice item) { item.Update(msgId, msg.Data); DeviceUpdated?.Invoke(this, item); } else { var newitem = new MCEL181123DeviceItem(node, msgId, msg.Data); Devices.Add(newitem); NewDeviceArrived?.Invoke(this, newitem); } return(true); } else { return(false); } }
private void RaiseCanMsgEvent(CanMsg msg) { if (CanMsgEvent != null) { CanMsgEvent(msg); } }