реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> построить GUI, SSH, графический вывод
Zelepuk
сообщение Feb 11 2012, 06:43
Сообщение #1


Знающий
****

Группа: Участник
Сообщений: 634
Регистрация: 27-10-10
Пользователь №: 60 464



Прошу наставить на правильный путь.
Нужно написать GUI приложение для визуализации данных с измерительного прибора в "реальном времени"(так должно казаться оператору) и хранить принятые данные в виде таблицы.
Прибор: машина с Linux на борту. Отправляет данные по SSH в виде файла.
возможна ли реализация взаимодействия какого либо ssh клиента(как putty) и самописного GUI?
если встроить SSH клиент в GUI, то существуют ли открытые исходники ssh клиентов?
как проще всего реализовать задачу?
Писать хочу в CBuilder

Сообщение отредактировал Zelepuk - Feb 11 2012, 12:51
Go to the top of the page
 
+Quote Post
XVR
сообщение Feb 13 2012, 08:32
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Цитата
Отправляет данные по SSH в виде файла
Это как? SSH файлы не передает. Или имеется в виду SCP?
Цитата
существуют ли открытые исходники ssh клиентов?
OpenSSH например. Да и через command line клиента SSH тоже можно работать (через тот же OpenSSH например).
Go to the top of the page
 
+Quote Post
_pv
сообщение Feb 13 2012, 08:39
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954



Цитата(Zelepuk @ Feb 11 2012, 13:43) *
как проще всего реализовать задачу?

забирать файл через запуская консольный psftp.
Go to the top of the page
 
+Quote Post
Tanya
сообщение Feb 13 2012, 09:26
Сообщение #4


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



Цитата(_pv @ Feb 13 2012, 12:39) *
забирать файл через запуская консольный psftp.

Или - http://winscp.net/eng/docs/lang:ru
Go to the top of the page
 
+Quote Post
sasamy
сообщение Feb 13 2012, 11:18
Сообщение #5


Знающий
****

Группа: Участник
Сообщений: 783
Регистрация: 22-11-08
Пользователь №: 41 858



Цитата(Zelepuk @ Feb 11 2012, 10:43) *
возможна ли реализация взаимодействия какого либо ssh клиента(как putty) и самописного GUI?
если встроить SSH клиент в GUI, то существуют ли открытые исходники ssh клиентов?


Если хост-система Linux, то совсем просто - sshfs позволяет монтировать удаленные фс, в прикладной программе с GUI даже не нужно знать о существовании удаленного хоста, все будет как с обычными локальными файлами.
http://blog.sjinks.pro/administering/119-m...-ssh-in-ubuntu/
думаю если поискать то и для Windows должно быть что-то подобное - например в виде сетевого диска.
Go to the top of the page
 
+Quote Post
TigerSHARC
сообщение Feb 16 2012, 08:54
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 688
Регистрация: 4-09-09
Пользователь №: 52 195



У меня текая же проблема.
Нужно чтобы моё GUI под Win при запуске скачивало файл по SSH и строило графики на основе данных из файла, графики нужно обновлять каждые 3 секунды и хранить базу данных полученных данных.
ЧТо для этого нужно? какие ключевые слова?
Go to the top of the page
 
+Quote Post
Cosmojam
сообщение Feb 16 2012, 10:59
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 311
Регистрация: 12-01-11
Из: Калининград (Koenigsberg)
Пользователь №: 62 182



sshfs for windows
libssh


--------------------
typedef enum { no, yes, maybe } bool; | блог тут
Go to the top of the page
 
+Quote Post
TigerSHARC
сообщение Feb 16 2012, 12:53
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 688
Регистрация: 4-09-09
Пользователь №: 52 195



Цитата(Cosmojam @ Feb 16 2012, 14:59) *
sshfs for windows
libssh


А можно ли обойтись малой кровью, если не имел дело с SSH? Я имею ввиду написать какой либо скрипт для ssh-клиента, чтобы тот скачивал файл куда нужно, а уже простейший GUI будет анализировать полученные файлы?
Go to the top of the page
 
+Quote Post
XVR
сообщение Feb 16 2012, 13:09
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Цитата(TigerSHARC @ Feb 16 2012, 16:53) *
А можно ли обойтись малой кровью, если не имел дело с SSH? Я имею ввиду написать какой либо скрипт для ssh-клиента, чтобы тот скачивал файл куда нужно, а уже простейший GUI будет анализировать полученные файлы?

Можно конечно. Запускаете ssh клиента (от OpenSSH например), который запускает там скрипт (на perl например), который периодически читает файл и печатает его в stdout. У себя читаете stdout от запущеного ssh клиента, парсите его и показываете, что надо
Go to the top of the page
 
+Quote Post
Cosmojam
сообщение Feb 16 2012, 14:01
Сообщение #10


Местный
***

Группа: Свой
Сообщений: 311
Регистрация: 12-01-11
Из: Калининград (Koenigsberg)
Пользователь №: 62 182



