python,解析CAN协议--------随意写

#coding:utf-8   #是用来指定文件编码为utf-8的
import os
import codecs#涉及到文件目录有中文日文英文,其ASCII格式不一样


from tkinter import *
from tkinter import messagebox   #导入tkMessageBox
from tkinter.filedialog import askdirectory     #返回文件夹路径,不是文件路径使用
import tkinter.filedialog
import tkinter.messagebox
import tkinter as tk
from tkinter import ttk

import re 
import time #定时使用


#以下是将docx文件转为doc文件实用。需要调用office中的API
import win32com
from win32com.client import Dispatch
import shutil


from PIL import Image,ImageTk


#调试用
import traceback 

import shutil   #实现文件的复制

    


class Application(Frame):
    filename2 = ''
    filename3 = ''
    WordApp =''
    ButtonLSX = ['']
    CAN_ID = ''
    byteL = 0
    byteH = 0
    combox = ('762',)
    


    def __init__(self,master = None):
        Frame.__init__(self,master)
        self.grid(row = 0,column = 5)
        self.path2 = StringVar()#先在此处定义,在函数selectDocx()被调用时赋值
        self.path3 = StringVar()#先在此处定义,在函数selectDocx()被调用时赋值
        self.path4 = StringVar()#先在此处定义,在函数selectDocx()被调用时赋值

        self.txt1 =StringVar()
        self.txt2 =StringVar()
        self.txt3 =StringVar()
        self.txt4 =StringVar()
        self.txt5 =StringVar()
        self.txt6 =StringVar()
        self.txt7 =StringVar()
        self.txt8 =StringVar()
        self.abs = StringVar()
        self.sas = StringVar()
        self.CanID = StringVar() #can id 下拉菜单
        self.createWidgets()
        
        
        
        
    def createWidgets(self):
        global ButtonLS
        #cfg路径选择标签
        self.DocxPathLabel = Label(self,text = "选择CAN CFG 文件", bg = '#f0fff0',height = 1,width = 18)
        self.DocxPathLabel.grid(row = 0, column = 0,pady = 5,sticky=N+S+N+S)  #sticky=N+S上下对齐
        
        #entry内容设置
        self.DocxPathEntry = Entry(self, textvariable = self.path2,bg = '#f0fff0',selectbackground  = 'red') #entry 的text属性不可以设置文本格式,在Entry中设定初始值,使用textvariable将变量与Entry绑定
        self.DocxPathEntry.grid(row = 0, column = 1,columnspan =8,pady = 5,sticky=N+S+W+E)#padx=2,与前一个控件水平距离
        self.DocxPathEntry.insert(0,'点击<cfg选择>按键,显示所选cfg文件路径……')
        #cfg选择按钮设置
        self.ProButton = Button(self, text = "cfg文件选择", bg = '#fff8dc',height = 1,width = 13,command = self.selectDocx)
        self.ProButton.grid(row = 0, column = 9,pady = 5,sticky=N+S+W+E)

        #设置Can Id
        #self.Get_CanId_Label = Label(self,text = "Can Id", bg = '#f0fff0',height = 1,width = 6)
        #self.Get_CanId_Label.grid(row = 1, column = 0,pady = 5,sticky=E)  #sticky=N+S上下对齐
        ##self.Get_CanId_Entry = Entry(self, textvariable = self.path3,width = 10,fg ='red',bg = '#f0fff0',selectbackground  = 'red')
        ##self.Get_CanId_Entry.grid(row = 1, column = 1,columnspan =8,pady = 5,sticky=W+N+S)#padx=2,与前一个控件水平距离
        #self.Get_CanId_Entry.insert(0,'输入Can Id')
        ##self.Get_CanID_Button = Button(self, text = "设置CanID", fg='red',bg = '#fff8dc',height = 1,command = self.getCanId)
        ##self.Get_CanID_Button.grid(row = 1, column = 3,columnspan =2,pady = 5,sticky=N+S+W+E)

        """
        options = ['8','9','7','6','3']
        self.CanID.set(options[0])
        self.CanIDchose = OptionMenu(self, self.CanID,*options)
        #self.CanIDchose['values'] = (12,6,3,4,5)
        self.CanIDchose.grid(row = 15, column = 3,columnspan =2,pady = 5,sticky=N+S+W+E)
        #self.CanIDchose.current(2)
        """
        #self.Get_CanId_Label = Label(self,text = "选择Can Id", bg =  'orange',fg = 'red',height = 1,width = 6)
        #self.Get_CanId_Label.grid(row = 1, column = 9,pady = 5,sticky=N+S+W+E)  #sticky=N+S上下对齐
        
        self.CanIDchose = ttk.Combobox(self, textvariable = self.CanID,width = 5)

        f = open(r'.\cfg\CAN协议总结.cfg')          
        for line in f:
            if line[5:10] =="CANID":
                self.combox = self.combox + (line[11:14],)
        f.close()

        
        self.combox = tuple(set(self.combox))  #去重
        self.CanIDchose['values'] = sorted(self.combox)  #sorted 只能排序字符串
        self.CanIDchose.grid(row = 1, column = 9,columnspan =1,pady = 5,sticky=N+S+E)
        self.CanIDchose.current(3)  
        self.Get_CanID_Button = Button(self, text = "设置CanID", fg='red',bg = 'pink',height = 1,width = 8,command = self.getCanId)
        self.Get_CanID_Button.grid(row = 1, column = 10,columnspan =1,pady = 5,sticky=N+S)

        self.Write_File = Button(self, text = "写入txt", fg='blue',bg = 'pink',height = 1,width = 9,command = self.WriteFile)
        self.Write_File.grid(row = 1, column = 11,columnspan =1,pady = 5,sticky=N+S+W)
        
        """
        #画图框架图1
        self.canvas1 = Canvas(self, width = 900, height = 600, bg = "#f0fff0")
        load1 = Image.open(r".\cfg\sys")
        render1 = ImageTk.PhotoImage(load1)
        img1 = load1.resize((int(load1.size[0]/3*2),int(load1.size[1]/3*2)),Image.ANTIALIAS)
        render1 = ImageTk.PhotoImage(img1)
        self.canvas1.image =render1  #这里会让图片显示出来
        self.canvas1.create_image(412,200,image = render1)  #中心位置
        self.canvas1.grid(row = 13, column = 1,columnspan=8,sticky=W+E)
        myText=self.canvas1.create_text(280,95,text='0')
        myText=self.canvas1.create_text(370,95,text='0')
        """
        

        #64bit button set        fg='blue',bg = '#ff0000'
        self.Button0 = Button(self, text = "0",height = 1,width = 3,relief=FLAT,fg='blue',bg = 'green',cursor = "heart",command = lambda :self.bit_info(0))
        self.Button0.grid(row = 4, column = 8,pady = 5,padx =5,sticky=N+S)

        self.Button1 = Button(self, text = "1",height = 1,width = 3,relief=FLAT,fg='blue',bg = 'green',cursor = "heart",command = lambda :self.bit_info(1))
        self.Button1.grid(row = 4, column = 7,pady = 5,padx =5,sticky=N+S)
        
        self.Button2 = Button(self, text = "2",height = 1,width = 3,relief=FLAT,fg='blue',bg = 'green',cursor = "heart",command = lambda :self.bit_info(2))
        self.Button2.grid(row = 4, column = 6,pady = 5,padx =5,sticky=N+S)

        self.Button3 = Button(self, text = "3",height = 1,width = 3,relief=FLAT,fg='blue',bg = 'green',cursor = "heart",command = lambda :self.bit_info(3))
        self.Button3.grid(row = 4, column = 5,pady = 5,padx =5,sticky=N+S)
        
        self.Button4 = Button(self, text = "4",height = 1,width = 3,relief=FLAT,fg='blue',bg = 'green',cursor = "heart",command = lambda :self.bit_info(4))
        self.Button4.grid(row = 4, column = 4,pady = 5,padx =5,sticky=N+S)

                
        self.Button5 = Button(self, text = "5",height = 1,width = 3,relief=FLAT,fg='blue',bg = 'green',cursor = "heart",command = lambda :self.bit_info(5))
        self.Button5.grid(row = 4, column = 3,pady = 5,padx =5,sticky=N+S)

        self.Button6 = Button(self, text = "6",height = 1,width = 3,relief=FLAT,fg='blue',bg = 'green',cursor = "heart",command = lambda :self.bit_info(6))
        self.Button6.grid(row = 4, column = 2,pady = 5,padx =5,sticky=N+S)

        self.Button7 = Button(self, text = "7",height = 1,width = 3,relief=FLAT,fg='blue',bg = 'green',cursor = "heart",command = lambda :self.bit_info(7))
        self.Button7.grid(row = 4, column = 1,pady = 5,padx =5,sticky=N+S)

        self.Button8 = Button(self, text = "8",height = 1,width = 3,relief=FLAT,fg='blue',bg = 'green',cursor = "heart",command = lambda :self.bit_info(8))
        self.Button8.grid(row = 5, column = 8,pady = 5,padx =5,sticky=N+S)

        self.Button9 = Button(self, text = "9",height = 1,width = 3,relief=FLAT,fg='blue',bg = 'green',cursor = "heart",command = lambda :self.bit_info(9))
        self.Button9.grid(row = 5, column = 7,pady = 5,padx =5,sticky=N+S)
      
      
        self.Button10 = Button(self, text = "10",height = 1,width = 3,relief=FLAT,fg='blue',bg = 'green',cursor = "heart",command = lambda :self.bit_info(10))
        self.Button10.grid(row = 5, column = 6,pady = 5,padx =5,sticky=N+S)

        self.Button11 = Button(self, text = "11",height = 1,width = 3,relief=FLAT,fg='blue',bg = 'green',cursor = "heart",command = lambda :self.bit_info(11))
        self.Button11.grid(row = 5, column = 5,pady = 5,padx =5,sticky=N+S)
        
        self.Button12 = Button(self, text = "12",height = 1,width = 3,relief=FLAT,fg='blue',bg = 'green',cursor = "heart",command = lambda :self.bit_info(12))
        self.Button12.grid(row = 5, column = 4,pady = 5,padx =5,sticky=N+S)

        self.Button13 = Button(self, text = "13",height = 1,width = 3,relief=FLAT,fg='blue',bg = 'green',cursor = "heart",command = lambda :self.bit_info(13))
        self.Button13.grid(row = 5, column = 3,pady = 5,padx =5,sticky=N+S)
        
        self.Button14 = Button(self, text = "14",height = 1,width = 3,relief=FLAT,fg='blue',bg = 'green',cursor = "heart",command = lambda :self.bit_info(14))
        self.Button14.grid(row = 5, column = 2,pady = 5,padx =5,sticky=N+S)

                
        self.Button15 = Button(self, text = "15",height = 1,width = 3,relief=FLAT,fg='blue',bg = 'green',cursor = "heart",command = lambda :self.bit_info(15))
        self.Button15.grid(row = 5, column = 1,pady = 5,padx =5,sticky=N+S)

        self.Button16 = Button(self, text = "16",height = 1,width = 3,relief=FLAT,fg='blue',bg = 'green',cursor = "heart",command = lambda :self.bit_info(16))
        self.Button16.grid(row = 6, column = 8,pady = 5,padx =5,sticky=N+S)

        self.Button17 = Button(self, text = "17",height = 1,width = 3,relief=FLAT,fg='blue',bg = 'green',cursor = "heart",command = lambda :self.bit_info(17))
        self.Button17.grid(row = 6, column = 7,pady = 5,padx =5,sticky=N+S)
        
        
     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值