Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/python
- import serial
- import time
- from datetime import datetime
- import gi
- gi.require_version('Gtk', '3.0')
- from gi.repository import Gtk
- from threading import Thread
- class MyWindow(Gtk.Window):
- txmode = 1
- message = ""
- freq = ""
- def __init__(self):
- self.ser = serial.Serial("/dev/ttyUSB0", 9600)
- Gtk.Window.__init__(self, title="JT GUI by SQ3SWF")
- vbox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL, spacing=6)
- self.add(vbox)
- label = Gtk.Label("Message:");
- vbox.pack_start(label, True, True, 0)
- self.entry_msg = Gtk.Entry()
- self.entry_msg.set_text("cq dx")
- vbox.pack_start(self.entry_msg, True, True, 0)
- label = Gtk.Label("Frequency:");
- vbox.pack_start(label, True, True, 0)
- self.entry_freq = Gtk.Entry()
- self.entry_freq.set_text("500")
- vbox.pack_start(self.entry_freq, True, True, 0)
- hbox = Gtk.Box(spacing=6)
- vbox.add(hbox)
- button1 = Gtk.RadioButton.new_with_label_from_widget(None, "JT65")
- button1.connect("toggled", self.on_button_toggled, "JT65")
- hbox.pack_start(button1, False, False, 0)
- button2 = Gtk.RadioButton.new_from_widget(button1)
- button2.set_label("JT9")
- button2.connect("toggled", self.on_button_toggled, "JT9")
- hbox.pack_start(button2, False, False, 0)
- self.button = Gtk.Button(label="Enable TX")
- self.button.connect("clicked", self.startTX)
- self.set_size_request(200, 200)
- vbox.add(self.button)
- def on_button_toggled(self, button, name):
- if name == "JT65" and button.get_active() == True:
- self.txmode = 1
- if name == "JT9" and button.get_active() == True:
- self.txmode = 2
- print "TX mode =", self.txmode
- def startTX(self, widget):
- self.message = self.entry_msg.get_text()
- self.freq = self.entry_freq.get_text()
- txmsg = str(self.txmode) + "\n" + self.message + "\n" + self.freq + "\n"
- print txmsg
- thread = Thread(target = self.waitAndTransmit, args = (txmsg, ))
- thread.start()
- def waitAndTransmit(self, command):
- if datetime.now().second > 5:
- time.sleep(60-datetime.now().second)
- print command
- self.ser.write(command)
- win = MyWindow()
- win.connect("delete-event", Gtk.main_quit)
- win.show_all()
- Gtk.main()
- print "byebye"
- win.ser.close()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement