diff --git a/backend/genesys/gl124.cpp b/backend/genesys/gl124.cpp index 71cfd1122..e356bf307 100644 --- a/backend/genesys/gl124.cpp +++ b/backend/genesys/gl124.cpp @@ -1006,12 +1006,12 @@ void gl124_stop_action(Genesys_Device* dev) unsigned int loop; dev->cmd_set->update_home_sensor_gpio(*dev); - scanner_read_print_status(*dev); + auto status = scanner_read_status(*dev); val40 = dev->interface->read_register(REG_0x100); /* only stop action if needed */ - if (!(val40 & REG_0x100_DATAENB) && !(val40 & REG_0x100_MOTMFLG)) { + if (!(val40 & REG_0x100_DATAENB) && !(val40 & REG_0x100_MOTMFLG) && !status.is_motor_enabled) { DBG (DBG_info, "%s: already stopped\n", __func__); return; } diff --git a/backend/genesys/gl843.cpp b/backend/genesys/gl843.cpp index f967f599d..82d52ec86 100644 --- a/backend/genesys/gl843.cpp +++ b/backend/genesys/gl843.cpp @@ -1320,12 +1320,12 @@ void gl843_stop_action(Genesys_Device* dev) DBG_HELPER(dbg); unsigned int loop; - scanner_read_print_status(*dev); + auto status = scanner_read_status(*dev); uint8_t val40 = dev->interface->read_register(REG_0x40); /* only stop action if needed */ - if (!(val40 & REG_0x40_DATAENB) && !(val40 & REG_0x40_MOTMFLG)) + if (!(val40 & REG_0x40_DATAENB) && !(val40 & REG_0x40_MOTMFLG) && !status.is_motor_enabled) { DBG(DBG_info, "%s: already stopped\n", __func__); return; diff --git a/backend/genesys/gl846.cpp b/backend/genesys/gl846.cpp index 46f3eff20..b8ff20756 100644 --- a/backend/genesys/gl846.cpp +++ b/backend/genesys/gl846.cpp @@ -846,12 +846,12 @@ void gl846_stop_action(Genesys_Device* dev) unsigned int loop; dev->cmd_set->update_home_sensor_gpio(*dev); - scanner_read_print_status(*dev); + auto status = scanner_read_status(*dev); uint8_t val40 = dev->interface->read_register(REG_0x40); /* only stop action if needed */ - if (!(val40 & REG_0x40_DATAENB) && !(val40 & REG_0x40_MOTMFLG)) { + if (!(val40 & REG_0x40_DATAENB) && !(val40 & REG_0x40_MOTMFLG) && !status.is_motor_enabled) { DBG(DBG_info, "%s: already stopped\n", __func__); return; } diff --git a/backend/genesys/gl847.cpp b/backend/genesys/gl847.cpp index d31d3eca8..653392676 100644 --- a/backend/genesys/gl847.cpp +++ b/backend/genesys/gl847.cpp @@ -850,12 +850,12 @@ void gl847_stop_action(Genesys_Device* dev) unsigned int loop; dev->cmd_set->update_home_sensor_gpio(*dev); - scanner_read_print_status(*dev); + auto status = scanner_read_status(*dev); uint8_t val40 = dev->interface->read_register(REG_0x40); /* only stop action if needed */ - if (!(val40 & REG_0x40_DATAENB) && !(val40 & REG_0x40_MOTMFLG)) { + if (!(val40 & REG_0x40_DATAENB) && !(val40 & REG_0x40_MOTMFLG) && !status.is_motor_enabled) { DBG(DBG_info, "%s: already stopped\n", __func__); return; }