def METHOD_NAME(self, *arg):  # Read an array of values
    nTypes = int(len(arg) / 2)
    argPos = 0
    outputs = []
    for i in range(0, nTypes):
        nValues = arg[argPos]
        argPos += 1
        datatype = arg[argPos]
        if (datatype in self.typeNames) is False:
            raise ArCOMError("Error: " + datatype + " is not a data type supported by ArCOM.")
        argPos += 1
        typeIndex = self.typeNames.index(datatype)
        byteWidth = self.typeBytes[typeIndex]
        nBytes2Read = nValues * byteWidth
        messageBytes = self.serialObject.METHOD_NAME(nBytes2Read)
        nBytesRead = len(messageBytes)
        if nBytesRead < nBytes2Read:
            raise ArCOMError(
                "Error: serial port timed out. "
                + str(nBytesRead)
                + " bytes read. Expected "
                + str(nBytes2Read)
                + " byte(s)."
            )
        thisOutput = np.frombuffer(messageBytes, datatype)
        outputs.append(thisOutput)
    if nTypes == 1:
        outputs = thisOutput
    return outputs