예제 #1
0
        private void Stageworker_DoWork(object sender, DoWorkEventArgs e)
        {
            BackgroundWorker bgk  = (BackgroundWorker)sender;
            double           delx = (double)mr.distance / 4194304 * 5.5;
            string           line = "";

            Thread.Sleep(2000);
            getload();
            using (StreamWriter writer = new StreamWriter(datafile, true))
            {
                writer.WriteLine("deltax,load");
                try
                {
                    for (int i = 0; i < mr.numberofsteps; i++)
                    {
                        mr.posdirection = mrj4commander.posup;
                        mr.setpos();
                        mr.movepos();
                        Thread.Sleep(1000);
                        mr.posdirection = mrj4commander.posdown;
                        mr.setpos();
                        mr.movepos();
                        Thread.Sleep(1000);
                        getload();
                        msgchnl.setcurrMessage("delx= " + delx * (i + 1) + "-> Load= " + -1 * loadv);
                        line = "" + delx * (i + 1) + "," + -1 * loadv;
                        writer.WriteLine(line);
                    }
                }
                finally
                {
                    writer.Close();
                }
            }
            bgk.ReportProgress(100);
        }
예제 #2
0
 private bool reconnect()
 {
     //clear the info so far
     if (MyUsbDevice != null)
     {
         writer.Dispose();
         wholeUsbDevice.ReleaseInterface(0);
         wholeUsbDevice.Close();
         MyUsbDevice.Close();
         UsbDevice.Exit();
     }
     //now start over
     MyUsbFinder = new UsbDeviceFinder(0x06D3, 0x01D0);
     MyUsbDevice = UsbDevice.OpenUsbDevice(MyUsbFinder);
     // If the device is open and ready
     if (MyUsbDevice == null)
     {
         msgchnl.setcurrMessage("Problem in reconnect() MyUsbDevice is null");
         return(false);
     }
     else
     {
         wholeUsbDevice = MyUsbDevice as IUsbDevice;
         if (!ReferenceEquals(wholeUsbDevice, null))
         {
             // Select config #1
             wholeUsbDevice.SetConfiguration(1);
             // Claim interface #0.
             wholeUsbDevice.ClaimInterface(0);
         }
         writer = MyUsbDevice.OpenEndpointWriter(WriteEndpointID.Ep02);
         reader = MyUsbDevice.OpenEndpointReader(ReadEndpointID.Ep01);
         //Console.WriteLine("New Writer an reader was assigned");
         return(true);
     }
 }
예제 #3
0
 public mrj4commander(MessageChannel i_msgchnl)
 {
     this.msgchnl = i_msgchnl;
     ec           = ErrorCode.None;
     readBuffer   = new byte[32];
     try
     {
         msgchnl.setcurrMessage("Initilazing MRJ-4");
         // Find and open the usb device.
         MyUsbDevice = UsbDevice.OpenUsbDevice(MyUsbFinder);
         // If the device is open and ready
         if (MyUsbDevice == null)
         {
             throw new Exception("Device Not Found.");
         }
         // If this is a "whole" usb device (libusb-win32, linux libusb)
         // it will have an IUsbDevice interface. If not (WinUSB) the
         // variable will be null indicating this is an interface of a
         // device.
         wholeUsbDevice = MyUsbDevice as IUsbDevice;
         if (!ReferenceEquals(wholeUsbDevice, null))
         {
             // This is a "whole" USB device. Before it can be used,
             // the desired configuration and interface must be selected.
             // Select config #1
             wholeUsbDevice.SetConfiguration(1);
             // Claim interface #0.
             wholeUsbDevice.ClaimInterface(0);
         }
         // open read endpoint 1.
         reader = MyUsbDevice.OpenEndpointReader(ReadEndpointID.Ep01);
         // open write endpoint 1.
         writer = MyUsbDevice.OpenEndpointWriter(WriteEndpointID.Ep02);
         msgchnl.setcurrMessage("Initilazing Completed");
     }
     catch (Exception ex)
     {
         msgchnl.setcurrMessage((ec != ErrorCode.None ? ec + ":" : String.Empty) + ex.Message);
     }
     this.posdirection = posup;
     this.jogdirection = jogup;
     #region ASCII encode definition
     encode.Add("0 ", 0x20);
     encode.Add("00", 0x30);
     encode.Add("01", 0x31);
     encode.Add("02", 0x32);
     encode.Add("03", 0x33);
     encode.Add("04", 0x34);
     encode.Add("05", 0x35);
     encode.Add("06", 0x36);
     encode.Add("07", 0x37);
     encode.Add("08", 0x38);
     encode.Add("09", 0x39);
     encode.Add("0A", 0x41);
     encode.Add("0B", 0x42);
     encode.Add("0C", 0x43);
     encode.Add("0D", 0x44);
     encode.Add("0E", 0x45);
     encode.Add("0F", 0x46);
     encode.Add("0L", 0x4C);
     encode.Add("0O", 0x4F);
     encode.Add("0P", 0x50);
     encode.Add("0R", 0x52);
     encode.Add("0S", 0x53);
     encode.Add("0T", 0x54);
     #endregion
     #region ASCII decode definition
     decode.Add(0x30, '0');
     decode.Add(0x31, '1');
     decode.Add(0x32, '2');
     decode.Add(0x33, '3');
     decode.Add(0x34, '4');
     decode.Add(0x35, '5');
     decode.Add(0x36, '6');
     decode.Add(0x37, '7');
     decode.Add(0x38, '8');
     decode.Add(0x39, '9');
     decode.Add(0x41, 'A');
     decode.Add(0x42, 'B');
     decode.Add(0x43, 'C');
     decode.Add(0x44, 'D');
     decode.Add(0x45, 'E');
     decode.Add(0x46, 'F');
     #endregion
     #region Hex Conversion definition
     hexdic.Add(0, '0');
     hexdic.Add(1, '1');
     hexdic.Add(2, '2');
     hexdic.Add(3, '3');
     hexdic.Add(4, '4');
     hexdic.Add(5, '5');
     hexdic.Add(6, '6');
     hexdic.Add(7, '7');
     hexdic.Add(8, '8');
     hexdic.Add(9, '9');
     hexdic.Add(10, 'A');
     hexdic.Add(11, 'B');
     hexdic.Add(12, 'C');
     hexdic.Add(13, 'D');
     hexdic.Add(14, 'E');
     hexdic.Add(15, 'F');
     #endregion
 }