예제 #1
0
 def _init_dmx(self):
     self.ftdi = ftdi.Ftdi()
     self.ftdi.open(self.vendor_id, self.product_id)
     self.ftdi.set_baudrate(self.baud_rate)
     self.ftdi.set_line_property(self.data_bits, self.stop_bits, self.parity, break_=False)
     self.ftdi.set_flowctrl(self.flow_ctrl)
     self.ftdi.purge_rx_buffer()
     self.ftdi.purge_tx_buffer()
     self.ftdi.set_rts(self.rts_state)
예제 #2
0
파일: eeprom.py 프로젝트: xroumegue/pmt
 def list_eeprom_devices(self):
     dev = []
     if common_func.OS == 'Linux':
         self.device = ftdi.Ftdi()
         dev = self.device.list_devices()
         return dev
     elif common_func.OS == 'Windows':
         dev.append(ftdi.getDeviceInfoDetail())
         return dev
예제 #3
0
 def _init_dmx(self):
     self.ftdi=ftdi.Ftdi()
     # self.ftdi.open(vendor,product,0)
     self.ftdi.open_from_url('ftdi:///1')
     self.ftdi.set_baudrate(self.baud_rate)
     self.ftdi.set_line_property(self.data_bits,self.stop_bits,self.parity,break_=0)
     self.ftdi.set_flowctrl(self.flow_ctrl)
     self.ftdi.purge_rx_buffer()
     self.ftdi.purge_tx_buffer()
     self.ftdi.set_rts(self.rts_state)
예제 #4
0
 def __init__(self, invertedArray=False):
     try:
         self.inverted = invertedArray
         self.ftdi = ftdi.Ftdi()
         self.ftdi.open(VMC96._FTDI_VENDOR_ID, VMC96._FTDI_PRODUCT_ID)
         self.ftdi.set_baudrate(VMC96._FTDI_BAUD_RATE)
         self.ftdi.set_line_property(8, 1, 'N')
         self.ftdi.set_flowctrl('')
     except usb.core.USBError as e:
         raise RuntimeError("Error initializing VMC96 Device: " + str(e))
     except:
         raise RuntimeError("Error initializing VMC96 Device")
예제 #5
0
파일: eeprom.py 프로젝트: xroumegue/pmt
 def init_system(self, desc, ind):
     if self.type == 1:  # i2c mode
         self.device = common_func.ftdi_open(ind, 1)
         common_func.ftdic_setbitmode(self.device, 0x0, 0x00)
         common_func.ftdic_setbitmode(self.device, 0x0, 0x02)
     else:  # serial mode
         if common_func.OS == 'Windows':
             self.device = common_func.ftdi_open(ind, 0)
         elif common_func.OS == 'Linux':
             self.device = ftdi.Ftdi()
             self.device.open(vendor=desc[0],
                              product=desc[1],
                              address=desc[3])
예제 #6
0
    def __init__(self, do_slow=False, debug=0, simulation_mode=False):
        self.Debug = debug
        self.PageSize = 0
        self.OOBSize = 0
        self.PageCount = 0
        self.BlockCount = 0
        self.PagePerBlock = 0
        self.BitsPerCell = 0
        self.WriteProtect = True
        self.CheckBadBlock = True
        self.RemoveOOB = False
        self.UseSequentialMode = False
        self.UseAnsi = False
        self.Slow = do_slow
        self.Identified = False
        self.SimulationMode = simulation_mode

        try:
            self.ftdi = ftdi.Ftdi()
        except:
            print("Error openging FTDI device")
            self.ftdi = None

        if self.ftdi is not None:
            try:
                self.ftdi.open(0x0403, 0x6010, interface=1)
            except:
                traceback.print_exc(file=sys.stdout)

            if self.ftdi.is_connected:
                self.ftdi.set_bitmode(0, self.ftdi.BITMODE_MCU)

                if self.Slow:
                    # Clock FTDI chip at 12MHz instead of 60MHz
                    self.ftdi.write_data(
                        Array('B', [ftdi.Ftdi.ENABLE_CLK_DIV5]))
                else:
                    self.ftdi.write_data(
                        Array('B', [ftdi.Ftdi.DISABLE_CLK_DIV5]))

                self.ftdi.set_latency_timer(self.ftdi.LATENCY_MIN)
                self.ftdi.purge_buffers()
                self.ftdi.write_data(
                    Array('B', [ftdi.Ftdi.SET_BITS_HIGH, 0x0, 0x1]))

        self.__wait_ready()

        if not self.__get_id():
            print(f"E: Unable to read the device information")
            sys.exit(-1)
예제 #7
0
    def Setup(self):
        """Sets up the FTDI device."""
        self.ftdi = ftdi.Ftdi()
        try:
            self.ftdi.open(self.DEFAULT_USB_VENDOR,
                           self.DEFAULT_USB_DEVICEID,
                           interface=self.DEFAULT_INTERFACE_NUMBER)
        except OSError:
            raise errors.YandException('Could not open FTDI device\n'
                                       'Check USB connections')

        self.ftdi.set_bitmode(0, ftdi.Ftdi.BITMODE_MCU)
        self.ftdi.write_data(bytearray([ftdi.Ftdi.DISABLE_CLK_DIV5]))
        self.ftdi.purge_buffers()
        self.ftdi.write_data(bytearray([ftdi.Ftdi.SET_BITS_HIGH, 0x0, 0x1]))
        self.WaitReady()
