pre-first-release

This commit is contained in:
ADElectronics 2017-12-26 20:49:06 +03:00
parent c6c5eeed6f
commit 9e39a46764
76 changed files with 190786 additions and 90598 deletions

BIN
Device body/Base.SLDPRT Normal file

Binary file not shown.

BIN
Device body/Base.STL Normal file

Binary file not shown.

BIN
Device body/Button.SLDPRT Normal file

Binary file not shown.

BIN
Device body/Button.STL Normal file

Binary file not shown.

Binary file not shown.

BIN
Device body/PCB/A1.sldasm Normal file

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load diff

Binary file not shown.

BIN
Device body/PCB/C1.sldasm Normal file

Binary file not shown.

BIN
Device body/PCB/C2.sldasm Normal file

Binary file not shown.

BIN
Device body/PCB/C3.sldasm Normal file

Binary file not shown.

BIN
Device body/PCB/C4.sldasm Normal file

Binary file not shown.

BIN
Device body/PCB/C5.sldasm Normal file

Binary file not shown.

BIN
Device body/PCB/C6.sldasm Normal file

Binary file not shown.

BIN
Device body/PCB/C7.sldasm Normal file

Binary file not shown.

BIN
Device body/PCB/DA1.sldasm Normal file

Binary file not shown.

BIN
Device body/PCB/DD1.sldasm Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
Device body/PCB/R1.sldasm Normal file

Binary file not shown.

BIN
Device body/PCB/R2.sldasm Normal file

Binary file not shown.

BIN
Device body/PCB/R3.sldasm Normal file

Binary file not shown.

BIN
Device body/PCB/R4.sldasm Normal file

Binary file not shown.

BIN
Device body/PCB/R5.sldasm Normal file

Binary file not shown.

BIN
Device body/PCB/SB1.sldasm Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
Device body/PCB/VD1.sldasm Normal file

Binary file not shown.

BIN
Device body/PCB/XP1.sldasm Normal file

Binary file not shown.

BIN
Device body/PCB/XP2.sldasm Normal file

Binary file not shown.

Binary file not shown.

BIN
Device body/Top.SLDPRT Normal file

Binary file not shown.

BIN
Device body/Top.STL Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -0,0 +1 @@
<UserSettings><ApplicationIdentity version="14.0"/><ToolsOptions/><Category name="Environment_Group" RegisteredName="Environment_Group"><Category name="Environment_ExternalTools" Category="{E8FAE9E8-FBA2-4474-B134-AB0FFCFB291D}" Package="{DA9FB551-C724-11d0-AE1F-00A0C90FFFC3}" RegisteredName="Environment_ExternalTools" PackageName="Visual Studio Environment Package"><ExternalTools><UserCreatedTool><Arguments>-s runram</Arguments><CloseOnExit>true</CloseOnExit><Command>mingw32-make.exe</Command><Index>0</Index><InitialDirectory>$(ProjectDir)</InitialDirectory><IsGUIapp>false</IsGUIapp><NameID>0</NameID><Package>{00000000-0000-0000-0000-000000000000}</Package><PromptForArguments>false</PromptForArguments><SaveAllDocs>true</SaveAllDocs><Title>[RTL] Run in RAM</Title><Unicode>false</Unicode><UseOutputWindow>true</UseOutputWindow><UseTaskList>false</UseTaskList></UserCreatedTool><UserCreatedTool><Arguments>-s runsdram</Arguments><CloseOnExit>true</CloseOnExit><Command>mingw32-make.exe</Command><Index>1</Index><InitialDirectory>$(ProjectDir)</InitialDirectory><IsGUIapp>false</IsGUIapp><NameID>0</NameID><Package>{00000000-0000-0000-0000-000000000000}</Package><PromptForArguments>false</PromptForArguments><SaveAllDocs>true</SaveAllDocs><Title>[RTL] Run in SDRAM</Title><Unicode>false</Unicode><UseOutputWindow>true</UseOutputWindow><UseTaskList>false</UseTaskList></UserCreatedTool><UserCreatedTool><Arguments>-s flashburn</Arguments><CloseOnExit>true</CloseOnExit><Command>mingw32-make.exe</Command><Index>2</Index><InitialDirectory>$(ProjectDir)</InitialDirectory><IsGUIapp>false</IsGUIapp><NameID>0</NameID><Package>{00000000-0000-0000-0000-000000000000}</Package><PromptForArguments>false</PromptForArguments><SaveAllDocs>true</SaveAllDocs><Title>[RTL] Flash and Run</Title><Unicode>false</Unicode><UseOutputWindow>true</UseOutputWindow><UseTaskList>false</UseTaskList></UserCreatedTool><UserCreatedTool><Arguments>-s flashboot</Arguments><CloseOnExit>true</CloseOnExit><Command>mingw32-make.exe</Command><Index>3</Index><InitialDirectory>$(ProjectDir)</InitialDirectory><IsGUIapp>false</IsGUIapp><NameID>0</NameID><Package>{00000000-0000-0000-0000-000000000000}</Package><PromptForArguments>false</PromptForArguments><SaveAllDocs>true</SaveAllDocs><Title>[RTL] Flash Boot</Title><Unicode>false</Unicode><UseOutputWindow>true</UseOutputWindow><UseTaskList>false</UseTaskList></UserCreatedTool><UserCreatedTool><Arguments>-s flashwebfs</Arguments><CloseOnExit>true</CloseOnExit><Command>mingw32-make.exe</Command><Index>4</Index><InitialDirectory>$(ProjectDir)</InitialDirectory><IsGUIapp>false</IsGUIapp><NameID>0</NameID><Package>{00000000-0000-0000-0000-000000000000}</Package><PromptForArguments>false</PromptForArguments><SaveAllDocs>true</SaveAllDocs><Title>[RTL] Flash WEB Image</Title><Unicode>false</Unicode><UseOutputWindow>true</UseOutputWindow><UseTaskList>false</UseTaskList></UserCreatedTool><UserCreatedTool><Arguments>-s reset</Arguments><CloseOnExit>true</CloseOnExit><Command>mingw32-make.exe</Command><Index>5</Index><InitialDirectory>$(ProjectDir)</InitialDirectory><IsGUIapp>false</IsGUIapp><NameID>0</NameID><Package>{00000000-0000-0000-0000-000000000000}</Package><PromptForArguments>false</PromptForArguments><SaveAllDocs>true</SaveAllDocs><Title>[RTL] Reset CPU</Title><Unicode>false</Unicode><UseOutputWindow>true</UseOutputWindow><UseTaskList>false</UseTaskList></UserCreatedTool><UserCreatedTool><Arguments>-select USB -device Cortex-M3 -if SWD -speed 1000 -ir</Arguments><CloseOnExit>false</CloseOnExit><Command>JLinkGDBServer.exe</Command><Index>6</Index><InitialDirectory>$(ProjectDir)</InitialDirectory><IsGUIapp>true</IsGUIapp><NameID>0</NameID><Package>{00000000-0000-0000-0000-000000000000}</Package><PromptForArguments>false</PromptForArguments><SaveAllDocs>true</SaveAllDocs><Title>[RTL] Start J-Link GDB Server M3</Title><Unicode>false</Unicode><UseOutputWindow>false</UseOutputWindow><UseTaskList>false</UseTaskList></UserCreatedTool><UserCreatedTool><Arguments>-select USB -device Cortex-M4 -if SWD -speed 1000 -ir</Arguments><CloseOnExit>false</CloseOnExit><Command>JLinkGDBServer.exe</Command><Index>7</Index><InitialDirectory>$(ProjectDir)</InitialDirectory><IsGUIapp>true</IsGUIapp><NameID>0</NameID><Package>{00000000-0000-0000-0000-000000000000}</Package><PromptForArguments>false</PromptForArguments><SaveAllDocs>true</SaveAllDocs><Title>[RTL] Start J-Link GDB Server M4</Title><Unicode>false</Unicode><UseOutputWindow>false</UseOutputWindow><UseTaskList>false</UseTaskList></UserCreatedTool><ExcludeRegisteredTool SourceKeyName="Error Loo&amp;kup"/><ExcludeRegisteredTool SourceKeyName="Sp&amp;y++"/><ExcludeRegisteredTool SourceKeyName="Spy++ (x64)"/><ExcludeRegisteredTool SourceKeyName="PreEmptive Protection - Dot&amp;fuscator"/><ExcludeRegisteredTool SourceKeyName="Create GUID"/></ExternalTools></Category></Category></UserSettings>

