Доброго всем!
Рисую управление устройством.
Устройство читает инструкции и тщательно выполняет.
Каждая инструкция - пятиэлементная структура. Первый элемент - время в секундах до выполнения следующей инструкции.
Инструкции предполагается довольно часто редактировать, а время выполнения должно идти последовательно. Посему сортировка.
Инструкции собраны в массив структур, его и сортирую.
В теле программы сортируется без замечаний, а вот попытка вынести сортировку в отдельную функцию провалилась. Пишет ошибки, суть которых настолько неясна, что даже непонятно в какую сторону гуглить.
Подскажите, пжл, где тут порылась…
Вот код:
‘’'struct commandLine{
uint16_t timeFromStart;
uint8_t deviceName;
boolean onDevice;
uint16_t timeDeviceOn;
};
void setup()
{
Serial.begin(9600);
commandLine Formovka[100];
Formovka[0] = (commandLine){17, 2, 1, 170};
Formovka[1] = (commandLine){8, 3, 1, 88};
Formovka[2] = (commandLine){5, 2, 1, 55};
Formovka[3] = (commandLine){10, 3, 1, 100};
Formovka[4] = (commandLine){21, 2, 1, 210};
Formovka[5] = (commandLine){13, 3, 1, 130};
int arrayLength = sizeof(Formovka) / sizeof(Formovka[0]);
for(int i = 0; i < arrayLength; i++){
int z = i;
for(int x = i+1; x < arrayLength-(i+1); x++){
if(Formovka.timeFromStart && Formovka[z].timeFromStart){
if(Formovka[z].timeFromStart > Formovka.timeFromStart) {
Formovka[arrayLength-1] = Formovka[z];
Formovka[z] = Formovka;
Formovka = Formovka[arrayLength-1];
z = x;
Serial.println(“Replace”);
}
}
}
if(i != z) i--;
}
Serial.println(" End Of The Sort");
//sortArr(Formovka);
}
void loop()
{
}
/*
void sortArr(struct commandLine Formovka){
int arrayLength = sizeof(Formovka) / sizeof(Formovka[0]);
for(int i = 0; i < arrayLength; i++){
int z = i;
for(int x = i+1; x < arrayLength-(i+1); x++){
if(Formovka.timeFromStart && Formovka[z].timeFromStart){
if(Formovka[z].timeFromStart > Formovka.timeFromStart) {
Formovka[arrayLength-1] = Formovka[z];
Formovka[z] = Formovka;
Formovka = Formovka[arrayLength-1];
z = x;
Serial.println(“Replace”);
}
}
}
if(i != z) i--;
}
Serial.println(" End Of The Sort");
}
*/
‘’’