Форум Микро-Чип
Поиск и заказ электронных компонентов
 

Вернуться   Форум Микро-Чип > Cетевые протоколы и технологии

Cетевые протоколы и технологии TCP/IP стек

Ответ
 
Опции темы Опции просмотра
Старый 21.11.2012, 13:02   #1
skdon
Junior Member
 
Регистрация: 24.09.2009
Возраст: 38
Сообщений: 14
Вес репутации: 100/35
skdon will become famous soon enoughskdon will become famous soon enough
По умолчанию Нужна помощь с TCP/IP

Пытаемся разобраться с TCP/IP.
В общем задача в следующем: Необходимо устройство, которое с помощью HTTP будет запрашивать данные с сервера и соответственно отображать на устройстве индикации.
С созданием и закачкой страничек для настройки в принципе более менее понятно.
А вот как контроллером сделать запрос по HTTP к серверу???
Дальше, как я понимаю, можно получать страничку и парсить ее или делать POST/GET запросы и выдирать переменные.
В общем прошу помощи, или ткните, плиз, носом. Перерыл форум, подобного не нашел.
skdon вне форума   Ответить с цитированием
Старый 21.11.2012, 14:01   #2
Vanizma
Senior Member
 
Аватар для Vanizma
 
Регистрация: 30.04.2008
Адрес: Pskov
Сообщений: 4,140
Вес репутации: 4450/124
Vanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond repute
Отправить сообщение для Vanizma с помощью ICQ
По умолчанию Re: Нужна помощь с TCP/IP

Цитата:
Сообщение от skdon Посмотреть сообщение
Пытаемся разобраться с TCP/IP.
В общем задача в следующем: Необходимо устройство, которое с помощью HTTP будет запрашивать данные с сервера и соответственно отображать на устройстве индикации.
С созданием и закачкой страничек для настройки в принципе более менее понятно.
А вот как контроллером сделать запрос по HTTP к серверу???
Дальше, как я понимаю, можно получать страничку и парсить ее или делать POST/GET запросы и выдирать переменные.
В общем прошу помощи, или ткните, плиз, носом. Перерыл форум, подобного не нашел.
ну так стыкуешься к серверу, посылаешь запрос стандартный, как все браузеры, принимаешь данные, а потом парсишь
__________________

Vanizma вне форума   Ответить с цитированием
Старый 21.11.2012, 14:12   #3
skdon
Junior Member
 
Регистрация: 24.09.2009
Возраст: 38
Сообщений: 14
Вес репутации: 100/35
skdon will become famous soon enoughskdon will become famous soon enough
По умолчанию Re: Нужна помощь с TCP/IP

Эт я понимаю. Как именно это сделать. В смысле, как состыковаться с сервером?
Как контроллером послать запрос???
Если зайти на страничку и жмакнуть кнопку, понятно. А средствами контроллера как???
Просто пока слабо понимаю как именно работает сервер.
Прошу сильно не пинать, в TCP/IP новичок.
skdon вне форума   Ответить с цитированием
Старый 21.11.2012, 14:50   #4
Vanizma
Senior Member
 
Аватар для Vanizma
 
Регистрация: 30.04.2008
Адрес: Pskov
Сообщений: 4,140
Вес репутации: 4450/124
Vanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond repute
Отправить сообщение для Vanizma с помощью ICQ
По умолчанию Re: Нужна помощь с TCP/IP

Цитата:
Сообщение от skdon Посмотреть сообщение
Эт я понимаю. Как именно это сделать. В смысле, как состыковаться с сервером?
Как контроллером послать запрос???
Если зайти на страничку и жмакнуть кнопку, понятно. А средствами контроллера как???
Просто пока слабо понимаю как именно работает сервер.
Прошу сильно не пинать, в TCP/IP новичок.
Код:
MySocket = TCPOpen(currentIP.Val, TCP_OPEN_IP_ADDRESS, currentPort, TCP_PURPOSE_RELAY_CLIENT_TCP);
а дальше проверяешь что подключился и ... TCPPut...
потом ждешь ответ
получаешь ответ
парсишь

Есть же в стеке клиент SMTP. Там все есть что нужно для обращения к серверу
__________________

Vanizma вне форума   Ответить с цитированием
Старый 21.11.2012, 15:25   #5
SergP01
Senior Member
 
Регистрация: 09.11.2012
Адрес: SPB
Возраст: 50
Сообщений: 608
Вес репутации: 39/0
SergP01 is on a distinguished road
По умолчанию Re: Нужна помощь с TCP/IP

