/*Set PICC Operating Parameter state * Send * FF 00 40 [LED&Buzzer(see bellow)] 04 [T1Duration(see bellow)] [T2Duration(see bellow)] [TimesToRepeatCycle(see bellow)] [BuzzerSettings(see bellow)] * Returns * 90 [Changes and Im not sure what it means (+1 for NoCard?)] for success(90 00) * ->LED&Buzzer as ->T1Duration as * [GreenBlinkingMask(0x80):1=Blink,0=Dont] [T1Duration:00-FF(as value x 100ms)] * [RedBlinkingMask(0x40):1=Blink,0=Dont] ->T2Duration as * [InitialGreenBlinkingState(0x20):1=On,0=Off] [T2Duration:00-FF(as value x 100ms)] * [InitialRedBlinkingState(0x10):1=On,0=Off] [TimesToRepeatCycle:00-FF] * [GreenLEDStateMask(0x08):1=Update,0=Dont] ->BuzzerSettings as * [RedLEDStateMask(0x04):1=Update,0=Dont] <FirstByteUnused:0s on postions FC> * [GreenFinalState(0x02):1=On,0=Off] [BuzzerOnT1Cycle(0x02):1=On,0=Off] * [RedFinalState(0x01):1=On,0=Off] [BuzzerOnT12Cycle(0x01):1=On,0=Off] */ /// <summary> /// Sets the buzzer and LEDs to work in a T1 and T2 cycle like in a alarm /// </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 ACR122U_ResposeErrorCodes SetLEDandBuzzerControl(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."); } byte[] Data; byte[] CommandAsBytes = new byte[8] { 0xFF, 0x00, 0x40, (byte)LEDControl, 0x04, T1Duration, T1Duration, (byte)BuzzerControl }; TransmitData(CommandAsBytes, out Data); LastACRResultCode = RetrieveDataCodes(ref Data, out DataOut); return(LastACRResultCode); }
/// <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)); }