private void CloseConnection()
    {
        if (servo != null)
        {
            servo.Close();
            servo = null;
        }

        if (sensorDistance != null)
        {
            sensorDistance.Close();
            sensorDistance = null;
        }
    }
Пример #2
0
        static void Main(string[] args)
        {
            Log.Enable(LogLevel.Info, "phidgetlog.log");
            DistanceSensor distanceSensor0 = new DistanceSensor();

            distanceSensor0.HubPort = 3;
            //distanceSensor0.DistanceChange += DistanceSensor0_DistanceChange;
            distanceSensor0.Attach += DistanceSensor0_Attach;
            distanceSensor0.Detach += DistanceSensor0_Detach;
            distanceSensor0.Error  += DistanceSensor0_Error;

            DistanceSensor distanceSensor1 = new DistanceSensor();

            distanceSensor1.HubPort = 4;
            //distanceSensor0.DistanceChange += DistanceSensor0_DistanceChange;
            distanceSensor1.Attach += DistanceSensor0_Attach;
            distanceSensor1.Detach += DistanceSensor0_Detach;
            distanceSensor1.Error  += DistanceSensor0_Error;

            //VoltageRatioSensorType voltageRatioSensor = new VoltageRatioSensorType();
            VoltageRatioInput voltageRatioInput = new VoltageRatioInput();

            voltageRatioInput.HubPort         = 0;
            voltageRatioInput.IsHubPortDevice = true;
            voltageRatioInput.Channel         = 0;

            voltageRatioInput.VoltageRatioChange += VoltageRatioInput_VoltageRatioChange;

            try
            {
                InitizlizeMqttClient();

                distanceSensor0.Open(5000);

                distanceSensor0.DataInterval   = 2000;
                distanceSensor0.SonarQuietMode = false;

                distanceSensor1.Open(5000);
                distanceSensor1.DataInterval   = 2000;
                distanceSensor1.SonarQuietMode = false;

                voltageRatioInput.Open(5000);
                //voltageRatioInput.SensorType = VoltageRatioSensorType.PN_1129;

                voltageRatioInput.DataInterval = 100;

                //Console.ReadLine();

                Task.Run(() =>
                {
                    while (true)
                    {
                        Thread.Sleep(2000);

                        checkHandWash(distanceSensor1);
                        checkToiletVisit(distanceSensor0);
                    }
                });

                //Wait until Enter has been pressed before exiting
                Console.ReadLine();

                distanceSensor0.Close();
            }
            catch (PhidgetException ex)
            {
                Console.WriteLine(ex.ToString());
                Console.WriteLine("");
                Console.WriteLine("PhidgetException " + ex.ErrorCode + " (" + ex.Description + "): " + ex.Detail);
                Console.ReadLine();
            }
        }