http://www.pickit2.ru/doku.php/all_articles:tcpipconfig
SergP01 вне форума   Ответить с цитированием
Старый 21.11.2012, 15:45   #6
Pridnya
Senior Member
 
Регистрация: 21.01.2009
Адрес: Russia, Orel
Возраст: 39
Сообщений: 4,501
Вес репутации: 4370/124
Pridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond repute
По умолчанию Re: Нужна помощь с TCP/IP

Цитата:
Сообщение от SergP01 Посмотреть сообщение
При чем тут эта статья, которая в общих чертах поясняет как сконфигурировать TCP-IP стек. ТС хочет послать вполне конкретный запрос от МК к серверу. Я бы заказал работу знающим людям.
__________________
Прогресс неизбежен.
Pridnya вне форума   Ответить с цитированием
Старый 21.11.2012, 15:55   #7
skdon
Junior Member
 
Регистрация: 24.09.2009
Возраст: 38
Сообщений: 14
Вес репутации: 100/35
skdon will become famous soon enoughskdon will become famous soon enough
По умолчанию Re: Нужна помощь с TCP/IP

Цитата:
Сообщение от Pridnya Посмотреть сообщение
При чем тут эта статья, которая в общих чертах поясняет как сконфигурировать TCP-IP стек. ТС хочет послать вполне конкретный запрос от МК к серверу. Я бы заказал работу знающим людям.
В точку
Заказать, конечно, идея хороша. Только нужно когда то учиться. Устройство ведь в дальнейшем обслуживать нужно и т.д. и т.п.
В общем будем копать...
skdon вне форума   Ответить с цитированием
Старый 21.11.2012, 16:07   #8
2AplusA
Senior Member
 
Аватар для 2AplusA
 
Регистрация: 26.02.2007
Адрес: Penza
Возраст: 37
Сообщений: 1,385
Вес репутации: 1267/68
2AplusA has much to be proud of2AplusA has much to be proud of2AplusA has much to be proud of2AplusA has much to be proud of2AplusA has much to be proud of2AplusA has much to be proud of2AplusA has much to be proud of2AplusA has much to be proud of2AplusA has much to be proud of
По умолчанию Re: Нужна помощь с TCP/IP

Цитата:
Сообщение от skdon Посмотреть сообщение
В точку
Заказать, конечно, идея хороша. Только нужно когда то учиться. Устройство ведь в дальнейшем обслуживать нужно и т.д. и т.п.
В общем будем копать...
Я бы посоветовал самому разобраться в работе TCP/IP стека. Но если время не ждет, то лучше возьмите готовый бесплатный стек, их полно, а лучше, который много людей с нашего форума юзало, и к нему сделайте HTTP-клиента. Хотя я лично, сторонник разобраться самому. Открываете ref и вперед. Всю сложность у Вас вызовет лишь реализация ТСР и драйвер работы с МАК микроконтроллера. Остальное полнейший примитив.
__________________
Лучше день потерять, потом за час долететь!
2AplusA вне форума   Ответить с цитированием
Старый 21.11.2012, 18:35   #9
ampersant
Senior Member
 
Аватар для ampersant
 
Регистрация: 26.02.2008
Адрес: IgorV
Сообщений: 2,429
Вес репутации: 4737/111
ampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond repute
По умолчанию Re: Нужна помощь с TCP/IP

Цитата:
Сообщение от skdon Посмотреть сообщение
Пытаемся разобраться с TCP/IP.
В общем задача в следующем: Необходимо устройство, которое с помощью HTTP будет запрашивать данные с сервера и соответственно отображать на устройстве индикации.
С созданием и закачкой страничек для настройки в принципе более менее понятно.
А вот как контроллером сделать запрос по HTTP к серверу???
Дальше, как я понимаю, можно получать страничку и парсить ее или делать POST/GET запросы и выдирать переменные.
В общем прошу помощи, или ткните, плиз, носом. Перерыл форум, подобного не нашел.
Код:
#define __GENERICTCPCLIENT_C

#include "TCPIP.h"


#if defined(STACK_USE_GENERIC_TCP_CLIENT_EXAMPLE)

BOOL RQtransmit; // флаг требования передать данные через Generik


// Defines the server to be accessed for this application
//static const DWORD  ServerName = 0x0300A8C0ul;

// Defines the port to be accessed for this application
//static WORD ServerPort = 9760ul;

// Defines the URL to be requested by this HTTP client

