Ejemplo n.º 1
0
def use_dummy_serial_port(printer:SerialDevice):
    # FIXME
    # not great, should be async!!!

    def delayed_string(result:Union[str,bytes]):
        # print ("delayed string {}".format(time.time()))
        time.sleep(random.uniform(0.05,0.5))
        # print ("delayed string {}".format(time.time()))
        return result

    printer._serial_port = "/dev/null"
    printer._serial = dummyserial.Serial(port=printer._serial_port,
        baudrate=printer._baud_rate,
        ds_responses={
            'N?[0-9]*(M105).*': lambda : b'ok T:%.2f /190.0 B:%.2f /24.0 @:0 B@:0\nok\n' % (random.uniform(170,195),random.uniform(20,35)),
            'N?[0-9]*M115.*': b'FIRMWARE_NAME:DUMMY\nok\n',
            'N?[0-9]*M114.*': lambda : b'X:%.2fY:%.2fZ:%.2fE:%.2f Count X: 2.00Y:3.00Z:4.00\nok\n' % (random.uniform(0,200), random.uniform(0,200), random.uniform(0,200), random.uniform(0,200)),   # position request
            'N?[0-9]*G.*': lambda : delayed_string(b'ok\n'),
            'N?[0-9]*M400.*': lambda : delayed_string(b'ok\nok\n'),
            'N?[0-9]*M207.*': lambda : delayed_string(b'ok\nok\n'),
            'N?[0-9]*M208.*': lambda : delayed_string(b'ok\nok\n'),
            'N?[0-9]*M10[0-46-9].*': lambda : delayed_string(b'ok\nok\n'),
            "N?[0-9]*(M[0-9]+).*" : lambda : delayed_string(b'ok\nok\n'), # catch all M codes
            '^XXX': b'!!\n',
            })
    if not printer._serial.is_open:
        printer._serial.open()
    printer.connection_state = ConnectionState.connected
Ejemplo n.º 2
0
def use_dummy_serial_port(printer: SerialDevice):
    if printer._serial_port is not "/dev/null" and printer._serial is None:

        def delayed_string(result: Union[str, bytes]):
            # print ("delayed string {}".format(time.time()))
            time.sleep(random.uniform(0.05, 0.5))
            # print ("delayed string {}".format(time.time()))
            return result

        printer._serial_port = "/dev/null"
        printer._serial = dummyserial.Serial(
            port=printer._serial_port,
            baudrate=printer._baud_rate,
            ds_responses={
                '.*M105.*':
                lambda: b'ok T:%.2f /190.0 B:%.2f /24.0 @:0 B@:0\n' %
                (random.uniform(170, 195), random.uniform(20, 35)),
                '.*M115.*':
                b'FIRMWARE_NAME:DUMMY\n',
                '.*M114.*':
                lambda: b'X:%.2fY:%.2fZ:%.2fE:%.2f Count X: 2.00Y:3.00Z:4.00\n'
                % (random.uniform(0, 200), random.uniform(0, 200),
                   random.uniform(0, 200), random.uniform(0, 200)
                   ),  # position request
                '.*G.*':
                lambda: delayed_string(b'ok\n'),
                '.*M400.*':
                lambda: delayed_string(b'ok\n'),
                '.*M207.*':
                lambda: delayed_string(b'ok\n'),
                '.*M208.*':
                lambda: delayed_string(b'ok\n'),
                '.*M10[0-46-9].*':
                lambda: delayed_string(b'ok\n'),
                '^XXX':
                b'!!\n',
            })
    printer.connection_state = ConnectionState.connected