Example #1
0
    def listen(self):
        if hasattr(self, 'socket'):
            self.stop()
            #self.socket.close()
            #print self.ip_var.get()

        self.socket = GPRS_socket(ip=self.ip_var.get(),
                                  port=int(self.port_var.get()))
        self.thread = GPRS_thread(1, self.socket.listening, self.queue_data)
        #self.thread_recive = GPRS_thread(1,self.socket.recv,self.queue_data)
        #self.listener_thread = thread.start_new_thread(self.socket.listening,(1,))
        self.thread.start()
Example #2
0
    def listen(self):
        if hasattr(self,'socket'):
            self.stop()
            #self.socket.close()
            #print self.ip_var.get()

        self.socket = GPRS_socket(ip=self.ip_var.get(),port=int(self.port_var.get()))
        self.thread = GPRS_thread(1,self.socket.listening,self.queue_data)
        #self.thread_recive = GPRS_thread(1,self.socket.recv,self.queue_data)
        #self.listener_thread = thread.start_new_thread(self.socket.listening,(1,))
        self.thread.start()
Example #3
0
class Swither(object):
    def __init__(self, master):
        #self.main_window = Toplevel(master)
        self.main_window = (master)
        self.main_window.title('GPRS Receiver')
        self.ip_hint_string = StringVar()
        self.ip_hint_btn = Button(self.main_window,
                                  textvariable=self.ip_hint_string,
                                  relief=RAISED,
                                  command=self.btn_alter_ip)
        self.ip_hint_string.set('IP')
        self.ip_hint_btn.grid(row=0, column=0, sticky=W, padx=10, pady=10)

        self.hint_string = StringVar()
        self.port_hint_btn = Button(self.main_window,
                                    textvariable=self.hint_string,
                                    relief=RAISED,
                                    command=self.btn_alter_port)
        self.hint_string.set('Port')
        self.port_hint_btn.grid(row=1, column=0, sticky=W, padx=10, pady=10)

        self.port_var = StringVar()
        self.port_entry = Entry(self.main_window, textvariable=self.port_var)
        self.port_entry.grid(row=1, column=1, sticky=W)
        #self.hint_label.pack()
        self.ip_var = StringVar()
        self.ip_entry = Entry(self.main_window, textvariable=self.ip_var)
        self.ip_entry.grid(row=0, column=1, sticky=W)

        self.bt_start = Button(self.main_window,
                               text='Start',
                               command=self.listen)
        self.bt_start.grid(row=0, column=2, padx=5, pady=5)
        self.bt_halt = Button(self.main_window, text='Halt', command=self.stop)
        self.bt_halt.grid(row=1, column=2, padx=5, pady=5)

        self.bt_set_directory = Button(self.main_window,
                                       text='Directory',
                                       command=self.btn_alter_directory)
        self.bt_set_directory.grid(row=2, column=2, padx=5, pady=5)

        self.directory_var = StringVar()
        self.directory_entry = Entry(self.main_window,
                                     textvariable=self.directory_var)
        self.directory_entry.grid(row=2, column=1, columnspan=2, sticky=W)

        self.receiver_data = Text(self.main_window)
        self.receiver_data.grid(row=6, column=0, columnspan=3, padx=3, pady=3)
        self.scroll = Scrollbar(self.main_window,
                                command=self.receiver_data.yview)
        self.receiver_data.configure(yscrollcommand=self.scroll.set)
        #self.scroll.pack(side=RIGHT,fill=Y)

        self.clock = Label(self.main_window,
                           bg='green',
                           font=('times', 20, 'bold'))
        self.clock.grid(row=2, column=0)
        self.clock.after(1000, self.tick)
        #self.socket = GPRS_socket()
        self.queue_data = Queue.Queue()
        #self.thread = GPRS_thread(1,self.socket.listening,self.queue_data)
        self.read_text()

        self.listbox = Listbox(self.main_window)
        self.listbox.grid(row=3, column=0, padx=3, pady=3, rowspan=3)
        self.bt_delt_list = Button(self.main_window,
                                   text='Delete',
                                   command=self.btn_listbox_del)
        self.bt_delt_list.grid(row=3, column=1, sticky=W)
        self.bt_add_list = Button(self.main_window,
                                  text='Add User',
                                  command=self.btn_listbox_add)
        self.bt_add_list.grid(row=4, column=1, sticky=W)

        self.email_var = StringVar()
        self.email_entry = Entry(self.main_window, textvariable=self.email_var)
        self.email_entry.grid(row=5, column=1, sticky=W)

        self.read_receiver_list()

        self.main_window.protocol('WM_DELETE_WINDOW', self.on_close)

    def read_receiver_list(self):
        self.receiver_list = GPRS_data_operator.read_email_receiver()
        for item in self.receiver_list:
            self.listbox.insert(END, item)

    def btn_alter_directory(self):
        GPRS_data_operator.alter_directory(self.directory_var.get())

    def btn_alter_ip(self):
        GPRS_data_operator.alter_ip(self.ip_var.get())

    def btn_alter_port(self):
        GPRS_data_operator.alter_port(self.port_var.get())

    def btn_listbox_del(self):
        index_tuple = self.listbox.curselection()
        print index_tuple[0]
        del self.receiver_list[index_tuple[0]]
        GPRS_data_operator.alter_email_receiver(self.receiver_list)
        self.listbox.delete(index_tuple[0])

    def btn_listbox_add(self):
        new_email = self.email_var.get()
        self.receiver_list.append(new_email)
        GPRS_data_operator.alter_email_receiver(self.receiver_list)
        self.listbox.insert(END, new_email)

    def read_text(self):
        data_config = GPRS_data_operator.read_config()
        data_time = time.strftime('%Y%m%d')
        data_operator = GPRS_data_operator(
            os.path.join(data_config['data_dir'], data_time + '.dat'))
        self.ip_var.set(data_config['ip'])
        self.port_var.set(data_config['port'])
        self.directory_var.set(data_config['data_dir'])
        data = data_operator.read_data()
        #print data
        self.receiver_data.insert(END, ''.join(data))
        #data_operator.write_data(data)
        self.pre_date = datetime.now()

    def tick(self):
        tick_time = time.strftime('%Y-%m-%d %H-%M:%S')
        self.clock.config(text=tick_time)

        if (datetime.now().day != self.pre_date.day):
            self.send_mail()
            self.pre_date = datetime.now()
            self.receiver_data.delete('1.0', END)

        if self.queue_data.empty() is not True:
            current_data = self.queue_data.get()
            print 'in queue: ', current_data
            self.receiver_data.insert(
                '1.0', tick_time + ' ' + current_data + os.linesep)

        self.clock.after(1000, self.tick)

    def send_mail(self):
        send_date = self.pre_date.strftime('%Y%m%d')
        temp_config = GPRS_data_operator.read_config()
        try:
            GPRS_SendEmail(sub='Data of ' + send_date,
                           content='There is auto-sender of GPRS_receiver',
                           att=os.path.join(temp_config['data_dir'],
                                            send_date + '.dat'))
            print send_mail, ': send email ok!'
        except Exception as msg:
            print 'send email faild,', msg

    def listen(self):
        if hasattr(self, 'socket'):
            self.stop()
            #self.socket.close()
            #print self.ip_var.get()

        self.socket = GPRS_socket(ip=self.ip_var.get(),
                                  port=int(self.port_var.get()))
        self.thread = GPRS_thread(1, self.socket.listening, self.queue_data)
        #self.thread_recive = GPRS_thread(1,self.socket.recv,self.queue_data)
        #self.listener_thread = thread.start_new_thread(self.socket.listening,(1,))
        self.thread.start()
        #self.thread_recive.start()
        #self.thread.run(self.socket.listening)

    def stop(self):
        if hasattr(self, 'socket'):
            self.thread.stop()
            #self.thread_recive.stop()

    #ensure this thread stop before window destroy
    def on_close(self):
        self.stop()
        self.main_window.destroy()