/*****************************************************************************
  Function:
    void GenericTCPClient(void)

  Summary:
    Implements a simple HTTP client (over TCP).

  Description:
    This function implements a simple HTTP client, which operates over TCP.  
    The function is called periodically by the stack, and waits for BUTTON1 
    to be pressed.  When the button is pressed, the application opens a TCP
    connection to an Internet search engine, performs a search for the word
    "Microchip" on "microchip.com", and prints the resulting HTML page to
    the UART.
    
    This example can be used as a model for many TCP and HTTP client
    applications.

  Precondition:
    TCP is initialized.

  Parameters:
    None

  Returns:
      None
  ***************************************************************************/



static enum _GenericTCPExampleState
    {
        SM_HOME = 0,
        SM_SOCKET_OBTAINED,
        SM_PROCESS_RESPONSE,
        SM_PROCESS_RESPONSE2,
        SM_DISCONNECT_GOOD,
        SM_DISCONNECT,
        SM_DONE
    } ;

static BYTE GenericTCPExampleState ;
static TICK            Timer;
static TCP_SOCKET    MySocket;
static WORD len;
static IP_ADDR ServerName; // адрес сервера сбора данных

static  BYTE GTCP_client[40];
static  BYTE IndexServ=0; // прогон всех серверов по порядку
static  TICK TICKwait[4]; // храним время первого провала


void initGenericTCPClient(void)
{
    MySocket = INVALID_SOCKET;
    GenericTCPExampleState = SM_DONE;
    RQtransmit=0;
    ServerName=AppConfig.MyIPAddr;      //  поправить последний октет моего адреса
  ServerName.v[3]=1ul; //  пока запрашивается IP адрес только 10.96.32.1 чтобы не спрашивать себя же
// предустановка серверов
   

}


