Sscom English Version Instant
def close_port(self): self.running = False if self.serial_port and self.serial_port.is_open: self.serial_port.close() self.open_btn.config(text="Open Port", bg="lightgreen") self.status_label.config(text="Status: Port closed")
self.send_hex_btn = tk.Button(btn_frame, text="Send (Hex)", command=self.send_hex_data, bg="lightyellow") self.send_hex_btn.pack(side="left", padx=5)
def display_received(self, data): def update(): try: text = data.decode('utf-8', errors='replace') except: text = str(data) if self.timestamp_var.get(): ts = datetime.now().strftime("[%H:%M:%S.%f][:-3]") self.recv_text.insert(tk.END, f"{ts} {text}") else: self.recv_text.insert(tk.END, text) self.recv_text.see(tk.END) self.root.after(0, update)
self.send_btn = tk.Button(btn_frame, text="Send (Text)", command=self.send_text_data, bg="lightblue") self.send_btn.pack(side="left", padx=5) sscom english version
# Send area send_frame = tk.LabelFrame(self.root, text="Send Data", padx=5, pady=5) send_frame.pack(fill="x", padx=10, pady=5)
self.open_btn = tk.Button(settings_frame, text="Open Port", command=self.toggle_port, bg="lightgreen") self.open_btn.grid(row=0, column=4, padx=10)
tk.Label(settings_frame, text="Baudrate:").grid(row=0, column=2, sticky="w", padx=(10,0)) self.baud_combo = ttk.Combobox(settings_frame, values=[300,600,1200,2400,4800,9600,19200,38400,57600,115200,230400,460800,921600], width=10) self.baud_combo.grid(row=0, column=3, padx=5) self.baud_combo.current(5) # 9600 def close_port(self): self
def toggle_port(self): if self.serial_port and self.serial_port.is_open: self.close_port() else: self.open_port()
# GUI self.create_widgets()
# Available ports self.ports = [port.device for port in serial.tools.list_ports.comports()] padx=5) def display_received(self
self.recv_text = scrolledtext.ScrolledText(recv_frame, wrap=tk.WORD, height=15) self.recv_text.pack(fill="both", expand=True)
self.send_text = scrolledtext.ScrolledText(send_frame, wrap=tk.WORD, height=5) self.send_text.pack(fill="x", expand=True)
def create_widgets(self): # Top frame: port settings settings_frame = tk.LabelFrame(self.root, text="Serial Settings", padx=5, pady=5) settings_frame.pack(fill="x", padx=10, pady=5)