Example #1
0
        /// <summary>
        /// Sets and returns the Opperating params of system with out need of card
        /// </summary>
        /// <param name="DataOut"> A enumerated byte as
        /// [AutoPICCPolling:1=Enable,0=Disable]
        /// [AutoATSGeneration:1=Enable,0=Disable]
        /// [PollingInterval:1=250ms,0=500ms]
        /// [Felica424K:1=Detect,0=Ignore]
        /// [Felica212K:1=Detect,0=Ignore]
        /// [Topaz:1=Detect,0=Ignore]
        /// [ISO14443TypeB:1=Detect,0=Ignore]
        /// [ISO14443TypeA:1=Detect,0=Ignore]
        /// </param>
        /// <returns></returns>
        public static ACR122U_ResposeErrorCodes SetPICCOperatingParameterStateStatic(WinSmartCardContext Context, ref ACR122U_PICCOperatingParametersControl SetInDataOut)
        {
            byte SetInData = (byte)SetInDataOut;
            ACR122U_ResposeErrorCodes Return = SetPICCOperatingParameterStateStatic(Context, ref SetInData);

            SetInDataOut = (ACR122U_PICCOperatingParametersControl)SetInData;
            return(Return);
        }
Example #2
0
        /// <summary>
        /// Sets and returns the Opperating params of system with out need of card
        /// </summary>
        /// <param name="DataOut"> A byte as
        /// [AutoPICCPolling:1=Enable,0=Disable]
        /// [AutoATSGeneration:1=Enable,0=Disable]
        /// [PollingInterval:1=250ms,0=500ms]
        /// [Felica424K:1=Detect,0=Ignore]
        /// [Felica212K:1=Detect,0=Ignore]
        /// [Topaz:1=Detect,0=Ignore]
        /// [ISO14443TypeB:1=Detect,0=Ignore]
        /// [ISO14443TypeA:1=Detect,0=Ignore]
        /// </param>
        /// <returns></returns>
        public static ACR122U_ResposeErrorCodes SetPICCOperatingParameterStateStatic(WinSmartCardContext Context, ref byte SetInDataOut)
        {
            bool HasCard;

            byte[] Data;

            byte[] CommandAsBytes = new byte[5] {
                0xFF, 0x00, 0x51, SetInDataOut, 0x00
            };

            Context.Control(CommandAsBytes, out Data, out HasCard);

            return(RetrieveDataCodes(ref Data, out SetInDataOut));
        }
        /// <summary>
        /// Turns RFID anntenna off with out need of card
        /// </summary>
        /// <returns></returns>
        public static ACR122U_ResposeErrorCodes TurnAnntennaOffStatic(WinSmartCardContext Context)
        {
            bool HasCard;

            byte[] DataOut;

            byte[] CommandAsBytes = new byte[7] {
                0xFF, 0x00, 0x00, 0x00, 0x04, 0xD4, 0x00
            };

            Context.Control(CommandAsBytes, out DataOut, out HasCard);

            return(RetrieveDataCodes(ref DataOut));
        }
Example #4
0
        /// <summary>
        /// Gets the Status from the ACR122 using its internal method
        /// </summary>
        /// <param name="ACR122U_Status">A container with all of the status</param>
        /// <returns></returns>
        public static ACR122U_ResposeErrorCodes GetStatusStatic(WinSmartCardContext Context, out ACR122U_Status ACR122U_Status)
        {
            bool Card;
            ACR122U_StatusErrorCodes ErrorCode;
            bool FieldPresent;
            byte NumberOfTargets;
            byte LogicalNumber;
            ACR122U_StatusBitRateInReception   BitRateInReception;
            ACR122U_StatusBitsRateInTransmiton BitRateInTransmition;
            ACR122U_StatusModulationType       ModulationType;
            ACR122U_ResposeErrorCodes          Error = GetStatusStatic(Context, out Card, out ErrorCode, out FieldPresent, out NumberOfTargets, out LogicalNumber, out BitRateInReception, out BitRateInTransmition, out ModulationType);

            ACR122U_Status = new ACR122U_Status(Card, ErrorCode, FieldPresent, NumberOfTargets, LogicalNumber, BitRateInReception, BitRateInTransmition, ModulationType);
            return(Error);
        }