void GenericTCPClient(void)
{

char search, temp;
signed char ix; // подготовка номера светодиода 
char * pclient;
static char errs[4]; //счетчики ошибок чтения состояния

    const WORD ServerPort = 80ul;
     switch(GenericTCPExampleState)
    {
        case SM_HOME:
            // Connect a socket to the remote TCP server
    

            ServerName.v[3] = distrib_led[IndexServ].numIP; 

            ix = searchIP2MAC(ServerName); // ищем запись в КЭШ
            if(ix<0) 
            {
                if( (TickGet() - TICKwait[IndexServ]) > TICK_SECOND*10)
                {                
                    // нет такой записи в КЭШ
                    MySocket = TCPOpen( ServerName.Val, TCP_OPEN_IP_ADDRESS, ServerPort, TCP_PURPOSE_GENERIC_TCP_CLIENT);
                    TICKwait[IndexServ] = TickGet(); // установить начало времени отсутствия устройства
                }
                else
                {   
                    GenericTCPExampleState = SM_DONE; // переходим к следующему пациенту
                }

            }
            else
            {
                // есть такая запись - берем её из КЭШ
                MySocket = TCPOpen((DWORD) &arp_cache[ix].info, TCP_OPEN_NODE_INFO, ServerPort, TCP_PURPOSE_GENERIC_TCP_CLIENT);

            }


            // Abort operation if no TCP socket of type TCP_PURPOSE_GENERIC_TCP_CLIENT is available
            // If this ever happens, you need to go add one to TCPIPConfig.h
            if(MySocket == INVALID_SOCKET) // при наличии свободного сокета этого типа сразу выдаст хендл
            {   // если нет свободного сокета, то он занят прямо тут же этим же алгоритмом -вообщем то бред
                if(TickGet()-Timer > TICK_SECOND/8) GenericTCPExampleState = SM_DISCONNECT;
                break;
            }
            

            GenericTCPExampleState = SM_SOCKET_OBTAINED;
            Timer = TickGet();
            break;

        case SM_SOCKET_OBTAINED:
            // Wait for the remote server to accept our connection request
            if(!TCPIsConnected(MySocket))
            {
                // Time out if too much time is spent in this state
                if(TickGet()-Timer > TICK_SECOND)
                {
                    // Close the socket so it can be used by other modules
                    TCPDisconnect(MySocket);
                    MySocket = INVALID_SOCKET;
                    GenericTCPExampleState = SM_DISCONNECT;
                }
                break;
            }

            Timer = TickGet();

            // Make certain the socket can be written to
            if(TCPIsPutReady(MySocket) < 50u)
                break;
            
            
            
            TCPPutROMString(MySocket, (ROM BYTE*)"GET /sensor.xml \r\n\r\n"); // запрашиваю данные
           
            // Send the packet
            TCPFlush(MySocket);
            GenericTCPExampleState++;
            break;

        case SM_PROCESS_RESPONSE:
            if(!TCPIsConnected(MySocket))
            {
                GenericTCPExampleState = SM_DISCONNECT;
                // Do not break;  We might still have data in the TCP RX FIFO waiting for us
                
            }
            if(TCPIsGetReady(MySocket) < 5u) break; // не с чем сравнивать

            len = TCPFindROMArray(MySocket, (ROM BYTE*)"<led>", 5, 0, FALSE); // ищем начало данных
            if(len==0xFFFF)
            {
                // не найдено в этом месте
                TCPGetArray(MySocket, NULL, TCPIsGetReady(MySocket)-5);// промотать сколько есть

            }
            else 
            {
                // обнаружено необходимое слово
                TCPGetArray(MySocket, NULL, len + 5); // промотать до конца этого слова 
                GenericTCPExampleState = SM_PROCESS_RESPONSE2;
            }

            break;
        case SM_PROCESS_RESPONSE2:// получены некоторые данные мы их пропустили
            if(!TCPIsConnected(MySocket))
            {
                GenericTCPExampleState = SM_DISCONNECT;
                // Do not break;  We might still have data in the TCP RX FIFO waiting for us
                
            }
            if(TCPIsGetReady(MySocket) < 16u) break; // мало данных
            len=TCPGetArray(MySocket, GTCP_client, 16);    
            if(len<16) 
            {    // тут не правильно совсем возможно стоит вообще убрать
                GenericTCPExampleState = SM_DISCONNECT;
                break;
            }
                pclient= &GTCP_client[0];// начальная позиция 
                for(search = 0; search < 8; search++)
                {
                    temp=0;
                
                    switch(*pclient)
                    {
                    case 'R': temp |= L_BLINK;
                    case 'r': temp |= L_RED;
                    break;    
                    case 'G': temp |= L_BLINK;
                    case 'g': temp |= L_GREEN;
                    break;    
                    case 'Y': temp |= L_BLINK;
                    case 'y': temp |= L_YELLOW;
                    break;    
                    
                    }
                    ix = distrib_led[IndexServ].numLed[search];
                    if(ix<0 || ix > 19) continue; // пропустить его
                    set_led(temp | ix );
                    pclient+=2;
                }
                
                 errs[IndexServ]=0; // сброс числа ошибок
                GenericTCPExampleState = SM_DISCONNECT_GOOD;
                break;
            
        case SM_DISCONNECT:// плохое окончание - нужно стереть то что горит уже если число ошибок велико
            if(errs[IndexServ]>1)
            {
                for(search = 0; search < 8; search++)
                {
                    ix = distrib_led[IndexServ].numLed[search];
                    if(ix<0 || ix > 19) continue; // пропустить его
                    set_led( ix );
                }    
            }
            else errs[IndexServ]++;        

            TCPDisconnect(MySocket);
            MySocket = INVALID_SOCKET;
            GenericTCPExampleState = SM_DONE;
            RQtransmit=0;// будем ждать N-ю секунду
            break;

        case SM_DISCONNECT_GOOD:
            // Close the socket so it can be used by other modules
            // For this application, we wish to stay connected, but this state will still get entered if the remote server decides to disconnect

            ix = searchIP2MAC(ServerName); // раз хорошо отработало - 
            if(ix>=0 && ix<4) good_arp(ix); // значит пролонгировать жизнь пары в КЭШ


            TCPDisconnect(MySocket);
            MySocket = INVALID_SOCKET;
            GenericTCPExampleState = SM_DONE;
            RQtransmit=0;// будем ждать N-ю секунду
            break;
    
        case SM_DONE:
            // Do nothing unless the user pushes BUTTON1 and wants to restart the whole connection/download process
            if(RQtransmit) // надо передать данные    
            {
                RQtransmit=0;
                GenericTCPExampleState = SM_HOME;
                for(ix=0;ix<4;ix++)
                {
                      IndexServ++;
                    if(IndexServ>3  ) IndexServ=0;
                    if( !(distrib_led[IndexServ].numIP == 0)) break; // найдена активная запись
                    // не найдена запись
                }
                if( (distrib_led[IndexServ].numIP == 0) ) GenericTCPExampleState = SM_DONE; // не найден активный

                Timer = TickGet();// начало тайм аута поиска сервера без учета потери времени на цикл РТОС
            }
            break;
    }
}

#endif    //#if defined(STACK_USE_GENERIC_TCP_CLIENT_EXAMPLE)
местами есть где похихикать...
ampersant вне форума   Ответить с цитированием
Старый 21.11.2012, 22:37   #10
pal1222@yandex.ru
Senior Member
 