Binary file not shown.

View file

@ -1,10 +1,5 @@
 ===========================================================  ===========================================================
Compile (Debug) Compile (Debug)
project/user_start.c
project/WS2812/ledfilters.c
project/WS2812/ledeffectsserver.c
project/web/web_int_callbacks.c
project/web/web_int_vars.c
=========================================================== ===========================================================
Link (Debug) Link (Debug)
=========================================================== ===========================================================
@ -18,9 +13,9 @@
copy size 8520 copy size 8520
=========================================================== ===========================================================
Create image2ns (Debug/bin/ram_2.ns.bin) Create image2ns (Debug/bin/ram_2.ns.bin)
b:268460032 s:268460032 e:268727448 b:268460032 s:268460032 e:268728976
size 267416 size 268944
copy size 267416 copy size 268944
=========================================================== ===========================================================
Create image3 (SDRAM, Debug/bin/sdram.p.bin) Create image3 (SDRAM, Debug/bin/sdram.p.bin)
30000000 30000000 30000000 30000000
@ -29,21 +24,21 @@
copy size 0 copy size 0
=========================================================== ===========================================================
Make OTA image (Debug/bin/ota.bin) Make OTA image (Debug/bin/ota.bin)
size = 267448 size = 268976
checksum 1a71a99 checksum 1aa0f6e
=========================================================== ===========================================================
Create image2p (Debug/bin/ram_2.p.bin) Create image2p (Debug/bin/ram_2.p.bin)
b:268460032 s:268460032 e:268727448 b:268460032 s:268460032 e:268728976
size 267416 size 268944
copy size 267416 copy size 268944
=========================================================== ===========================================================
Make Flash image (Debug/bin/ram_all.bin) Make Flash image (Debug/bin/ram_all.bin)
total 44 k, padding data 0, name Debug/bin/ram_all.bin total 44 k, padding data 0, name Debug/bin/ram_all.bin
Original size zd Original size zd
Padding size zd Padding size zd
----------------------------------------------------------- -----------------------------------------------------------
Image (Debug/bin/ota.bin) size 267452 bytes Image (Debug/bin/ota.bin) size 268980 bytes
Image (Debug/bin/ram_all.bin) size 312504 bytes Image (Debug/bin/ram_all.bin) size 314032 bytes
=========================================================== ===========================================================

Binary file not shown.

Binary file not shown.

View file

@ -1,9 +1,34 @@
ws_striplen
ws_striplen
wifi_st_ssid
wifi_st_psw
wifi_st_ip
wifi_ap_ssid
wifi_ap_psw
wifi_ap_ip
ws_isenable
ws_filt_rbw_enbl ws_filt_rbw_enbl
ws_filt_flick_enbl
ws_filt_fd_enbl
ws_filt_rbw_huesteps ws_filt_rbw_huesteps
ws_filt_rbw_cyclesteps ws_filt_rbw_cyclesteps
ws_filt_fd_enbl
ws_filt_fd_cyclesteps ws_filt_fd_cyclesteps
ws_filt_fd_min ws_filt_fd_min
ws_filt_fd_max ws_filt_fd_max
ws_filt_fd_chance ws_filt_fd_chance
ws_filt_wave_enbl
ws_filt_wave_step
ws_filt_wave_wavesteps
wifi_mode
wifi_bgn
wifi_txpow
wifi_st_ssid
wifi_st_psw
wifi_st_auth
wifi_st_ip
wifi_ap_ssid
wifi_ap_psw
wifi_ap_auth
wifi_ap_ip
ws_filt_const_hue
ws_filt_const_sat
ws_filt_const_value

File diff suppressed because it is too large Load diff

Binary file not shown.

File diff suppressed because it is too large Load diff

View file

