Example #1
0
 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] : "");
 }
Example #2
0
        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);
        }