pwn писал(а):
Боюсь к тому моменту как я дойду до эргономики, вы ее хором уже замутите,
надеюсь. предыдущий вариант был на 4х строчном индикаторе здоровенном. но его на солнце ничерта не видно. да и размерчик там ого-го. кнопок было 8 - это на порт навешено. интерфейс 485й ASCII modbus . одни на 16 источников.
ещё вариант 2хстрочный мелкий. 2*16. на нем плохо читается. т.к. мелкий. на стиралке в итоге живет. ею рулит. ещё на бойлеах всяких. вообщем не удобно. тем более , что с компа оно приятнее. сделано на меге 162й. у нее два 232х. один для связи с контроллерами, второй в сторону компа. кнопочки шикарные пользую. сейчас доку найду , выложу.
pwn писал(а):
софт не репался и не причем
да софтину переписа малость. ускорил ОС в 5 раз. но это проверяется на лету без силы. т.е. правило было нарушено. а вот задачка из серии детских про курицу на весах. сколько будет весть , если ногу поднимет. мне тут заясняли, что в голове опилки, вот пусть теперь рашат детскую задачку. на бис.
pwn писал(а):
там на алгоритмбуилдере мона быстрее управится чем на сях
да тут скорее всего надо нарыть готовую болванку и модифицировать. вопрос подо что. чего хотим понять надо. лично мне хочется в конце концов сварганить некую панельку, которую как стандартный модуль потом ставить и голову не греть.
изменяя только предложения в массивах.
напрмер в бойлере у меня 6й год вот такая фигня крутится .
это менюшки выводимые нв 2*16 индикатор с привязкой к п/п
для демонстрации подхода ... не более.
Код:
flash char string_menu[30][16] = {
{"t __\x27\x43 __*__"},
{"t __\x27\x43 __*__"},
{"Температура воды"},
{"t __ C Уcт.т-pы"},
{"Термостат "},
{"Термостат Откл-н"},
{"Термостат ВКЛ-н"},
{"Гистерезис 0_ С"},
{"Врем\xff текущее "},
{"настройка __*__"},
{"Таймер-настройка"},
{"Таймер ВКЛ"},
{"Врем\xff Включени\xff "},
{"ВКЛючаем в __*__"},
{"Врем\xff Отключени\xff"},
{"ОТКЛючаем в__*__"},
{"Таймер ОТКЛ"},
{"Тип бойлера "},
{"накопительный "},
{"Нагрев от уровн\xff"},
{"от верхнего ур. "},
{"нагр. от уровн\xff\xb2"},// 1/2
{"нагр. от уровн\xff\xb0"},// 1/4
{"нагрев ОТКЛючен "},
{"Вода от уровн\xff "},
{"всегда полный "} ,
{"доливать от \xb2 "} ,
{"наполн\xffть от MIN"} ,
{"долив ОТКЛючен "},
{"проточный бойлер"}
};
//0xaf - Ничего не делать, следующего меню нет
//0xae - следующего меню нет, обрабатывать подпрограммой
//0xad - следующего меню нет, корректировка поля
//0xa0 - клавиша активна +
//0xa1 - клавиша активна -
//0xEx - следующее меню после обработки (x-код клавиши)
//если стоит в поле клавиши № меню перхода и указан №п/п, то переход после обработки
flash char param_menu[30][8] = {
// [key_1][2] [3] [4]
{ 0 ,'F', 0, 2, 2, 1, 1,0x00}, // {" "}, /стоп
{ 1 ,'G', 1,0xad,0xad, 0, 0, 0}, // {" "}, /работа
{ 2 ,'-', 2, 17, 4, 3, 0, 1}, // {"Температура воды"},
{ 3 ,'W', 7,0xa0,0xa1,0xad, 2, 2}, // {" C Уcт.т-pы"},
{ 4 ,'U', 2, 2, 8,0xe5, 0, 1}, // {"Термостат "},
{ 5 ,'D', 7, 6, 6,0xe5, 4, 2}, // {"Термостат Откл-н"},
{ 6 ,'E', 7, 5, 5,0xe5, 4, 2}, // {"Термостат ВКЛ-н"}, !!
{ 7 ,'H', 6,0xa1,0xa0,0xad, 4, 3}, // {" Гистерезис"},
{ 8 ,'-', 2, 4, 10, 9, 0, 1}, // {"Врем\xff текущее "},
{ 9 ,'T', 8,0xa0,0xa1,0xad, 8, 2}, // {" ***** настройка"},
{10 ,'Y', 2, 8, 17,0xad, 0, 1}, // {"Таймер-настройка"},
{11 ,'Q', 7, 16, 16,0xad, 10, 2}, // {"Таймер ВКЛ"},
{12 ,'-', 7, 14, 14, 13, 11, 3}, // {"Врем\xff Включени\xff "},
{13 ,'S', 7,0xa0,0xa1,0xae, 12, 4}, // {"в***** ВКЛючаем "},
{14 ,'-', 7, 12, 12, 15, 11, 3}, // {"Врем\xff Отключени\xff"},
{15 ,'C', 7,0xa0,0xa1,0xae, 14, 4}, // {"в****** ОТКЛючаем"},
{16 ,'R', 3, 11, 11,0xad, 10, 2}, // {"Таймер ОТКЛ"},
{17 ,'P', 2, 10, 2,0xad, 0, 1}, // {"Тип бойлера "},
{18 ,'M', 7, 29, 29,0xad, 17, 2}, // {"накопительный "},
{19 ,'J', 7, 24, 24,0xad, 17, 3}, // {"Нагрев от уровн\xff"},
{20 ,'1', 7, 23, 21,0xad, 19, 4}, // {"от верхнего ур. "},
{21 ,'2', 7, 20, 22,0xad, 19, 4}, // {"нагр. от уровн\xf3 "},// 1/2
{22 ,'3', 7, 21, 23,0xad, 19, 4}, // {"нагр. от уровн\xf0 "},// 1/4
{23 ,'4', 7, 22, 20,0xad, 19, 4}, // {"нагрев ОТКЛючен "},
{24 ,'V', 7, 19, 19,0xad, 17, 3}, // {"Вода от уровн\xff "},
{25 ,'5', 7, 28, 26,0xad, 24, 4}, // {"всегда полный "} ,
{26 ,'6', 7, 25, 27,0xad, 24, 4}, // {"доливать от \xf3"} ,
{27 ,'7', 7, 26, 28,0xad, 24, 4}, // {"наполн\xffть от MIN"} ,
{28 ,'8', 7, 27, 25,0xad, 24, 4}, // {"долив ОТКЛючен "}
{29 ,'L', 7, 18, 18,0xad, 17, 2} // {"проточный бойлер"},
};/* [key_1][2] [3] [4]
| | | | | | | |_ номер уровня меню 0-F если F0-FF то это последний уровень
| | | | | | |______ номер следующего меню по key_4
| | | | | |___________ номер следующего меню по key_3
| | | | |________________ номер следующего меню по key_2
| | | |_____________________ номер следующего меню по key_1
| | |__________________________ номер строки 2 меню
| |_______________________________ №п\п обработки (символами A-W) 00-0F - after 20-2F-actual 30-3F -befor
|_____________________________________ номер строки