コード例 #1
0
        private static int SetCardFunctionByte(FunctionByteParameter param)
        {
            int functionbyte = BinaryHelper.SetIntegeSomeBit(0, 7, param.Loss == 1);

            functionbyte = BinaryHelper.SetIntegeSomeBit(functionbyte, 6, param.Synchronous == 1);
            switch (param.RegistrationType)
            {
            case CardTypes.SingleCard:
                functionbyte = BinaryHelper.SetIntegeSomeBit(functionbyte, 5, true);
                functionbyte = BinaryHelper.SetIntegeSomeBit(functionbyte, 1, false);
                break;

            case CardTypes.CombinationCard:
                functionbyte = BinaryHelper.SetIntegeSomeBit(functionbyte, 5, false);
                functionbyte = BinaryHelper.SetIntegeSomeBit(functionbyte, 1, false);
                break;

            default:
                functionbyte = BinaryHelper.SetIntegeSomeBit(functionbyte, 5, false);
                functionbyte = BinaryHelper.SetIntegeSomeBit(functionbyte, 1, true);
                break;
            }
            functionbyte = BinaryHelper.SetIntegeSomeBit(functionbyte, 4, param.ParkingRestrictions != 0);
            for (int i = 0; i < 2; i++)
            {
                int vicebinary = BinaryHelper.GetIntegerSomeBit(param.ViceCardCount, i);
                functionbyte = BinaryHelper.SetIntegeSomeBit(functionbyte, 3 - i, vicebinary != 0);
            }
            functionbyte = BinaryHelper.SetIntegeSomeBit(functionbyte, 0, param.InOutState != 0);
            return(functionbyte);
        }
コード例 #2
0
        public static FunctionByteParameter DistanceFunctionByte(int functionbyte)
        {
            FunctionByteParameter parameter = new FunctionByteParameter();

            parameter.Loss        = BinaryHelper.GetIntegerSomeBit(functionbyte, 7);
            parameter.Synchronous = BinaryHelper.GetIntegerSomeBit(functionbyte, 6);
            int registrationtype = BinaryHelper.GetIntegerSomeBit(functionbyte, 5);

            if (registrationtype == 0)
            {
                parameter.RegistrationType = BinaryHelper.GetIntegerSomeBit(functionbyte, 1) == 1 ? CardType.LPRCard : CardType.CombinationCard;
            }
            else
            {
                parameter.RegistrationType = CardType.SingleCard;
            }
            parameter.ParkingRestrictions = BinaryHelper.GetIntegerSomeBit(functionbyte, 4);
            parameter.ViceCardCount       = BinaryHelper.GetBitToInt(functionbyte, 2, 2);
            parameter.InOutState          = BinaryHelper.GetIntegerSomeBit(functionbyte, 0);
            return(parameter);
        }
コード例 #3
0
ファイル: DataParsing.cs プロジェクト: makejack/TestTools
        private static FunctionByteParameter ParsingDistanceFunctionByte(int value)
        {
            FunctionByteParameter param = new FunctionByteParameter()
            {
                Loss                = Utility.GetIntegerSomeBit(value, 7),
                Synchronous         = Utility.GetIntegerSomeBit(value, 6),
                ParkingRestrictions = Utility.GetIntegerSomeBit(value, 4),
                ViceCardCount       = Utility.GetBitToInt(value, 2, 2),
                InOutState          = Utility.GetIntegerSomeBit(value, 0),
            };
            int type = Utility.GetIntegerSomeBit(value, 5);

            if (type == 0)
            {
                type = Utility.GetIntegerSomeBit(value, 1);
                param.RegistrationType = (type == 1 ? PortEnums.CardTypes.Card3 : PortEnums.CardTypes.Card2);
            }
            else
            {
                param.RegistrationType = PortEnums.CardTypes.Card1;
            }
            return(param);
        }