Страница 2 из 2

Re: альфа 2560 (@2560)

Добавлено: 12 апр 2015, 16:50
alexsis_76
парсер или синтаксический анализатор
HTTP_IO_RESULT HTTPExecuteGet(void)
{
BYTE *ptr;
BYTE filename[20];

// Load the file name
// Make sure BYTE filename[] above is large enough for your longest name
MPFSGetFilename(curHTTP.file, filename, 20);

// If its the forms.htm page
if(!memcmppgm2ram(filename, "forms.htm", 9))
{
// Seek out each of the four LED strings, and if it exists set the LED states
ptr = HTTPGetROMArg(curHTTP.data, (ROM BYTE *)"led4");
if(ptr)
LED4_IO = (*ptr == '1');

ptr = HTTPGetROMArg(curHTTP.data, (ROM BYTE *)"led3");
if(ptr)
LED3_IO = (*ptr == '1');

ptr = HTTPGetROMArg(curHTTP.data, (ROM BYTE *)"led2");
if(ptr)
LED2_IO = (*ptr == '1');

ptr = HTTPGetROMArg(curHTTP.data, (ROM BYTE *)"led1");
if(ptr)
LED1_IO = (*ptr == '1');
}
вот это кусок парсера ,сдесь мы обрабатываем GET запрос, допустим вы получили запрос из браузера или программы конфигуратора,запрос содержит некоторые данные , вам нужно сделать анализ запроса затем выполнить некоторые действия
смотрите выше запрос прислала страница forms.htm на переключение состояния светодиодов, так вот мы должны его разобрать что бы узнать что надо делать,это не логика для GPIO


а что такое амбивалентная ригидность :(

Re: альфа 2560 (@2560)

Добавлено: 12 апр 2015, 17:04
507
видно вещь полезная этот ваш парсер, увы только я все одно не чё не понял для чего он и как его использовать. Но это пока не важно.
А амбивалентная ригидность это неспособность к обучению, используется в разрезе изложения свои мыслей.

Re: альфа 2560 (@2560)

Добавлено: 12 апр 2015, 17:07
alexsis_76
видно вещь полезная этот ваш парсер, увы только я все одно не чё не понял для чего он и как его использовать
угу
Но это пока не важно.
вы без него ничего путного написать не сможете
так что бросайте ваш FBD сдается мне он только пригодится для моргания светодиодами
амбивалентная ригидность
:D

Re: альфа 2560 (@2560)

Добавлено: 12 апр 2015, 17:19
507
"Не важно" - это я про то что я не понял, а не то что парсер не важен.
Если без него совсем ни как то придумаем и как его в FBD запихать.
Тут как у персонажа Маргарет Манерлин Митчелл - Об этом я подумаю завтра (с).
А пока на ближайшее время
1. Бут
2. Стек
3. WEB или его замена
4. FBD
5. snmp

Re: альфа 2560 (@2560)

Добавлено: 14 апр 2015, 00:27
507
По п2. заключение привлеченных программистов - хороший вариант стека, принят за основу.
По п3. поступило предложение - веб фронт енд. На мой взгляд, весьма интересный вариант.

Re: альфа 2560 (@2560)

Добавлено: 14 апр 2015, 02:43
alexsis_76
а что такое веб фронт енд

Re: альфа 2560 (@2560)

Добавлено: 14 апр 2015, 10:28
507
Ну по сути это все тот же терминальный клиент, только создан в виде WEB страницы и может быть встроен в серверную часть ПО.

Re: альфа 2560 (@2560)

Добавлено: 14 апр 2015, 10:54
alexsis_76
а как по п.1?

Re: альфа 2560 (@2560)

Добавлено: 14 апр 2015, 15:25
507
Позаимствовал в соседней теме viewtopic.php?p=11268#p11268 ,за что спасибо автору.
Пояснение по snmp (п.5) - его задача это широковещательные (без привязки к IP) сообщения без подтверждения о получении, планируется как второй протокол используемый совместно с HTTP. Смысл этих сообщений в реализации функции общения M2M (машина - машине) без участия сервера.
Каждый модуль (юнит) может быть одновременно и издателем и подписчиком. Простой сценарий применения: уходя из дома вы нажимая на соответствующую кнопку (либо при помощи RFID) и запускаете сценарий, в котором юнитом формируется snmp сообщение (твит) о том, что нужно всем юнитам, в которых предусмотрено подписка на этот твит выполнение связанного с этим твитом сценария. Возможно что в сценарии заложена проверка на ошибки не позволяющие выполнения заложенного сценария (ну скажем открытое окно), в этом случаи этот юнит формирует аларм твит и все подписчики на это сообщения получив его выполнят соответствующий сценарий - в данном случаи оповестит вас сигналом ошибки при помощи бипера находящегося в ближайшем к вам юните с демонстрацией текстового сообщения о типе и локации ошибки на ЖКИ.