Механизм глобальных переменных ( GlobalVariable )

Questions about QUIK trading plugin for Russian brokers and general MultiCharts questions can be asked here in Russian; they will be answered in Russian by our staff. No registration necessary.
VanVan
Posts: 10
Joined: 28 Dec 2012
Been thanked: 22 times

Механизм глобальных переменных ( GlobalVariable )

Postby VanVan » 28 Dec 2012

Для MC x32 и MC .Net x32
Должен быть установлен vcredist_x86_2010 (http://www.microsoft.com/ru-ru/download ... px?id=5555)

Для MC x64 и MC .Net x64
Должен быть установлен vcredist_x64_2010 (http://www.microsoft.com/ru-ru/download ... x?id=14632)

Позволяет передавать данные из одного индикатора/сигнала в другой в рамках одного процесса MultiCharts.exe
(из чарта в чарт, из чарта в сканер и т.д.)

Распаковать архив, скопировать COGlobalVariable.dll, COGlobalVariableWrapper.dll и Register.bat в папку с
MultiCharts(Для MC x32 и MC .Net x32 брать файлы из папки Win32, для MC x64 и MC .Net x64 из папки х64) .
Из папки с MultiCharts запустить с правами администратора Register.bat.
В архиве есть пример для МС .Net х64

Реализованы следующие функции:
bool InitializeGV()
void UninitializeGV()
bool SetDataInt(String name, int _value)
int GetDataInt(String name)
bool SetDataLong(String name, long _value)
long GetDataLong(String name)
bool SetDataFloat(String name, float _value)
float GetDataFloat(String name)
bool SetDataDouble(String name, double _value)
double GetDataDouble(String name)
bool SetDataString(String name, String _value)
CString GetDataString(CString name)
, где name - имя переменной, _value - ее значение.
Максимальная длинна строки для значения _value функции SetDataString - 2048 символов.
В случае неудачной попытки получить значение какой-либо переменной возвращается максимальное значение
для текущего типа данных. Строковая функция возвращает пустую строку.


Аналоги из PowerLanguage:
GVGetNamedDouble
GVGetNamedInt
GVSetNamedDouble
GVSetNamedInt


Возможно применение и в других платформах.

Для 32-х битного МС понадобится изменить путь к COGlobalVariableWrapper.dll в функции _GVLibWrap_
Attachments
Gv_x32_x64.zip
Архив с библиотеками
(51.6 KiB) Downloaded 357 times
Last edited by VanVan on 10 Jan 2013, edited 2 times in total.

tmc
Posts: 9
Joined: 29 Oct 2012
Has thanked: 2 times

Re: Механизм глобальных переменных для MCx32.

Postby tmc » 29 Dec 2012

В 64-битной версии не будет работать?

VanVan
Posts: 10
Joined: 28 Dec 2012
Been thanked: 22 times

Re: Механизм глобальных переменных для MCx32.

Postby VanVan » 31 Dec 2012

Для х64 версия в разработке.

VanVan
Posts: 10
Joined: 28 Dec 2012
Been thanked: 22 times

Re: Механизм глобальных переменных ( GlobalVariable )

Postby VanVan » 10 Jan 2013

Появилась версия для х64. Все инструкции в первом посте.

VanVan
Posts: 10
Joined: 28 Dec 2012
Been thanked: 22 times

Re: Механизм глобальных переменных ( GlobalVariable )

Postby VanVan » 01 Feb 2013

Механизм глобальных переменных ( GlobalVariable ) для передачи данных из техники в технику как внутри одного инстанса MC .Net, так и
между разными инстансами MC .Net.
Также есть возможность передачи данных по сети.

В прикрепленном архиве есть примеры кода для MC .Net.

Настройки:
Распаковать архив, скопировать COGlobalVariableATL.exe в папку с МС.
Далее необходимо зарегистрировать COGlobalVariableATL.exe в Windows, для этого:
- Запустить консоль(cmd.exe) с правами администратора
- Выполнить команду COGlobalVariableATL.exe /RegServer с указанием полного пути к файлу COGlobalVariableATL.exe
(например, так c:\Temp\COGlobalVariableATL.exe /RegServer)
Если в консоль не вывелось никаких ошибок - значит регистрация прошла успешно.
Проверить можно запустив тест COGlobalVariableATL_TestDouble.exe - если программа отработала и завершилась без ошибок - значит все настроено.
Тест, также, может понадобиться если, вдруг, захочется настроить работу по сети.

Возможно использование как с MC .Net х32 так и с MC .Net х64

Для работы по сети необходимо настроить DCOM для "GlobalVariable Class".
Объект "GlobalVariable Class" появится в свойствах DCOM только после того как COGlobalVariableATL.exe хотя бы один раз
отработает с правами администратора.
Для этого и потребуется запустить тест с правами администратора.
Также необходимо добавить исключения в брандмауэр и в антивирус/фаервол для COGlobalVariableATL.exe, иначе соединение будет блокироваться.
Инструкций по настройке DCOM можно поискать в интернете, там их достаточно (например, вот http://www.aggsoft.ru/asdl-dcom-opc-config-4.htm)

Проверить работу по сети можно также тестом, после выполнения настроек DCOM. Процесс COGlobalVariableATL.exe должен запускаться только на указанном
в настройках DCOM компьютере, даже если тест запускается на другом компьютере.

COGlobalVariableATL.exe загружается автоматически. Выгружается тоже автоматически, когда все клиенты отключаются от этого компонента.
Если COGlobalVariableATL.exe не выгрузился, значит какие-либо клиенты еще работают с ним, либо отключение клиента было не нормальным
(программа аварийно завершила работу), в таком случае процесс можно завершить из диспетчера задач. Либо Windows "сама" закроет его через 10 минут.


Пока-что COGlobalVariableATL.exe может хранить в памяти и передавать до 10 переменных.
Attachments
GV_Serv.zip
(34.77 KiB) Downloaded 255 times


Return to “MultiCharts QUIK”