public static string GetParamIoutFromByte(byte n, VersionHardware verHw) { if (verHw == VersionHardware.SA94_1) { return((n < paramIoutArray1.Length) ? paramIoutArray1[n] : ""); } return((n < paramIoutArray2.Length) ? paramIoutArray2[n] : ""); }
public static Status ParseDeviceSelectResponse(DeviceResponse answer, VersionHardware verHw) { if (answer.Body.Length != 1) { throw new Exception("ответ не распознан (несовпадение по длине)"); } byte b = answer.Body[0]; Status s = new Status(); s.b6_isQ2ComputeByT3 = (b & 0x40) > 0; s.b5_isNotSA94 = (b & 0x20) > 0; s.b4_isModeCount = (b & 0x10) > 0; s.b3_isSA94 = (b & 0x08) > 0; s.b2_isTwoChannels = (b & 0x04) > 0; if (s.b5_isNotSA94 || !s.b3_isSA94) { throw new Exception("SA-94 не обнаружен"); } switch (verHw) { case VersionHardware.SA94_1: s.b1_SA94_1_isT2Programmed = (b & 0x02) > 0; s.b0_SA94_1_2M_isPrn1OnBackTube = (b & 0x01) > 0; break; case VersionHardware.SA94_2: s.b1_SA94_2_2M_isT3Measured = (b & 0x02) > 0; s.b0_SA94_2_isComputeT3Programmed = (b & 0x01) > 0; break; case VersionHardware.SA94_2M: s.b1_SA94_2_2M_isT3Measured = (b & 0x02) > 0; s.b0_SA94_1_2M_isPrn1OnBackTube = (b & 0x01) > 0; break; } return(s); }