Цитата(XVR @ Feb 16 2012, 16:09) *
Можно конечно. Запускаете ssh клиента (от OpenSSH например), который запускает там скрипт (на perl например), который периодически читает файл и печатает его в stdout. У себя читаете stdout от запущеного ssh клиента, парсите его и показываете, что надо

Зачем так громоздко? scp как раз предназначен для копирования файлов. Запускается scp раз в дцать секунд и копирует файл во временный каталог программы.
Под Windows есть pscp http://www.chiark.greenend.org.uk/~sgtatha...y/download.html работает аналогично каноничному scp. Ради интереса попробовал только что с линуксовой машины скопировать файл на виндовую - работает. pscp.exe user@host:/path/to/file C:\path\to\local\copy
Правда не знаю как тут (в винде и pscp) с аутентификацией по ключам, но у самой софтины есть опасная опция -pw для указания пароля в открытом виде.


--------------------
typedef enum { no, yes, maybe } bool; | блог тут
Go to the top of the page
 
+Quote Post
Zelepuk
сообщение Feb 16 2012, 15:00
Сообщение #11


Знающий
****

Группа: Участник
Сообщений: 634
Регистрация: 27-10-10
Пользователь №: 60 464



Цитата(Cosmojam @ Feb 16 2012, 18:01) *
Зачем так громоздко? scp как раз предназначен для копирования файлов. Запускается scp раз в дцать секунд и копирует файл во временный каталог программы.


А как это сделать автоматически по Windows?
Go to the top of the page
 
+Quote Post
Cosmojam
сообщение Feb 16 2012, 17:19
Сообщение #12


Местный
***

Группа: Свой
Сообщений: 311
Регистрация: 12-01-11
Из: Калининград (Koenigsberg)
Пользователь №: 62 182



Цитата(Zelepuk @ Feb 16 2012, 18:00) *
А как это сделать автоматически по Windows?

Например, парсить командную строку pscp в самой программе и вызывать с помощью ShellExecute() или аналогичного, Либо в bat-файл засунуть вызов pscp и вызывать из программы этот bat-файл.


--------------------
typedef enum { no, yes, maybe } bool; | блог тут
Go to the top of the page
 
+Quote Post
Zelepuk
сообщение Feb 16 2012, 17:36
Сообщение #13


Знающий
****

Группа: Участник
Сообщений: 634
Регистрация: 27-10-10
Пользователь №: 60 464



Цитата(Cosmojam @ Feb 16 2012, 21:19) *
Например, парсить командную строку pscp в самой программе и вызывать с помощью ShellExecute() или аналогичного, Либо в bat-файл засунуть вызов pscp и вызывать из программы этот bat-файл.

простите, но чувствую что я ламер(((
можете ли вы рассказать подробнее о том КАК парсить командню строку? про батник мне "более или менее" понятно.
Go to the top of the page
 
+Quote Post
Cosmojam
сообщение Feb 16 2012, 19:17
Сообщение #14


Местный
***

Группа: Свой
Сообщений: 311
Регистрация: 12-01-11
Из: Калининград (Koenigsberg)
Пользователь №: 62 182



Так же как обычную строку. Сишный псевдокод:
Код
char *username = "vasya"; // спросим у пользователя эти данные
char *host = "192.168.1.150";
char *password = "1234";
char *remote_file = "/home/vasya/my_file";
char *local_file = "C:\\my_file";

char *pscp_dir = "C:\\Program\ files";

char *full_parameters = (char *)malloc(640); // 640 байт должно хватить всем

sprintf(full_parameters, "-pw %s %s@%s:%s %s", password, username, host, remote_file, local_file);

ShellExecute(NULL,"open","pscp.exe", full_parameters, pscp_dir, SW_HIDE);

Передавать пароль открытым текстом при вызове - плохая идея, поэтому рекомендую аутентификацию по ключам http://the.earth.li/~sgtatham/putty/0.60/h...c/Chapter5.html либо на крайняк на удалённом хосте создать юзера, у которого нет никаких прав кроме как чтение этого файла и логиниться под ним.


--------------------
typedef enum { no, yes, maybe } bool; | блог тут
Go to the top of the page
 
+Quote Post
XVR
сообщение Feb 17 2012, 08:00
Сообщение #15


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Цитата(Cosmojam @ Feb 16 2012, 18:01) *
Зачем так громоздко? scp как раз предназначен для копирования файлов. Запускается scp раз в дцать секунд и копирует файл во временный каталог программы.
Если ТС устроит скорость обновления 'раз в дцать секунд', то scp действительно лучше. Если же ему надо обновлять каждую секунду (или около того), то скорости работы scp может оказаться недостаточно.

Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 8th July 2025 - 17:04
Рейтинг@Mail.ru


Страница сгенерированна за 0.01494 секунд с 7
ELECTRONIX ©2004-2016