OK, so I think I've got this working.
Had an issue where the led that lit up was 1 greater than the *ledLinks[{variable}], and then I noticed that the links are addressed from 0. Changed my code accordingly, and think it's going to work, but I cannot test because every time I try to connect with the board, the app just shuts down. I've tried with both my iPad, and iPhone, they both do the same. Both can see the WiFi, so I don't know what the problem is.
I've shared link to the RemoteXY project, hope you can see if there is anything wrong with it.
https://remotexy.com/en/editor/d62dd980 … 692356677/
And here's the project code. Not complete just yet, bit of more work to do.... Note the GUI configuration is on another tab, and included. You can regenerate it from the shared project ?
// pRojeCt BINGO
//
// License: Public Domain.
// Bingo number colours
#define bingo_blu 1
#define bingo_grn 2
#define bingo_red 3
#define bingo_yel 4
#define bingo_pnk 5
#include "RemoteXY.hpp"
#include <EEPROM.h>
uint8_t topoftheshop;
uint8_t ball_called;
uint16_t called_number_sound = 1046;
uint16_t called_number_timing = 300;
uint8_t *ledLinks[] = {
&RemoteXY.led_01,
&RemoteXY.led_02,
&RemoteXY.led_03,
&RemoteXY.led_04,
&RemoteXY.led_05,
&RemoteXY.led_06,
&RemoteXY.led_07,
&RemoteXY.led_08,
&RemoteXY.led_09,
&RemoteXY.led_10,
&RemoteXY.led_11,
&RemoteXY.led_12,
&RemoteXY.led_13,
&RemoteXY.led_14,
&RemoteXY.led_15,
&RemoteXY.led_16,
&RemoteXY.led_17,
&RemoteXY.led_18,
&RemoteXY.led_19,
&RemoteXY.led_20,
&RemoteXY.led_21,
&RemoteXY.led_22,
&RemoteXY.led_23,
&RemoteXY.led_24,
&RemoteXY.led_25,
&RemoteXY.led_26,
&RemoteXY.led_27,
&RemoteXY.led_28,
&RemoteXY.led_29,
&RemoteXY.led_30,
&RemoteXY.led_31,
&RemoteXY.led_32,
&RemoteXY.led_33,
&RemoteXY.led_34,
&RemoteXY.led_35,
&RemoteXY.led_36,
&RemoteXY.led_37,
&RemoteXY.led_38,
&RemoteXY.led_39,
&RemoteXY.led_40,
&RemoteXY.led_41,
&RemoteXY.led_42,
&RemoteXY.led_43,
&RemoteXY.led_44,
&RemoteXY.led_45,
&RemoteXY.led_46,
&RemoteXY.led_47,
&RemoteXY.led_48,
&RemoteXY.led_49,
&RemoteXY.led_50,
&RemoteXY.led_51,
&RemoteXY.led_52,
&RemoteXY.led_53,
&RemoteXY.led_54,
&RemoteXY.led_55,
&RemoteXY.led_56,
&RemoteXY.led_57,
&RemoteXY.led_58,
&RemoteXY.led_59,
&RemoteXY.led_60,
&RemoteXY.led_61,
&RemoteXY.led_62,
&RemoteXY.led_63,
&RemoteXY.led_64,
&RemoteXY.led_65,
&RemoteXY.led_66,
&RemoteXY.led_67,
&RemoteXY.led_68,
&RemoteXY.led_69,
&RemoteXY.led_70,
&RemoteXY.led_71,
&RemoteXY.led_72,
&RemoteXY.led_73,
&RemoteXY.led_74,
&RemoteXY.led_75,
&RemoteXY.led_76,
&RemoteXY.led_77,
&RemoteXY.led_78,
&RemoteXY.led_79,
&RemoteXY.led_80,
&RemoteXY.led_81,
&RemoteXY.led_82,
&RemoteXY.led_83,
&RemoteXY.led_84,
&RemoteXY.led_85,
&RemoteXY.led_86,
&RemoteXY.led_87,
&RemoteXY.led_88,
&RemoteXY.led_89,
&RemoteXY.led_90
};
void setup() {
// put your setup code here, to run once:
RemoteXY_Init();
randomSeed(analogRead(A0));
called_number_indicators_reset();
Serial.begin(115200);
}
void loop() {
// put your main code here, to run repeatedly:
RemoteXY_Handler();
switch(RemoteXY.game_select) {
case 0: // 1-75
topoftheshop = 75;
RemoteXY.hide_76_80 = 1;
RemoteXY.hide_81_90 = 1;
break;
case 1: // 1-80
topoftheshop = 80;
RemoteXY.hide_76_80 = 0;
RemoteXY.hide_81_90 = 1;
break;
case 2: // 1-90
topoftheshop = 90;
RemoteXY.hide_76_80 = 0;
RemoteXY.hide_81_90 = 0;
break;
}
if(RemoteXY.ball_gen) {
RemoteXY.ball_gen = 0;
// get a new random number
// and test to see if ok
do (ball_called=random(1, topoftheshop + 1));
while (*ledLinks[ball_called] == 1);
// called ball is valid, and new
Serial.print("Ball Called ");
Serial.println(ball_called);
RemoteXY.called_number = ball_called;
RemoteXY.called_sound = called_number_sound;
delay(called_number_timing);
RemoteXY.called_sound = 0;
*ledLinks[ball_called - 1] = 1;
}
}
void called_number_indicators_reset() {
for (int i = 0; i < 90; i++) {
*ledLinks[i] = 0;
}
}
2B, or not 2B, that is the pencil ...