реклама на сайте
подробности

 
 
4 страниц V   1 2 3 > »   
Reply to this topicStart new topic
> OpenAT
kban
сообщение Feb 20 2008, 07:37
Сообщение #1


Частый гость
**

Группа: Новичок
Сообщений: 97
Регистрация: 29-10-07
Пользователь №: 31 837



Привет всем. Всем кто работал с данным зверем - просьба отписаться. Интересует следующее - как создавать НОВЫЕ проекты? С помощью Open AT Project Wizard - выбираем New Project и т.д.? Но тут начинаются проблемы - я создаю проект, Associated IDE выбираю c++. Потом в с++ проекте добавляю созданные мной файлы (уже откомпиленные в с++ т.е. ошибок нет). После чего сохраняю проект и делаю wmmake. Тут начинается что-то непонятное. То он ругается на .h - файлы, путь к которым в коде указывается явно, тем более с++ на них не ругается и видит их. То просто пишет no rule to make target "appli.c". Кстати, после того как он поругается на .h файлы при послед. попытке создать проект выдаёт эту же ошибку что нет правила.
Пытался просто создать проект типа hello-world и заменить там с++ файлы на свои - рез-т тот же.
Аналогично для примера pingGPRS.
Помогите разобраться плиз.
Go to the top of the page
 
+Quote Post
sz36
сообщение Feb 23 2008, 16:59
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 91
Регистрация: 26-01-06
Пользователь №: 13 668



Цитата(kban @ Feb 20 2008, 10:37) *
Всем кто работал с данным зверем - просьба отписаться.


Ну я работал. Сделал таки на нем один проект, но дал себе слово больше с ним не связываться Это какой-то ужас, летящий на крыльях ночи :-)

Цитата(kban @ Feb 20 2008, 10:37) *
Интересует следующее - как создавать НОВЫЕ проекты?


ProjectWizard'ом создаем новый проект в новой папке, указывая необходимые плагины
Закрываем среду
Вручную переписываем свои *.h файлы в папку inc, *.c файлы - в папку src
Запускаем среду, при старте она их подхватывает
Права, я под Eclipse работал
Go to the top of the page
 
+Quote Post
KonstantinT
сообщение Feb 23 2008, 21:14
Сообщение #3


Участник
*

Группа: Новичок
Сообщений: 29
Регистрация: 3-11-04
Пользователь №: 1 027



Хранцузы - такие затейники :-). Но через пол года - привык.
Go to the top of the page
 
+Quote Post
kban
сообщение Feb 26 2008, 09:16
Сообщение #4


Частый гость
**

Группа: Новичок
Сообщений: 97
Регистрация: 29-10-07
Пользователь №: 31 837



Цитата
Вручную переписываем свои *.h файлы в папку inc, *.c файлы - в папку src

Вот и я так думал. Только вот проблема - С++ компилирует всё нормально, без ошибок. А при попытке сделать wmmake - он ругается на ВСЕ .h файлы, которые, кстати хранятся именно в папочке inc проекта. Либо (без исправлений, просто пересоздав проект) начинает ругаться на все функции которые описанны в .h файлах... Т.е - сами файлы видит, а функции в них - нет. И какой файл с++ считается по умолчанию главным? И при билде - он создаёт одну готовую прошивку из всех файлов?
Go to the top of the page
 
+Quote Post
dezzer
сообщение Mar 5 2008, 06:27
Сообщение #5


Участник
*

Группа: Свой
Сообщений: 66
Регистрация: 27-09-05
Пользователь №: 9 012



Банальная переустановка OpenAT зачастую излечивала эту среду от многих глюков.
Go to the top of the page
 
+Quote Post
de__
сообщение Mar 19 2008, 11:28
Сообщение #6


Участник
*

Группа: Новичок
Сообщений: 26
Регистрация: 19-03-08
Пользователь №: 36 045



Цитата(kban @ Feb 26 2008, 12:16) *
Вот и я так думал. Только вот проблема - С++ компилирует всё нормально, без ошибок. А при попытке сделать wmmake - он ругается на ВСЕ .h файлы, которые, кстати хранятся именно в папочке inc проекта. Либо (без исправлений, просто пересоздав проект) начинает ругаться на все функции которые описанны в .h файлах... Т.е - сами файлы видит, а функции в них - нет. И какой файл с++ считается по умолчанию главным? И при билде - он создаёт одну готовую прошивку из всех файлов?


я все кидаю в src
а потом ручками правлю mak файл
типа
SRC_C_LIST = \
appli.c \
at.c \

SRC_H_LIST = \
at.h \
command2uart.h \
core.h \

SRC_H_LIST - методом научного тыка нашел.

какой файл главный? ну явно тот в котором находится функция
void adl_main ( adl_InitType_e InitType )

А французы гады редкостные. Официальный форум поддерживаются только такими же несчастными как ты сам ) Хотя этот форум - основной источник информации после кривой документации.

Заканчиваю (надеюсь) большой проект с этим девайсом -обмен данными по HTTP с внешним сервером. Ощущения противоречивые ;-) вроде когда все работает - морда довольная.
Но столько ржавых граблей нужно собрать! ппц.
Go to the top of the page
 
+Quote Post
kban
сообщение Mar 20 2008, 10:12
Сообщение #7


Частый гость
**

Группа: Новичок
Сообщений: 97
Регистрация: 29-10-07
Пользователь №: 31 837



Спасибо всем за ответы. Установил - более-менее разобрался, пытаюсь работать. Вопрос в следующем - работу TCP/IP (клиент - сервер) вроде организовал, но как теперь сделать так, чтобы модем отсылал не ту информацию, которая ручками была забита в буфер в прошивке, а ту, которая на него приходит через COM порт или USB? Есть ли какой - нибуть зарезервированный под это дело буфер (предусмотренный производителем) который доступен из OpenAT без его обьявления? Всмысле уже вшитый в стандартную прошивку. И если он есть, то как до него достучаться?
Go to the top of the page
 
