コード例 #1
0
        static void Main(string[] args)
        {
            int puls    = 0;
            int periode = Convert.ToInt32(40) * Convert.ToInt32(10);

            for (int i = 0; i < periode; i++)
            {
                RRList.Add((ADC.readADC_SingleEnded(0) / 2048.0) * 6.144);

                Thread.Sleep(1000 / (Convert.ToInt32(40)) - 4);

                if (RRList[i] > threshold && belowThreshold == true)
                {
                    puls++;
                }

                if (RRList[i] < threshold)
                {
                    belowThreshold = true;
                }

                else
                {
                    belowThreshold = false;
                }
            }
        }
コード例 #2
0
ファイル: Logic.cs プロジェクト: pete7513/RPI_Software
        //Metoden som opretter en EKGmåling, samtidig med informationsskrivning på displayet.
        public EKG_Maaling EKGmaalingCreate()
        {
            EKGData = new double[250];

            int periode    = 10;
            int samplerate = 25;

            //antalMaalinger er antallet af målinger som ekgmåleren tager over perioden på 50 sekunder.
            int AntalMaalinger = periode * samplerate;


            Console.WriteLine("20 sek vent");
            //Thread.Sleep(20000);

            for (int i = 0; i < AntalMaalinger; i++)
            {
                sample     = 0;
                sample     = Convert.ToDouble((ADC.readADC_SingleEnded(0) / 2048.0) * 6.144);
                EKGData[i] = sample;

                Thread.Sleep(1000 / (Convert.ToInt32(samplerate) - 4));
            }
            maaling = new EKG_Maaling(Patient.PatientName, Patient.CPR, DateTime.Now, EKGData, "Andet", samplerate, periode, "B", "double", Convert.ToInt32(EKGID));

            Console.WriteLine("20 sek vent");
            //Thread.Sleep(20000);

            return(maaling);
        }
コード例 #3
0
        public double[] startECG()
        {
            double sample;

            tidspunktForMaaling = DateTime.Now;
            ECGMaalinger        = new double[500];
            eCGControl.GetLokalinfo()._start_tid                 = tidspunktForMaaling;
            eCGControl.GetLokalinfo()._dato                      = tidspunktForMaaling.Date;
            eCGControl.GetLokalinfo()._antalmaalinger            = 500;
            eCGControl.GetLokalinfo()._samplerate_hz             = 50;
            eCGControl.GetLokalinfo()._interval_sec              = 10;
            eCGControl.GetLokalinfo()._interval_min              = 0;
            eCGControl.GetLokalinfo()._dataformat                = "double";
            eCGControl.GetLokalinfo()._sfp_maaltagerefternavn    = "Mortensen";
            eCGControl.GetLokalinfo()._sfp_maaltagerfornavn      = "Lars";
            eCGControl.GetLokalinfo()._sfp_maaltagermedarbjdnr   = "1";
            eCGControl.GetLokalinfo()._sfp_mt_kommentar          = "";
            eCGControl.GetLokalinfo()._sfp_mt_org                = "Aarhus Universitet";
            eCGControl.GetLokalinfo()._maaleformat_type          = "double";
            eCGControl.GetLokalinfo()._bin_eller_tekst           = "1";
            eCGControl.GetLokalinfo()._maaleenhed_identifikation = "RPi B3+";
            eCGControl.GetLokalinfo()._borger_cprnr              = Program.CPRNumber;
            eCGControl.GetLokalinfo()._borger_fornavn            = Program.BorgerFornavn;
            eCGControl.GetLokalinfo()._borger_efternavn          = Program.BorgerEfternavn;
            eCGControl.GetLokalinfo()._kommentar                 = "";


            // Array.Clear(ECGMaalinger, 0, ECGMaalinger.Length);
            if (ECGMaalinger.Length > 0)
            {
                for (int i = 0; i < ECGMaalinger.Length; i++)
                {
                    ECGMaalinger[i] = 0;
                }
            }
            for (int i = 0; i < 10 * 50; i++)
            {
                //opsamler datapunkter og konvertere fra heltal i 11 bit format til volt:
                sample = (adc.readADC_SingleEnded(0) / 2048.0) * 6.144;
                //System.Diagnostics.Debug.WriteLine("input fra adc:    :  " + sample);

                //tilføjer målepunkterne til listen af grafpunker:
                ECGMaalinger[i] = sample;
                //EKGLine.Values.Add(sample);

                //mellem hver måling skal man pause en lille smule for at holde styr på hvor mange
                //gange vi sampler pr. sek
                System.Threading.Thread.Sleep((1000 / 50) - 4);
            }
            eCGControl.GetLokalinfo()._lokalECG = ECGMaalinger;
            return(ECGMaalinger);
        }
