function serialObject = pumpobj(comPort)
% PUMPOBJ Returns the serial object for Jasco pumps
% serialObject = pumpobj(comPort) returns the serial object for Jasco pumps
% given a suitable COM port number (unsigned integer: 1-255). If an object
% already exists on that COM port (open or otherwise), returns an error.
% Normal usage:
% e.g. serialObject = pumpobj(9) - returns a serial object for the Jasco pump
% on COM9
% checks the number of arguments
error(nargchk(1, 1, nargin))
% Error handling
if ~isscalar(comPort) || comPort ~= uint8(comPort) || ~comPort
% errors
error('comPort must be an unsigned integer from 1 to 255')
end
% if object on specified COM port exists, errors, otherwise creates
% serial object
% initialises variables
serialPort = sprintf('COM%d', comPort);
% if serial object does not exist, defines serial object and opens it
if isempty(instrfindall('Port', serialPort))
% creates the serial object (note that the first terminator is for
% reading, and the second terminator is for writing)
serialObject = serial( serialPort,...
'BaudRate', 4800,...
'DataBits', 8,...
'Parity', 'none',...
'StopBits', 2,...
'Flowcontrol', 'hardware',...
'Terminator', {'CR/LF', 'CR'},...
'TimeOut', 1);
else
% errors
error('Object(s) already exist on this serial port')
end