Ejemplo n.º 1
0
        public void PublishVisualisationData(VisualisationData vd)
        {
            I2CSlaveData.SI2CVizData data;
            data.EnvironmentStatus     = vd.EnvironmentStatus;
            data.GameState             = (byte)vd.GameStateInt;
            data.InternalState         = (byte)vd.InternalStateInt;
            data.PotentialScore        = (ushort)vd.PotentialScore;
            data.Score                 = (ushort)vd.Score;
            data.TotalGameSecs         = (ushort)vd.TotalGameSecs;
            data.RemainingSecs         = (ushort)vd.RemainingSecs;
            data.RemainingQuestionSecs = (byte)vd.RemainingQuestionSecs;

            // Broadcast to all the devices on the bus and send them all the good news.
            var i2cDevice = I2cDevice.Create(new I2cConnectionSettings(busId: 1, deviceAddress: m_cBroadcastAddr));
            var sm        = new I2CSlaveDevice(i2cDevice);

            try
            {
                sm.SendVisualisationData(data);
            }
            catch
            {
            }

            sm.Dispose();
        }
Ejemplo n.º 2
0
        private void CheckBus()
        {
            SI2CVizData data;

            data.EnvironmentStatus     = 0;
            data.GameState             = 0;
            data.InternalState         = 0;
            data.PotentialScore        = 0;
            data.Score                 = 0;
            data.TotalGameSecs         = 0;
            data.RemainingSecs         = 0;
            data.RemainingQuestionSecs = 0;
            Console.WriteLine("======================================================================");
            Console.WriteLine("I2C Bus report");
            Console.WriteLine("--------------");
            Console.WriteLine("Status Address Device");
            Console.WriteLine("------ ------- ------");
            foreach (I2CSlaveData slave in m_PotentialSlaves)
            {
                var i2cDevice = I2cDevice.Create(new I2cConnectionSettings(busId: 1, deviceAddress: slave.m_Address));
                var sm        = new I2CSlaveDevice(i2cDevice);
                try
                {
                    sm.SendVisualisationData(data);
                    slave.m_bOnline = true;
                    Console.WriteLine("OK       " + slave.m_Address.ToString() + "     " + slave.m_Name);
                }
                catch
                {
                    Console.WriteLine("NOT OK!  " + slave.m_Address.ToString() + "     " + slave.m_Name);
                }

                sm.Dispose();
            }

            Console.WriteLine("======================================================================");
        }