+Quote Post
alexQ
сообщение Mar 20 2008, 10:26
Сообщение #8


Знающий
****

Группа: Banned
Сообщений: 520
Регистрация: 6-02-06
Пользователь №: 14 040



вот это не очень понятно:
>не ту информацию, которая ручками была забита в буфер в прошивке,


если хотите гнать данные с uart в сокет, то копайте в сторону FCM. буфер сами делайте памяти там свободной до дури. почитайте внимательно доки. там все разжевано.

USB может работать пока только как slave.
Go to the top of the page
 
+Quote Post
de__
сообщение Mar 20 2008, 10:41
Сообщение #9


Участник
*

Группа: Новичок
Сообщений: 26
Регистрация: 19-03-08
Пользователь №: 36 045



Цитата(kban @ Mar 20 2008, 13:12) *
Спасибо всем за ответы. Установил - более-менее разобрался, пытаюсь работать. Вопрос в следующем - работу TCP/IP (клиент - сервер) вроде организовал, но как теперь сделать так, чтобы модем отсылал не ту информацию, которая ручками была забита в буфер в прошивке, а ту, которая на него приходит через COM порт или USB? Есть ли какой - нибуть зарезервированный под это дело буфер (предусмотренный производителем) который доступен из OpenAT без его обьявления? Всмысле уже вшитый в стандартную прошивку. И если он есть, то как до него достучаться?


Если вы взяли готовый пример, то для начала нужно выкинуть из него процентов 60 кода ) И в остатках - досконально разобраться.
Я понимаю конечно что автор визарда силен в Сях, но нафига было так извращаться?

Как я понимаю, этот буфер то есть, но его пользователю давать нельзя. Идеология ОС рушиться. Делать его волатильным? )
Короче ОЗУ дофига, можно выделить скока нужно.
Кстати в старый модем Q2406 я еле влазил. в новом Q24Pl на мегабайт больше и теперь комфортно )
Go to the top of the page
 
+Quote Post
alexQ
сообщение Mar 20 2008, 13:12
Сообщение #10


Знающий
****

Группа: Banned
Сообщений: 520
Регистрация: 6-02-06
Пользователь №: 14 040



а в 26-м четыре и все работает намного быстрее.
и дешевле они ....
Go to the top of the page
 
+Quote Post
de__
сообщение Mar 21 2008, 08:58
Сообщение #11


Участник
*

Группа: Новичок
Сообщений: 26
Регистрация: 19-03-08
Пользователь №: 36 045



Цитата(alexQ @ Mar 20 2008, 16:12) *
а в 26-м четыре и все работает намного быстрее.
и дешевле они ....


Не изучал этот вопрос... А почему они дешевле? В чем там засада? Там нужна внешяя память?
Ведь по всем параметрам 26ые лучше...
Go to the top of the page
 
+Quote Post
alexQ
сообщение Mar 21 2008, 10:27
Сообщение #12


Знающий
****

Группа: Banned
Сообщений: 520
Регистрация: 6-02-06
Пользователь №: 14 040



26-е лучше конечно. а 24-е позиционируются как поддержка старых 24-х
поэтому и дороже.
вейвкомы просто стимулируют более быстрый переход на 26-е smile.gif
Go to the top of the page
 
+Quote Post
kban
сообщение Apr 2 2008, 07:54
Сообщение #13


Частый гость
**

Группа: Новичок
Сообщений: 97
Регистрация: 29-10-07
Пользователь №: 31 837



Спасибо за ответ.
Цитата(alexQ @ Mar 20 2008, 17:26) *
USB может работать пока только как slave.
- а когда нибудь вообще он сможет работать как мастер?
Относительно FCM -
s8 dwl_Download ( u8 DwlType, u32 Length, u8 * pData, u8 FlowID, ascii * FileName, ascii * FilePath );
почемуто когда ставлю DwlType - DWL_TYPE_RAM - по GSM не работает...
Когда же меняю обратно на DWL_TYPE_APPLI - работает вроде... А можно ли вообще по GSM передать просто данные (не приложение)?
Делал так:
dwl_Download ( ( u8 ) DWL_AUTH_TYPE_PASSWORD | DWL_TYPE_RAM,
appdwl_RamBufferSize,
appdwl_RamBuffer,
ADL_FCM_FLOW_GSM_DATA,
NULL,
NULL )
Мож где ошибка?
Go to the top of the page
 
+Quote Post
kban
сообщение Apr 4 2008, 05:27
Сообщение #14


Частый гость
**

Группа: Новичок
Сообщений: 97
Регистрация: 29-10-07
Пользователь №: 31 837



