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

 
 
> M2МPower, Как запустить скрипт?
msgm
сообщение May 28 2008, 10:01
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 41
Регистрация: 22-07-05
Пользователь №: 7 023



Здравствуйте.
Разбираюсь потихоньку с этой средой программирования.
Для тренеровки хочу написать прогу, которая будет отсылать смс при включении модуля.
Собственно, сам кусок кода работает, смс отсылаются, но не при включении модуля, а после загрузки скрипта в модуль при выставленной галочке RunScript (single shot).
При выставленной, при загрузке скрипта, галочке RunScript (startup) тоже ничего не происходит (ни сразу после загрузки, ни после включения-выключения модуля).
Чувствую, что ошибка где-то у меня.
Помогите, пожалуйста.

Ниже сам скрипт из примеров м2м:
Цитата
main ()
{
int smserr;

smserr = smsi(0,0);

/* send SMS message */
smserr = smss("+79+++++++++", "SMS Message - test", 145, 12, 18);

if (smserr == 0)
{
prtf ("sent SMS message: SMS Message - test: +79+++++++++\n");
}


}

Модуль GR640002.

Сообщение отредактировал msgm - May 28 2008, 10:09
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
msgm
сообщение May 31 2008, 10:25
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 41
Регистрация: 22-07-05
Пользователь №: 7 023



PriBoris, спасибо за инфу. Для меня ковыряние в этом модуле не более, чем приятное времяпрепровождение, так что не особо критично. Но пару-тройку gr64 всё же надо прикупить прозапас.
Go to the top of the page
 
+Quote Post
alexQ
сообщение Jun 2 2008, 05:40
Сообщение #3


Знающий
****

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



компэл сказал полный бред. GR64 официально будут производится еще 2 года.у меня есть оффициальное письмо Wavecom про это дело.

модуль "похожий" на GR с поддержкой OpenAT wavecom действительно сделал.
называетс Q64 и он даже "живет" в GR-м отладочнике. массовое производство планируется осенью.

мне думается что компэл скоро доиграится и по шапке получит от вейвкомов за такую дезу )))

И более того, на прошлой неделе вейвком выпустил новый релиз софта для GR64
версии R5A и новый M2MPower версии 1.1.4.

Удачи!
Go to the top of the page
 
+Quote Post
msgm
сообщение Jun 6 2008, 21:36
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 41
Регистрация: 22-07-05
Пользователь №: 7 023



alexQ, если после регистрации в сети сразу отсылать смс, то смс не приходит. Если поставить задержку (после реги, но перед отсылкой) в, минимум, 7 секунд (ставил 3 - не приходит; 4,5,6 - не тестил), то всё ок.
Это не вопрос, а так...Наблюдения yeah.gif


alexQ, а вот теперь вопрос:
Хочу отсылать смс с 2 симок по очереди)
1. Регаю симку 0 (внутренняя, на корпусе модуля).
2. Отсылаю смс с симки 0 моей процедурой smssend.
3. Переключаюсь на симку 1 АТ командой AT*ESSE=1.
|-4.а. Отсылаю смс smssend - неудачно.
|-4.б. Выполняю процедуру CHECK_REGISTRATION(); (см.выше), отсылаю смс smssend - неудачно.

Понятно, что проблема в том, что перерегистрация при смене симок не происходит. Куда смотреть?

Решилась проблема. Надо ставить таймаут побольше после смены активной симки (я поставил 20с). Как показывает практика, надо увеличить таймаут между инициализацией и отправкой смс с 10 до 15с.
Ну а всё же, мб можно как-нибудь проверить, готова 2 симка отправлять смс или нет? Типо борьба за чистоту кода)

Сообщение отредактировал msgm - Jun 6 2008, 20:37
Go to the top of the page
 
+Quote Post
alexQ
сообщение Jun 7 2008, 05:50
Сообщение #5


Знающий
****

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



вот человек то ты ленивый smile.gif


main()
{

prs(0);
prtfdir(2);
prtf("\n Starting embedded application...");
wd(0,10000); /*сторожевой таймер на 500сек (50мсек 1тик).*/

CHECK_START_SIM(); /*после старта проверяем с какой СИМ будем работать*/
CHECK_REGISTRATION(); /*проверка GSM регистрации и состояния СИМ*/

prtf("\n");prtf("\n Starting SMS subsystem...");prtf("\n");
smsi(1,1); /*Инициализируем подсистему SMS*/

while(1)
{
CHECK_REGISTRATION(); /*проверка GSM регистрации и состояния СИМ*/
CHECK_IO_ADC_STATE();
CHECK_INCOMING_SMS();

wd(1,0); /* kick the watchdog */
}

prtf("\n End embedded application...");
prtf("\n");
wd(0,0); /*остановка сторожевого таймера*/

}

