Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: AT91SAM9263 + uIP + ProtoSocket
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
ushakoff78
Уважаемые односельчане, небольшой вопрос с новой для меня технологие uIP и ProtoThreads. Я начал работать с оценочным китом AT91SAM9263EK. Я использую basic-emac-uip-helloworld-project как прототип моей системы. Система работает как приемник данных от нескольких антен, используя интернет (с различными IP и портами). Пример довольно полехный, хотя и довольно замороченый. Я отредактировал определение прикладной программы uIP.
#ifndef UIP_APPCALL
#define UIP_APPCALL receive_data_appcall
#endif /* UIP_APPCALL */
Теперь она может опращивать несколько IP.
И вданный момент я легко нахожу момент посылки данных главному контроллеру при помощи фкнуий uip_newdata() и uip_rexmit().
После этого я пытаюсь достать данные из посылки и послать на PC (с целью отладки). На стороне PC я слушаю порт с помощью Гипертерминала. Сама посылка часть реализована в примере с помощью protosockets и protothreads.
Вот пример программного кода:

struct RF_board_data *rf = &(uip_conn->appstate);

if(uip_newdata()||uip_rexmit()) {
PSOCK_INIT(&rf->p, rf->inputbuffer, sizeof(rf->inputbuffer));
handle_newdata(rf);
}


static int
handle_newdata(struct RF_board_data *rf)
{
PSOCK_BEGIN(&rf->p);
PSOCK_READTO(&rf->p, '\n');
strncpy(rf->name, rf->inputbuffer, sizeof(rf->name));
printf(" rf->name = \n\r", rf->name);
PSOCK_SEND_STR(&rf->p, "Hello ");
PSOCK_CLOSE(&rf->p);
PSOCK_END(&rf->p);
}

Код должен копировать полученный буфер и послать его обратно в COM-порт и TCP/IP.
Но данные не возвращаются. Собственно ничего не возвращается.
Пожалуйста помогите. В чем ошибка?
KRS
IMHO лучше использовать lwIP, тем более для такого мощного чипа!
а PROTO_THREAD - вы посмотрите какой код генерится! Это же изврат! (но это мое мнение)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.