Пересоздал буфер - вроде начал передавать.... Только при попытке что - нить передать (писать в гипер терминале) выдаёт x-Modem transfere error. При передаче через x-Modem - вроде отправляет (пробовал отправить текстовый файл - показал что отправил...) А как мне теперь на втором модеме до этого файла достучаться? И как устроить передачу в автономном режиме (желательно не файлом, а как при соединении точка - точка, т.е. приходит потоковая информация на модем с COM - порта, и тут же её нужно передать на др. модем...)? Код следующий:
/* Call Service Handler */
s8 appdwl_CallHandler ( u16 Event, u32 CallID )
{
static bool DownloadStarted = FALSE;

TRACE (( appdwl_TraceLevel, "Call event : %d %d", Event, CallID ));

/* Switch on call event */
switch ( Event )
{
case ADL_CALL_EVENT_RING_DATA :
if ( !DownloadStarted )
{
TRACE (( appdwl_TraceLevel, "Call Handler -> auto answer" ));

/* Data call -> Start downloader */
adl_atSendResponse ( ADL_AT_UNS, "\r\nApplication Downloader -> start...\r\n" );
/* Get new bufer*/

appdwl_RamBufferSize=2*1024;
appdwl_RamBuffer = adl_memGet ( appdwl_RamBufferSize );

/* GSM data download start */
if ( dwl_Download ( (u8) DWL_AUTH_TYPE_NORMAL | DWL_TYPE_RAM,
appdwl_RamBufferSize,
appdwl_RamBuffer,
ADL_FCM_FLOW_GSM_DATA,
NULL,
NULL ) != OK )

{
// Start Downloader Error
adl_atSendResponse ( ADL_AT_UNS, "\r\nApplication Downloader -> failed\r\n" );
}
else
{
//TRACE(1,"STARTED!", );
TRACE (( appdwl_TraceLevel, "STARTED!" ));
// wm_sprintf ("\r\n STARTED! \r\n");
// Let's go !!!
DownloadStarted = TRUE;
ascii StrRsp [ 50 ];
wm_sprintf ( StrRsp, "\r\n%s: %d\r\n", DWL_STR_RAMDWL_CMD + 2, appdwl_RamBufferSize/1024 );
}
}
break;

default :
DownloadStarted = FALSE;
break;
}

return ADL_CALL_FORWARD;
}

И ещё - при попытке прошить один модем через другой по средствам GSM (как это предлагается делать в примере) постоянно после загрузки приложения (отправляет файл 100%) и перезагрузке принимающий модем выдаёт Download error... Пример использовал стандартный - Application_Download. Мож там чё дописать надо чтоб устаавливал по нормальному?
Go to the top of the page
 
+Quote Post
de__
сообщение Apr 4 2008, 10:32
Сообщение #15


Участник
*

Группа: Новичок
Сообщений: 26
Регистрация: 19-03-08
Пользователь №: 36 045



Цитата(kban @ Apr 4 2008, 08:27) *
А как мне теперь на втором модеме до этого файла достучаться? И как устроить передачу в автономном режиме (желательно не файлом, а как при соединении точка - точка, т.е. приходит потоковая информация на модем с COM - порта, и тут же её нужно передать на др. модем...)


Как я понимаю здесь 2 пути: либо имея статичные IP адреса осуществить передачу через GPRS. Либо дозвоном на номер телефона в DATA режиме. Чтобы передавать данные с COM-порта - просто переключить его в DATA режим.
Go to the top of the page
 
+Quote Post
kban
сообщение Apr 8 2008, 05:35
Сообщение #16


Частый гость
**

Группа: Новичок
Сообщений: 97
Регистрация: 29-10-07
Пользователь №: 31 837



Цитата(de__ @ Apr 4 2008, 17:32) *
Как я понимаю здесь 2 пути: либо имея статичные IP адреса осуществить передачу через GPRS. Либо дозвоном на номер телефона в DATA режиме. Чтобы передавать данные с COM-порта - просто переключить его в DATA режим.

Насчёт режимов передачи данных - это понятно. Непонятно только то, как происходит обмен? Всмысле - как от одного модема другому передать информацию - ясно, а как в 1 модеме настроить передачу СОМ->Модем->GPRS или voice call вот это не понятно... Для работы с СОМ портом внутри модема нужно ли использовать FCM, как записать принятое в буфер и т.д.?
Go to the top of the page
 
+Quote Post
de__
сообщение Apr 8 2008, 09:04
Сообщение #17


Участник
*

Группа: Новичок
Сообщений: 26
Регистрация: 19-03-08
Пользователь №: 36 045



Хм. На вопрос "а мне все здесь непонятно, расскажите мне всё, как это работает" не хочется и отвечать. Так и хочется сказать RTFM!

"Для работы с СОМ портом внутри модема нужно ли использовать FCM, как записать принятое в буфер и т.д.?"
Смысл в том что нужно объявить подписку на нужный порт. (FCM) И при подписке в одном из параметров - указатель на вашу функцию обработчик. По событиям - обрабатываем...
Грабли - передающий буфер ограничен. (смотреть документацию для каждого случая) Если нужно послать больше - рвать на куски
Go to the top of the page
 
+Quote Post
kban
сообщение Apr 11 2008, 07:38
Сообщение #18


Частый гость
**

Группа: Новичок
Сообщений: 97
Регистрация: 29-10-07
Пользователь №: 31 837



Прошу прощения, мож я чё не так написал...
Вопрос сформулмрую точнее... Если передавать данные по GSM, то делаем функцию Call_Handler(u16 Event, u32 Call_ID) где по событию Event делаем обработку... например ADL_CALL_EVENT_RING_DATA где отвечаем на звонок adl_callAnswer(), а затем по событию ADL_CALL_EVENT_ANSWER_OK подписываем
V24Handle = adl_fcmSubscribe ( USED_FLOW, V24CtrlHandler, V24DataHandler );
Интересует аналог для COM порта. Вместо adl_fcmSubscribe уже использовать adl_portSubscribe?

вопрос снимается... и правда протупил.. ещё оаз прошу прощения=)
Go to the top of the page
 
+Quote Post
kban
сообщение Apr 15 2008, 04:48
Сообщение #19


Частый гость
**

Группа: Новичок
Сообщений: 97
Регистрация: 29-10-07
Пользователь №: 31 837



В интернете нашёл хорошую ссылочку - http://www.compeljournal.ru/enews/2007/19/9
Полезная, на мой взгляд)
Go to the top of the page
 
+Quote Post
kban
сообщение Apr 25 2008, 04:27
Сообщение #20