CHECK_INCOMING_SMS()
{
int sms_slot=0; /*номер слота для хранения SMS*/
char smsadrs[160]; /*буфер для номера абонента*/
char SMS[160]; /*буфер для SMS*/

int smserr;



int resCmdSize;
char resCmd[33];
char ID[6]="1234";
char adc[6];

prtf("\n");prtf("CHECK NEW SMS ARRIVED ... \n"); prtf("\n");

sms_slot=smsrs(); /*Находим в памяти первое непрочитанное SMS*/
if (sms_slot != 0)
{
prtf("NEW SMS ARRIVED!");
smserr = smsi(0,0);



smsra(smsadrs, 160, sms_slot); /*Определяем номер абонента*/
/*Создаем SMS ответ с данными и посылаем
на полученный номер телеметрическую информацию*/
prtf("PREPARING REPLY ...\n");
atcrt(); /*Открываем AT канал */
atsnd("AT+CCLK?",resCmd,8,33,&resCmdSize);
scpy (SMS, "OBJECT ID:");
scat (SMS,ID);
scat (SMS, "; CURRENT TIME: ");
sncpy(SMS+30,resCmd,33);
sncpy(SMS+61,";\nCURRENT: ",11);
itoa (gtb(0),adc,6);
scat (SMS,adc);
scat (SMS,"; VOLTAGE: ");
itoa (gtb(1),adc,6);
scat (SMS,adc);


smserr = smss(smsadrs,SMS,145,slen(smsadrs),slen(SMS));
if (smserr == 0)
{prtf("sent SMS message:\n");prtf(SMS);}
else
{prtf("\nSMS sent ERROR!\n")}

smsd(sms_slot); /*Удаляем SMS*/
atdst(); /*Закрываем AT канал */
}
prtf("\n");
prtf("NO NEW SMS FOUND ... \n");
prtf("\n");
}


CHECK_IO_ADC_STATE()
{
int io_err;
int io_state;
char ok;

io(2,"IO1",1); /*IO1 as output*/
prtf("\nNew...");
ok = io(1,"IO1",0);
prtf("\nIO1 return code low= %d",ok);
dlys(1);
ok = io(1,"IO1",1);
prtf("\nIO1 return code high= %d",ok);
dlys(1);
}



CHECK_START_SIM()
{
int nvmerr;
char NVMDATA[6];
int aterr;
int resCmdSize;
char resCmd[100];
/*читаем память NVRAM какая SIM записана*/
nvmerr = nvm(0,0,6,NVMDATA);
if (nvmerr == 0)
{
prtf ("Data read from NVM memory is: %s\n", NVMDATA);
prtf("\n");
}
/* если NVRAM пустой то инитим NVRAM c SIM0*/
if ((scmp(NVMDATA,"SIM0") != 0) && (scmp(NVMDATA,"SIM1") != 0))
{
nvmerr=nvm(1,0,4,"SIM0");
nvmerr = nvm(0,0,6,NVMDATA); /*обновляем буфер с новым значением*/
if (nvmerr == 0)
{
prtf ("CLEAR NVRAM. WRITING SIM0 TO NVRAM OK!");
prtf("\n");
}
else
{
prtf ("ERROR WRITING TO NVRAM!");
prtf("\n");
}
}
/* включаем нужную SIM */
if (scmp(NVMDATA,"SIM0") == 0)
{
atcrt ();
atsnd ("AT*ESSE=0", resCmd, 9, 100, &resCmdSize);
prtf ("Sent AT command SIM0 enable, response = %s:%d response code = %d\n",resCmd, resCmdSize, aterr); prtf("\n");
atdst ();
}
else
{
atcrt ();
atsnd ("AT*ESSE=1", resCmd, 9, 100, &resCmdSize);
prtf ("Sent AT command SIM1 enable, response = %s:%d response code = %d\n",resCmd, resCmdSize, aterr); prtf("\n");
atdst ();
}
}


