This is on the latest firmware.
Well apparently the IDs themselves are sequential now. I was getting different ones before I hard reset, but it seems to think they are in a different configuration than how they are physically connected. I might need to build an adjacency list based on the output from panelLayout/layout.
For example, IDs 22, 23, 24, 25 are indeed sequential, but 14, 15, 16, 26 are physically together. 25 is the end of the layout, but 26 is the corner panel next to 14, 15, 16, so when I iterate over all of them, that point lights up last, but it's in the middle of the layout. Here's a visual aide with the relevant panels labeled.
https://ibb.co/fDVNQpX
It doesn't make sense that it's putting them out of order. When I initially set it up, I had moved some panels between controllers (I have four), and I might have mixed some up in the process when I moved them back. Believe it or not, at one point when troubleshooting, before I got it into the state its in now, after hard resetting it multiple times, I had two panels with the same ID in this layout. I highlight them one by one to see which ones correspond to which ID, and one of the values was lighting two panels. I theorize that that may have been related to the Cloud Sync feature of the app that I used to restore the last synced state of the controller. It's not doing that now though.
I'm thinking maybe I can maybe use the x,y values from panelLayout to calculate which panels are adjacent…? I don't think the orientation value matters for this purpose.
[code]{
"numPanels": 26,
"sideLength": 150,
"positionData": [
{
"panelId": 1,
"x": 1124,
"y": 303,
"o": 300,
"shapeType": 0
},
{
"panelId": 2,
"x": 1124,
"y": 389,
"o": 0,
"shapeType": 0
},
{
"panelId": 3,
"x": 1049,
"y": 433,
"o": 300,
"shapeType": 0
},
{
"panelId": 4,
"x": 974,
"y": 389,
"o": 240,
"shapeType": 0
},
{
"panelId": 5,
"x": 899,
"y": 433,
"o": 300,
"shapeType": 0
},
{
"panelId": 6,
"x": 824,
"y": 389,
"o": 120,
"shapeType": 0
},
{
"panelId": 7,
"x": 749,
"y": 433,
"o": 300,
"shapeType": 0
},
{
"panelId": 8,
"x": 749,
"y": 519,
"o": 0,
"shapeType": 0
},
{
"panelId": 9,
"x": 674,
"y": 562,
"o": 300,
"shapeType": 0
},
{
"panelId": 10,
"x": 674,
"y": 649,
"o": 240,
"shapeType": 0
},
{
"panelId": 11,
"x": 599,
"y": 519,
"o": 120,
"shapeType": 0
},
{
"panelId": 12,
"x": 599,
"y": 433,
"o": 180,
"shapeType": 0
},
{
"panelId": 13,
"x": 524,
"y": 389,
"o": 240,
"shapeType": 0
},
{
"panelId": 14,
"x": 449,
"y": 433,
"o": 180,
"shapeType": 0
},
{
"panelId": 15,
"x": 374,
"y": 389,
"o": 120,
"shapeType": 0
},
{
"panelId": 16,
"x": 374,
"y": 303,
"o": 180,
"shapeType": 0
},
{
"panelId": 17,
"x": 449,
"y": 259,
"o": 240,
"shapeType": 0
},
{
"panelId": 18,
"x": 449,
"y": 173,
"o": 300,
"shapeType": 0
},
{
"panelId": 19,
"x": 374,
"y": 129,
"o": 120,
"shapeType": 0
},
{
"panelId": 20,
"x": 374,
"y": 43,
"o": 60,
"shapeType": 0
},
{
"panelId": 21,
"x": 299,
"y": 0,
"o": 120,
"shapeType": 0
},
{
"panelId": 22,
"x": 224,
"y": 43,
"o": 60,
"shapeType": 0
},
{
"panelId": 23,
"x": 149,
"y": 0,
"o": 120,
"shapeType": 0
},
{
"panelId": 24,
"x": 74,
"y": 43,
"o": 180,
"shapeType": 0
},
{
"panelId": 25,
"x": 0,
"y": 0,
"o": 240,
"shapeType": 0
},
{
"panelId": 26,
"x": 299,
"y": 433,
"o": 60,
"shapeType": 0
}
]
}[/code]