Частый гость
**

Группа: Новичок
Сообщений: 97
Регистрация: 29-10-07
Пользователь №: 31 837



И снова здравствуйте. Сделал приложение, которое по подаче команды at+start начинает считывать данные, введённые с клавиатуры в буфер, пока не будет послан символ "a". Но есть один касяк - программа работает только 1 раз - после повторного введения команды at+start в функцию - обработчик этой команды программа приходит, но ничего не делает. В функции, обрабатывающей это событие стоит
V24Handle=adl_fcmSubscribe (ADL_PORT_UART1, (adl_fcmCtrlHdlr_f)V24CtrlHandler, (adl_fcmDataHdlr_f)V24DataHandler);
где в V24CtrlHandler я меняю командный режим на режим передачи данных, а затем в V24DataHandler после обработки данных меняю его обратно на командный режим... По-моему касяк в том, что в V24CtrlHandler программа попадает только 1 раз.... Может я не понял суть этой функции? Программа должна заходить в неё по событиям?
Код функции
bool V24CtrlHandler ( u8 Event )
{
bool bReturn = TRUE;
s32 sReturn;
TRACE (( 1, "V24 event %d", Event ));
adl_atSendResponse (ADL_AT_RSP, "\r\n Prishli v V24Ctrl handler!\r\n");

// Switch on event
switch ( Event )
{
case ADL_FCM_EVENT_FLOW_OPENNED :
sReturn = adl_fcmSwitchV24State ( V24Handle, ADL_FCM_V24_STATE_DATA );
TRACE (( 1, "Switch to data : %d", sReturn ));
bFCMIsReady = TRUE;
break;

case ADL_FCM_EVENT_RESUME :
bFCMIsReady = TRUE ;
TRACE (( 1, "Resume Data Flow"));
break;

case ADL_FCM_EVENT_MEM_RELEASE :
bFCMIsReady = TRUE ;
TRACE (( 1, "Data are sent"));
break;
}

return bReturn;
}


И ещё - может дело в adl_fcmSubscribe (ADL_PORT_UART1, (adl_fcmCtrlHdlr_f)V24CtrlHandler, (adl_fcmDataHdlr_f)V24DataHandler) и adl_fcmUnsubscribe(V24Handle); ? Куда правильно нужно ставить adl_fcmUnsubscribe(V24Handle);? Если сразу же после adl_fcmSubscribe - то просто зависает в режиме передачи данных...
Go to the top of the page
 
+Quote Post
kban
сообщение Apr 25 2008, 06:04
Сообщение #21


Частый гость
**

Группа: Новичок
Сообщений: 97
Регистрация: 29-10-07
Пользователь №: 31 837



И ещё - в V24CtrlHandler на событие ADL_FCM_EVENT_FLOW_CLOSED ( как я понял из мануалов оно происходит во время adl_fcmUnsubscribe) вообще не реагирует...
Go to the top of the page
 
+Quote Post
sobr
сообщение Apr 25 2008, 06:41
Сообщение #22


Знающий
****

Группа: Свой
Сообщений: 926
Регистрация: 18-01-07
Пользователь №: 24 552



По этому кусочку кода понять что то сложно, покажи весь сишный файл, если не комерческая тайна.
Go to the top of the page
 
+Quote Post
kban
сообщение Apr 25 2008, 07:20
Сообщение #23


Частый гость
**

Группа: Новичок
Сообщений: 97
Регистрация: 29-10-07
Пользователь №: 31 837



#include "adl_global.h"

/***************************************************************************/
/* Mandatory variables */
/*-------------------------------------------------------------------------*/
/* wm_apmCustomStack */
/* wm_apmCustomStackSize */
/*-------------------------------------------------------------------------*/
/***************************************************************************/
const u16 wm_apmCustomStackSize = 1024;


/***************************************************************************/
/* Local variables */
/***************************************************************************/

/* String To Send List */
wm_lst_t StringList;

/* Flag for FCM State */
bool bFCMIsReady = TRUE;
bool flag = FALSE;

/* AT command buffer */
ascii ATCommand[ 512 ];
/* Used flow */
#define USED_FLOW ADL_PORT_UART1

static s8 V24Handle,UARTHandle;



/***************************************************************************/
/* Function : V24CtrlHandler */
/*-------------------------------------------------------------------------*/
/* Objet : FCM Control Events Handler */
/* */
/* Return : return value is not relevant */
/* */
/*-------------------------------------------------------------------------*/
/* Variable Name |IN |OUT|GLB| Utilisation */
/*--------------------+---+---+---+----------------------------------------*/
/* Event | | | | Event from GPRS Service */
/*--------------------+---+---+---+----------------------------------------*/
/***************************************************************************/
bool V24CtrlHandler ( u8 Event )
{
bool bReturn = TRUE;
s32 sReturn;
flag = FALSE;
TRACE (( 1, "V24 event %d", Event ));
adl_atSendResponse (ADL_AT_RSP, "\r\n Prishli v V24Ctrl handler\r\n");
// sReturn = adl_fcmSwitchV24State ( V24Handle, ADL_FCM_V24_STATE_DATA );
// Switch on event
switch ( Event )
{
case ADL_FCM_EVENT_FLOW_OPENNED :
adl_atSendResponse (ADL_AT_RSP, "\r\n Open \r\n");
sReturn = adl_fcmSwitchV24State ( V24Handle, ADL_FCM_V24_STATE_DATA );
adl_atSendResponse (ADL_AT_RSP, "\r\n Switch to data\r\n");
TRACE (( 1, "Switch to data : %d", sReturn ));
bFCMIsReady = TRUE;
break;

case ADL_FCM_EVENT_RESUME :
adl_atSendResponse (ADL_AT_RSP, "\r\n Resume \r\n");
sReturn = adl_fcmSwitchV24State ( V24Handle, ADL_FCM_V24_STATE_DATA );
adl_atSendResponse (ADL_AT_RSP, "\r\n Switch to data\r\n");
bFCMIsReady = TRUE ;
TRACE (( 1, "Resume Data Flow"));

break;

case ADL_FCM_EVENT_MEM_RELEASE :
bFCMIsReady = TRUE ;
TRACE (( 1, "Data are sent"));
break;
case ADL_FCM_EVENT_FLOW_CLOSED :

adl_atSendResponse (ADL_AT_RSP, "\r\n Flow closed\r\n");
sReturn = adl_fcmSwitchV24State ( V24Handle, ADL_FCM_V24_STATE_AT );\
bFCMIsReady = TRUE ;
TRACE (( 1, "Data are sent"));
break;
}

return bReturn;
}



