private void OnTimeEvent(object oSource, ElapsedEventArgs oElapsedEventArgs) { byte[] cmd_ = new byte[4]; cmd_[0] = (byte)cmd.SendData; cmd_[1] = 0; client.Publish(ctrTopic, cmd_); dataRecived.WaitOne(); dataRecived.Reset(); float output; lock (SyncObject) { controler.getSensData(sensors.data); output = controler.setOutput(); } var bytes = MakeCtrlFrame(output); client.Publish(ctrTopic, bytes, 1, false); }