www.gusucode.com > Zaber Device Control Toolbox > tests/AsciiDeviceWrapper.m

    classdef AsciiDeviceWrapper < Zaber.AsciiDevice
%ASCIIDEVICEWRAPPER Wrapper to expose protected methods for testing.
    
    methods
        function obj = AsciiDeviceWrapper(aProtocol, aDeviceNumber, aDeviceId)
            obj = obj@Zaber.AsciiDevice(aProtocol, aDeviceNumber, aDeviceId);
        end
    end
    
    methods (Static)
        
        function setupRotaryExpectations(aPort, aFirmwareVersion)
        % Support function for tests - sets up port expectations for a
        % rotary device.
            aPort.expect(Zaber.AsciiMessage(0, 'get deviceid', []), sprintf('@01 0 OK IDLE -- 50001\r\n'));
            aPort.expect(Zaber.AsciiMessage(1, 'get version', []), sprintf('@01 0 OK IDLE -- %f\r\n', aFirmwareVersion));
            aPort.expect(Zaber.AsciiMessage(1, 'get system.axiscount', []), sprintf('@01 0 OK IDLE -- 1\r\n'));
            aPort.expect(Zaber.AsciiMessage(1, 'get peripheralid', [], 'AxisNo', 1), sprintf('@01 0 RJ IDLE -- BADCOMMAND\r\n'));
            aPort.expect(Zaber.AsciiMessage(1, 'get maxspeed', []), sprintf('@01 0 OK IDLE -- 10000\r\n'));
            aPort.expect(Zaber.AsciiMessage(1, 'get resolution', []), sprintf('@01 0 OK IDLE -- 64\r\n'));
            aPort.expect(Zaber.AsciiMessage(1, 'io info', []), sprintf('@01 0 OK IDLE NC 0 0 0 0\r\n'));
        end

        function setupLinearExpectations(aPort, aFirmwareVersion)
            % Support function for tests - sets up port expectations for a
            % linear device.
            aPort.expect(Zaber.AsciiMessage(0, 'get deviceid', []), sprintf('@01 0 OK IDLE -- 50105\r\n'));
            aPort.expect(Zaber.AsciiMessage(1, 'get version', []), sprintf('@01 0 OK IDLE -- %f\r\n', aFirmwareVersion));
            aPort.expect(Zaber.AsciiMessage(1, 'get system.axiscount', []), sprintf('@01 0 OK IDLE -- 1\r\n'));
            aPort.expect(Zaber.AsciiMessage(1, 'get peripheralid', [], 'AxisNo', 1), sprintf('@01 0 RJ IDLE -- BADCOMMAND\r\n'));
            aPort.expect(Zaber.AsciiMessage(1, 'get maxspeed', []), sprintf('@01 0 OK IDLE -- 300000\r\n'));
            aPort.expect(Zaber.AsciiMessage(1, 'get resolution', []), sprintf('@01 0 OK IDLE -- 64\r\n'));
            aPort.expect(Zaber.AsciiMessage(1, 'io info', []), sprintf('@01 0 OK IDLE NC 0 0 0 0\r\n'));
        end

        function setupXyExpectations(aPort, aFirmwareVersion)
            % Support function for tests - sets up port expectations for a
            % two-axis linear device.
            aPort.expect(Zaber.AsciiMessage(0, 'get deviceid', []), sprintf('@01 0 OK IDLE -- 30222\r\n'));
            aPort.expect(Zaber.AsciiMessage(1, 'get version', []), sprintf('@01 0 OK IDLE -- %f\r\n', aFirmwareVersion));
            aPort.expect(Zaber.AsciiMessage(1, 'get system.axiscount', []), sprintf('@01 0 OK IDLE -- 2\r\n'));
            aPort.expect(Zaber.AsciiMessage(1, 'get peripheralid', [], 'AxisNo', 1), sprintf('@01 1 OK IDLE -- 44122\r\n'));
            aPort.expect(Zaber.AsciiMessage(1, 'get peripheralid', [], 'AxisNo', 2), sprintf('@01 2 OK IDLE -- 44112\r\n'));
            aPort.expect(Zaber.AsciiMessage(1, 'get resolution', [], 'AxisNo', 1), sprintf('@01 1 OK IDLE -- 64\r\n'));
            aPort.expect(Zaber.AsciiMessage(1, 'get resolution', [], 'AxisNo', 2), sprintf('@01 2 OK IDLE -- 64\r\n'));
            aPort.expect(Zaber.AsciiMessage(1, 'io info', []), sprintf('@01 0 OK IDLE NC 0 0 0 0\r\n'));
        end
    end
end