示例#1
0
文件: smbPump.cs 项目: pjb7687/single
 private void PumpThread(double diameter, unitType units, runMode mode, double volume, double rate)
 {
     switch (m_pump)
     {
         case pumpType.CHEMYX_FUSION:
             string cmd = "hexw2 " + ((int)units).ToString() + " " +
                                 ((int)mode).ToString() + " " +
                                 diameter.ToString("0.00000") + " " +
                                 volume.ToString("0.00000") + " " +
                                 rate.ToString("0.00000") + " 0 start\r\n";
             m_serialport.Write(cmd);
             Thread.Sleep(200);
             break;
         case pumpType.HARVARD_2000:
             m_serialport.ReadExisting();
             /*
             if (volume != m_volume)
             {
                 m_serialport.Write("TGT " + (volume / 1000.0).ToString("0.0000") + "\r");
                 m_serialport.ReadChar();
                 m_serialport.ReadExisting();
             }
             if (mode != m_mode)
             {
                 if (mode == runMode.REFILL) m_serialport.Write("DIR REF\r");
                 else m_serialport.Write("DIR INF\r");
                 m_serialport.ReadChar();
                 m_serialport.ReadExisting();
             }
             if (rate != m_rate)
             {
                 if (mode == runMode.REFILL) m_serialport.Write("RFR " + rate.ToString("0.0000") + " UM\r");
                 else m_serialport.Write("RAT " + rate.ToString("0.0000") + " UM\r");
                 m_serialport.ReadChar();
                 m_serialport.ReadExisting();
             }
              */
             m_serialport.Write("RUN\r");
             Thread.Sleep(200);
             break;
     }
 }
示例#2
0
文件: smbPump.cs 项目: pjb7687/single
        private void RetrieveParameters()
        {
            string [] p;
            switch (m_pump)
            {
                case pumpType.CHEMYX_FUSION:
                    m_serialport.ReadExisting();
                    m_serialport.Write("view parameter\r\n");
                    Thread.Sleep(200);
                    p = m_serialport.ReadLine().Split(' '); // command

                    p = m_serialport.ReadLine().Trim().Split(' '); // unit
                    if (Convert.ToInt32(p[p.Length - 1]) != 2)
                    {
                        // unit is not ul/mn
                        m_serialport.Write("set units 2\r\n");
                        Thread.Sleep(200);
                        RetrieveParameters();
                        return;
                    }

                    p = m_serialport.ReadLine().Trim().Split(' '); // diameter
                    m_diameter = Convert.ToDouble(p[p.Length - 1]);
                    p = m_serialport.ReadLine().Trim().Split(' '); // rate
                    m_rate = Convert.ToDouble(p[p.Length - 1]);
                    m_serialport.ReadLine(); // primerate ?
                    m_serialport.ReadLine(); // time ?
                    p = m_serialport.ReadLine().Trim().Split(' '); // volume
                    m_volume = Convert.ToDouble(p[p.Length - 1]);
                    m_serialport.ReadExisting();
                    break;
                case pumpType.HARVARD_2000:
                    m_serialport.Write("MOD VOL\r");
                    m_serialport.ReadChar();
                    m_serialport.ReadExisting();

                    m_serialport.Write("DIR REF\r");
                    m_serialport.ReadChar();
                    m_serialport.ReadExisting();

                    m_mode = runMode.REFILL;
                    m_volume = 85;
                    m_rate = 31001;
                    m_diameter = 14.32;
                    break;
            }
        }
示例#3
0
文件: smbPump.cs 项目: pjb7687/single
 public void RunWithSettings(double diameter, unitType units, runMode mode, double volume, double rate)
 {
     Thread t = new Thread(delegate() { PumpThread(diameter, units, mode, volume, rate); });
     t.Start();
 }