mirror of
https://github.com/openshwprojects/OpenBK7231T_App.git
synced 2026-03-24 16:16:55 +01:00
scripting example 4; dimmer1000 channel type; some stubs for tuyamcu power
This commit is contained in:
@@ -113,6 +113,25 @@ label2:
|
||||
|
||||
|
||||
|
||||
Example 4:
|
||||
|
||||
// Using channel value as a variable demo
|
||||
// Requirements:
|
||||
// - channel 1 - output relay
|
||||
// - channel 11 - you may use it as ADC, or just use setChannel 11 100 or setChannel 11 500 in console to change delay
|
||||
|
||||
// set default value
|
||||
setChannel 11 500
|
||||
// if you don't have ADC, use this to force-display 11 as a slider on GUI
|
||||
setChannelType 11 dimmer1000
|
||||
|
||||
looper:
|
||||
setChannel 1 0
|
||||
delay_ms $CH11
|
||||
setChannel 1 1
|
||||
delay_ms $CH11
|
||||
goto looper
|
||||
|
||||
*/
|
||||
|
||||
typedef struct scriptFile_s {
|
||||
|
||||
@@ -686,6 +686,10 @@ void TuyaMCU_ApplyMapping(int fnID, int value) {
|
||||
// map TuyaMCU's dimmer range to OpenBK7231T_App's dimmer range 0..256
|
||||
mappedValue = ((value - g_dimmerRangeMin) * 256) / (g_dimmerRangeMax - g_dimmerRangeMin);
|
||||
break;
|
||||
case ChType_Dimmer1000:
|
||||
// map TuyaMCU's dimmer range to OpenBK7231T_App's dimmer range 0..1000
|
||||
mappedValue = ((value - g_dimmerRangeMin) * 1000) / (g_dimmerRangeMax - g_dimmerRangeMin);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@@ -727,6 +731,10 @@ void TuyaMCU_OnChannelChanged(int channel, int iVal) {
|
||||
// map OpenBK7231T_App's dimmer range 0..256 to TuyaMCU's dimmer range
|
||||
mappediVal = (((g_dimmerRangeMax - g_dimmerRangeMin) * iVal) / 256) + g_dimmerRangeMin;
|
||||
break;
|
||||
case ChType_Dimmer1000:
|
||||
// map OpenBK7231T_App's dimmer range 0..256 to TuyaMCU's dimmer range
|
||||
mappediVal = (((g_dimmerRangeMax - g_dimmerRangeMin) * iVal) / 1000) + g_dimmerRangeMin;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -418,7 +418,7 @@ int http_fn_index(http_request_t* request) {
|
||||
poststr(request, "</tr>");
|
||||
}
|
||||
}
|
||||
else if ((bRawPWMs && h_isChannelPWM(i)) || (channelType == ChType_Dimmer) || (channelType == ChType_Dimmer256)) {
|
||||
else if ((bRawPWMs && h_isChannelPWM(i)) || (channelType == ChType_Dimmer) || (channelType == ChType_Dimmer256)|| (channelType == ChType_Dimmer1000)) {
|
||||
int maxValue;
|
||||
// PWM and dimmer both use a slider control
|
||||
const char* inputName = h_isChannelPWM(i) ? "pwm" : "dim";
|
||||
@@ -427,6 +427,9 @@ int http_fn_index(http_request_t* request) {
|
||||
if (channelType == ChType_Dimmer256) {
|
||||
maxValue = 255;
|
||||
}
|
||||
else if (channelType == ChType_Dimmer1000) {
|
||||
maxValue = 1000;
|
||||
}
|
||||
else {
|
||||
maxValue = 100;
|
||||
}
|
||||
|
||||
@@ -732,6 +732,8 @@ int CHANNEL_FindMaxValueForChannel(int ch) {
|
||||
return 100;
|
||||
if(g_cfg.pins.channelTypes[ch] == ChType_Dimmer256)
|
||||
return 256;
|
||||
if(g_cfg.pins.channelTypes[ch] == ChType_Dimmer1000)
|
||||
return 1000;
|
||||
return 1;
|
||||
}
|
||||
// PWMs are toggled between 0 and 100 (0% and 100% PWM)
|
||||
@@ -989,6 +991,9 @@ void PIN_ticks(void *param)
|
||||
BTN_LONG_TICKS = (g_cfg.buttonLongPress * 100 / PIN_TMR_DURATION);
|
||||
BTN_HOLD_REPEAT_TICKS = (g_cfg.buttonHoldRepeat * 100 / PIN_TMR_DURATION);
|
||||
|
||||
#if PLATFORM_BEKEN
|
||||
//SVM_RunThreads(PIN_TMR_DURATION);
|
||||
#endif
|
||||
#ifndef OBK_DISABLE_ALL_DRIVERS
|
||||
DRV_RunQuickTick();
|
||||
#endif
|
||||
@@ -1117,6 +1122,8 @@ int CHANNEL_ParseChannelType(const char *s) {
|
||||
return ChType_Dimmer;
|
||||
if(!stricmp(s,"dimmer256") )
|
||||
return ChType_Dimmer256;
|
||||
if(!stricmp(s,"dimmer1000") )
|
||||
return ChType_Dimmer1000;
|
||||
if(!stricmp(s,"LowMidHigh") )
|
||||
return ChType_LowMidHigh;
|
||||
if(!stricmp(s,"OffLowMidHigh") )
|
||||
@@ -1131,6 +1138,14 @@ int CHANNEL_ParseChannelType(const char *s) {
|
||||
return ChType_TextField;
|
||||
if(!stricmp(s,"ReadOnly") )
|
||||
return ChType_ReadOnly;
|
||||
if(!stricmp(s,"Frequency_mHz") )
|
||||
return ChType_Frequency_mHz;
|
||||
if(!stricmp(s,"Voltage") )
|
||||
return ChType_Voltage;
|
||||
if(!stricmp(s,"Power") )
|
||||
return ChType_Power;
|
||||
if(!stricmp(s,"Current") )
|
||||
return ChType_Current;
|
||||
return ChType_Error;
|
||||
}
|
||||
static int CMD_SetButtonTimes(const void *context, const char *cmd, const char *args, int cmdFlags){
|
||||
|
||||
@@ -82,6 +82,14 @@ enum ChannelType {
|
||||
ChType_LowestLowMidHighHighest,
|
||||
// like dimmer, but 0-255
|
||||
ChType_Dimmer256,
|
||||
// like dimmer, but 0-1000
|
||||
ChType_Dimmer1000,
|
||||
// for TuyaMCU power metering
|
||||
//NOTE: not used for BL0937 etc
|
||||
ChType_Frequency_mHz,
|
||||
ChType_Voltage,
|
||||
ChType_Power,
|
||||
ChType_Current,
|
||||
};
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user