Source code for pygmc.devices

import logging

from .device import BaseDevice
from .device_rfc1201 import DeviceRFC1201
from .device_rfc1801 import DeviceRFC1801

logger = logging.getLogger("pygmc.device")

device_map = {
    "GMC-280": DeviceRFC1201,
    "GMC-300": DeviceRFC1201,
    "GMC-320": DeviceRFC1201,
    "GMC-500": DeviceRFC1801,
    "GMC-600": DeviceRFC1801,
    # seemed like bigger number would use newer rfc spec until GMC-800
    # listed as RFC1201 in https://www.gqelectronicsllc.com/GMC-800UserGuide.pdf
    "GMC-800": DeviceRFC1201,
}


[docs] def auto_get_device(connection): """ Auto get device class Parameters ---------- connection Returns ------- """ cmd = b"<GETVER>>" connection.reset_buffers() result = connection.get(cmd).decode("utf8") logger.debug(f"Device={result}") base_version = result[0:7] if base_version not in device_map: logger.warning(f"Unable to auto assign device to Device={result}") logger.warning("Assuming newer device. Manually specify device if incorrect.") return DeviceRFC1801(connection) return device_map[base_version](connection)