Beispiel #1
0
 public void UpdateFixtureData(FixtureMessage fixtureMsg)
 {
     foreach (var id in fixtureMsg.id)
     {
         var fixture = (from f in universe where f.fixtureId == id select f).FirstOrDefault();
         if (fixture != null)
         {
             UpdateChannel(fixture.startChannel, fixture.numberOfChannels, fixtureMsg.data);
         }
     }
 }
Beispiel #2
0
        private static void Client_MqttMsgPublishReceived(object sender, MqttMsgPublishEventArgs e)
        {
            try
            {
                instrumentation.MessagesReceived++;

                string json = System.Text.Encoding.UTF8.GetString(e.Message);

                fixtureMsg = JsonConvert.DeserializeObject <FixtureMessage>(json);

                if (!string.IsNullOrEmpty(fixtureMsg.command))
                {
                    ProcessCommand(fixtureMsg.command);
                    return;
                }

                if (fixtureMsg.id == null)
                {
                    return;
                }

                if (fixtureMsg.data == null)
                {
                    universe.UpdateFixtureChannels(fixtureMsg);
                }
                else
                {
                    universe.UpdateFixtureData(fixtureMsg);
                }

                dmxUpdateEvent.Set();
            }
            catch (Exception ex)
            {
                //   config.Log(ex.Message);
                instrumentation.Exceptions++;
            }
        }
Beispiel #3
0
        public void UpdateFixtureChannels(FixtureMessage fixtureMsg)
        {
            if (fixtureMsg.red == null && fixtureMsg.green == null &&
                fixtureMsg.blue == null && fixtureMsg.white == null &&
                fixtureMsg.strobe == null)
            {
                return;
            }

            foreach (var id in fixtureMsg.id)
            {
                var fixture = (from f in universe where f.fixtureId == id select f).FirstOrDefault();
                if (fixture == null)
                {
                    return;
                }

                UpdateChannelData(fixtureMsg.red, fixture.redChannels, fixture);
                UpdateChannelData(fixtureMsg.green, fixture.greenChannels, fixture);
                UpdateChannelData(fixtureMsg.blue, fixture.blueChannels, fixture);
                UpdateChannelData(fixtureMsg.white, fixture.whiteChannels, fixture);
                UpdateChannelData(fixtureMsg.strobe, fixture.strobeChannels, fixture);
            }
        }