예제 #1
0
        static void Main(string[] args)
        {
            try
            {
                //Declare an frequencycounter object
                FrequencyCounter freq = new FrequencyCounter();

                //Hook the basic event handlers
                freq.Attach += new AttachEventHandler(accel_Attach);
                freq.Detach += new DetachEventHandler(accel_Detach);
                freq.Error += new ErrorEventHandler(accel_Error);

                //hook the phidget specific event handlers
                freq.Count += new FrequencyCounterCountEventHandler(freq_Count);

                //open the acclerometer object for device connections
                freq.open();

                //get the program to wait for an frequencycounter device to be attached
                Console.WriteLine("Waiting for frequencycounter to be attached....");
                freq.waitForAttachment();

                //enable the inputs
                for (int i = 0; i < freq.inputs.Count; i++)
                {
                    freq.inputs[i].Enabled = true;
                    freq.inputs[i].Filter = FrequencyCounterInput.FilterType.LOGIC_LEVEL;
                }

                //Get the program to wait for user input before moving on so that we can
                //watch for some events
                Console.WriteLine("Press any key to end");
                Console.Read();

                //If user input has been read, we can now terminate the program, so
                //close the phidget object
                freq.close();

                //set the object to null to clear it from memory
                freq = null;

                //if no exceptions have been trhown at this point, the program can
                //terminate safely
                Console.WriteLine("ok");
            }
            catch (PhidgetException ex)
            {
                Console.WriteLine(ex.Description);
            }
        }
예제 #2
0
        private void Form1_Load(object sender, EventArgs e)
        {
            freqCounter = new FrequencyCounter();

            freqCounter.Attach += new AttachEventHandler(freqCounter_Attach);
            freqCounter.Detach += new DetachEventHandler(freqCounter_Detach);
            freqCounter.Error += new ErrorEventHandler(freqCounter_Error);

            freqCounter.Count += new FrequencyCounterCountEventHandler(freqCounter_Count);

            openCmdLine(freqCounter);
        }
예제 #3
0
        private void CalcMubanData(Entity entity)
        {
            String result = String.Empty;
            var allTambon = entity.FlatList().Where(x => !x.IsObsolete && x.type == EntityType.Tambon);
            var allMuban = entity.FlatList().Where(x => !x.IsObsolete && x.type == EntityType.Muban);
            var mubanNumbers = allTambon.GroupBy(x => x.entity.Count(y => !y.IsObsolete && y.type == EntityType.Muban))
                .Select(g => g.Key).ToList();
            mubanNumbers.Sort();
            if ( allMuban.Count() == 0 )
            {
                result = "No Muban" + Environment.NewLine;
            }
            else
            {
                result = String.Format("{0} Muban; Tambon have between {1} and {2} Muban" + Environment.NewLine,
                    allMuban.Count(),
                    mubanNumbers.First(),
                    mubanNumbers.Last());
                var counter = new FrequencyCounter();
                foreach ( var tambon in allTambon )
                {
                    counter.IncrementForCount(tambon.entity.Count(x => x.type == EntityType.Muban && !x.IsObsolete), tambon.geocode);
                }
                result += String.Format("Most common Muban number: {0}", counter.MostCommonValue) + Environment.NewLine;
                result += String.Format("Median Muban number: {0:0.0}", counter.MeanValue) + Environment.NewLine;
                List<UInt32> tambonWithNoMuban = null;
                if ( counter.Data.TryGetValue(0, out tambonWithNoMuban) )
                {
                    result += String.Format("Tambon without Muban: {0}", tambonWithNoMuban.Count) + Environment.NewLine;
                }
            }

            // could add: Muban creations in last years
            var tambonWithInvalidMubanNumber = TambonWithInvalidMubanNumber(allTambon);
            if ( tambonWithInvalidMubanNumber.Any() )
            {
                result += Environment.NewLine + String.Format("Muban inconsistent for {0} Muban:", tambonWithInvalidMubanNumber.Count()) + Environment.NewLine;
                foreach ( var tambon in tambonWithInvalidMubanNumber )
                {
                    result += String.Format("{0}: {1}", tambon.geocode, tambon.english) + Environment.NewLine;
                }
            }
            txtMuban.Text = result;
        }
예제 #4
0
        //When the form is being close, make sure to stop all the motors and close the Phidget.
        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            freqCounter.Attach -= new AttachEventHandler(freqCounter_Attach);
            freqCounter.Detach -= new DetachEventHandler(freqCounter_Detach);
            freqCounter.Error -= new ErrorEventHandler(freqCounter_Error);

            freqCounter.Count -= new FrequencyCounterCountEventHandler(freqCounter_Count);

            Application.DoEvents();

            //run any events in the message queue - otherwise close will hang if there are any outstanding events
            Application.DoEvents();

            freqCounter.close();
            freqCounter = null;
        }
 static void Main(string[] args)
 {
     FrequencyCounter.LookUpDictionary("tale.txt", "web2.txt", 13);
 }