public void Process(Packet packet) { lock (sync) { if (started) { if (proto.IsFromDevice(packet.packet) && proto.GetNumberDevice(packet.packet) == mForm.Device) { mForm.Packet(packet.packet); } } } }
/// <summary> /// Выплняет обработку поступившего пакета /// </summary> /// <param name="packet">Пакет для обработки</param> public void Packet(string packet) { lock (workHandle) // захватить управление { if (!started) { return; } if (proto.GetNumberDevice(packet) == options.Device) // если пакет от нужного нам устройства { lock (sharing) // захватить первичный буфер { sharing.Add(packet); // сохранить пакет } lock (mevent) mevent.Set(); // установить в сигнальное состояние объект событие. Пакет пришел } } }
private void insert(string packet) { listBox.Items.Add(packet); ShowDevice(protocol.GetNumberDevice(packet)); }