Что именно интересует? Какой-то уровень имею
Привет!
Сейчас я вывожу данные через DDE.
Принцип работы такой
Сначала передается вся таблица, а затем передается только строка, в которой произошли изменения
Но вывод по DDE слишком медленный и я хочу выводить данные по именному каналу (Pipe)
Возможно ли в QLua сделать вывод так же, как по DDE ?
Привет!
Сейчас я вывожу данные через DDE.
Принцип работы такой
Сначала передается вся таблица, а затем передается только строка, в которой произошли изменения
Но вывод по DDE слишком медленный и я хочу выводить данные по именному каналу (Pipe)
Возможно ли в QLua сделать вывод так же, как по DDE ?
Если ещё актуально, то ниже простой скрипт для Quik для приема и передачи данных по Pipe.
Pipe сервер нужно реализовывать отдельно. Пример сервера на с++ во вложении.
is_run = true pipe = "\\\\.\\pipe\\test" pipe_cycle = 100 buffer_size = 256 function main() message("QLua test: "..pipe, 1) is_read_write = false is_massage = false hPipe = nil read_buffer = nil send_buffer = "test" while is_run do if hPipe then -- send to pipe hPipe:seek("set") is_read_write = hPipe:write(send_buffer) is_read_write = hPipe:flush() -- read from pipe read_buffer = hPipe:read(buffer_size) if read_buffer then message("Read buffer: " .. tostring(read_buffer), 1) is_read_write = true else is_read_write = false end end -- if read write error pipe then reconnect if not hPipe or not is_read_write then if hPipe then hPipe:close() hPipe = nil end if not hPipe then hPipe = io.open(pipe, "a+b") if not hPipe and not is_massage then message("Pipe Not Ok: " .. tostring(hPipe), 3) is_massage = true elseif hPipe then message("Pipe Ok: " .. tostring(hPipe), 2) is_massage = false end end end sleep(pipe_cycle) end -- close pipe if hPipe then hPipe:close() end end function OnStop() is_run = false end
Привет!
Сейчас я вывожу данные через DDE.
Принцип работы такой
Сначала передается вся таблица, а затем передается только строка, в которой произошли изменения
Но вывод по DDE слишком медленный и я хочу выводить данные по именному каналу (Pipe)
Возможно ли в QLua сделать вывод так же, как по DDE ?
Вы же по большей части на паскале пишите. Вот тут есть пример для делфи. http://www.delphisite.ru/faq/sozdanie-imennykh-kanalov
Если ещё актуально, то ниже простой скрипт для Quik для приема и передачи данных по Pipe.
Pipe сервер нужно реализовывать отдельно. Пример сервера на с++ во вложении.
Спасибо
Но если
pipe_cycle = 100
То это значит, что скрипт будет спать 100 мс?
Какой же смысл применять Pipe, если запрос раз в 100мс?
Вы же по большей части на паскале пишите. Вот тут есть пример для делфи. http://www.delphisite.ru/faq/sozdanie-imennykh-kanalov
Спасибо
Спасибо
Но если
То это значит, что скрипт будет спать 100 мс?
Какой же смысл применять Pipe, если запрос раз в 100мс?
Это всего лишь пример возможности реализации передачи данных.
Если нужно передавать данные моментально, то придется использовать колбэк функции и 0 мс в цикле.
А это означает 100% загрузку одного ядра процессора.
p.s.
На мой взгляд лучше использовать передачу данных через общую память.
Реализация проще, lua позволяет это сделать.
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования