альфа 2560 (@2560)

Обсуждение статей, технологий домашней автоматизации, программных и аппаратных решений
alexsis_76
Сообщения: 1074
Зарегистрирован: 26 авг 2011, 05:09
Откуда: Забайкальский край п Оловянная

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

Сообщение alexsis_76 » 12 апр 2015, 16:50

парсер или синтаксический анализатор
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


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

507
Сообщения: 150
Зарегистрирован: 10 янв 2013, 12:55

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

Сообщение 507 » 12 апр 2015, 17:04

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

alexsis_76
Сообщения: 1074
Зарегистрирован: 26 авг 2011, 05:09
Откуда: Забайкальский край п Оловянная

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

Сообщение alexsis_76 » 12 апр 2015, 17:07

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

507
Сообщения: 150
Зарегистрирован: 10 янв 2013, 12:55

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

Сообщение 507 » 12 апр 2015, 17:19

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

507
Сообщения: 150
Зарегистрирован: 10 янв 2013, 12:55

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

Сообщение 507 » 14 апр 2015, 00:27

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

alexsis_76
Сообщения: 1074
Зарегистрирован: 26 авг 2011, 05:09
Откуда: Забайкальский край п Оловянная

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

Сообщение alexsis_76 » 14 апр 2015, 02:43

а что такое веб фронт енд

507
Сообщения: 150
Зарегистрирован: 10 янв 2013, 12:55

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

Сообщение 507 » 14 апр 2015, 10:28

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

alexsis_76
Сообщения: 1074
Зарегистрирован: 26 авг 2011, 05:09
Откуда: Забайкальский край п Оловянная

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

Сообщение alexsis_76 » 14 апр 2015, 10:54

а как по п.1?

507
Сообщения: 150
Зарегистрирован: 10 янв 2013, 12:55

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

Сообщение 507 » 14 апр 2015, 15:25

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

Ответить