public override void read(InputBuffer ib, int channel) { String line = ""; decimal signal, time; try { try { reader = new StreamReader(filename); } catch (Exception e1) { // Izuzetak pri vec otvorenom ili // neuspjesno pokrenutim StreamReader objektom } line = reader.ReadLine(); while (!(line.Contains("0.000"))) //Dio koda koji pronalazi prvu liniju sa korisnim { //inforamcijama o vrijednosti signala tj. tacne if (line == null) //registrovane vrijednosti signala. { break; } try { line = reader.ReadLine(); } catch (Exception e2) { return; } } do { signal = (decimal.Parse(line.Split('\t')[channel])); time = (decimal.Parse(line.Split('\t')[0])); signal = signal / 1000; time = time / 1000; // signal je cjelobrojni na 11 bita - dijeli se sa 1000 - mV ib.Write(time, signal); // simulacija cekanja na prekid od ulaznog uredjaja - } while ((line = reader.ReadLine()) != null); // kad istekne vrijeme ucita sesljedeca vrijednost EKG signala stop(); } catch (Exception e) { // Catch blok glavnog try scopa } }
public override void read(InputBuffer ib, int channel) { long fileLength = 0; try { file = new FileStream(filename, FileMode.Open); reader = new BinaryReader(file); } catch (Exception e1) { MessageBox.Show(e1.ToString()); } decimal timeStep = 1 / samplingFrequency; fileLength = file.Length; short flag = 0; Int64 low = 0, high = 0; byte[] buf = new byte[] { 0, 0, 0 }; for (int i = 0; i < fileLength / 3; i++) { for (short j = 1; j <= 2; j++) { switch (flag) { case 0: try { buf = reader.ReadBytes(3); } catch (Exception e2) { return; } low = buf[1] & 0x0F; high = buf[1] & 0xF0; if (channel == j) { if (low > 7) { while (!ib.Write(sampleNum * timeStep, convertValue(buf[0] + (low << 8) - 4096, zeroADC, channelGain))) { ; } } else { while (!ib.Write(sampleNum * timeStep, convertValue((buf[0] + (low << 8)), zeroADC, channelGain))) { ; } } } flag = 1; break; case 1: if (channel == j) { if (high > 127) { while (!ib.Write(sampleNum * timeStep, convertValue(buf[2] + (high << 4) - 4096, zeroADC, channelGain))) { ; } } else { while (!ib.Write(sampleNum * timeStep, convertValue((buf[2] + (high << 4)), zeroADC, channelGain))) { ; } } } flag = 0; break; } } } stop(); }