import gtk import serial import glob import os import time import gobject import json gobject.threads_init() class Handler: def __init__(self): #List Store self.liststore = gtk.ListStore(int,str) # Objeler self.window1 = builder.get_object("window1") self.window2 = builder.get_object("window2") self.ports = builder.get_object("ports") self.refresh_btn = builder.get_object("refresh_btn") self.connect_btn = builder.get_object("connect_btn") self.exit_btn = builder.get_object("exit_btn") self.statusbar = builder.get_object("statusbar1") self.ext_temp = builder.get_object("ext_temp") self.bed_temp = builder.get_object("bed_temp") self.x_pos = builder.get_object("x_pos") self.y_pos = builder.get_object("y_pos") self.z_pos = builder.get_object("z_pos") # Uygun Portlari Listele try: uygun_portlar = glob.glob("/dev/ttyACM[0-9]*") self.liststore.append([0, uygun_portlar[0]]) except: self.liststore.append([0,"Select Port:"]) self.ports.set_model(self.liststore) self.cell = gtk.CellRendererText() self.ports.pack_start(self.cell, True) self.ports.add_attribute(self.cell, 'text', 1) self.ports.set_active(0) def refresh_btn_clicked(self, widget): print "refresh" uygun_portlar = glob.glob("/dev/ttyACM[0-9]*") self.index = self.ports.get_active() self.model = self.ports.get_model() self.item = self.model[self.index][1] self.liststore.clear() self.liststore.append([0, self.item]) def connect_btn_clicked(self, widget): self.model = self.ports.get_model() self.index = self.ports.get_active() self.item = self.model[self.index][1] try: self.ser = serial.Serial(port = self.item,baudrate = 115200,stopbits = 1,parity = 'N') self.statusbar.push(0, "Connection Established ") self.window1.hide() self.window2.show() gobject.timeout_add(100, self.read_duet) except: self.statusbar.push(0, "Connection Failed ") def fan_on_btn_clicked(self, widget): print "fan on" self.ser.write("M106 P1 S255\n") gelen = '' while self.ser.inWaiting()>0: gelen += self.ser.read(1) if gelen != '': print gelen def fan_off_btn_clicked(self, widget): print "fan off" self.ser.write("M106 P1 S0\n") gelen = '' while self.ser.inWaiting()>0: gelen += self.ser.read(1) if gelen != '': print gelen def home_all_clicked(self, widget): print "home all" self.ser.write("G28\n") gelen = '' while self.ser.inWaiting()>0: gelen += self.ser.read(1) if gelen != '': print gelen def home_x_clicked(self, widget): print "home x" self.ser.write("G28 X\n") gelen = '' while self.ser.inWaiting()>0: gelen += self.ser.read(1) if gelen != '': print gelen def home_y_clicked(self, widget): print "home y" self.ser.write("G28 Y\n") gelen = '' while self.ser.inWaiting()>0: gelen += self.ser.read(1) if gelen != '': print gelen def home_z_clicked(self, widget): print "home z" self.ser.write("G28 Z\n") gelen = '' while self.ser.inWaiting()>0: gelen += self.ser.read(1) if gelen != '': print gelen def exit_btn_clicked(self, widget): print "exit" try: self.ser.close() except: print "Port Zaten Kapali" gtk.main_quit() def on_window1_destroy(self, object, data=None): print "Bye" try: self.ser.close() except: print "Port Zaten Kapali" gtk.main_quit() def on_window2_destroy(self, object, data=None): print "Bye" try: self.ser.close() except: print "Port Zaten Kapali" gtk.main_quit() def read_duet(self): data_json = '' gelen_data_str = '' gelen_data =[] sayac = 0 if self.ser.isOpen(): self.ser.write("M408 S2\n") gelen = '' print (self.ser.inWaiting()) while self.ser.inWaiting()>0: gelen += self.ser.read(1) if gelen != '': print gelen while sayac