Example #4
0
class Swither(object):
    def __init__(self,master):
        #self.main_window = Toplevel(master)
        self.main_window = (master)
        self.main_window.title('GPRS Receiver')
        self.ip_hint_string = StringVar()
        self.ip_hint_btn = Button(self.main_window,textvariable=self.ip_hint_string,relief=RAISED,command = self.btn_alter_ip)
        self.ip_hint_string.set('IP')
        self.ip_hint_btn.grid(row=0,column=0,sticky=W,padx=10,pady=10)

        self.hint_string = StringVar()
        self.port_hint_btn = Button(self.main_window,textvariable=self.hint_string,relief=RAISED,command= self.btn_alter_port)
        self.hint_string.set('Port')
        self.port_hint_btn.grid(row=1,column=0,sticky=W,padx=10,pady=10)

        self.port_var = StringVar()
        self.port_entry = Entry(self.main_window,textvariable=self.port_var)
        self.port_entry.grid(row=1,column=1,sticky=W)
        #self.hint_label.pack()
        self.ip_var = StringVar()
        self.ip_entry = Entry(self.main_window,textvariable=self.ip_var)
        self.ip_entry.grid(row=0,column=1,sticky=W)

        self.bt_start = Button(self.main_window,text='Start',command=self.listen)
        self.bt_start.grid(row=0,column=2,padx=5,pady=5)
        self.bt_halt = Button(self.main_window,text='Halt',command=self.stop)
        self.bt_halt.grid(row=1,column=2,padx=5,pady=5)

        self.bt_set_directory = Button(self.main_window,text='Directory',command = self.btn_alter_directory)
        self.bt_set_directory.grid(row=2,column=2,padx=5,pady=5)

        self.directory_var = StringVar()
        self.directory_entry = Entry(self.main_window,textvariable=self.directory_var)
        self.directory_entry.grid(row=2,column=1,columnspan=2,sticky=W)

        self.receiver_data = Text(self.main_window)
        self.receiver_data.grid(row=6,column=0,columnspan=3,padx=3,pady=3)
        self.scroll = Scrollbar(self.main_window, command=self.receiver_data.yview)
        self.receiver_data.configure(yscrollcommand=self.scroll.set)
        #self.scroll.pack(side=RIGHT,fill=Y)

        self.clock = Label(self.main_window,bg='green',font=('times',20,'bold'))
        self.clock.grid(row=2,column=0)
        self.clock.after(1000,self.tick)
        #self.socket = GPRS_socket()
        self.queue_data = Queue.Queue()
        #self.thread = GPRS_thread(1,self.socket.listening,self.queue_data)
        self.read_text()

        self.listbox = Listbox(self.main_window)
        self.listbox.grid(row=3,column=0,padx=3,pady=3,rowspan=3)
        self.bt_delt_list = Button(self.main_window,text='Delete',command=self.btn_listbox_del)
        self.bt_delt_list.grid(row=3,column=1,sticky=W)
        self.bt_add_list = Button(self.main_window,text='Add User',command=self.btn_listbox_add)
        self.bt_add_list.grid(row=4,column=1,sticky=W)

        self.email_var = StringVar()
        self.email_entry = Entry(self.main_window,textvariable=self.email_var)
        self.email_entry.grid(row=5,column=1,sticky=W)

        self.read_receiver_list()

        self.main_window.protocol('WM_DELETE_WINDOW',self.on_close)

    def read_receiver_list(self):
        self.receiver_list = GPRS_data_operator.read_email_receiver()
        for item in self.receiver_list :
            self.listbox.insert(END,item)

    def btn_alter_directory(self):
        GPRS_data_operator.alter_directory(self.directory_var.get())
    def btn_alter_ip(self):
        GPRS_data_operator.alter_ip(self.ip_var.get())
    def btn_alter_port(self):
        GPRS_data_operator.alter_port(self.port_var.get())

    def btn_listbox_del(self):
        index_tuple =  self.listbox.curselection()
        print index_tuple[0]
        del self.receiver_list[index_tuple[0]]
        GPRS_data_operator.alter_email_receiver(self.receiver_list)
        self.listbox.delete(index_tuple[0])

    def btn_listbox_add(self):
        new_email = self.email_var.get()
        self.receiver_list.append(new_email)
        GPRS_data_operator.alter_email_receiver(self.receiver_list)
        self.listbox.insert(END,new_email)

    def read_text(self):
        data_config = GPRS_data_operator.read_config()
        data_time = time.strftime('%Y%m%d')
        data_operator = GPRS_data_operator(os.path.join(data_config['data_dir'],data_time+'.dat'))
        self.ip_var.set(data_config['ip'])
        self.port_var.set(data_config['port'])
        self.directory_var.set(data_config['data_dir'])
        data = data_operator.read_data()
        #print data
        self.receiver_data.insert(END,''.join(data))
        #data_operator.write_data(data)
        self.pre_date = datetime.now()

    def tick(self):
        tick_time = time.strftime('%Y-%m-%d %H-%M:%S')
        self.clock.config(text=tick_time)

        if (datetime.now().day != self.pre_date.day):
            self.send_mail()
            self.pre_date = datetime.now()
            self.receiver_data.delete('1.0',END)

        if self.queue_data.empty() is not True :
            current_data = self.queue_data.get()
            print 'in queue: ',current_data
            self.receiver_data.insert('1.0',tick_time+' '+current_data+os.linesep)

        self.clock.after(1000,self.tick)

    def send_mail(self):
        send_date = self.pre_date.strftime('%Y%m%d')
        temp_config = GPRS_data_operator.read_config()
        try :
            GPRS_SendEmail(sub='Data of '+send_date,
                        content='There is auto-sender of GPRS_receiver',
                        att=os.path.join(temp_config['data_dir'],send_date+'.dat'))
            print send_mail,': send email ok!'
        except Exception as msg:
            print 'send email faild,',msg

    def listen(self):
        if hasattr(self,'socket'):
            self.stop()
            #self.socket.close()
            #print self.ip_var.get()

        self.socket = GPRS_socket(ip=self.ip_var.get(),port=int(self.port_var.get()))
        self.thread = GPRS_thread(1,self.socket.listening,self.queue_data)
        #self.thread_recive = GPRS_thread(1,self.socket.recv,self.queue_data)
        #self.listener_thread = thread.start_new_thread(self.socket.listening,(1,))
        self.thread.start()
        #self.thread_recive.start()
        #self.thread.run(self.socket.listening)

    def stop(self):
        if hasattr(self,'socket'):
            self.thread.stop()
            #self.thread_recive.stop()

    #ensure this thread stop before window destroy
    def on_close(self):
        self.stop();
        self.main_window.destroy()