PDA

Просмотр полной версии : Phyton



R0BI
08.03.2024, 19:00
Добрый день. Осваиваю phyton. Есть клиент, сервер - трансивер. Клиент видет трансивер и через консоль управляет ним. Подскажите пожалуйста, как приконектить tkinter к клиенту, чтобы команды шли от button, на трансивер. Например , нажал кнопку, трансивер перешел на передачу. Команды в Аски.. Текстовые. Спасибо

R2DO
08.03.2024, 19:15
Начните лучше с того, как правильно называется этот язык программирования...

R0BI
08.03.2024, 19:42
..

R3LO
08.03.2024, 19:52
from tkinter import *
from tkinter import ttk

def click_button():
print('-> Трансивер')

root = Tk()
root.geometry("200x100")
btn = ttk.Button(text="COMMAND to TRCVR", command=click_button)
btn.pack()

root.mainloop()

Далее тут https://otus.ru/journal/klient-servernaya-model-v-pitone-i-sokety/

R0BI
08.03.2024, 20:34
from tkinter import *
from tkinter import ttk

def click_button():
print('-> Трансивер')

root = Tk()
root.geometry("200x100")
btn = ttk.Button(text="COMMAND to TRCVR", command=click_button)
btn.pack()

root.mainloop()

Далее тут https://otus.ru/journal/klient-servernaya-model-v-pitone-i-sokety/

Спасибо

- - - Добавлено - - -


from tkinter import *
from tkinter import ttk

def click_button():
print('-> Трансивер')

root = Tk()
root.geometry("200x100")
btn = ttk.Button(text="COMMAND to TRCVR", command=click_button)
btn.pack()

root.mainloop()

Далее тут https://otus.ru/journal/klient-servernaya-model-v-pitone-i-sokety/

Пока не пробовал , но пока по коду, как я понял , мы привязали функцию, которая будет выводить клик в консоль. Например если сервер , 127.0.0.1:40000. Как правильно прописать , что бы сообщение шло не в консоль , а именно через клиента . или я неправильно понимаю?

R3LO
08.03.2024, 21:59
А что должно передаваться? вы ничего не сообщили. Вы начали с tkinter. Вот я дал вам функцию на клик. В нее впишите что передавать.
Про порт 40000 вы только сейчас сказали и то это "например"

VE3EUT
08.03.2024, 22:13
Используйте https://hamlib.github.io для доступа к трансиверу, сэкономит вам кучу времени

YL2QN
10.03.2024, 22:04
нажал кнопку, трансивер перешел на передачу
CAT протокол решит Ваши проблемы.

R0BI
11.03.2024, 10:37
Это TCI, наверное CAT там не нужен

YL2QN
11.03.2024, 11:12
Это TCI, наверное CAT там не нужен
Можно и TCI - это тот же CAT, только другой формат протокола и запрятано внутрь TCP/IP. N1MM имеет тоже возможность передачи команд трансивера по TCP/IP и имеет свой XML формат.

- - - Добавлено - - -

В любом случае, Вам надо между сервером и клиентом сделать соединение по сокету, отслеживать его состояние, делать, например, реконнект, если соединение отвалилось и т.д. Далее по этому сокету Вы можете передавать любые данные, например, текстовые. Какой будет формат этих данных зависит от Вас, либо вы возьмёте какой-то готовый протокол (например, TCI) или изобретёте свой. Главное, чтобы клиент/сервер друг друга понимали.

Использование распространённого протокола позволит Вам работать с другими программами, которые поддерживают этот протокол, если в этом есть необходимость.

- - - Добавлено - - -


сервер - трансивер. Клиент видет трансивер и через консоль управляет ним. Подскажите пожалуйста, как приконектить tkinter к клиенту
А какой трансивер имеет встроенный TCP/IP server и какой протокол там используется?
Соединение инициализируется со стороны клиента, а сервер слушает входящие запросы.

RX4HX
11.03.2024, 13:28
А какой трансивер имеет встроенный TCP/IP server и какой протокол там используется?

SunSDR2 протокол TCI - Вы же сами выше и написали. Протокол WebSocket.

- - - Добавлено - - -


Это TCI, наверное CAT там не нужен

Чтобы не путаться в понятиях: CAT - это общее обозначение соединения трансивер-компьютер. Это может быть и по COM-порту, и по компьютерной сети (TCI).

- - - Добавлено - - -


N1MM имеет тоже возможность передачи команд трансивера по TCP/IP и имеет свой XML формат.

А вот это уже к CAT отношения не имеет - это просто обмен данными между программами на разных компьютерах.

YL2QN
11.03.2024, 14:24
Чтобы не путаться в понятиях: CAT - это общее обозначение соединения трансивер-компьютер. Это может быть и по COM-порту, и по компьютерной сети (TCI).
Да, абсолютно верно. CAT это Computer Aided Transceiver, т.е. любой протокол, который может управлять трансивером - будет CAT.
CAT команды документированы и в большинстве случаев у большинства трансиверов есть общий минимальный набор того, что он понимает. Некоторые трансиверы понимают больше комманд, некоторые меньше.

Транспортом для CAT изначально и сейчас в большинстве случаев является COM port. TCI протокол замена CAT командам с TCP/IP транспортом. Но используются не сами CAT комманды (как по COM port), а некая другая обвязка.

На сколько я знаю, SunSDR единственный трансивер, который поддерживает TCI. Многие современные трансиверы имеют свой софт для управления, который работает по TCP/IP. Но что "внутри" они не разглашают, т.е. протокол не публичный. Ну или я плохо искал. В том числе софт умеет передавать и звук и данные для отрисовки панорамы. Т.е. некий аналогичный TCIю протокол только без открытой спецификации.

Другими словами, стандартом дефакто является CAT по COM port, но все производители делают свой TCP/IP протокол и общего стандарта нет.

Например, для TS-990S описание выглядит так:
Subsequently, configuring TCP/IP on a PC makes it accessible to a LAN.The port number is “60000”.The character
encoding format is UTF-16.
Send the “##CN” command to the IP address of the TS‑990S to request a connection. Once the TS‑990S responds with
a permission to connect, send the administrator ID and password to using the “##ID” command.When the administrator
ID and password transmitted from the PC match with those configured in the TS‑990S, a connection between the
TS‑990S and the PC is established. If no communication is established within 10 seconds, the connection session
automatically quits.