Skip to main content
Version: Next

GET SERIAL PORT MAPPING

GET SERIAL PORT MAPPING ( numArray ; nameArray )

ParameterTypeDescription
numArrayLongint array🡘Array of port numbers
nameArrayString array🡘Array of port names

Description

The GET SERIAL PORT MAPPING command returns two arrays, numArray and nameArray, containing the serial port numbers and the serial port names of the current machine.

This command is useful under Mac OS X, where the operating system dynamically allocates the port number when using a USB serial adapter. You can address any extended serial port using its name (static), regardless of its actual number.

Note: This command does not return meaningful values with standard ports. If you want to address a standard port, you must pass its value (0 or 1) directly using the SET CHANNEL command (former operation of 4D).

Example

This project method can be used to address the same serial port (without protocol), regardless of the number that has been assigned to it:

 ARRAY TEXT($arrPortNames;0)
 ARRAY LONGINT($arrPortNums;0)
 var $vPortNum;$vFinalPortNum : Integer
 
  //Find out the current numbers of the serial ports
 GET SERIAL PORT MAPPING($arrPortNums;$arrPortNames)
 $vPortNum:=Find in array($arrPortNames;vPortName)
  // vPortName contains the name of the port to be used; it may come from a dialog box,
  // a value stored in a field, etc.
 If(arrPortNums{$vPortNum}=0)
    $vFinalPortNum:=0 //special case under Mac OS X
 Else
    $vFinalPortNum:=arrPortNums{$vPortNum}+100
 End if
 SET CHANNEL($vFinalPortNum;params) //params contains the communication parameters
 ... //Carry out the desired operations
 SET CHANNEL(11) //Closing of port

See also

SET CHANNEL