示例#1
0
        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
            }
        }
示例#2
0
        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();
        }