PROJECTOR_CTRL: Add WARMING states [NEC]

NEC V300W returns undocumented states 0x01 and 0x02 during warming up
Consider Projector already powered-up
This commit is contained in:
Jan Bubík 2021-03-06 23:05:51 +01:00
parent cabd9bdffc
commit 2793402027
2 changed files with 14 additions and 2 deletions

View File

@ -35,6 +35,8 @@ static const struct projector_ctrl_command_info_s projector_ctrl_commands[] = {
};
#define PROJECTOR_CTRL_QRYPWR_ON 0x04
#define PROJECTOR_CTRL_QRYPWR_COOLING 0x05
#define PROJECTOR_CTRL_QRYPWR_STARTING 0x01 //undocumented state, seen on V300W
#define PROJECTOR_CTRL_QRYPWR_WARMING 0x02 //undocumented state, seen on V300W
#elif defined(USE_PROJECTOR_CTRL_OPTOMA)
@ -59,6 +61,8 @@ static const struct projector_ctrl_command_info_s projector_ctrl_commands[] = {
};
#define PROJECTOR_CTRL_QRYPWR_ON 0x31
#define PROJECTOR_CTRL_QRYPWR_COOLING 0x31 //placebo
#define PROJECTOR_CTRL_QRYPWR_STARTING 0x31 //placebo
#define PROJECTOR_CTRL_QRYPWR_WARMING 0x31 //placebo
#else

View File

@ -328,11 +328,19 @@ projector_ctrl_loop(struct projector_ctrl_softc_s *sc)
break;
case PROJECTOR_CTRL_S_IDLE:
if ((oldstate==PROJECTOR_CTRL_S_QRY_PWR)&&(sc->sc_ser_result==PROJECTOR_CTRL_R_PASS)){
if(((sc->sc_ser_value==PROJECTOR_CTRL_QRYPWR_ON)||(sc->sc_ser_value==PROJECTOR_CTRL_QRYPWR_COOLING))&&(sc->sc_dev_state!=PROJECTOR_CTRL_DEV_PWR_ON)){
if(( (sc->sc_ser_value==PROJECTOR_CTRL_QRYPWR_ON)
||(sc->sc_ser_value==PROJECTOR_CTRL_QRYPWR_COOLING)
||(sc->sc_ser_value==PROJECTOR_CTRL_QRYPWR_STARTING)
||(sc->sc_ser_value==PROJECTOR_CTRL_QRYPWR_WARMING)
)&&(sc->sc_dev_state!=PROJECTOR_CTRL_DEV_PWR_ON)){
sc->sc_dev_state=PROJECTOR_CTRL_DEV_PWR_ON;
ExecuteCommandPower(sc->sc_device, POWER_ON, SRC_IGNORE);
};
if(((sc->sc_ser_value!=PROJECTOR_CTRL_QRYPWR_ON)&&(sc->sc_ser_value!=PROJECTOR_CTRL_QRYPWR_COOLING))&&(sc->sc_dev_state!=PROJECTOR_CTRL_DEV_PWR_OFF)){
if(( (sc->sc_ser_value!=PROJECTOR_CTRL_QRYPWR_ON)
&&(sc->sc_ser_value!=PROJECTOR_CTRL_QRYPWR_COOLING)
&&(sc->sc_ser_value!=PROJECTOR_CTRL_QRYPWR_STARTING)
&&(sc->sc_ser_value!=PROJECTOR_CTRL_QRYPWR_WARMING)
)&&(sc->sc_dev_state!=PROJECTOR_CTRL_DEV_PWR_OFF)){
sc->sc_dev_state=PROJECTOR_CTRL_DEV_PWR_OFF;
ExecuteCommandPower(sc->sc_device, POWER_OFF, SRC_IGNORE);
};