Регистрация: 30.09.2008
Сообщений: 1,466
Вес репутации: 2482/75
pal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond repute
По умолчанию Re: Нужна помощь с TCP/IP

Цитата:
Сообщение от Pridnya Посмотреть сообщение
При чем тут эта статья, которая в общих чертах поясняет как сконфигурировать TCP-IP стек. ТС хочет послать вполне конкретный запрос от МК к серверу. Я бы заказал работу знающим людям.
А причём тут http вообше? Парсить "руками" полученный в ответ html дело более чем неблагодарное. Вы же ничем не ограничены. Запрос, допустим, может обслуживать сервер на 80 порту написанный хоть на php, но кто сказал, что он не может возвращать ответ в собственном формате? Или обязательно пользоваться HTTPRequest? Тогда это не совсем МК Скорее - совсем не. Или вы хотите вывести на "устройство индикации" HTML CSS страницу с WEB сервера? Тогда флаг и более чем два барабана в руки, у microsoft, например, это получилось с восьмой попытки, причём некоторые считают, что всё равно не получилось
Что, конкретно, сделать то надо?
pal1222@yandex.ru вне форума   Ответить с цитированием
Старый 22.11.2012, 01:40   #11
CERGEI
Senior Member
 
Аватар для CERGEI
 
Регистрация: 11.07.2009
Возраст: 36
Сообщений: 526
Вес репутации: 183/41
CERGEI has a spectacular aura aboutCERGEI has a spectacular aura about
По умолчанию Re: Нужна помощь с TCP/IP

Вот читаю вспоминаю тож http://www.opennet.ru/docs/RUS/tcpip/ ,мож человеку тож поможет...
http://www.intuit.ru/department/network/pami/7/ HTTP
ampersant благодарен за код с комментариями
CERGEI вне форума   Ответить с цитированием
Старый 22.11.2012, 08:46   #12
2AplusA
Senior Member
 
Аватар для 2AplusA
 
Регистрация: 26.02.2007
Адрес: Penza
Возраст: 37
Сообщений: 1,385
Вес репутации: 1267/68
2AplusA has much to be proud of2AplusA has much to be proud of2AplusA has much to be proud of2AplusA has much to be proud of2AplusA has much to be proud of2AplusA has much to be proud of2AplusA has much to be proud of2AplusA has much to be proud of2AplusA has much to be proud of
По умолчанию Re: Нужна помощь с TCP/IP

Цитата:
Сообщение от pal1222@yandex.ru Посмотреть сообщение
Что, конкретно, сделать то надо?
Скорее всего нужно, что -то типа погоды выдрать со страницы. Парсить все врятли ТС собирался. Скорее всего качает страницу, а дальше в ней strstr по нужному тегу с id. Хотя тут как-то такое поднималось, и совет правильный был дан, что лучше сделать свой собственный сервер, который будет парсить страницы с другого сервера, а все железяки пусть лезут на собственный сервер, с четко регламентированным протоколом. А конвертор одной страницы в другую или в определенную базу, можно хоть на php сделать.
__________________
Лучше день потерять, потом за час долететь!
2AplusA вне форума   Ответить с цитированием
Старый 22.11.2012, 10:03   #13
Pridnya
Senior Member
 
Регистрация: 21.01.2009
Адрес: Russia, Orel
Возраст: 39
Сообщений: 4,501
Вес репутации: 4370/124
Pridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond repute
По умолчанию Re: Нужна помощь с TCP/IP

Цитата:
Сообщение от skdon Посмотреть сообщение
В точку
Заказать, конечно, идея хороша. Только нужно когда то учиться. Устройство ведь в дальнейшем обслуживать нужно и т.д. и т.п.
В общем будем копать...
Согласен, что учиться никогда не поздно, даже в 80. Одно дело разработать устройство, а другое - его обслуживать, там совсем другая квалификация нужна.
Кстати, будете копать вглубь, не забывайте о технике безопасности, стены могут засыпать копающего.
__________________
Прогресс неизбежен.
Pridnya вне форума   Ответить с цитированием
Старый 22.11.2012, 21:25   #14
skdon
Junior Member
 
Регистрация: 24.09.2009
Возраст: 38
Сообщений: 14
Вес репутации: 100/35
skdon will become famous soon enoughskdon will become famous soon enough
По умолчанию Re: Нужна помощь с TCP/IP