CHECK_REGISTRATION()
{
/*For APPS_NETWORK_STATUSBYTE values are for reading network status*/
int APPS_NETWORK_STATUSBYTE =10;
int AT_NET_NOT_REG_NOT_SEARCHING = 0;
int AT_NET_REGISTERED = 1;
int AT_NET_NOT_REG_SEARCHING = 2;
int AT_NET_REGISTRATION_DENIED = 3;
int AT_NET_UNKNOWN = 4;
int AT_NET_REGISTERED_ROAMING = 5;
int AT_NET_UNDEFINED = 255;
/*For APPS_GPRS_STATUSBYTE values are for reading GPRS status*/
int APPS_GPRS_STATUSBYTE =11;
int NRS_NOT_REGISTERED_NOT_SEARCHING=0;
int NRS_REGISTERED_HOME = 1;
int NRS_NOT_REGISTERED_SEARCHING = 2;
int NRS_REGISTRATION_DENIED = 3;
int NRS_UNKNOWN = 4;
int NRS_REGISTERED_ROAMING = 5;
int NRS_VALUE_NOT_SET = 6;
/*For APPS_LOCK_STATUS_BYTE values are as follows*/
int APPS_LOCK_STATUS_BYTE =16;
int LOCKS_READY = 0; /*No code is required*/
int LOCKS_SIM_PIN_REQUIRED = 1;
int LOCKS_SIM_PUK_REQUIRED = 2;
int LOCKS_SIM_PIN2_REQUIRED = 3;
int LOCKS_SIM_PUK2_REQUIRED = 4;
int LOCKS_PH_SIM_PIN_REQUIRED = 5;
int LOCKS_SIM_FAILURE = 6; /*the SIM card is present but blocked.*/
int LOCKS_SIM_REQUIRED = 7; /*no SIM card is present.*/
int LOCKS_PH_SIM_STATUS_PENDIN = 8;
int LOCKS_STATUS_UNKNOWN = 255;

/*Основная SIM*/
char PINCODE[5] = "0000";
char PUKCODE[9] = "53247491";
/*Резервная SIM*/
char PINCODE1[5] = "0000";
char PUKCODE1[9] = "53247491";

int PIN_result;
int nvmerr;
char NVMDATA[6];

int tm_val1 = 20000; /*значение таймера 1 ставим на 100 сек*/
int count1 = 0;

prtf("\n Checking SIM card and registration GSM network ...");
prtf("\n");

nvm(0,0,6,NVMDATA); /*читаем данные NVRAM*/

while(1) /*проверяем сеть GSM,наличие СИМ и вводим ПИН если надо*/
{
if(gtb(APPS_LOCK_STATUS_BYTE) == LOCKS_SIM_REQUIRED | LOCKS_SIM_FAILURE)
{
prtf("\n No SIM card is present or SIM blocked!");
prtf("\n Try to restart device ...");
prtf("\n");
if (scmp (NVMDATA,"SIM0") == 0)
{
nvmerr = nvm(1,0,4,"SIM1");
if (nvmerr != 0)
{
prtf ("ERROR WRITING TO NVRAM!");
prtf("\n");
}
{
prtf ("WRITING SIM1 TO NVRAM OK!");
prtf("\n");
}
}
else
{
nvmerr = nvm(1,0,4,"SIM0");
if (nvmerr != 0)
{
prtf ("ERROR WRITING TO NVRAM!");
prtf("\n");
}
{
prtf ("WRITING SIM0 TO NVRAM OK!");
prtf("\n");
}
}
dlys(5);
rst (0);
}

if(gtb(APPS_LOCK_STATUS_BYTE) == LOCKS_READY)
{
prtf("\n No code is required!");
break;
}

if(gtb(APPS_LOCK_STATUS_BYTE) == LOCKS_SIM_PIN_REQUIRED)
{
prtf("\n PIN is required!");
prtf("\n Enter PIN...");
PIN_result=pin(PINCODE,0);
prtf("\n SIM result = %d",PIN_result);
prtf("\n");
break;
}
}


/*после SIM проверяем GSM регистрацию*/

cts(1,tm_val1,1); /*таймер 1 ставим на однократный счет 100sec*/
while(gtb(APPS_NETWORK_STATUSBYTE)!= AT_NET_REGISTERED||AT_NET_REGISTERED_ROAMING)
{
if(gtb(APPS_NETWORK_STATUSBYTE) == AT_NET_REGISTERED)
{ prtf("\n We are registered in GSM network!"); break; }
if(gtb(APPS_NETWORK_STATUSBYTE) == AT_NET_REGISTERED_ROAMING)
{ prtf("\n We are registered in Roaming!"); break; }

/*если вышел таймаут 100сек */
if ( ctq(1,&tm_val1,&count1) == 1)
{
prtf("\n GSM registration timeout!!!");
prtf("\n Try to restart device with another SIM...");
prtf("\n");
if (scmp (NVMDATA,"SIM0") == 0)
{
nvmerr = nvm(1,0,4,"SIM1");
if (nvmerr != 0)
{prtf ("ERROR WRITING TO NVRAM!");prtf("\n");}
{prtf ("WRITING SIM1 TO NVRAM OK!");prtf("\n");}
}
else
{
nvmerr = nvm(1,0,4,"SIM0");
if (nvmerr != 0)
{prtf ("ERROR WRITING TO NVRAM!");prtf("\n");}
{prtf ("WRITING SIM0 TO NVRAM OK!");prtf("\n");}
}
dlys(5); rst(0);
}
}
}
Go to the top of the page
 