void MyTimeout (u8 id)

{

adl_atSendResponse (ADL_AT_RSP, "\r\n Timer works!\r\n");
}

bool V24DataHandler ( u16 Length, u8 * Data )
{
adl_atSendResponse (ADL_AT_RSP, "\r\n Prishli v V24DATA handler!\r\n");
/* Scan received string */
u16 i,j,ATLastLength = wm_strlen ( ATCommand );

ascii * RecString = adl_memGet ( ( u16 ) ( Length ) );

TRACE (( 1, "V24DataHandler begin"));
wm_memcpy ( ( ascii * ) RecString, ( ascii * ) Data, Length );
adl_atSendResponse (ADL_AT_RSP, "\r\n Receive complete!\r\n");

for ( i = 0 ; i < Length ; i++ )
{
/* If string is empty, search for 'a' */
if ( ( wm_strlen ( ATCommand ) == 0 )
&& ( ( RecString [ i ] == 'a' )
|| ( RecString [ i ] == 'A' ) ) )
{
adl_fcmSwitchV24State ( V24Handle, ADL_FCM_V24_STATE_AT );
flag = TRUE;
// adl_fcmUnsubscribe(V24Handle);
// return TRUE;
// continue;
}


}
adl_fcmSendData (V24Handle, RecString, wm_strlen (RecString));
ATLastLength = 0;

adl_memRelease ( RecString );
// release credit
return TRUE;

}



void AtStartHandler (adl_atCmdPreParser_t *p)

{
adl_atSendResponse (ADL_AT_RSP, "\r\nHello, world!\r\n");
V24Handle=adl_fcmSubscribe (ADL_PORT_UART1, (adl_fcmCtrlHdlr_f)V24CtrlHandler, (adl_fcmDataHdlr_f)V24DataHandler);
if(flag==TRUE)
{
adl_atSendResponse (ADL_AT_RSP, "\r\n flag==TRUE\r\n");
adl_fcmUnsubscribe(V24Handle);
}
};

void AtSwitchHandler (adl_atCmdPreParser_t *p)

{
adl_atSendResponse (ADL_AT_RSP, "\r\nSwitch\r\n");
adl_fcmSwitchV24State ( V24Handle, ADL_FCM_V24_STATE_DATA );

};

void adl_main ( adl_InitType_e InitType )
{
adl_atSendResponse (ADL_AT_RSP, "\r\n Hi user, let's start our transfere!\r\n");
ascii * RecString1 = adl_memGet ( ( u16 ) ( 256) );
/* Initialize String To Send list */
StringList = wm_lstCreate ( WM_LIST_NONE, NULL );



/* Init AT command string */
ATCommand[ 0 ] = 0;
/* Subscribe to call events */

adl_atCmdSubscribe ("at+start", (adl_atCmdHandler_t)AtStartHandler, ADL_CMD_TYPE_ACT);
adl_atCmdSubscribe ("at+switch", (adl_atCmdHandler_t)AtSwitchHandler, ADL_CMD_TYPE_ACT);


}
Вот весь файл...
Go to the top of the page
 
+Quote Post
sobr
сообщение Apr 25 2008, 09:18
Сообщение #24


Знающий
****

Группа: Свой
Сообщений: 926
Регистрация: 18-01-07
Пользователь №: 24 552



Попробуйте так...
Код
void AtStartHandler (adl_atCmdPreParser_t *p)

{
       adl_atSendResponse (ADL_AT_RSP, "\r\nHello, world!\r\n");
      
       if(flag==TRUE)
       {
             adl_atSendResponse (ADL_AT_RSP, "\r\n flag==TRUE\r\n");
             adl_fcmUnsubscribe(V24Handle);
             flag=FALSE;
       }
       else
       {
            V24Handle=adl_fcmSubscribe (ADL_PORT_UART1, (adl_fcmCtrlHdlr_f)V24CtrlHandler,    
       (adl_fcmDataHdlr_f)V24DataHandler);
       }
};
Go to the top of the page
 
+Quote Post
de__
сообщение Apr 25 2008, 10:07
Сообщение #25


Участник
*

Группа: Новичок
Сообщений: 26
Регистрация: 19-03-08
Пользователь №: 36 045



Не понятно зачем вы переходите в ДАТА режим для отправки данных?

разве не достаточно просто послать
adl_atSendResponse(ADL_PORT_UART1,bufUart1);
или для текущего порта
adl_atSendResponse(ADL_AT_RSP,bufUart1);
или для вашего случая adl_atSendResponsePort(ADL_AT_RSP, p->Port, x)

