public Program() { _trigger = new InputPort(Pins.GPIO_PIN_D4, true, ResistorModes.PullUp); _nrf = new Nrf8001(Pins.GPIO_PIN_D8, Pins.GPIO_PIN_D9, Pins.GPIO_PIN_D7, SPI_Devices.SPI1); _nrf.AciEventReceived += OnAciEventReceived; _nrf.DataReceived += OnDataReceived; _nrf.Setup(SetupData); }
private bool DoSetup() { while (_nrf.State != Nrf8001State.Setup) { _nrf.HandleEvent(); } int setupIndex = 0; _nrf.Setup(SetupData[setupIndex++]); while (true) { var nrfEvent = _nrf.HandleEvent(); if (nrfEvent == null) { continue; } if (nrfEvent.EventType == Nrf8001EventType.CommandResponse && nrfEvent.Data[1] == (byte)AciOpCode.Setup) { if (nrfEvent.Data[2] == (byte)AciStatusCode.TransactionContinue) { _nrf.Setup(SetupData[setupIndex++]); } else if (nrfEvent.Data[2] != (byte)AciStatusCode.TransactionComplete) { return(false); } } else if (nrfEvent.EventType == Nrf8001EventType.DeviceStarted) { return(true); } } }