/// <summary> /// Check if the request is valid with respect to device type, id, and request length /// </summary> /// <param name="deviceType"></param> /// <param name="deviceId"></param> /// <param name="request"></param> /// <returns></returns> static private bool IsValidRequest(byte deviceType, byte deviceId, ref byte[] request) { if (DeviceTypeChecker.IsValidDeviceType(deviceType) == false) { Tracer.WriteError("Invalid device type: {0}", deviceType); return(false); } if (DeviceIdChecker.IsValidLogicalDeviceId(deviceType, deviceId) == false) { Tracer.WriteError("Invalid device ID: {0}", deviceId); return(false); } if (request == null) { Tracer.WriteError("Null request packet"); return(false); } // For server commands, simply pass through. // Thus, no need to check the request packet length as long as it is not null if (deviceType != (byte)DeviceType.Server) { if (RequestPacketUtil.IsValidRequestLength(ref request) == false) { return(false); } } return(true); }
/// <summary> /// Get a physical ID from a logical ID /// </summary> /// <param name="deviceType"></param> /// <param name="physicalDeviceId"></param> /// <returns></returns> static internal byte GetPhysicalIdFromLogicalId(byte deviceType, byte logicalDeviceId) { byte physicalDeviceId = logicalDeviceId; // For non-server device types, physical and logical IDs are same if (DeviceTypeChecker.IsServerOrPowerDeviceType(deviceType) == true) { int index = Array.IndexOf(logicalServerIdTable, logicalDeviceId); physicalDeviceId = physicalServerIdTable[index]; } return(physicalDeviceId); }