Клиентский API > Когда же будет API для терминала.

Разработка с использованием клиентского API
dr.eugene
Сообщения: 13
Зарегистрирован: 11 июл 2016, 13:17
Благодарил (а): 1 раз
Поблагодарили: 2 раза

Re: Когда же будет API для терминала.

Непрочитанное сообщение dr.eugene » 23 дек 2016, 08:45

:oops:
По существу, апи рабочий, ребята уже имеют под него работающий софт, по крайней мере под версию библиотеки .1822. Только делиться не спешат наработками...
я щас ковыряю проект 2015 года, сделанный под версию 1.0.0.0 и пытаюсь адаптировать некоторые функции под .1822. Собственно меня интересует только возможность выдернуть Queue и MarketTrade для последующей обработки

george
Сообщения: 20
Зарегистрирован: 14 апр 2016, 16:50
Поблагодарили: 5 раз

Re: Когда же будет API для терминала.

Непрочитанное сообщение george » 23 дек 2016, 13:02

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

Код: Выделить всё

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using ADClientSDK;
using AD.Common.Helpers;

namespace AD_4
{
    /// <summary>
    /// Логика взаимодействия для MainWindow.xaml
    /// </summary>
   
     
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            Packer.Initialize(@"C:\Programm Files(x86)\Alfa-DirectPro\ad.xml");
            AdClient client = new AdClient();
            if (client != null)
            {

            }
            InitializeComponent();
        }

       
    }
}

dr.eugene
Сообщения: 13
Зарегистрирован: 11 июл 2016, 13:17
Благодарил (а): 1 раз
Поблагодарили: 2 раза

Re: Когда же будет API для терминала.

Непрочитанное сообщение dr.eugene » 10 янв 2017, 08:39

у кого какие подвижки по разбору API .1822?

dr.eugene
Сообщения: 13
Зарегистрирован: 11 июл 2016, 13:17
Благодарил (а): 1 раз
Поблагодарили: 2 раза

Re: Когда же будет API для терминала.

Непрочитанное сообщение dr.eugene » 13 янв 2017, 23:15

метод .GetNews() вызывает ошибку получения сущности NewsEntity....
Учитывая тот факт, что серверную и клиентскую части апи таки разделили, куча интерфейсов из библиотеки исчезла

Какие мысли на этот счет?

Worldmaster
Сообщения: 22
Зарегистрирован: 04 сен 2017, 13:30
Поблагодарили: 3 раза

Re: Когда же будет API для терминала.

Непрочитанное сообщение Worldmaster » 04 сен 2017, 13:45

Здравствуйте.
А подскажите в чем проблема может быть.
Скачал терминал с сайта директа. Установил. Достал библиотеки из папки установки, положил в свой проект.
Также взял файлик ad.xml из их папки и тоже к себе.

В итоге после создания объекта клиента сразу вылезает ошибка.

Код: Выделить всё

try
           
                client = new AdClient();

                client.OnConnectionChanged += new Action<AD.Common.Helpers.FrontEndType, AD.Common.DataStructures.ConnectionStatus>(client_OnConnectionChanged);
                client.OnServerMessage += new Action<AD.Common.Helpers.FrontEndType, AD.Common.DataStructures.ClientMessageEntity>(client_OnServerMessage);
                client.OnTerminalConnectionChanged += new Action<AD.Common.DataStructures.ConnectionStatus>(client_OnTerminalConnectionChanged);
            }
            catch (Exception ex)
            {
                MessageBox.Show("Терминал Alfa Direct не запущен!!!", "ОШИБКА", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }



и следом вылетает ошибка:

Код: Выделить всё

AD.Common.Helpers.PackerException не обработано
  HResult=-2146233088
  Message=ошибка при CreatePacket(ICollection<IADSerializable> списка List`1 cnt=1

  Source=BaseStructures
  StackTrace:
       в AD.Common.Helpers.Packer.CreatePacket[T](IEnumerable`1 untypedEntitiesList)
       в AD.Common.Helpers.Packer.CreatePacket(IADSerializable entity)
       в AD.Common.Helpers.CircularBufferMapFile.Send(IADSerializable entity)
       в ADClientSDK.SharedConnection.ConnectionControlThread()
       в System.Threading.ThreadHelper.ThreadStart_Context(Object state)
       в System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
       в System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
       в System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
       в System.Threading.ThreadHelper.ThreadStart()
  InnerException: System.NullReferenceException
       HResult=-2147467261
       Message=Ссылка на объект не указывает на экземпляр объекта.
       Source=BaseStructures
       StackTrace:
            в AD.Common.Helpers.Packer.CreatePacket[T](IEnumerable`1 untypedEntitiesList)
       InnerException:
       


Кто нибудь сталкивался с подобным??

ensh
Сообщения: 165
Зарегистрирован: 28 июн 2017, 13:56
Благодарил (а): 3 раза
Поблагодарили: 32 раза

Re: Когда же будет API для терминала.

Непрочитанное сообщение ensh » 05 сен 2017, 10:40

Нужно, для верности, все dll-ки из инсталляции AD4.0 закинуть в проект, не только ad.xml.

Worldmaster
Сообщения: 22
Зарегистрирован: 04 сен 2017, 13:30
Поблагодарили: 3 раза

Re: Когда же будет API для терминала.

Непрочитанное сообщение Worldmaster » 05 сен 2017, 11:42

Я сделал больше .. свою прогу закинул в папку с терминалом. Таже самая фигня.
Самое интересное обнаружилось дальше.
Достал с полки декомпилятор дотнета и посидел поразбирал основное приложение терминала.
Внутри нету ссылок на библиотеку SDK. Технически ее можно смело убрать из папки и работоспособность терминала не нарушиться.
Но внутри программы написано как то все очень странно ... Такое ощущение что программеров сильно торопили с выпуском. И много кода наляпано без должного контроля за исключительными ситуациями.
написал в саппорт директа:
Здравствуйте. Скажите пожалуйста каким образом можно получить документацию для API к терминалу версии 4.0?
support:
Добрый день,
Пока API и документации нет, обещают к ноябрю-декабрю.



Отсюда вывод что 4 еще вообще не готова сотрудничать со сторонними разработчиками и поддерживать их системы торговли. Имеющаяся библиотека SDK не имеет толкового описания и скорее всего это библиотека больше для отладки системы самими разрабами.
Ковырять в декомпиляторах терминал для выискивания правильных алгоритмов работы тоже врядли стоит свеч.
Придеться ждать пока директ разродится на нормальный интерфейс.

ensh
Сообщения: 165
Зарегистрирован: 28 июн 2017, 13:56
Благодарил (а): 3 раза
Поблагодарили: 32 раза

Re: Когда же будет API для терминала.

Непрочитанное сообщение ensh » 05 сен 2017, 12:06

Терминал ничего не знает про ClientSDK - логично, не правда ли, и не должен знать, ибо ClientSDK работает в адресном пространстве клиента отличном от терминала. А терминал у вас запущен?

Worldmaster
Сообщения: 22
Зарегистрирован: 04 сен 2017, 13:30
Поблагодарили: 3 раза

Re: Когда же будет API для терминала.

Непрочитанное сообщение Worldmaster » 05 сен 2017, 13:39

Запущен.

ensh
Сообщения: 165
Зарегистрирован: 28 июн 2017, 13:56
Благодарил (а): 3 раза
Поблагодарили: 32 раза

Re: Когда же будет API для терминала.

Непрочитанное сообщение ensh » 05 сен 2017, 14:20

первая строчка программы - Packer.Initialize(); есть?


Вернуться в «Клиентский API»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя