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; } } }
//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); }
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); }
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); }
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(); } }
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); }
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); } }