Цитата:
Сообщение от pal1222@yandex.ru Посмотреть сообщение
А причём тут http вообше? Парсить "руками" полученный в ответ html дело более чем неблагодарное. Вы же ничем не ограничены. Запрос, допустим, может обслуживать сервер на 80 порту написанный хоть на php, но кто сказал, что он не может возвращать ответ в собственном формате? Или обязательно пользоваться HTTPRequest? Тогда это не совсем МК Скорее - совсем не. Или вы хотите вывести на "устройство индикации" HTML CSS страницу с WEB сервера? Тогда флаг и более чем два барабана в руки, у microsoft, например, это получилось с восьмой попытки, причём некоторые считают, что всё равно не получилось
Что, конкретно, сделать то надо?
Спасибо всем за советы. Кое что начинает проясняться.
В общем будет это табло валют, самостоятельно запрашивающее курсы с главного сервера.
skdon вне форума   Ответить с цитированием
Старый 22.11.2012, 21:52   #15
ampersant
Senior Member
 
Аватар для ampersant
 
Регистрация: 26.02.2008
Адрес: IgorV
Сообщений: 2,429
Вес репутации: 4737/111
ampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond repute
По умолчанию Re: Нужна помощь с TCP/IP

Цитата:
Сообщение от 2AplusA Посмотреть сообщение
Скорее всего нужно, что -то типа погоды выдрать со страницы. Парсить все врятли ТС собирался. Скорее всего качает страницу, а дальше в ней strstr по нужному тегу с id. Хотя тут как-то такое поднималось, и совет правильный был дан, что лучше сделать свой собственный сервер, который будет парсить страницы с другого сервера, а все железяки пусть лезут на собственный сервер, с четко регламентированным протоколом. А конвертор одной страницы в другую или в определенную базу, можно хоть на php сделать.
о птичках, все серверы погоды которые я нашел, в своих XML указывают только прогнозы, а текущее состояние не указывают. Так что, ту идею про которую тут упомянули я забыл, собрав пару термодатчиков DS18B20 и тритоновский модуль. Да и с этим забросил, навалилось много нового.

C курсами валют по проще, чем с погодой: например так http://resources.finance.ua/ru/public/currency-cash.xml PIC по идее справится сам.
У меня как раз приведенный листинг был под поиск необходимого тега и сбор данных после него. Правда несколько по-проще было. Там просто передавались состояния светодиодов g/r/y -цвета, либо h или прочерк - погашен. С 4-х серверов, посему для ARP пришлось КЭШ сгородить на 4 пары IP/mac.
ampersant вне форума   Ответить с цитированием
Старый 13.02.2013, 11:09   #16
CERGEI
Senior Member
 
Аватар для CERGEI
 
Регистрация: 11.07.2009
Возраст: 36
Сообщений: 526
Вес репутации: 183/41
CERGEI has a spectacular aura aboutCERGEI has a spectacular aura about
По умолчанию Re: Нужна помощь с TCP/IP

Вопрос по подключению своей EEPROM внешней AT45DB081D для хранения веб сервера,кто сталкивался и кто пробовал реализовать ? Ведь идет исходники веб серва через MPFS2 Utility.
CERGEI вне форума   Ответить с цитированием
Старый 13.02.2013, 11:16   #17
FlashBack
Senior Member
 
Аватар для FlashBack
 
Регистрация: 16.02.2010
Адрес: Грузия, Тбилиси
Возраст: 34
Сообщений: 2,233
Вес репутации: 2337/77
FlashBack has a reputation beyond reputeFlashBack has a reputation beyond reputeFlashBack has a reputation beyond reputeFlashBack has a reputation beyond reputeFlashBack has a reputation beyond reputeFlashBack has a reputation beyond reputeFlashBack has a reputation beyond reputeFlashBack has a reputation beyond reputeFlashBack has a reputation beyond reputeFlashBack has a reputation beyond reputeFlashBack has a reputation beyond repute
По умолчанию Re: Нужна помощь с TCP/IP

Цитата:
Сообщение от CERGEI Посмотреть сообщение
Вопрос по подключению своей EEPROM внешней AT45DB081D для хранения веб сервера,кто сталкивался и кто пробовал реализовать ? Ведь идет исходники веб серва через MPFS2 Utility.
Ну видел что такое делают, хотя никак тоже не мог понять, как же загружают?
Такая память стояла на платках от Olimex, есть патч для стека, который её подвязывает...

Может там через веб грузить можно? Типа разделить страницы, одну бросить в проц, остальные грузить во флешь??
FlashBack вне форума   Ответить с цитированием
Старый 13.02.2013, 11:45   #18
Vanizma
Senior Member
 
