void brdr_EventHandlerGPIO(object sender, EVTADV_GPIO_EventArgs EvtArgs)
        {
            //This will only fire if you have defined GPIO TRIGGERS
            lat = GPS.Latitude;
            lon = GPS.Longitude;

            try
            {
                Console.WriteLine(EvtArgs.TriggerNameString + ": Trigger Activated");

                if (EvtArgs.TriggerNameString == "ArmUp")
                {
                    //System.Console.WriteLine("Arm Position: Up");
                    //Turn OFF ANT2, Turn ON ANT1
                    //07-17-2013: Turn on both antennas to start reading tags
                    try
                    {
                        try
                        {
                            tagID = "N/A";
                            brdr.Execute("ATTRIB ANTS=" + settings.ants);
                            brdr.StartReadingTags(null, "ANT", BRIReader.TagReportOptions.EVENT);
                            Console.WriteLine("----- Start Reading Tags -----");
                        }
                        catch (Exception Ex)
                        {
                            Console.WriteLine("EX ReadTagsGen2Tags: " + Ex.Message);
                        }

                        //start a 5 second timer
                        if (readState == false)
                        {
                            readState = true;
                            //timerStopRead.Interval = settings.arm_timer;
                            //timerStopRead.Enabled = true;
                        }
                        else
                        {
                            Console.WriteLine("System is already reading tags");
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine("ArmUP EX: " + ex.Message.ToString());
                    }
                }
                else if (EvtArgs.TriggerNameString == "ArmDown")
                {
                    brdr.StopReadingTags();
                    Console.WriteLine("----- Stop Reading Tags -----");
                    Console.WriteLine(EvtArgs.TriggerNameString + ": Trigger Deactivated");

                    if (tagID == "N/A")
                    {
                        if (bDebug)
                        {
                            System.Console.WriteLine("Trying to InsertPickupRecord N/A Tag to DB...");
                        }
                        tag_ts = GetDate();
                        DA.InsertPickupRecord(tagID.ToString(), settings.programName, settings.truckid, GetDate(), lat, lon);
                        Console.WriteLine(tagID.ToString() + " | " + settings.programName + " | " + settings.truckid + " | " + tag_ts + " | " + lat + " | " + lon);
                        //timerNA_LED.Interval = 200;
                        //timerNA_LED.Enabled = true;
                    }
                }

                #region Observation Handling Code
                //06-17-2013: Power input not handled in GPIO input triggers
                //06-17-2013: Observation inputs enabled for Curotto Can program
                if (EvtArgs.TriggerNameString == "Input1ON")
                {
                    Console.WriteLine("GPS Date Time: " + tag_ts);
                    DA.InsertObservationRecord_New(10001, tag_ts, tagID);

                    brdr.Execute("WriteGPO 2 ON");
                    brdr.Execute("WriteGPO 1 OFF");
                    timerRed.Interval = settings.timerGPO4;
                    timerRed.Enabled  = true;
                    timerRed.Start();
                    tRed = 1;
                }
                if (EvtArgs.TriggerNameString == "Input2ON")
                {
                    Console.WriteLine("GPS Date Time: " + tag_ts);
                    DA.InsertObservationRecord_New(10002, tag_ts, tagID);

                    brdr.Execute("WriteGPO 2 ON");
                    brdr.Execute("WriteGPO 1 OFF");
                    timerRed.Interval = settings.timerGPO4;
                    timerRed.Enabled  = true;
                    timerRed.Start();
                    tRed = 1;
                }
                if (EvtArgs.TriggerNameString == "Input3ON")
                {
                    Console.WriteLine("Date Time: " + tag_ts);
                    DA.InsertObservationRecord_New(10003, tag_ts, tagID);

                    brdr.Execute("WriteGPO 2 ON");
                    brdr.Execute("WriteGPO 1 OFF");
                    timerRed.Interval = settings.timerGPO4;
                    timerRed.Enabled  = true;
                    timerRed.Start();
                    tRed = 1;
                }
                #endregion
            }
            catch (Exception Ex)
            {
                Console.WriteLine("EX brdr_EventHandlerGPIO: " + Ex.Message);
            }
        }
示例#2
0
 /// <summary>
 /// This method is invoked when a general purpose input trigger event occurs.
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="EvtArgs"></param>
 void BRIReaderEventHandler_GPITrigger(object sender, EVTADV_GPIO_EventArgs EvtArgs)
 {
     InfraredStatus = true;
     //红外状态设置为True
     //记录日志 [TODO]
 }