Я как то написал универсальную функцию и забыл... Возможно кривовато
#define MAX_LEN_BUF_UART1 512 //максимальная длина посылки за один раз
unsigned char bufUart1[MAX_LEN_BUF_UART1+1]; //Буфер глобальный. Возможно так быстрее
unsigned int SendUart1(unsigned char *str)
{
unsigned char *pBuf;
unsigned int len, bufLen;

bufLen = len = (unsigned int)strlen(str);

if(!len) //Нулевую длину не обрабатываем
return 0;

if(len<=MAX_LEN_BUF_UART1)
{//Для буфера меньше допустимо возможного просто отправляем данные и выходим
adl_atSendResponse(ADL_PORT_UART1,str);
}
else
{ //Массив большой - пошлём кусками
pBuf = str;
do{
memset(bufUart1, 0, MAX_LEN_BUF_UART1+1);
strncpy(bufUart1, pBuf, MAX_LEN_BUF_UART1); //копируем кусок для отправки

adl_atSendResponse(ADL_PORT_UART1,bufUart1);

len = (unsigned int)strlen(pBuf);

if(len<=MAX_LEN_BUF_UART1)
break;
else
pBuf+=MAX_LEN_BUF_UART1;
}while(1);
}
return bufLen; //Возвращаем количество посланных байт
}
Go to the top of the page
 
+Quote Post
kban
сообщение Apr 28 2008, 05:36
Сообщение #26


Частый гость
**

Группа: Новичок
Сообщений: 97
Регистрация: 29-10-07
Пользователь №: 31 837



Спасибо большое за ответы! Буду работать дальше!

Ещё вопрос - как вывести буфер на экран?
Какие параметры должны быть у wm_sprintf(ascii buf, ascii fmt, ...)?
Какой буфер тут имеется ввиду - тот который выводим? И fmt - Это формат? Если так - то при попытке вывода буфера, модем почемуто перезагружается....
Go to the top of the page
 
+Quote Post
sobr
сообщение Apr 28 2008, 06:41
Сообщение #27


Знающий
****

Группа: Свой
Сообщений: 926
Регистрация: 18-01-07
Пользователь №: 24 552



Цитата(kban @ Apr 28 2008, 12:36) *
Ещё вопрос - как вывести буфер на экран?

adl_atSendResponse(ADL_AT_RSP, buf);
Go to the top of the page
 
+Quote Post
kban
сообщение Apr 30 2008, 06:04
Сообщение #28


Частый гость
**

Группа: Новичок
Сообщений: 97
Регистрация: 29-10-07
Пользователь №: 31 837



И снова здравствуйте, уважаемые форумчане. Вопрос следующий - почемуто при работе с TCP сервер срабатывает на WIP_CEV_READ только 1 раз. В процессе обработки этого события вконце он отрубает клиента... Но когда этот же клиент конектится к этому серверу - он выдаёт, что коннект произошёл, а в WIP_CEV_READ не попадает, хотя клиент сообщает, что всё отослал успешно. В чём может быть касяк?
код:
case WIP_CEV_READ: {
int nread;
int i;
wip_debug ("[SAMPLE] Some data arrived\n");
adl_atSendResponse (ADL_AT_RSP, "\r\n Some data arrived\r\n");
nread = wip_read( ev->channel, rcv_buffer + rcv_offset,
sizeof( rcv_buffer) - rcv_offset);
if( nread < 0) { wip_debug( "[SAMPLE] read error %i\n", nread);
adl_atSendResponse (ADL_AT_RSP, "\r\n read error\r\n");
return; }
rcv_offset += nread;
if( rcv_offset == sizeof( rcv_buffer)) {
wip_debug( "[SAMPLE] Reception capacity exceeded, won't read more\n");
adl_atSendResponse (ADL_AT_RSP, "\r\n Reception capacity exceeded, won't read more\r\n");
} else {
wip_debug( "[SAMPLE] Wrote %i bytes of data from network to rcv_buffer. "
"%i bytes remain available in rcv_buffer\n",
nread, sizeof( rcv_buffer) - rcv_offset);

adl_atSendResponse(ADL_AT_RSP, "\n\r");

adl_atSendResponse(ADL_AT_RSP, rcv_buffer);

}
adl_atSendResponse(ADL_AT_RSP, "\n\r Povtor bufera \n\r");

adl_atSendResponse(ADL_AT_RSP, rcv_buffer);
adl_atSendResponse(ADL_AT_RSP, "\n\r");
for (i=0;i<sizeof( rcv_buffer);i++)
{
rcv_buffer[i]=0;
}
wip_close( ev->channel);
clients_count--;
break;
}
Go to the top of the page
 
+Quote Post
kban
сообщение May 8 2008, 04:41
Сообщение #29


Частый гость
**

Группа: Новичок
Сообщений: 97
Регистрация: 29-10-07
Пользователь №: 31 837



И снова здраствуйте. Подскажите пожалуйста команду, которая перезагружает модем (всмысле реализацию её на OAT).
Go to the top of the page
 
+Quote Post
sobr
сообщение May 8 2008, 05:17
Сообщение #30


Знающий
****

Группа: Свой
Сообщений: 926
Регистрация: 18-01-07
Пользователь №: 24 552



Цитата(kban @ May 8 2008, 11:41) *
И снова здраствуйте. Подскажите пожалуйста команду, которая перезагружает модем (всмысле реализацию её на OAT).

Код
adl_atCmdSend ( "at+cfun=1",NULL,NULL,NULL);
Go to the top of the page
 
+Quote Post
kban
сообщение May 8 2008, 05:42
Сообщение #31


Частый гость
**

Группа: Новичок
Сообщений: 97
Регистрация: 29-10-07
Пользователь №: 31 837



Спасибо)
Go to the top of the page
 
+Quote Post
kban
сообщение May 8 2008, 06:43
Сообщение #32


Частый гость
**

Группа: Новичок
Сообщений: 97
Регистрация: 29-10-07
Пользователь №: 31 837