Аватар для Vanizma
 
Регистрация: 30.04.2008
Адрес: Pskov
Сообщений: 4,140
Вес репутации: 4450/124
Vanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond repute
Отправить сообщение для Vanizma с помощью ICQ
По умолчанию Re: Нужна помощь с TCP/IP

Цитата:
Сообщение от FlashBack Посмотреть сообщение
Ну видел что такое делают, хотя никак тоже не мог понять, как же загружают?
Такая память стояла на платках от Olimex, есть патч для стека, который её подвязывает...

Может там через веб грузить можно? Типа разделить страницы, одну бросить в проц, остальные грузить во флешь??
в смысле как загружают???? по HTTP. я юзал раньше MP25 флехи, но они 100000 перезаписей всего.. мало для хранения параметров (также как и AT45DB081D).
В стеке ж есть код для загрузки образа бинарного во влешь в mpfs.
правишь драйвер флехи под свою... и вперед
__________________

Vanizma вне форума   Ответить с цитированием
Старый 13.02.2013, 11:51   #19
FlashBack
Senior Member
 
Аватар для FlashBack
 
Регистрация: 16.02.2010
Адрес: Грузия, Тбилиси
Возраст: 34
Сообщений: 2,233
Вес репутации: 2337/77
FlashBack has a reputation beyond reputeFlashBack has a reputation beyond reputeFlashBack has a reputation beyond reputeFlashBack has a reputation beyond reputeFlashBack has a reputation beyond reputeFlashBack has a reputation beyond reputeFlashBack has a reputation beyond reputeFlashBack has a reputation beyond reputeFlashBack has a reputation beyond reputeFlashBack has a reputation beyond reputeFlashBack has a reputation beyond repute
По умолчанию Re: Нужна помощь с TCP/IP

Цитата:
Сообщение от Vanizma Посмотреть сообщение
в смысле как загружают???? по HTTP. я юзал раньше MP25 флехи, но они 100000 перезаписей всего.. мало для хранения параметров (также как и AT45DB081D).
В стеке ж есть код для загрузки образа бинарного во влешь в mpfs.
правишь драйвер флехи под свою... и вперед
Ну не сказал бы что 100000 это мало... Смотря что и как хранить.
FlashBack вне форума   Ответить с цитированием
Старый 13.02.2013, 11:53   #20
Vanizma
Senior Member
 
Аватар для Vanizma
 
Регистрация: 30.04.2008
Адрес: Pskov
Сообщений: 4,140
Вес репутации: 4450/124
Vanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond repute
Отправить сообщение для Vanizma с помощью ICQ
По умолчанию Re: Нужна помощь с TCP/IP

Цитата:
Сообщение от FlashBack Посмотреть сообщение
Ну не сказал бы что 100000 это мало... Смотря что и как хранить.
мало, на 10 лет записи журнала впритык
__________________

Vanizma вне форума   Ответить с цитированием
Старый 13.02.2013, 14:12   #21
FlashBack
Senior Member
 
Аватар для FlashBack
 
Регистрация: 16.02.2010
Адрес: Грузия, Тбилиси
Возраст: 34
Сообщений: 2,233
Вес репутации: 2337/77
FlashBack has a reputation beyond reputeFlashBack has a reputation beyond reputeFlashBack has a reputation beyond reputeFlashBack has a reputation beyond reputeFlashBack has a reputation beyond reputeFlashBack has a reputation beyond reputeFlashBack has a reputation beyond reputeFlashBack has a reputation beyond reputeFlashBack has a reputation beyond reputeFlashBack has a reputation beyond reputeFlashBack has a reputation beyond repute
По умолчанию Re: Нужна помощь с TCP/IP

Цитата:
Сообщение от Vanizma Посмотреть сообщение
мало, на 10 лет записи журнала впритык
Ну я на гпс трекер как посчитал, с интервалом замера 5 секунд, на 30 лет как минимум хватит... Что ты туда такое пишешь то?
FlashBack вне форума   Ответить с цитированием
Старый 13.02.2013, 14:53   #22
Vanizma
Senior Member
 
Аватар для Vanizma
 
Регистрация: 30.04.2008
Адрес: Pskov
Сообщений: 4,140
Вес репутации: 4450/124
Vanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond repute
Отправить сообщение для Vanizma с помощью ICQ
По умолчанию Re: Нужна помощь с TCP/IP

