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); }
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); }
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); }