Цитата(sobr @ May 8 2008, 12:17) *
Код
adl_atCmdSend ( "at+cfun=1",NULL,NULL,NULL);

А другие команды так подавать можно? Всмысле можно ли просто пользуясь стандартными АТ командами, подавая их таким оброазом, допустим, стартануть сервак TCP IP?
Go to the top of the page
 
+Quote Post
sobr
сообщение May 8 2008, 07:29
Сообщение #33


Знающий
****

Группа: Свой
Сообщений: 926
Регистрация: 18-01-07
Пользователь №: 24 552



Цитата(kban @ May 8 2008, 13:43) *
А другие команды так подавать можно? Всмысле можно ли просто пользуясь стандартными АТ командами, подавая их таким оброазом, допустим, стартануть сервак TCP IP?

Да, причем если в место первого NULL написать название обработчика, а в место второго "*", то в обработчик будут сваливаться ответы. "*" это маска означающая прием всех ответов.
Go to the top of the page
 
+Quote Post
kban
сообщение May 8 2008, 07:35
Сообщение #34


Частый гость
**

Группа: Новичок
Сообщений: 97
Регистрация: 29-10-07
Пользователь №: 31 837



А тогда (извиняюсь, мож я чё не понял...) какой смысл использовать плагин WIP и через него работать?
Go to the top of the page
 
+Quote Post
sobr
сообщение May 8 2008, 08:07
Сообщение #35


Знающий
****

Группа: Свой
Сообщений: 926
Регистрация: 18-01-07
Пользователь №: 24 552



Цитата(kban @ May 8 2008, 14:35) *
А тогда (извиняюсь, мож я чё не понял...) какой смысл использовать плагин WIP и через него работать?

Все очень просто... WIP содержит стек TCP\IP, без него АТ команды касательные интернета не работают, далее если из приложения устанавливать сокет посредством АТ команд, то вся информация из соединения будет валиться в UART или USB (куда настроишь) и твоему приложению будет недоступна. По моему как то так...
Go to the top of the page
 
+Quote Post
kban
сообщение May 14 2008, 05:34
Сообщение #36


Частый гость
**

Группа: Новичок
Сообщений: 97
Регистрация: 29-10-07
Пользователь №: 31 837



Пробовал разобраться с примерами GPS-приложений - так сходу ничего у меня не получилось, а срок поджимает... Слишком там всё уж запутанно... Может у кого есть пример простенького GPS приложения (прошивки)?
Мне надо то всего - получить время от GPS... Если есть - пришлите пожалуйста на мыло kban@ngs.ru или тут выложите - буду очень благодарен=)
Go to the top of the page
 
+Quote Post
kban
сообщение May 16 2008, 05:50
Сообщение #37


Частый гость
**

Группа: Новичок
Сообщений: 97
Регистрация: 29-10-07
Пользователь №: 31 837



Или хотя бы последовательность действий (команд) для запуска GPS и получения времени.
Go to the top of the page
 
+Quote Post
kban
сообщение Jun 17 2008, 06:03
Сообщение #38


Частый гость
**

Группа: Новичок
Сообщений: 97
Регистрация: 29-10-07
Пользователь №: 31 837



И снова здравствуйте! Кто-нибуль сталкивался с дистанционной перепрошивкой модемов? ПРобовал делать как в вейвкомовском примере AplicationDownolad, но после того, как перепрошивающий модем отсялыет всё перепрошиваемому, и тот перезагружается, он выдаёт Download error (InitType == ADL_INIT_DOWNLOAD_ERROR) и ничего не устанавливает. Параметры таковы:
if ( dwl_Download ( DWL_AUTH_TYPE_PASSWORD | DWL_APPLI_INSTALL | DWL_TYPE_APPLI,
0,
1, //может здесь касяк? Если шить не через GSM, а через serial, то номер ячейки нужно ставить 1=>по аналогии поставил и тут 1... В примере вообще NULL стояло...
ADL_FCM_FLOW_GSM_DATA,
NULL,
NULL ) != OK )
Go to the top of the page
 
+Quote Post
sobr
сообщение Jun 17 2008, 06:14
Сообщение #39


Знающий
****

Группа: Свой
Сообщений: 926
Регистрация: 18-01-07
Пользователь №: 24 552



Не поделитесь этим примером?
Go to the top of the page
 
+Quote Post
kban
сообщение Jun 17 2008, 06:54
Сообщение #40


Частый гость
**

Группа: Новичок
Сообщений: 97
Регистрация: 29-10-07
Пользователь №: 31 837



Вот пример вейвкома
Go to the top of the page
 
+Quote Post
sobr
сообщение Jun 17 2008, 07:28
Сообщение #41


Знающий
****

Группа: Свой
Сообщений: 926
Регистрация: 18-01-07
Пользователь №: 24 552



Цитата(kban @ Jun 17 2008, 13:54) *
Вот пример вейвкома

Где??? huh.gif
Go to the top of the page
 
+Quote Post
kban
сообщение Jun 17 2008, 08:00
Сообщение #42


Частый гость
**

Группа: Новичок
Сообщений: 97
Регистрация: 29-10-07
Пользователь №: 31 837



Дайте мыло - вышлю... чтото не выкладывается файл...
Go to the top of the page
 
+Quote Post
kban
сообщение Jun 18 2008, 05:51
Сообщение #43


Частый гость
**

Группа: Новичок
Сообщений: 97
Регистрация: 29-10-07
Пользователь №: 31 837



Разобрался с перепрошивкой - всё заработало. Теперь встал вопрос - как совместить 2 прошивки в 1? Не хочется загромождать с-файл столь огромным кодом.
Go to the top of the page
 
+Quote Post
sobr
сообщение Jun 18 2008, 07:57
Сообщение #44


