HoGC/ESP8266_Gizwits_DC1

请问如何修改成单独USB+三个插孔独立控制

Closed this issue · 2 comments

希望总开关能单独控制USB
APP是搞定了
但是实体按键有些问题
依次打开 开关1,开关2,开关3
当按下总开关时 则所有开关关闭,再次按下总开关,USB打开,再次按下USB关闭

void ICACHE_FLASH_ATTR reverse_switch(uint16_t switch_ret,uint8_t num){
    uint16_t switch_bit=0x10;
    uart0_sendStr("switch_ret:%02x",switch_ret);
    if(num == 0){
	logo_led_switch(1);
        if(dc1_write_gpio((switch_ret ^ 0x80) & 0x80)){
            if((switch_ret & 0x80) == 0x80){
                logo_led_switch(0);
            }else{
                logo_led_switch(1);
            }
		}
    }else{
        switch_bit=switch_bit<<(3-num);
        switch_ret = switch_ret ^ switch_bit;
        if(dc1_write_gpio(switch_ret & 0xF0 | 0x80)){
            //logo_led_switch(1);
        }
    } 
}

改成

void ICACHE_FLASH_ATTR reverse_switch(uint16_t switch_ret,uint8_t num){
    uint16_t switch_bit=0x10;
        switch_bit=switch_bit<<(3-num);
        switch_ret = switch_ret ^ switch_bit;
        if(dc1_write_gpio(switch_ret & 0xf0 | 0x80)){
            //logo_led_switch(1);
        }
    
}

之后,则总开关失效
看了下代码逻辑可能是要修改DC1KeyHandle函数
对平时主要玩C#对C/C++编程不是很懂...

HoGC commented

硬件设计限制了,无法单独控制USB,总开关是所有电源的来源,USB随总开关的控制,如果想关闭USB即只能关闭总电源,那么3个子插座也将被断了电源。

想了下想通了,除非单独给电路板供电才能实现此功能,受教了~!