+Quote Post
msgm
сообщение Jun 7 2008, 11:35
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 41
Регистрация: 22-07-05
Пользователь №: 7 023



alexQ, спасибо большое.
Я не совсем программист, потому подобные вещи даются с трудом 05.gif
Где можно почитать про NVRAM GR64? В мануалах пусто sad.gif
Go to the top of the page
 
+Quote Post
alexQ
сообщение Jun 7 2008, 13:16
Сообщение #7


Знающий
****

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



2bolmoe.
В GR64 появился встроенный FTP начиная с софта версии R5A... появилась месяц назад где-то.
не уверен что телит хороший выбор.
уж тогда лучше выбрать wavecom WMP100. он полноценно программируется на С.
памяти и возможностей до одурения. очень быстрый. 104МГц. -40 и т.п.
единственный минус это BGA576+ внешняя память (~5USD).


2msgm.
NVRAM доступна только из скриптов. в хелпе по M2Mpower все разжовано с примерами.
Go to the top of the page
 
+Quote Post
bolmoe
сообщение Jun 9 2008, 11:37
Сообщение #8


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

Группа: Свой
Сообщений: 121
Регистрация: 5-04-06
Из: Рязань
Пользователь №: 15 830



Цитата(alexQ @ Jun 7 2008, 17:16) *
2bolmoe.
В GR64 появился встроенный FTP начиная с софта версии R5A... появилась месяц назад где-то.
не уверен что телит хороший выбор.
уж тогда лучше выбрать wavecom WMP100. он полноценно программируется на С.
памяти и возможностей до одурения. очень быстрый. 104МГц. -40 и т.п.
единственный минус это BGA576+ внешняя память (~5USD).
2msgm.
NVRAM доступна только из скриптов. в хелпе по M2Mpower все разжовано с примерами.



Спасибо...)
Вот именно, что все в корпус упирается....(((
С бгашками стараемся не работать. Телитовцы тож обещают вот-вот выпустить или даж уже пошел с кристаллом на АРМ9 со встроенным линуксом.
Go to the top of the page
 
+Quote Post
alexQ
сообщение Jun 9 2008, 12:27
Сообщение #9


Знающий
****

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



новые телиты тоже bga. очень сырая весч ...
и по возможностям на 3-.
про линукс прогруз. я не думаю что им удасться сделать такого монстра.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- msgm   M2МPower   May 28 2008, 10:01
- - msgm   Вобщем, удалось отсылать смс при старте модуля. П...   May 28 2008, 13:42
|- - alexQ   скрипт пускается сразу. просто для функции отправк...   May 29 2008, 06:54
- - msgm   alexQ, спасибо огромное! Еще вопрос с вашего п...   May 29 2008, 08:56
|- - alexQ   в терминале пусто потому что надо указать порт куд...   May 29 2008, 09:15
- - msgm   alexQ, еще раз огромное спасибо!   May 29 2008, 09:30
|- - alexQ   да нет проблем. спрашивайте если будут вопросы )   May 29 2008, 09:45
|- - PriBoris   Извините, что встреваю в разговор немного не по те...   May 29 2008, 17:50
|- - PriBoris   Цитата(alexQ @ Jun 2 2008, 09:40) компэл ...   Jun 2 2008, 06:21
- - bolmoe   такой вопрос, может и не в тему...... В GR64 появи...   Jun 7 2008, 11:12


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

 


RSS Текстовая версия Сейчас: 26th July 2025 - 08:46
Рейтинг@Mail.ru


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