예제 #8
0
 def _init_dmx(self):
     self.ftdi = ftdi.Ftdi()
     self.ftdi.open(vendor, product, 0)
     if self.ftdi.is_connected:
         print("ftdi connected")
     else:
         print("ftdi not connected")
     self.ftdi.set_baudrate(self.baud_rate)
     self.ftdi.set_line_property(self.data_bits,
                                 self.stop_bits,
                                 self.parity,
                                 break_=0)
     self.ftdi.set_flowctrl(self.flow_ctrl)
     self.ftdi.purge_rx_buffer()
     self.ftdi.purge_tx_buffer()
     self.ftdi.set_rts(self.rts_state)
예제 #9
0
 def list_eeprom_devices(self):
     dev = []
     if common_func.OS == 'Linux':
         self.device = ftdi.Ftdi()
         tmp = self.device.list_devices()
         dev = sorted(tmp, key=lambda tup: tup[0][3], reverse=True)
         return dev
     elif common_func.OS == 'Windows':
         n = ftdi.listDevices()
         for i, d in enumerate(n):
             if d != b'':
                 if chr(d[-1]) == 'A':
                     dev.append(ftdi.getDeviceInfoDetail(i))
             else:
                 pass
         return dev
예제 #10
0
    def __init__(self, device=0, timeout=0.5):
        if USE_SERIAL:
            if device == 0:
                raise ValueError("On Windows machines, initiate device with a COM port.  (e.g. 'COM5')")

            self.port = serial.Serial(port=port, baudrate=115200, stopbits=1, timeout=timeout)
            self._write = self.port.write
            self._read = self.port.read

            time.sleep(0.05)
            self.port.reset_input_buffer()
            self.port.reset_output_buffer()
            time.sleep(0.05)

            self._flush = port.flush()

        else:
            if self.USB_PRODUCT_NAME:
                devs = usb.core.find(find_all=True, manufacturer=self.USB_MANUFACTURER, product=self.USB_PRODUCT_NAME)
            else:
                devs = usb.core.find(find_all=True, manufacturer=self.USB_MANUFACTURER)

            devs = list(devs)
            # print(devs)

            if not devs:
                raise ValueError('USB device not found -- is it connected?')
            if device >= len(devs):
                raise ValueError('Requested index (%d) is more than available devices (found %d)' % (device, len(devs)))

            self.port = ftdi.Ftdi()
            self.port.open_from_device(devs[device])
            self.port.set_baudrate(115200)
            self.port.set_line_property(8, 1, "N")

            time.sleep(0.05)
            self.port.purge_buffers()
            time.sleep(0.05)

            self.port.set_flowctrl('hw')
            self.port.set_rts(True)
            self._write = self.port.write_data
            self._read = self.port.read_data

            self._flush = self.port.purge_buffers
예제 #11
0
    def __init__(self, do_slow=False):
        self.Slow = do_slow
        self.UseAnsi = False
        self.Ftdi = ftdi.Ftdi()
        try:
            self.Ftdi.open(0x0403, 0x6010, interface=1)
        except:
            traceback.print_exc(file=sys.stdout)
            return

        self.Ftdi.set_bitmode(0, self.Ftdi.BITMODE_MCU)

        if self.Slow:
            # Clock FTDI chip at 12MHz instead of 60MHz
            self.Ftdi.write_data(Array('B', [ftdi.Ftdi.ENABLE_CLK_DIV5]))
        else:
            self.Ftdi.write_data(Array('B', [ftdi.Ftdi.DISABLE_CLK_DIV5]))

        self.Ftdi.set_latency_timer(self.Ftdi.LATENCY_MIN)
        self.Ftdi.purge_buffers()
        self.Ftdi.write_data(Array('B', [ftdi.Ftdi.SET_BITS_HIGH, 0x0, 0x1]))
        self.WaitReady()
        self.GetID()
예제 #12
0
if sys.version_info < (3, 0):
    sys.exit("Python %s.%s or later is required.\n" % (3, 0))

#-----------------------------------------------------------------------------#
# Global variables                                                            #
#-----------------------------------------------------------------------------#

# The root tk frame. All other tk widgets are contained within this
# TODO: Rewrite with PyQt. It should allow a more advanced viewing screen.
root = tkinter.Tk()

# The G-code parser object
gcp = None

# USB UART object
uart = ftdi.Ftdi()

# Tcl variables
tcl_DEBUG = tkinter.BooleanVar()
tcl_filepath = tkinter.StringVar()
tcl_syntax = tkinter.StringVar()
tcl_connected = tkinter.StringVar()
tcl_estop = tkinter.StringVar()
tcl_baudrate = tkinter.IntVar()

exit_flag = threading.Event()

curr_head_pos = (0, 0, 0)

#-----------------------------------------------------------------------------#
# Initializations                                                             #