@ -9,50 +9,48 @@ SemaphoreHandle_t cfg_sema = NULL;
ctx_rainbow_t filt_rainbow; ctx_rainbow_t filt_rainbow;
ctx_fade_t filt_fade; ctx_fade_t filt_fade;
ctx_const_t filt_const;
ctx_wave_t filt_wave;
void ledEffectsServer_Init() void ledEffectsServer_Init()
{ {
cfg_sema = xSemaphoreCreateMutex();
ws2812_cfg = ws2812_Init(WS2812_LEDS_MAX); ws2812_cfg = ws2812_Init(WS2812_LEDS_MAX);
if (ws2812_cfg == NULL) if (ws2812_cfg == NULL)
{ {
printf("[%s] ws2812_Init() failed\n", __func__); printf("[%s] ws2812_Init() failed\n", __func__);
goto error; return;
} }
ledFilter_Init(&strip, ws2812_cfg); ledFilter_Init(&strip, ws2812_cfg);
ledFilter_InitRainbow(&filt_rainbow); ledFilter_InitRainbow(&filt_rainbow);
ledFilter_InitFade(&filt_fade); ledFilter_InitFade(&filt_fade);
ledFilter_InitConstant(&filt_const);
ledFilter_InitWave(&filt_wave);
ledFilter_SetDefualtValue(&strip, MAX_STRIP_BRIGHT); ledFilter_SetDefualtValue(&strip, MAX_STRIP_BRIGHT);
filt_fade.enabled = 1; }
void ledEffectsServer_Task()
{
cfg_sema = xSemaphoreCreateMutex();
while (1) while (1)
{ {
if(xSemaphoreTake(cfg_sema, 5 * configTICK_RATE_HZ)) if (xSemaphoreTake(cfg_sema, 5 * configTICK_RATE_HZ))
{ {
ledFilter_Rainbow(&filt_rainbow, &strip); ledFilter_Rainbow(&filt_rainbow, &strip);
ledFilter_Constant(&filt_const, &strip);
ledFilter_Wave(&filt_wave, &strip);
ledFilter_Fade(&filt_fade, &strip); ledFilter_Fade(&filt_fade, &strip);
ws2812_Update(ws2812_cfg, strip.hsv_vals, strip.strip_len, strip.delay);
ws2812_Update(ws2812_cfg, strip.hsv_vals, strip.strip_len, strip.delay);
xSemaphoreGive(cfg_sema); xSemaphoreGive(cfg_sema);
} }
WDGRefresh(); WDGRefresh();
} }
error:
while (1)
{
vTaskDelay(1000);
}
} }
/* /*
void ledEffectsServer_LoadConfigFromFlash() void ledEffectsServer_LoadConfigFromFlash()

View file

@ -5,14 +5,14 @@
// Ïóáëè÷íûå êîíôèíãè ôèëüòðîâ // Ïóáëè÷íûå êîíôèíãè ôèëüòðîâ
extern strip_handler_t strip;
extern ctx_rainbow_t filt_rainbow; extern ctx_rainbow_t filt_rainbow;
extern ctx_fade_t filt_fade; extern ctx_fade_t filt_fade;
extern ctx_const_t filt_const;
extern ctx_wave_t filt_wave;
void ledEffectsServer_Init(); void ledEffectsServer_Init();
void ledEffectsServer_Task();
#endif // _LEDEFFECTSSERVER_H_ #endif // _LEDEFFECTSSERVER_H_

View file

@ -2,6 +2,41 @@
extern uint32_t cfg_updated; extern uint32_t cfg_updated;
uint8_t sin_table[256] = {
0x80, 0x83, 0x86, 0x89, 0x8C, 0x90, 0x93, 0x96,
0x99, 0x9C, 0x9F, 0xA2, 0xA5, 0xA8, 0xAB, 0xAE,
0xB1, 0xB3, 0xB6, 0xB9, 0xBC, 0xBF, 0xC1, 0xC4,
0xC7, 0xC9, 0xCC, 0xCE, 0xD1, 0xD3, 0xD5, 0xD8,
0xDA, 0xDC, 0xDE, 0xE0, 0xE2, 0xE4, 0xE6, 0xE8,
0xEA, 0xEB, 0xED, 0xEF, 0xF0, 0xF1, 0xF3, 0xF4,
0xF5, 0xF6, 0xF8, 0xF9, 0xFA, 0xFA, 0xFB, 0xFC,
0xFD, 0xFD, 0xFE, 0xFE, 0xFE, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFE, 0xFE, 0xFD,
0xFD, 0xFC, 0xFB, 0xFA, 0xFA, 0xF9, 0xF8, 0xF6,
0xF5, 0xF4, 0xF3, 0xF1, 0xF0, 0xEF, 0xED, 0xEB,
0xEA, 0xE8, 0xE6, 0xE4, 0xE2, 0xE0, 0xDE, 0xDC,
0xDA, 0xD8, 0xD5, 0xD3, 0xD1, 0xCE, 0xCC, 0xC9,
0xC7, 0xC4, 0xC1, 0xBF, 0xBC, 0xB9, 0xB6, 0xB3,
0xB1, 0xAE, 0xAB, 0xA8, 0xA5, 0xA2, 0x9F, 0x9C,
0x99, 0x96, 0x93, 0x90, 0x8C, 0x89, 0x86, 0x83,
0x80, 0x7D, 0x7A, 0x77, 0x74, 0x70, 0x6D, 0x6A,
0x67, 0x64, 0x61, 0x5E, 0x5B, 0x58, 0x55, 0x52,
0x4F, 0x4D, 0x4A, 0x47, 0x44, 0x41, 0x3F, 0x3C,
0x39, 0x37, 0x34, 0x32, 0x2F, 0x2D, 0x2B, 0x28,
0x26, 0x24, 0x22, 0x20, 0x1E, 0x1C, 0x1A, 0x18,
0x16, 0x15, 0x13, 0x11, 0x10, 0x0F, 0x0D, 0x0C,
0x0B, 0x0A, 0x08, 0x07, 0x06, 0x06, 0x05, 0x04,
0x03, 0x03, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x03,
0x03, 0x04, 0x05, 0x06, 0x06, 0x07, 0x08, 0x0A,
0x0B, 0x0C, 0x0D, 0x0F, 0x10, 0x11, 0x13, 0x15,
0x16, 0x18, 0x1A, 0x1C, 0x1E, 0x20, 0x22, 0x24,
0x26, 0x28, 0x2B, 0x2D, 0x2F, 0x32, 0x34, 0x37,
0x39, 0x3C, 0x3F, 0x41, 0x44, 0x47, 0x4A, 0x4D,
0x4F, 0x52, 0x55, 0x58, 0x5B, 0x5E, 0x61, 0x64,
0x67, 0x6A, 0x6D, 0x70, 0x74, 0x77, 0x7A, 0x7D
};
#pragma region Áàçîâûå ôóíêöèè ïî ðàáîòå ñ ôèëüòðàìè #pragma region Áàçîâûå ôóíêöèè ïî ðàáîòå ñ ôèëüòðàìè
int32_t ledFilter_Init(strip_handler_t *strip, ws2812_t *ws2812) int32_t ledFilter_Init(strip_handler_t *strip, ws2812_t *ws2812)
{ {
@ -12,7 +47,7 @@ int32_t ledFilter_Init(strip_handler_t *strip, ws2812_t *ws2812)
strip->strip_len = DEF_STRIP_LEN; strip->strip_len = DEF_STRIP_LEN;
strip->delay = 10; strip->delay = 10;
strip->brightness = MAX_STRIP_BRIGHT; strip->brightness = MAX_STRIP_BRIGHT;
strip->isEnable = 1;
cfg_updated = 1; cfg_updated = 1;
} }
@ -79,7 +114,7 @@ void ledFilter_Rainbow(ctx_rainbow_t *ctx, strip_handler_t *strip)
ws2812_hsv_t tmp_hsv; ws2812_hsv_t tmp_hsv;
uint8_t tmp_hue; uint8_t tmp_hue;
if (ctx->enabled == 0) return; if (ctx->enabled == 0 || strip->isEnable == 0) return;
tmp_hue = ctx->curr_hue; tmp_hue = ctx->curr_hue;
tmp_hsv.sat = 255; tmp_hsv.sat = 255;
@ -96,7 +131,7 @@ void ledFilter_Rainbow(ctx_rainbow_t *ctx, strip_handler_t *strip)
tmp_hsv.value = strip->hsv_vals[i].value; tmp_hsv.value = strip->hsv_vals[i].value;
strip->hsv_vals[i] = tmp_hsv; strip->hsv_vals[i] = tmp_hsv;
tmp_hue += 255/ ctx->hue_steps; tmp_hue += 255/ ctx->hue_steps;
tmp_hue %= 256; //tmp_hue %= 256;
} }
ctx->curr_hue += ctx->cycle_steps; ctx->curr_hue += ctx->cycle_steps;
@ -109,11 +144,11 @@ void ledFilter_InitFade(ctx_fade_t *ctx)
{ {
if (ctx->valid != LEDFILTERS_CFG_CHECKWORD) if (ctx->valid != LEDFILTERS_CFG_CHECKWORD)
{ {
ctx->valid = 1; ctx->valid = LEDFILTERS_CFG_CHECKWORD;
ctx->min = 0; ctx->min = 0;
ctx->max = 255; ctx->max = 255;
ctx->steps = LEDFILTERS_MAX_STEPS; ctx->steps = LEDFILTERS_MAX_STEPS;
ctx->enabled = 1; ctx->enabled = 0;
cfg_updated = 1; cfg_updated = 1;
} }
@ -130,7 +165,7 @@ void ledFilter_Fade(ctx_fade_t *ctx, strip_handler_t *strip)
{ {
uint32_t i; uint32_t i;
if (ctx->enabled == 0) return; if (ctx->enabled == 0 || strip->isEnable == 0) return;
if (ctx->curr_val == 0) if (ctx->curr_val == 0)
{ {
@ -186,24 +221,84 @@ void ledFilter_Fade(ctx_fade_t *ctx, strip_handler_t *strip)
#pragma region Wave #pragma region Wave
void ledFilter_InitWave(ctx_wave_t *ctx) void ledFilter_InitWave(ctx_wave_t *ctx)
{ {
if (ctx->valid != LEDFILTERS_CFG_CHECKWORD)
{
ctx->valid = LEDFILTERS_CFG_CHECKWORD;
ctx->enabled = 0;
ctx->wave_steps = 20;
ctx->angle = 0;
ctx->step = 1;
cfg_updated = 1;
}
//for (uint16_t i = 0; i < 255; i++)
// sin_table[i] = (uint16_t)(sin((double)(((double)i + 2.0) * M_PI)/ 255.0) * UINT8_MAX);
} }
void ledFilter_Wave(ctx_wave_t *ctx, strip_handler_t *strip) void ledFilter_Wave(ctx_wave_t *ctx, strip_handler_t *strip)
{ {
uint32_t i, j;
uint8_t tmp_angle = 0;
if (ctx->enabled == 0 || strip->isEnable == 0) return;
tmp_angle = ctx->angle;
for (i = 0, j = ctx->wave_steps; i < strip->strip_len; i++)
{
if (i == j)
{
j += ctx->wave_steps;
tmp_angle = ctx->angle;
}
strip->hsv_vals[i].value = sin_table[tmp_angle]/2;
tmp_angle += 255 / ctx->wave_steps;
//tmp_angle %= 256;
}
ctx->angle += ctx->step;
} }
#pragma endregion #pragma endregion
#pragma region Constant #pragma region Constant
void ledFilter_InitConstant(ctx_const_t *ctx) void ledFilter_InitConstant(ctx_const_t *ctx)
{ {
if (ctx->valid != LEDFILTERS_CFG_CHECKWORD)
{
ctx->valid = LEDFILTERS_CFG_CHECKWORD;
ctx->hue = 128;
ctx->sat = 255;
ctx->value = 255;
ctx->enabled = 0;
ctx->update = 0;
cfg_updated = 1;
}
} }
void ledFilter_Constant(ctx_const_t *ctx, strip_handler_t *strip) void ledFilter_Constant(ctx_const_t *ctx, strip_handler_t *strip)
{ {
uint32_t i;
if (strip->isEnable == 0)
{
for (i = 0; i < strip->strip_len; i++)
{
if (strip->hsv_vals[i].value > 0)
strip->hsv_vals[i].value--;
}
return;
}
else if (ctx->enabled == 0) return;
if (ctx->update > 0)
{
for (i = 0; i < strip->strip_len; i++)
{
strip->hsv_vals[i].hue = ctx->hue;
strip->hsv_vals[i].sat = ctx->sat;
strip->hsv_vals[i].value = ctx->value;
}
ctx->update = 0;
}
} }
#pragma endregion #pragma endregion

View file

@ -48,6 +48,9 @@ typedef struct
{ {
uint8_t enabled; uint8_t enabled;
uint32_t valid; uint32_t valid;
uint8_t wave_steps;
uint8_t step;
uint8_t angle;
} ctx_wave_t; } ctx_wave_t;
#pragma endregion #pragma endregion
@ -55,6 +58,10 @@ typedef struct
typedef struct typedef struct
{ {
uint8_t enabled; uint8_t enabled;
uint8_t hue;
uint8_t sat;
uint8_t value;
uint8_t update;
uint32_t valid; uint32_t valid;
} ctx_const_t; } ctx_const_t;
#pragma endregion #pragma endregion
@ -66,6 +73,7 @@ typedef struct
uint32_t strip_len; uint32_t strip_len;
uint32_t brightness; uint32_t brightness;
uint32_t delay; uint32_t delay;
uint8_t isEnable;
} strip_handler_t; } strip_handler_t;
int32_t ledFilter_Init(strip_handler_t *strip, ws2812_t *ws2812); int32_t ledFilter_Init(strip_handler_t *strip, ws2812_t *ws2812);
@ -76,7 +84,8 @@ void ledFilter_InitFade(ctx_fade_t *ctx);
void ledFilter_Fade(ctx_fade_t *ctx, strip_handler_t *strip); void ledFilter_Fade(ctx_fade_t *ctx, strip_handler_t *strip);
void ledFilter_InitWave(ctx_wave_t *ctx); void ledFilter_InitWave(ctx_wave_t *ctx);
void ledFilter_Wave(ctx_wave_t *ctx, strip_handler_t *strip); void ledFilter_Wave(ctx_wave_t *ctx, strip_handler_t *strip);
void ledFilter_InitConstant(ctx_const_t *ctx);
void ledFilter_Constant(ctx_const_t *ctx, strip_handler_t *strip);
void ledFilter_SetDefualtValue(strip_handler_t *strip, uint8_t val); void ledFilter_SetDefualtValue(strip_handler_t *strip, uint8_t val);
#endif // _LEDFILTERS_H_ #endif // _LEDFILTERS_H_

View file

@ -1,6 +1,6 @@
#define UTS_VERSION "2017/12/24-02:16:14" #define UTS_VERSION "2017/12/26-19:51:38"
#define RTL8195AFW_COMPILE_TIME "2017/12/24-02:16:14" #define RTL8195AFW_COMPILE_TIME "2017/12/26-19:51:38"
#define RTL8195AFW_COMPILE_DATE "20171224" #define RTL8195AFW_COMPILE_DATE "20171226"
#define RTL8195AFW_COMPILE_BY "Andrew" #define RTL8195AFW_COMPILE_BY "Andrew"
#define RTL8195AFW_COMPILE_HOST "" #define RTL8195AFW_COMPILE_HOST ""
#define RTL8195AFW_COMPILE_DOMAIN #define RTL8195AFW_COMPILE_DOMAIN

View file

@ -77,11 +77,13 @@ extern void console_init(void);
void user_ws_thrd(void) void user_ws_thrd(void)
{ {
ledEffectsServer_Init();
while (1) while (1)
{ {
if (xSemaphoreTake(sema_WEBReady, 10 * configTICK_RATE_HZ)) if (xSemaphoreTake(sema_WEBReady, 10 * configTICK_RATE_HZ))
{ {
ledEffectsServer_Init(); ledEffectsServer_Task();
} }
WDGRefresh(); WDGRefresh();
} }

View file

@ -404,7 +404,26 @@ void ICACHE_FLASH_ATTR web_int_callback(TCP_SERV_CONN *ts_conn, uint8 *cstr)
else ifcmp("max") tcp_puts("%d", filt_fade.max); else ifcmp("max") tcp_puts("%d", filt_fade.max);
else ifcmp("cyclesteps") tcp_puts("%d", filt_fade.steps); else ifcmp("cyclesteps") tcp_puts("%d", filt_fade.steps);
} }
else ifcmp("wave_")
{
cstr += 5;
ifcmp("enbl") tcp_puts("%d", filt_wave.enabled);
else ifcmp("step") tcp_puts("%d", filt_wave.step);
else ifcmp("wavesteps") tcp_puts("%d", filt_wave.wave_steps);
} }
else ifcmp("const_")
{
cstr += 6;
ifcmp("enbl") tcp_puts("%d", filt_const.enabled);
else ifcmp("hue") tcp_puts("%d", filt_const.hue);
else ifcmp("sat") tcp_puts("%d", filt_const.sat);
else ifcmp("value") tcp_puts("%d", filt_const.value);
}
}
else ifcmp("isenable") tcp_puts("%d", strip.isEnable);
else ifcmp("striplen") tcp_puts("%d", strip.strip_len);
} }
// **************************************************************************************************** // // **************************************************************************************************** //
// **************************************************************************************************** // // **************************************************************************************************** //

View file

@ -113,7 +113,27 @@ void ICACHE_FLASH_ATTR web_int_vars(TCP_SERV_CONN *ts_conn, uint8 *pcmd, uint8 *
else ifcmp("max") filt_fade.max = (uint8_t)val; else ifcmp("max") filt_fade.max = (uint8_t)val;
else ifcmp("cyclesteps") filt_fade.steps = (uint8_t)val; else ifcmp("cyclesteps") filt_fade.steps = (uint8_t)val;
} }
else ifcmp("wave_")
{
cstr += 5;
ifcmp("enbl") filt_wave.enabled = (uint8_t)val;
else ifcmp("step") filt_wave.step = (uint8_t)val;
else ifcmp("wavesteps") filt_wave.wave_steps = (uint8_t)val;
} }
else ifcmp("const_")
{
cstr += 6;
ifcmp("enbl") filt_const.enabled = (uint8_t)val;
else ifcmp("hue") filt_const.hue = (uint8_t)val;
else ifcmp("sat") filt_const.sat = (uint8_t)val;
else ifcmp("value") filt_const.value = (uint8_t)val;
else ifcmp("update") filt_const.update = (uint8_t)val;
}
}
else ifcmp("isenable") strip.isEnable = (uint8_t)val;
//else ifcmp("striplen") strip.strip_len = (uint8_t)val;
} }
// **************************************************************************************************** // // **************************************************************************************************** //
// **************************************************************************************************** // // **************************************************************************************************** //

View file

@ -10,7 +10,7 @@
// ==================================================================================================================================== // ====================================================================================================================================
// ============================================ Wlan Config =========================================================================== // ============================================ Wlan Config ===========================================================================
#define DEF_WIFI_MODE RTW_MODE_STA // Стартовый режим WiFi: RTW_MODE_STA_AP, RTW_MODE_AP, RTW_MODE_STA, RTW_MODE_NONE #define DEF_WIFI_MODE RTW_MODE_STA_AP // Стартовый режим WiFi: RTW_MODE_STA_AP, RTW_MODE_AP, RTW_MODE_STA, RTW_MODE_NONE
#define DEF_WIFI_AP_STATIONS 3 // Max number of STAs, should be 1..3, default is 3 #define DEF_WIFI_AP_STATIONS 3 // Max number of STAs, should be 1..3, default is 3
#define DEF_WIFI_COUNTRY RTW_COUNTRY_RU // Регион использования WiFi... #define DEF_WIFI_COUNTRY RTW_COUNTRY_RU // Регион использования WiFi...
#define DEF_WIFI_TX_PWR RTW_TX_PWR_PERCENTAGE_12_5 // RTW_TX_PWR_PERCENTAGE_75 // RTW_TX_PWR_PERCENTAGE_100 #define DEF_WIFI_TX_PWR RTW_TX_PWR_PERCENTAGE_12_5 // RTW_TX_PWR_PERCENTAGE_75 // RTW_TX_PWR_PERCENTAGE_100

View file

@ -81,7 +81,6 @@
<None Include="userset.mk" /> <None Include="userset.mk" />
<None Include="WEBFiles\elements.css" /> <None Include="WEBFiles\elements.css" />
<None Include="WEBFiles\elements.js" /> <None Include="WEBFiles\elements.js" />
<None Include="WEBFiles\html5kellycolorpicker.min.js" />
<None Include="WEBFiles\index.html" /> <None Include="WEBFiles\index.html" />
<None Include="webfs.mk" /> <None Include="webfs.mk" />
</ItemGroup> </ItemGroup>

View file

@ -38,9 +38,6 @@
<None Include="WEBFiles\elements.js"> <None Include="WEBFiles\elements.js">
<Filter>WEBFiles</Filter> <Filter>WEBFiles</Filter>
</None> </None>
<None Include="WEBFiles\html5kellycolorpicker.min.js">
<Filter>WEBFiles</Filter>
</None>
<None Include="WEBFiles\index.html"> <None Include="WEBFiles\index.html">
<Filter>WEBFiles</Filter> <Filter>WEBFiles</Filter>
</None> </None>

View file

@ -1,5 +1,5 @@
define call1 define call1
set $ImageSize = 0x3BE0 set $ImageSize = 0x83C0
set $ImageAddr = 0x0D0000 set $ImageAddr = 0x0D0000
end end
define call2 define call2

View file

@ -1,17 +1,27 @@
body {font-family: Arial;} body {font-family: Arial;}
.hblockcont {
text-align:center;
align:center;
}
fieldset { fieldset {
display: block; display: block;
border: 0px; border: 0px;
margin: 20px; margin: 20px;
} }
.on, .off {
width: 80px;
height: 80px;
}
.range { .range {
max-width: 600px; max-width: 600px;
} }
.tab { .tab {
overflow: hidden; overflow: hidden;
height: 45px;
border: 1px solid #ccc; border: 1px solid #ccc;
background-color: #f1f1f1; background-color: #f1f1f1;
} }
@ -49,6 +59,57 @@ fieldset {
border: 1px solid #ccc; border: 1px solid #ccc;
} }
.button {
background-color: #00cc99;
border: none;
color: black;
padding: 10px 15px;
text-align: center;
text-decoration: none;
display: inline-block;
font-size: 16px;
margin: 4px 2px;
cursor: pointer;
}
.select {
//background-color:#00cc99;
width: 180px;
padding: 5px;
font-size: 16px;
border: 1px solid #ccc;
height: 28px;
}
.inputtext {
width: 180px;
font-size: 16px;
border: 1px solid #ccc;
text-align: center;
height: 26px;
}
/* https://www.w3schools.com/html/html_tables.asp */
table {
font-family: arial, sans-serif;
border-collapse: collapse;
width: 100%;
max-width: 500px;
}
.td1st {
border: 0px solid #dddddd;
text-align: left;
padding: 4px;
}
td {
border: 0px solid #dddddd;
text-align: right;
padding: 4px;
}
/* http://dimox.name/custom-checkboxes-and-radio-buttons-using-css-only/ */ /* http://dimox.name/custom-checkboxes-and-radio-buttons-using-css-only/ */
.checkbox + label { .checkbox + label {

View file

@ -38,6 +38,22 @@ function openFilterSettings(chkbx)
sendFilterState(chkbx.name, chkbx.checked); sendFilterState(chkbx.name, chkbx.checked);
} }
function changeOnOff(field)
{
if (field.className === 'off')
{
sendFilterParam('ws_isenable', "1");
field.src = 'on.gif';
field.className = 'on';
}
else
{
sendFilterParam('ws_isenable', "0");
field.src = 'off.gif';
field.className = 'off';
}
}
function setFormValues(form, cfg) function setFormValues(form, cfg)
{ {
var name, field; var name, field;
@ -55,6 +71,19 @@ function setFormValues(form, cfg)
field.checked = cfg[name] === '1' ? true : false; field.checked = cfg[name] === '1' ? true : false;
openFilterSettings(field); openFilterSettings(field);
} }
else if (field.type === 'image')
{
if (cfg[name] == '1')
{
field.src = 'on.gif';
field.className = 'on';
}
else
{
field.src = 'off.gif';
field.className = 'off';
}
}
else else
{ {
field.value = cfg[name]; field.value = cfg[name];
@ -78,6 +107,65 @@ function sendFilterState(filtName, en)
xhr.send(params); xhr.send(params);
} }
function sendHSV(HSV)
{
var xhr = new XMLHttpRequest();
var hue = Math.round(255 * HSV.h);
var sat = Math.round(255 * HSV.s);
var val = Math.round(255 * HSV.v);
var params = 'ws_filt_const_hue=' + encodeURIComponent(hue) +
'&ws_filt_const_sat=' + encodeURIComponent(sat) +
'&ws_filt_const_value=' + encodeURIComponent(val) +
'&ws_filt_const_update=' + encodeURIComponent('1');
xhr.open("POST", '/index.html', true);
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xhr.onreadystatechange = function () {
};
xhr.send(params);
}
function loadHSV(picker, HSV)
{
var hue = HSV[0] / 255;
var sat = HSV[1] / 255;
var val = HSV[2] / 255;
var rgb = hsvToRgb(hue, sat, val);
var hex = '#' + byteToHex(rgb[0]) + byteToHex(rgb[1]) + byteToHex(rgb[2]);
picker.setColorByHex(hex);
}
function byteToHex(d)
{
var hex = d.toString(16);
hex = "00".substr(0, 2 - hex.length) + hex;
return hex;
}
function hsvToRgb(h, s, v) {
var r, g, b;
var i = Math.floor(h * 6);
var f = h * 6 - i;
var p = v * (1 - s);
var q = v * (1 - f * s);
var t = v * (1 - (1 - f) * s);
switch (i % 6) {
case 0: r = v, g = t, b = p; break;
case 1: r = q, g = v, b = p; break;
case 2: r = p, g = v, b = t; break;
case 3: r = p, g = q, b = v; break;
case 4: r = t, g = p, b = v; break;
case 5: r = v, g = p, b = q; break;
}
return [Math.round(r * 255), Math.round(g * 255), Math.round(b * 255)];
}
function sendFilterParam(filtParam, val) function sendFilterParam(filtParam, val)
{ {
var xhr = new XMLHttpRequest(); var xhr = new XMLHttpRequest();

View file

@ -1,94 +1,256 @@
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<link href="elements.css" rel="stylesheet"> <meta http-equiv="content-type" content="text/html; charset=utf-8" />
<style></style> <title>Глупая гирлянда</title>
<link href="elements.css" rel="stylesheet">
<style></style>
</head> </head>
<body> <body>
<p align="center">Ãëóïàÿ ãèðëÿíäà</p>
<div class="tab" align="center"> <div class="hblockcont">
<button class="tablinks" onclick="openTab(event, 0)">Ôèëüòðû</button> <input type="image" src="off.gif" class='off' name='ws_isenable' onclick="changeOnOff(this)" />
<button class="tablinks" onclick="openTab(event, 1)">?</button>
<button class="tablinks" onclick="openTab(event, 2)">Íàñòðîéêè</button>
</div> </div>
<div class="tab" align="center">
<button class="tablinks" onclick="openTab(event, 0)">Режим работы</button>
<button class="tablinks" onclick="openTab(event, 1)">Настройки Wi-Fi</button>
</div>
<div id="0" class="tabcontent" align="center"> <div id="0" class="tabcontent" align="center">
<form method="post"> <form method="post">
<fieldset> <fieldset>
<input type="checkbox" class="checkbox" id="filt0" name='ws_filt_rbw_enbl' onclick="openFilterSettings(this)" /> <input type="checkbox" class="checkbox" id="filt0" name='ws_filt_rbw_enbl' onclick="openFilterSettings(this)" />
<label for="filt0">Ðàäóãà</label> <label for="filt0">Радуга</label>
<input type="checkbox" class="checkbox" id="filt1" name='ws_filt_const_enbl' onclick="openFilterSettings(this)" /> <input type="checkbox" class="checkbox" id="filt1" name='ws_filt_const_enbl' onclick="openFilterSettings(this)" />
<label for="filt1">Îòòåíîê</label> <label for="filt1">Оттенок</label>
<input type="checkbox" class="checkbox" id="filt2" name='ws_filt_fd_enbl' onclick="openFilterSettings(this)" /> <input type="checkbox" class="checkbox" id="filt2" name='ws_filt_fd_enbl' onclick="openFilterSettings(this)" />
<label for="filt2">Âûöâåòàíèå</label> <label for="filt2">Выцветание</label>
<input type="checkbox" class="checkbox" id="filt3" name='ws_filt_wave_enbl' onclick="openFilterSettings(this)" /> <input type="checkbox" class="checkbox" id="filt3" name='ws_filt_wave_enbl' onclick="openFilterSettings(this)" />
<label for="filt3">Âîëíà</label> <label for="filt3">Волна</label>
</fieldset> </fieldset>
<div id="filt0" class="filtercontent"> <div id="filt0" class="filtercontent">
<h4 align="center">Ðàäóãà</h4> <h4 align="center">Радуга</h4>
Ðàçìåñòèòü ïîëíóþ ðàäóãó íà ïèêñåëÿõ, åä. :<br> Разместить полную радугу на пикселях, ед. :<br>
<input type="range" class="range" step="1" min="10" name='ws_filt_rbw_huesteps' max="400" onchange="sendFilterParam(this.name, this.value)"/><br> <input type="range" class="range" step="1" min="10" name='ws_filt_rbw_huesteps' max="~ws_striplen~" onchange="sendFilterParam(this.name, this.value)"/><br>
Ñêîðîñòü ñìåíû îòòåíêà:<br> Скорость смены оттенка:<br>
<input type="range" class="range" min="1" name='ws_filt_rbw_cyclesteps' max="10" onchange="sendFilterParam(this.name, this.value)"/><br> <input type="range" class="range" min="1" name='ws_filt_rbw_cyclesteps' max="10" onchange="sendFilterParam(this.name, this.value)"/><br>
</div> </div>
<div id="filt1" class="filtercontent"> <div id="filt1" class="filtercontent">
<h4 align="center">Îòòåíîê</h4> <h4 align="center">Оттенок</h4>
<canvas id="picker"></canvas><br> <canvas id="picker"></canvas><br>
<input id="color" value="#54aedb"> <input id="color" value="#007fff">
</div> </div>
<div id="filt2" class="filtercontent"> <div id="filt2" class="filtercontent">
<h4 align="center">Âûöâåòàíèå</h4> <h4 align="center">Выцветание</h4>
Ñêîðîñòü ñìåíû ÿðêîñòè:<br> Скорость смены яркости:<br>
<input type="range" class="range" min="1" name='ws_filt_fd_cyclesteps' max="254" onchange="sendFilterParam(this.name, this.value)"/><br> <input type="range" class="range" min="1" name='ws_filt_fd_cyclesteps' max="127" onchange="sendFilterParam(this.name, this.value)"/><br>
Ìèíèìàëüíàÿ ÿðêîñòü:<br> Минимальная яркость:<br>
<input type="range" class="range" min="0" name='ws_filt_fd_min' max="254" onchange="sendFilterParam(this.name, this.value)"/><br> <input type="range" class="range" min="0" name='ws_filt_fd_min' max="254" onchange="sendFilterParam(this.name, this.value)"/><br>
Ìàêñèìàëüíàÿ ÿðêîñòü:<br> Максимальная яркость:<br>
<input type="range" class="range" min="1" name='ws_filt_fd_max' max="255" onchange="sendFilterParam(this.name, this.value)"/><br> <input type="range" class="range" min="1" name='ws_filt_fd_max' max="255" onchange="sendFilterParam(this.name, this.value)"/><br>
Øàíñ ñðàáàòûâàíèÿ:<br> <!--
Шанс срабатывания:<br>
<input type="range" class="range" min="1" name='ws_filt_fd_chance' onchange="sendFilterParam(this.name, this.value)"/><br> <input type="range" class="range" min="1" name='ws_filt_fd_chance' onchange="sendFilterParam(this.name, this.value)"/><br>
-->
</div> </div>
<div id="filt3" class="filtercontent"> <div id="filt3" class="filtercontent">
<h4 align="center">Âîëíà</h4> <h4 align="center">Волна</h4>
Скорость:<br>
<input type="range" class="range" min="1" name='ws_filt_wave_step' max="10" onchange="sendFilterParam(this.name, this.value)" /><br>
Длина волны :<br>
<input type="range" class="range" step="1" min="10" max="128" name='ws_filt_wave_wavesteps' max="~ws_striplen~" onchange="sendFilterParam(this.name, this.value)"/><br>
</div> </div>
</form> </form>
</div> </div>
<div id="1" class="tabcontent" align="center"> <div id="1" class="tabcontent" align="center">
<h3>Íè÷åãî</h3> <form method="post">
<table>
<tr>
<td class="td1st">Режим Wi-Fi</td>
<td>
<select class="select" name='wifi_mode'>
<option value='1'>Клиент</option>
<option value='2'>Точка доступа</option>
<option value='3'>Клиент + Точка доступа</option>
</select>
</td>
</tr>
<tr>
<td class="td1st">IEEE PHY</td>
<td>
<select class="select" name='wifi_bgn'>
<option value='1'>802.11b</option>
<option value='3'>802.11g</option>
<option value='11'>802.11n</option>
</select>
</td>
</tr>
<tr>
<td class="td1st">Мощность передачи</td>
<td>
<select class="select" name='wifi_txpow'>
<option value='0'>100%</option>
<option value='1'>75%</option>
<option value='2'>50%</option>
<option value='3'>25%</option>
<option value='4'>12.5%</option>
</select>
</td>
</tr>
<tr>
<td class="td1st"><b>Настройки клиента:</b></td>
</tr>
<tr>
<td class="td1st">SSID</td>
<td>
<input name="wifi_st_ssid" class="inputtext" maxlength='31' value='~wifi_st_ssid~'/>
</td>
</tr>
<tr>
<td class="td1st">Пароль</td>
<td>
<input name="wifi_st_psw" class="inputtext" maxlength='63' value='~wifi_st_psw~' />
</td>
</tr>
<tr>
<td class="td1st">Аутентификация</td>
<td>
<select class="select" name='wifi_st_auth'>
<option value='0'>Open</option>
<option value='1'>WEP PSK</option>
<option value='2'>WEP Shared</option>
<option value='3'>WPA TKIP</option>
<option value='4'>WPA AES</option>
<option value='5'>WPA2 TKIP</option>
<option value='6'>WPA2 AES</option>
<option value='7'>WPA2 Mixed</option>
<option value='8'>WPA2/WPA AES</option>
<option value='9'>Unknown</option>
</select>
</td>
</tr>
<tr>
<td class="td1st">IP</td>
<td>
<input name="wifi_st_ip" class="inputtext" maxlength='31' value='~wifi_st_ip~' />
</td>
</tr>
<tr>
<td class="td1st"><b>Настройки точки доступа:</b></td>
</tr>
<tr>
<td class="td1st">SSID</td>
<td>
<input name="wifi_ap_ssid" class="inputtext" maxlength='31' value='~wifi_ap_ssid~' />
</td>
</tr>
<tr>
<td class="td1st">Пароль</td>
<td>
<input name="wifi_ap_psw" class="inputtext" maxlength='63' value='~wifi_ap_psw~' />
</td>
</tr>
<tr>
<td class="td1st">Аутентификация</td>
<td>
<select class="select" name='wifi_ap_auth'>
<option value='0'>Open</option>
<option value='1'>WPA_WPA2_PSK</option>
</select>
</td>
</tr>
<tr>
<td class="td1st">IP</td>
<td>
<input name="wifi_ap_ip" class="inputtext" maxlength='31' value='~wifi_ap_ip~' />
</td>
</tr>
<tr>
<td></td>
<td>
<input type='hidden' name='wifi_newcfg' value='0xffff' />
<button class="button">Применить...</button>
</td>
</tr>
</table>
</form>
</div> </div>
<div id="2" class="tabcontent"> <script src="colorpicker.min.js"></script>
<h3>Íàñòðîéêè</h3>
</div>
<script src="html5kellycolorpicker.min.js"></script>
<script src="elements.js"></script> <script src="elements.js"></script>
<script type="text/javascript"> <script type="text/javascript">
/* https://github.com/NC22/HTML5-Color-Picker/wiki/Документация */
var colorPickerT = new KellyColorPicker(
{
place: 'picker',
input: 'color',
size: 300,
});
new KellyColorPicker({place : 'picker', input : 'color', size : 300}); var onchange = function (self)
{
var hsv = colorPickerT.getCurColorHsv();
sendHSV(hsv);
};
//colorPickerT.addUserEvent("change", onchange);
colorPickerT.addUserEvent("mouseuph", onchange);
colorPickerT.addUserEvent("mouseupsv", onchange);
var cfg = var cfg_f0 =
{
ws_isenable: "~ws_isenable~",
}
setFormValues(document.getElementsByName("ws_isenable"), cfg_f0);
var cfg_f1 =
{ {
ws_filt_rbw_enbl: "~ws_filt_rbw_enbl~", ws_filt_rbw_enbl: "~ws_filt_rbw_enbl~",
ws_filt_flick_enbl: "~ws_filt_flick_enbl~",
ws_filt_fd_enbl: "~ws_filt_fd_enbl~",
ws_filt_rbw_huesteps: "~ws_filt_rbw_huesteps~", ws_filt_rbw_huesteps: "~ws_filt_rbw_huesteps~",
ws_filt_rbw_cyclesteps: "~ws_filt_rbw_cyclesteps~", ws_filt_rbw_cyclesteps: "~ws_filt_rbw_cyclesteps~",
ws_filt_fd_enbl: "~ws_filt_fd_enbl~",
ws_filt_fd_cyclesteps: "~ws_filt_fd_cyclesteps~", ws_filt_fd_cyclesteps: "~ws_filt_fd_cyclesteps~",
ws_filt_fd_min: "~ws_filt_fd_min~", ws_filt_fd_min: "~ws_filt_fd_min~",
ws_filt_fd_max: "~ws_filt_fd_max~", ws_filt_fd_max: "~ws_filt_fd_max~",
ws_filt_fd_chance: "~ws_filt_fd_chance~" //ws_filt_fd_chance: "~ws_filt_fd_chance~",
}
setFormValues(document.forms[0], cfg);
ws_filt_wave_enbl: "~ws_filt_wave_enbl~",
ws_filt_wave_step: "~ws_filt_wave_step~",
ws_filt_wave_wavesteps: "~ws_filt_wave_wavesteps~"
}
setFormValues(document.forms[0], cfg_f1);
var cfg_f2 =
{
wifi_mode: "~wifi_mode~",
wifi_bgn: "~wifi_bgn~",
wifi_txpow: "~wifi_txpow~",
wifi_st_ssid: "~wifi_st_ssid~",
wifi_st_psw: "~wifi_st_psw~",
wifi_st_auth: "~wifi_st_auth~",
wifi_st_ip: "~wifi_st_ip~",
wifi_ap_ssid: "~wifi_ap_ssid~",
wifi_ap_psw: "~wifi_ap_psw~",
wifi_ap_auth: "~wifi_ap_auth~",
wifi_ap_ip: "~wifi_ap_ip~"
}
setFormValues(document.forms[1], cfg_f2);
var cfg_hsv =
{
ws_filt_const_hue: "~ws_filt_const_hue~",
ws_filt_const_sat: "~ws_filt_const_sat~",
ws_filt_const_value: "~ws_filt_const_value~"
}
loadHSV(colorPickerT, cfg_hsv);
</script> </script>
</body> </body>
</html> </html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

Binary file not shown.

View file

@ -96,7 +96,7 @@ AnnotateStartValue=1
AnnotationIndexControlEnabled=0 AnnotationIndexControlEnabled=0
AnnotateSuffix= AnnotateSuffix=
AnnotateScope=All AnnotateScope=All
AnnotateOrder=-1 AnnotateOrder=0
DoLibraryUpdate=1 DoLibraryUpdate=1
DoDatabaseUpdate=1 DoDatabaseUpdate=1
ClassGenCCAutoEnabled=0 ClassGenCCAutoEnabled=0
@ -133,7 +133,7 @@ Value=A_D.000000.001
[Parameter3] [Parameter3]
Name=GlobalProjectName Name=GlobalProjectName
Value=RTL-00 WS2812 Value=Ãëóïàÿ ãèðëÿíäà
[Parameter4] [Parameter4]
Name=GlobalOrganizationName Name=GlobalOrganizationName
@ -785,11 +785,6 @@ OutputName3=AutoCAD dwg/dxf File Schematic
OutputDocumentPath3= OutputDocumentPath3=
OutputVariantName3= OutputVariantName3=
OutputDefault3=0 OutputDefault3=0
OutputType4=ExportIDF
OutputName4=Export IDF
OutputDocumentPath4=
OutputVariantName4=
OutputDefault4=0
[Modification Levels] [Modification Levels]
Type1=1 Type1=1

Binary file not shown.