コード例 #4
0
        static void Main(string[] args)
        {
            //Hej
            SerLCD  displayController = new SerLCD();
            ADC1015 adConverter       = new ADC1015();
            TWIST   twist             = new TWIST();
            string  temp = Convert.ToString(adConverter.readADC_SingleEnded(0));

            double Celcius = Convert.ToInt32(temp) / 10;

            double Fahrenheit = Celcius * 2 + 31;
            double Kelvin     = Celcius + 273 + "Kelvin";

            List <double> items = new List <double> {
                Celcius, Fahrenheit, Kelvin
            };


            displayController.lcdDisplay();

            displayController.lcdClear();

            displayController.lcdPrint("tempteratur: " + temp);

            byte x = 0;
            byte y = 0;

            for (byte i = 1; i < items.Count + 1; i++)
            {
                displayController.lcdGotoXY(x, i);
                displayController.lcdPrint(Convert.ToString((items[i - 1]) + " grader"));
            }


            //displayController.lcdGotoXY(x,y);

            //displayController.lcdPrint("tempteratur: " + temp + " Celcius: " + Celcius + " Fahrenheit: " + Fahrenheit + " Kelvin: " + Kelvin);



            //Console.WriteLine("Hello World!");

            //Console.WriteLine("Temperatur:\n\n");
            //Console.WriteLine("Celcius:         "+Celcius);
            //Console.WriteLine();
            //Console.WriteLine("Celcius:         "+ Fahrenheit);
            //Console.WriteLine();
            //Console.WriteLine("Celcius:         "+ Kelvin);
        }
コード例 #5
0
        public void visBatteristatus()
        {
            ADC1015 AD  = new ADC1015();
            int     ADC = AD.readADC_SingleEnded(1);

            Bstatus = BstatusControl.requestbatterystatus(ADC); //Modtager værdi og viser enten normal eller lav skræm. Udregningen sker i logicLayer
            if (Bstatus > 20)                                   // Vi har valgt grænsen ved 20%
            {
                displayNormalBatterystatus();
            }
            else
            {
                displayLowBatterystatus();
            }
        }
コード例 #6
0
        int samplerate = 2; //Variabel til at regulere hvor længe der går mellem hver måling

        /// <summary>
        /// Foretager en måling med intervallet angivet i attributten samplerate.
        /// Indlæser hver værdi i lokalt array ekgRawData.
        /// </summary>
        /// <returns> Returnerer true når måling er afsluttet. </returns>
        public bool StartEkgRecord() //Start modtagelse af signal fra elektroderne
        {
            bool ekgRecordEnd = false;

            starttidspunkt = DateTime.Now.ToString("dd MMMM yyyy HH: mm:ss");
            ekgRawData     = new double[antalSamples];



            for (int i = 0; i < antalSamples; i++)
            {
                sample        = (adc.readADC_SingleEnded(0) / 2048.0) * 6.144; //Konverterer fra adc til strøm (eller omvendt)
                ekgRawData[i] = sample;

                Thread.Sleep(samplerate);
            }
            ekgRecordEnd = true;
            return(ekgRecordEnd);
        }
コード例 #7
0
        public bool isCableConnected()
        {
            int test = adConverter.readADC_SingleEnded(0);

            int test2 = adConverter.readADC_SingleEnded(0);

            int test3 = adConverter.readADC_SingleEnded(0);

            int test4 = adConverter.readADC_SingleEnded(0);



            if (adConverter.readADC_SingleEnded(0) == 65535)
            {
                return(false);
            }
            else
            {
                return(true);
            }
        }