Примеры: СМС-извещения о состоянии Советника - страница 4

 
komposter:
vedroid:

Обработка события "стоп" необходима в случае жуткой рассинхронизации времени серверов гугла и дц - чтобы остановить поток/цепочку смс-ок от вашего сервера.

Ну, я понимаю назначение этой "кнопки" именно в полной остановке.

Зачем мне получать СМС после того, как я ее "нажал"?


Оно, конечно, не критично (я же уже залез в гугл), но и удобного ничего нет.

Ладно, попробую реализовать, но сроков не буду говорить :-Р.
 
vedroid:
Ладно, попробую реализовать, но сроков не буду говорить :-Р.

Если это - только для меня, не стоит этим заниматься.

Я не буду использовать этот способ контроля за соединением, причины описывал ниже.

И все равно спасибо )

 

Сильно не вникал, но смотрю название статьи и сколько в ней кода, и начинает казаться что я решил такую же проблему с меньшей головной болью.


есть отличная программка SimpleSMSLight, которая запускается из командной строки (см. в гугле)

таким образом чтобы отправить смс, достаточно купить любой БУшный телефон со встроенным модемом, купить USB адаптер к нему с функцией подзарядки, пакет с симкартой с опцией "бесплатные смс" или что-нибудь просто подешевле

у меня работает:

- указанная программа simpleSMSLight

- к ПК подключен телефон CX70 (куплен за 170грн)

- кабель подключения USB - за 20грн

- симкарта 10 грн

- каждая смс стоит несколько копеек.

- три строчки кода в советнике или индикаторе

я туда даже не заглядываю, телефон слоем пыли покрылся за системным блоком, работает без сбоев.

дополнительная удобная фича - с этим же телефоном параллельно работает VentaFax (см. гугле) и иногда в отдельных случаях звонит мне на мой мобильный.

Ventafax так же можно запускать и отключать (чтобы она освобождала порт после звонка) из командной строки.


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

 

Добрый вам день.

Ситуация ясна - каждому свое.

Спасибо, что осветили свой метод тут, может кому-то он окажется простым и удобным.

У меня ситуация другая: я арендую виртуальный выделенный сервер за 190 грн./месяц, который работает круглые сутки в 18 км. от точки, где я работаю, и 3 км., где я живу, а основная работа - "летать по встречам по Киеву".... поэтому что толку в смс-ке, если вам негде развернуть бекап терминала или законектится и разгребать ситуацию.

dimonsky писал(а):

Сильно не вникал, но смотрю название статьи и сколько в ней кода, и начинает казаться что я решил такую же проблему с меньшей головной болью.

 
vedroid:

Добрый вам день.

Ситуация ясна - каждому свое.

Спасибо, что осветили свой метод тут, может кому-то он окажется простым и удобным.

У меня ситуация другая: я арендую виртуальный выделенный сервер за 190 грн./месяц, который работает круглые сутки в 18 км. от точки, где я работаю, и 3 км., где я живу, а основная работа - "летать по встречам по Киеву".... поэтому что толку в смс-ке, если вам негде развернуть бекап терминала или законектится и разгребать ситуацию.

dimonsky писал(а):

Сильно не вникал, но смотрю название статьи и сколько в ней кода, и начинает казаться что я решил такую же проблему с меньшей головной болью.

Чтобы законнектиться к терминалу(запущенному круглосуточно дома на другом конце города) со своего рабочего ПК я уже год использую TeamViewer. 


Прошу  прощения у автора, надеюсь я никаких правил не нарушаю, да и пригодиться может.

Ко мне обращаются с просьбой разъяснить как я реализовал отправку смс, поэтому я решил кратко описать мой метод здесь. Заодно и тему апнем. 


итак, берем в архиве прогарммку simplesmslite. я исполняемый файл переименовал в com, чтобы можно было создать файл настроек окна программы PIF (В котором прописал не всплывать поверх всех и т.п.)

1) в корень диска С кидаете файл "sendsms.bat" c текстом внутри:

START "---" c:\simplesmslite MSG="c:\Program Files\!Forex\Broco Trader 2\experts\files\msg.txt"

где c:\Program Files\!Forex\Broco Trader 2\ - путь к вашему торговому терминалу.

2) В корень диска С кидаете фалы из архива.

В SimpleSMSlite.Ini пишете эти строки:

[Device]
Comport=COM3
ComSpeed=19200
StepsTime=1000
WaitSteps=10
MaxWaitSteps=10
[Other]
Logfile=SimpleSMSlite.log
MSGfile=SimpleSMSlite.txt
SMSCenter=
GlobalLogEnable=1


при этом стока Comport=COM3 указывает, на каком порту висит ваш мобильный телефон (в качестве модема).

Чтобы узнать, идете "Пуск/Панель управления/ Система/ влкадка Оборудование/ кнопка Диспетчер устройств" и там смотрите ветка "Модемы". В ней должен висеть ваш мобильный телефон (у меня - как "Siemens Mobile Phone USB Modem"). Щелкаете по нему два раза, появляется окно. в нем - на вкладку "Модем" и в самом верху будет написан порт. У меня - COM3.

К слову, если такой группы "Модемы" нет, или в ней в открывающемся списке нет вашего телефона, значит он не установлен как модем. Или драйвера не стоят, или он вообще не подключен к ПК. Способ подключения к ПК зависит от модели телефона. У меня телефон сименс CX70, соответственно подключен он кабелем 510 (гугле в помощь, а также барахолки на рынке цифровых устройств, еще можно заказать в инете). Конечно, телефон по техописанию должен быть с модемом.

Так, идем далее.

в советнике или индикаторе пишем такой код:


#import "kernel32.dll"
int WinExec(string lpCmdLine,int uCmdShow); // импорт из внешней библиотеки
#import

extern string FileNameToSendSMS="c:\sendsms.bat"; //  это внешняя переменная
.....
..... // какой-то ваш код
......
void blablabla()
{
   string sms="Проверка связи";
   SendSMS(sms);
}

функция отправки 

void SendSMS(string txt1) 
{
   int handle;
   handle=FileOpen("msg.txt",FILE_WRITE); 
  
   if(handle>0)
   {
      
      if (txt1!="")
      {
         if (FileWrite(handle, "38050ХХХХХХХ;M;L;"+txt1)<0)
         {
            Alert("Ошибка записи в файл msg.txt"+GetLastError());
         }
      }
      FileClose(handle);
   }
   else
   {
      Alert("Ошибка открытия файла msg.txt"+GetLastError());
   }
   WinExec(FileNameToSendSMS,SW_HIDE);
   
}

конечно, вместо 38050ХХХХХХХ пишете номер телефона, накоторый надо отправить сообщение.


Вроде все....

 

dimonsky писал(а):............................


конечно, вместо 38050ХХХХХХХ пишете номер телефона, накоторый надо отправить сообщение.


Вроде все....

Отлично, попробую. Только походу вопрос - отправка поисходит только на один номер или можно организовать на несколько разных номеров ????