Сценарий при TRANS2QUIK_DLL_DISCONNECTED

Страницы: 1
RSS
Сценарий при TRANS2QUIK_DLL_DISCONNECTED
 
Добрый день!
Использую DDE + trans2quik.dll
Все нормально работает, но возник вопрос.
Установив коллбэк TRANS2QUIK_SET_CONNECTION_STATUS_CALLBACK,  
возможно получить в TRANS2QUIK_CONNECTION_STATUS_CALLBACK
следующие значения
TRANS2QUIK_DLL_DISCONNECTED
TRANS2QUIK_DLL_CONNECTED
TRANS2QUIK_QUIK_DISCONNECTED
TRANS2QUIK_QUIK_CONNECTED

А какие действия нужно предпринимать, получив эти сообщения?
Н-р:
TRANS2QUIK_DLL_DISCONNECTED - теряются ли коллбэки и другие настройки?
И т.д...
Какие сценарии возможны?
 
Принудительно закрыл терминал.
В TRANS2QUIK_CONNECTION_STATUS_CALLBACK,
TRANS2QUIK_DLL_DISCONNECTED пришла ошибка 109

Техническая поддержка.
Каие варианты ещё возможны?
 
Цитата
Михаил Филимонов написал:
А какие действия нужно предпринимать, получив эти сообщения?
При коннекте работать
При дисконнекте не работать.
Это очевидно.
Или вопрос понят не правильно?

Цитата
Михаил Филимонов написал:
TRANS2QUIK_DLL_DISCONNECTED - теряются ли коллбэки и другие настройки?
Это дисконнект DLL. Естественно сама DLL перестает работать, следовательно и колбеки перестают поступать.
Или вопрос опять понят не правильно.

Цитата
Михаил Филимонов написал:
Каие варианты ещё возможны?
К сожалению сейчас нет полного описания возможных кодов ошибок pnExtendedErrorCode.
ранее мы уже обсуждали эту проблему https://forum.quik.ru/messages/forum8/message35147/topic4112/#message35147
 
ничего повторно делать не нужно, только один раз, если терминал сам реконнектится каждое утро, и вообще настроен переподключаться сам при дисконнекте
у меня так в connection_status_callback
Код
   if (nEvent == TRANS2QUIK_QUIK_CONNECTED){
      instance->m_connected = true;
      printf("\n[quik_order] СОЕДИНЕНИЕ УСТАНОВЛЕНО\n");
      /*long n = TRANS2QUIK_UNSUBSCRIBE_ORDERS();
      printf("\n[quik_order] TRANS2QUIK_UNSUBSCRIBE_ORDERS: %ld\n", n);
      n = TRANS2QUIK_SUBSCRIBE_ORDERS((LPSTR)instance->m_classCode.c_str(), (LPSTR)m_tickersList.c_str());
      printf("\n[quik_order] TRANS2QUIK_SUBSCRIBE_ORDERS: %ld\n", n);
      n = TRANS2QUIK_START_ORDERS(_order_status_callback);
      printf("\n[quik_order] TRANS2QUIK_START_ORDERS: %ld\n", n); */
   } else{
      printf("\n[quik_order] СОЕДИНЕНИЕ РАЗОРВАНО {%ld %ld %s}\n", nEvent, nExtendedCode, message);
      instance->m_connected = false;
   }


обрати внимание, что там почти всё закомментировано.

а так в ините
Код
   static bool set = false;
   if (set)
      return;
   if (!m_connected) {
      TRANS2QUIK_CONNECT((LPSTR)m_lib.c_str(), &code, message, MSG_LEN);
      m_connected = TRANS2QUIK_IS_QUIK_CONNECTED(&code, message, MSG_LEN) == TRANS2QUIK_QUIK_CONNECTED;
   }
   if (m_connected && !set) {
      printf("\n[quik_order] Выполняется первоначальная установка колбэков...");
      set = true;
      TRANS2QUIK_SET_CONNECTION_STATUS_CALLBACK(_connection_status_callback, &code, message, MSG_LEN);
      TRANS2QUIK_SET_TRANSACTIONS_REPLY_CALLBACK(_transaction_reply_callback, &code, message, MSG_LEN);
      TRANS2QUIK_SUBSCRIBE_ORDERS((LPSTR)instance->m_classCode.c_str(), (LPSTR)m_tickersList.c_str());
      TRANS2QUIK_START_ORDERS(_order_status_callback);
      printf("готово.\n");
   }


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

колбеки устанавливаются 1 раз на много дней и работают пока работает робот
каждое утро при переподключении я вижу портянку приходящих заявок с прошлой сессии
и при любом переподключении
 
Вы, Павел, вероятно не ВСЁ читаете...

Вопрос не в том как коннектится, а что делать, если пришло RANS2QUIK_DLL_DISCONNECTED
Я нашел, пока 2 ошибки
109 - терминал был закрыт
233 - запрещен импорт внешних транзакций
 
Цитата

К сожалению сейчас нет полного описания возможных кодов ошибок pnExtendedErrorCode.
ранее мы уже обсуждали эту проблему  https://forum.quik.ru/messages/forum8/message35147/topic4112/#message35147
А что из исходного кода Trans2quik.dll нельзя просто, ПОКА, скопировать существующие ошибки?
Страницы: 1
Читают тему (гостей: 1)
Наверх