Цитата:
Сообщение от FlashBack Посмотреть сообщение
Ну я на гпс трекер как посчитал, с интервалом замера 5 секунд, на 30 лет как минимум хватит... Что ты туда такое пишешь то?
100000/(12*60*24*365)=0,0158548959918822932521562658549 лет - это если раз в 5 секунд писать

я брал из расчета - в среднем 1 запись в 10 минут на протяжении всей жизни изделия, ну еще можно учесть циклическую запись..., но есть параметры которые в одно и то же место пишутся - например состояния реле
__________________

Vanizma вне форума   Ответить с цитированием
Старый 13.02.2013, 15:04   #23
FlashBack
Senior Member
 
Аватар для FlashBack
 
Регистрация: 16.02.2010
Адрес: Грузия, Тбилиси
Возраст: 34
Сообщений: 2,233
Вес репутации: 2337/77
FlashBack has a reputation beyond reputeFlashBack has a reputation beyond reputeFlashBack has a reputation beyond reputeFlashBack has a reputation beyond reputeFlashBack has a reputation beyond reputeFlashBack has a reputation beyond reputeFlashBack has a reputation beyond reputeFlashBack has a reputation beyond reputeFlashBack has a reputation beyond reputeFlashBack has a reputation beyond reputeFlashBack has a reputation beyond repute
По умолчанию Re: Нужна помощь с TCP/IP

Чтото ты не то считаешь.

У меня полное заполнение флешки - занимает неделю.
Это 64 байта, 12 раз в минуту, итого 46080 байт в час, 1105920 байт в сутки. Флешка у меня 64 мБит, т.е. 8 мегабайт. За неделю я запишу все ячейки. Это будет один цикл. Даже если считать постранично, то пусть циклов выйдет в 4 раза больше (страница 256). И того получим неделя/4 - будет полный цикл, т.е. за 1.75 дня. Т.е. 208 циклов за год.

Это 100000 не количество общих запросов записи, а живучесть отдельной ячейки (ну или пусть страницы).
FlashBack вне форума   Ответить с цитированием
Старый 13.02.2013, 15:12   #24
Vanizma
Senior Member
 
Аватар для Vanizma
 
Регистрация: 30.04.2008
Адрес: Pskov
Сообщений: 4,140
Вес репутации: 4450/124
Vanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond repute
Отправить сообщение для Vanizma с помощью ICQ
По умолчанию Re: Нужна помощь с TCP/IP

Цитата:
Сообщение от FlashBack Посмотреть сообщение
Чтото ты не то считаешь.

У меня полное заполнение флешки - занимает неделю.
Это 64 байта, 12 раз в минуту, итого 46080 байт в час, 1105920 байт в сутки. Флешка у меня 64 мБит, т.е. 8 мегабайт. За неделю я запишу все ячейки. Это будет один цикл. Даже если считать постранично, то пусть циклов выйдет в 4 раза больше (страница 256). И того получим неделя/4 - будет полный цикл, т.е. за 1.75 дня. Т.е. 208 циклов за год.

Это 100000 не количество общих запросов записи, а живучесть отдельной ячейки (ну или пусть страницы).
ну у меня то нету 8 мегабайт места... большую часть web страницы занимают.
да и мегаотстой эта постраничная запись... в общем, я юзаю spi eeprom на 1 mbit, вполне хватает
__________________

Vanizma вне форума   Ответить с цитированием
Старый 13.02.2013, 16:31   #25
ampersant
Senior Member
 
Аватар для ampersant
 
Регистрация: 26.02.2008
Адрес: IgorV
Сообщений: 2,429
Вес репутации: 4737/111
ampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond repute
По умолчанию Re: Нужна помощь с TCP/IP

Цитата:
Сообщение от Vanizma Посмотреть сообщение
ну у меня то нету 8 мегабайт места... большую часть web страницы занимают.
да и мегаотстой эта постраничная запись... в общем, я юзаю spi eeprom на 1 mbit, вполне хватает
Это чего за сайт такой? Что надо под 1 МБ для МК
ampersant вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужна помощь по asm для dsPIC hubble Продукция MICROCHIP 17 09.02.2012 23:17
Нужна помощь с BUGGY piter Продукция MICROCHIP 2 25.07.2011 12:55
Нужна помощь!!! MDD File System FSIO simnov Вопросы начинающих 1 29.05.2011 01:01
Нужна помощь в Proteus`е italic Общетехнические вопросы 2 25.03.2008 14:49
Нужна помощь в решении вопросса! (в тему и не в тему) Noname1024 Общетехнические вопросы 31 19.12.2007 15:30


Часовой пояс GMT +3, время: 21:37.


Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd. Перевод: zCarot