Example #5
0
        /// <summary>
        /// Sets the buzzer and LEDs to work in a T1 and T2 cycle like in a alarm with out need for card
        /// </summary>
        /// <param name="LEDControl"> A enumberated byte as
        /// [GreenBlinkingMask(0x80):1=Blink,0=Dont]
        /// [RedBlinkingMask(0x40):1=Blink,0=Dont]
        /// [InitialGreenBlinkingState(0x20):1=On,0=Off]
        /// [InitialRedBlinkingState(0x10):1=On,0=Off]
        /// [GreenLEDStateMask(0x08):1=Update,0=Dont]
        /// [RedLEDStateMask(0x04):1=Update,0=Dont]
        /// [GreenFinalState(0x02):1=On,0=Off]
        /// [BuzzerOnT1Cycle(0x02):1=On,0=Off]
        /// [RedFinalState(0x01):1=On,0=Off]   </param>
        /// <param name="T1Duration">T1Duration byte(as value x 100ms)</param>
        /// <param name="T2Durration">T2Duration byte(as value x 100ms)</param>
        /// <param name="TimesToRepeat">The Number of times that It sould repeat both cycles</param>
        /// <param name="BuzzerControl"></param> A enumberated byte as
        /// [BuzzerOnT1Cycle(0x02):1=On,0=Off]
        /// [RedFinalState(0x01):1=On,0=Off]
        /// [BuzzerOnT12Cycle(0x01):1=On,0=Off]
        /// <param name="DataOut">Some strange data that to this day I'm not sure of is incons only consi is the card comes on and of is +1</param>
        /// <returns></returns>
        public static ACR122U_ResposeErrorCodes SetLEDandBuzzerControlStatic(WinSmartCardContext Context, ACR122U_LEDControl LEDControl, byte T1Duration, byte T2Durration, byte TimesToRepeat, ACR122U_BuzzerControl BuzzerControl, out byte DataOut)
        {
            if (!Enum.IsDefined(typeof(ACR122U_BuzzerControl), BuzzerControl))
            {
                throw new Exception("Your BuzzerControl selection was not valid.");
            }

            bool HasCard;

            byte[] Data;

            byte[] CommandAsBytes = new byte[8] {
                0xFF, 0x00, 0x40, (byte)LEDControl, 0x04, T1Duration, T1Duration, (byte)BuzzerControl
            };

            Context.Control(CommandAsBytes, out Data, out HasCard);

            return(RetrieveDataCodes(ref Data, out DataOut));
        }
        /// <summary>
        /// Gets the Status from the ACR122 using its internal method
        /// </summary>
        /// <param name="Card"></param>
        /// <param name="ErrorCode"></param>
        /// <param name="FieldPresent"></param>
        /// <param name="NumberOfTargets"></param>
        /// <param name="LogicalNumber"></param>
        /// <param name="BitRateInReception"></param>
        /// <param name="BitRateInTransmition"></param>
        /// <param name="ModulationType"></param>
        /// <returns></returns>
        public static ACR122U_ResposeErrorCodes GetStatusStatic(WinSmartCardContext Context, out bool Card, out ACR122U_StatusErrorCodes ErrorCode, out bool FieldPresent, out byte NumberOfTargets, out byte LogicalNumber, out ACR122U_StatusBitRateInReception BitRateInReception, out ACR122U_StatusBitsRateInTransmiton BitRateInTransmition, out ACR122U_StatusModulationType ModulationType)
        {
            bool HasCard;

            byte[] Data;

            byte[] CommandAsBytes = new byte[] { 0xFF, 0x00, 0x00, 0x00, 0x02, 0xD4, 0x04 };

            Context.Control(CommandAsBytes, out Data, out HasCard);

            ErrorCode       = (ACR122U_StatusErrorCodes)Data[2];
            FieldPresent    = Data[3] != 0;
            NumberOfTargets = Data[4];
            //required as data length doesnt change but some data is droped while leaving trailing 0s to force length of the same
            //if a card is returned with a card this is the values
            if (Data[9] == 0x80 && Data[10] == 0x90 && Data[11] == 0x00)
            {
                Card                 = true;
                LogicalNumber        = Data[5];
                BitRateInReception   = (ACR122U_StatusBitRateInReception)Data[6];
                BitRateInTransmition = (ACR122U_StatusBitsRateInTransmiton)Data[7];
                ModulationType       = (ACR122U_StatusModulationType)Data[8];

                return(ACR122U_ResposeErrorCodes.Success);
            }
            //if a card is returned with out card this is the values
            else if (Data[5] == 0x80 && Data[6] == 0x90 && Data[7] == 0x00)
            {
                Card                 = false;
                LogicalNumber        = 0;
                BitRateInReception   = ACR122U_StatusBitRateInReception.NoReception;
                BitRateInTransmition = ACR122U_StatusBitsRateInTransmiton.NoTransmiton;
                ModulationType       = ACR122U_StatusModulationType.NoCardDetected;

                return(ACR122U_ResposeErrorCodes.Success);
            }
            else
            {
                throw new ACR122U_SmartCardException(ACR122U_ResposeErrorCodes.APIError, ErrorCodes.SCARD_S_SUCCESS);
            }
        }
Example #7
0
 ACR122U_SmartCard(WinSmartCardContext Parent, int Card) : base(Parent, Card)
 {
 }