Знающий
****

Группа: Свой
Сообщений: 926
Регистрация: 18-01-07
Пользователь №: 24 552



Цитата(kban @ Jun 17 2008, 15:00) *
Дайте мыло - вышлю... чтото не выкладывается файл...

Спасибо!
Go to the top of the page
 
+Quote Post
sobr
сообщение Jun 19 2008, 06:58
Сообщение #45


Знающий
****

Группа: Свой
Сообщений: 926
Регистрация: 18-01-07
Пользователь №: 24 552



Цитата(kban @ Jun 18 2008, 12:51) *
Разобрался с перепрошивкой - всё заработало.

Может тебе будет интересно...Прикрепленный файл  DOTA.ZIP ( 4.2 мегабайт ) Кол-во скачиваний: 219
Go to the top of the page
 
+Quote Post
ArtemTom
сообщение Jun 24 2009, 04:43
Сообщение #46


Участник
*

Группа: Участник
Сообщений: 58
Регистрация: 22-06-09
Пользователь №: 50 523



Где можно скачать OpenAT?
У меня есть Open_AT_SDK_v4.01(400мб). Он ставится без ошибок, но не запускает проект видимо из-за несовпадения путей. В Cygwin выдает errorы на пути к компилятору и т.д.
Скачал с сайта wavecom M2M Studio 1.0.2(237мб) он не ставится, долго грузится и сообщает об ошибке какого-то log файла.
Я так понимаю что ещё этот OpenAT для всего разный? Мне нужен под windows XP для wavecom fastrack M1306B.
Go to the top of the page
 
+Quote Post
bronepoezd
сообщение Jun 24 2009, 05:44
Сообщение #47


Участник
*

Группа: Участник
Сообщений: 36
Регистрация: 7-04-09
Из: Москва
Пользователь №: 47 296



OpenAT один) есть разный версии) после установки выбирается нужная прошивка. Не запускаться может если в пути есть русские буквы(имя пользователя например)
Go to the top of the page
 
+Quote Post
ArtemTom
сообщение Jun 24 2009, 05:47
Сообщение #48


Участник
*

Группа: Участник
Сообщений: 58
Регистрация: 22-06-09
Пользователь №: 50 523



Ну понятно что один, а какая версия нужна мне для перечисленного, и можно ли её где взять если я свой OPEN AT так и не запущу?
А где там после установки прошивку выбирать, и как посмотреть какая у меня прошивка?
Go to the top of the page
 
+Quote Post
bronepoezd
сообщение Jun 24 2009, 05:51
Сообщение #49


Участник
*

Группа: Участник
Сообщений: 36
Регистрация: 7-04-09
Из: Москва
Пользователь №: 47 296



команда ati3 вообще z .pf. m2m studio для отладки и загрузки приложения , там же пишется версия прошивки стека и OS Рекомендую поставить) Проще всего обновить прошику на твоем модеме до той что идет в комплекте с OpenAt. через ту же m2m
Go to the top of the page
 
+Quote Post
ArtemTom
сообщение Jun 24 2009, 06:02
Сообщение #50


Участник
*

Группа: Участник
Сообщений: 58
Регистрация: 22-06-09
Пользователь №: 50 523



Выдает на ATI3 WAVECOM MODEM MULTIBAND 900E 1800
Спасибо за пояснения, хочу поставить OS и OPEN AT и m2m, вот у меня и вопрос дайте ссылку чтоль или на торрентах может где всё это есть, я никак не найду? Пусть даже и не новой версии.
А что за OS?
Go to the top of the page
 
+Quote Post
bronepoezd
сообщение Jun 24 2009, 06:06
Сообщение #51


Участник
*

Группа: Участник
Сообщений: 36
Регистрация: 7-04-09
Из: Москва
Пользователь №: 47 296



это не версия прошивки) мб просто ati модема нет под рукой. На сайтет wavecom'a весь софт есть. Ты я так понимаю оттуда и скачал. Не запускается скорее всего из за русских букв), по крайней мере у меня так было . заведи юзера с именем 1 на компе и все должно заработать
Go to the top of the page
 
+Quote Post
Velund
сообщение Jan 10 2011, 21:21
Сообщение #52


Знающий
****

Группа: Свой
Сообщений: 693
Регистрация: 19-11-04
Пользователь №: 1 177



QUOTE (sz36 @ Feb 23 2008, 22:59) *
Сделал таки на нем один проект, но дал себе слово больше с ним не связываться Это какой-то ужас, летящий на крыльях ночи :-)


Ох, жаль я это не прочел, прежде чем вписываться в это дело. Оставляет впечатление как будто писали студенты для курсача - лишь бы галочки около пунктов задания расставить - это есть, это есть.... В конце концов - workaround на workaround'е сидит и workaround'ом погоняет.

Такое впечатление, что чтобы быстро сделать небольшой проект и потом не париться с глюками - надо полгодика походить кругами по граблям чтобы наизусть выучить их все... Еще через полгодика выйдет новый модуль, к нему новая версия библиотек, в ней новые грабли....

Думаю что первый проект будет и последним.
Go to the top of the page
 
+Quote Post
andrewlekar
сообщение Jan 11 2011, 02:26
Сообщение #53


Знающий
****

Группа: Участник
Сообщений: 837
Регистрация: 8-02-07
Пользователь №: 25 163



Согласен, дурная вещь. В свежих версиях многое поправили, но при этом окончательно сломали совместимость со старыми версиями, ещё и AT команды поменяли.
Go to the top of the page
 
+Quote Post

4 страниц V   1 2 3 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 12:53
Рейтинг@Mail.ru


Страница сгенерированна за 0.01844 секунд с 7
ELECTRONIX ©2004-2016