Advertisement
Guest User

pyaprs

a guest
Mar 22nd, 2017
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 17.92 KB | None | 0 0
  1. #! /usr/bin/python
  2. # -*- coding: utf-8 -*-
  3. #
  4. #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  5. # APRS (c) by Dirk Unverzagt, DL8AAX
  6. # http://www.http://www.modellbau-yodi.de/aax/
  7. #
  8. #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  9.  
  10. from Tkinter import *
  11. from time import strptime
  12. from calendar import timegm
  13. from ScrolledText import *
  14. import tkMessageBox
  15. import tkSimpleDialog
  16. import thread
  17. import time
  18. import os
  19. from socket import *
  20. import string
  21. import sys
  22. import requests
  23. #import einstellungen
  24. from PIL import Image, ImageTk
  25. from tkFileDialog import *
  26.  
  27. version = '0.01'
  28. myHome= os.environ.get("HOME")
  29. ## globale Variablen
  30.  
  31. mys = None
  32. thread_flag = 1
  33. rbtn_a=1
  34. af=0
  35. lastbtime=0
  36.  
  37. imageDisconnect='network_wired_disconnected.jpg'
  38.  
  39. imageConect='/usr/share/icons/gnome/24x24/status/connect_established.png'
  40. imageExit='/usr/share/icons/gnome/32x32/actions/application-exit.png'
  41. imageSendBake='/usr/share/icons/gnome/32x32/actions/go-home.png'
  42.  
  43.  
  44. global e1
  45. global e2
  46. global confi
  47. global einst_zeige
  48. global iststatus
  49. global verbunden
  50. verbunden=0
  51. einst_zeige =0
  52. istlogin=0
  53. istrxsave=0
  54. address = '195.190.142.207'
  55. port = 14577
  56. clx_call= 'DB0ERF-5'
  57. ABOUT_TEXT = "a text"
  58. DISCLAIMER = "b text"
  59. data=None
  60.  
  61.  
  62. def lade_liz():
  63.     global licence
  64.     try:
  65.         lic = open("license.txt","r")
  66.         licence = lic.read()
  67.         lic.close()
  68.     except:
  69.         licence="LICENCE.txt is not read..."
  70.  
  71.  
  72. def About():
  73.     abut=Toplevel()
  74.     abut.title("About")
  75.     abut.geometry("480x320")
  76.     abut.configure(bg='#C9C9C9')
  77.     abut.resizable(0,0)
  78.     ab1=Label(abut,text="pyAPRS",bg="#C9C9C9",font=("Sans",16,"bold"))
  79.     ab1.pack()
  80.     ab1_1=Label(abut,text="python APRS for HAM Users",bg="#C9C9C9",font=("Sans",12))
  81.     ab1_1.pack()
  82.     ab2=Label(abut,text="version v"+version,bg="#C9C9C9",font=("Sans",10))
  83.     ab2.pack()
  84.     ab3=Label(abut,text="author: Dirk Unverzagt, DL8AAX",bg="#C9C9C9",font=("Sans",10))
  85.     ab3.pack()
  86.     ab5=Label(abut,text="published in 00.2017",bg="#C9C9C9",font=("Sans",10))
  87.     ab5.pack()
  88.     lade_liz()
  89.     abscrollbar = Scrollbar(abut,orient=VERTICAL)
  90.     abscrollbar.pack(side=RIGHT, fill=Y)
  91.     ab4=Text(abut,font=("Courier",8),yscrollcommand=abscrollbar.set)
  92.     abscrollbar.config(command=ab4.yview)
  93.     ab4.pack()
  94.     ab4.insert(INSERT,licence)
  95.     ab4.config(state=DISABLED)
  96.     abut.protocol("WM_DELETE_WINDOW", about)
  97.     abut.withdraw()
  98. def speichern():
  99.         #print "passwort="+e2.get()
  100.         lic = open(myHome+"/pyaprs/.einstellungen.txt","w")
  101.         lic.write( "# Konfigurationsdatei für pyaprs "+version+" \n")
  102.         lic.write( "# (c) Dirk Ubcerzagt, DL8AAX \n")
  103.         lic.write( "#  \n")
  104.         lic.write( "call="+e1.get()+"\n")
  105.         lic.write( "name="+e2.get()+"\n")
  106.         lic.write( "LängengradOst="+e4.get()+"\n")
  107.         lic.write( "LängengradWest="+e5.get()+"\n")
  108.         lic.write( "Bakentyp=" +e6.get()+"\n")
  109.         lic.write( "Symbolart=" +e7.get()+"\n")
  110.         lic.write( "Symbolbild="+e8.get()+"\n")
  111.         lic.write( "Bakentext=" +e9.get()+"\n")
  112.         lic.write( "Kommentar=" +e10.get()+"\n")
  113.         lic.write( "passwort="  +e3.get()+"\n")
  114.         lic.write( "serverHost="+e11.get()+"\n")
  115.         lic.write( "serverPort="+e12.get()+" \n")
  116.         lic.write( "Adresse="+e13.get()+"\n")
  117.         lic.write( "  \n")
  118.         lic.write( "  \n")
  119.         lic.close()
  120.         confi.destroy()
  121. def confiquit():
  122.     confi.destroy()
  123. def prgende():
  124.     global verbunden
  125.     if verbunden==1:
  126.         mys.close()
  127.         verbunden =0
  128.     fenster.quit()
  129.     fenster.destroy()
  130.  
  131. def einst():
  132.     global einst_zeige
  133.     if einst_zeige==0:
  134.         confi.update()
  135.         confi.deiconify()
  136.         einst_zeige=1
  137.         lieskonfi()
  138.     else:
  139.         confi.withdraw()
  140.         einst_zeige=0      
  141.         #speichern()
  142.  
  143. #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  144. # Fenster zu Programmeinstellungen
  145. #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  146. confi =Tk()
  147. #confi =Toplevel()
  148. confi.protocol("WM_DELETE_WINDOW", confi)
  149. confi.title("pyAPRS")
  150. confi.geometry('320x440')
  151. if einst_zeige==0:confi.withdraw()
  152. label_call = Label(confi, text="Call",            height=0, width=10).grid(row=0, column=0, sticky=W, pady=4)
  153. label_call = Label(confi, text="Name",            height=0, width=10).grid(row=1, column=0, sticky=W, pady=4)
  154. label_pass = Label(confi, text="passwort",        height=0, width=10).grid(row=2, column=0, sticky=W, pady=4)
  155. label_west = Label(confi, text="Längengrad Ost",  height=0, width=13).grid(row=3, column=0, sticky=W, pady=4)
  156. label_ost  = Label(confi, text="Längengrad West", height=0, width=14).grid(row=4, column=0, sticky=W, pady=4)
  157. label_bt   = Label(confi, text="Bakentyp",        height=0, width=14).grid(row=5, column=0, sticky=W, pady=4)
  158. abel_sart  = Label(confi, text="Symbolart",       height=0, width=14).grid(row=6, column=0, sticky=W, pady=4)
  159. abel_sbild = Label(confi, text="Symbolbild",      height=0, width=14).grid(row=7, column=0, sticky=W, pady=4)
  160. label_btext= Label(confi, text="Bakentext",       height=0, width=14).grid(row=8, column=0, sticky=W, pady=4)
  161. label_komm = Label(confi, text="Kommentar",       height=0, width=14).grid(row=9, column=0, sticky=W, pady=4)
  162. label_sev  = Label(confi, text="serverHost",      height=0, width=14).grid(row=10, column=0, sticky=W, pady=4)
  163. label_sport= Label(confi, text="serverPort",      height=0, width=14).grid(row=11, column=0, sticky=W, pady=4)
  164. label_adr  = Label(confi, text="Adresse",         height=0, width=14).grid(row=12, column=0, sticky=W, pady=4)
  165.  
  166. e1=Entry(confi,width=10) # call
  167. e1.grid(row=0, column=1)
  168. e2=Entry(confi,width=10) # name
  169. e2.grid(row=1, column=1)
  170. e3=Entry(confi,width=10) # passw
  171. e3.grid(row=2, column=1)
  172. e4=Entry(confi,width=12) # lo
  173. e4.grid(row=3, column=1)
  174. e5=Entry(confi,width=12) # lw
  175. e5.grid(row=4, column=1)
  176. e6=Entry(confi,width=4) # Bakentyp
  177. e6.grid(row=5, column=1)
  178. e7=Entry(confi,width=4) # Symbolart
  179. e7.grid(row=6, column=1)
  180. e8=Entry(confi,width=4) # Symbolbild
  181. e8.grid(row=7, column=1)
  182. e9=Entry(confi,width=20) #  Bakentext
  183. e9.grid(row=8, column=1)
  184. e10=Entry(confi,width=20) #  Kommentar
  185. e10.grid(row=9, column=1)
  186. e11=Entry(confi,width=15) #  serverHost
  187. e11.grid(row=10, column=1)
  188. e12=Entry(confi,width=15) #  serverPort
  189. e12.grid(row=11, column=1)
  190. e13=Entry(confi,width=20) #  Adresse
  191. e13.grid(row=12, column=1)
  192. #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  193. # Eingabefelder mit Daten aus der einstellungendatei füllen
  194. #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  195. def lieskonfi():
  196.     file = open(myHome+"/pyaprs/.einstellungen.txt","r")
  197.     for line in file:
  198.         #print(line.rstrip())
  199.         if '#' in line.rstrip():
  200.             print
  201.            
  202.         else:
  203.             l=line.rstrip()
  204.             larr=l.split('=')
  205.             if 'call' in l:
  206.                 e1.delete(0,END)
  207.                 e1.insert(0,larr[1])
  208.             elif 'name' in l:
  209.                 e2.delete(0,END)
  210.                 e2.insert(0,larr[1])
  211.             elif 'passwort' in l:
  212.                 e3.delete(0,END)
  213.                 e3.insert(0,larr[1])
  214.             elif 'LängengradOst' in l:
  215.                 e4.delete(0,END)
  216.                 e4.insert(0,larr[1])   
  217.             elif 'LängengradWest' in l:
  218.                 e5.delete(0,END)
  219.                 e5.insert(0,larr[1])
  220.             elif 'Bakentyp' in l:
  221.                 e6.delete(0,END)
  222.                 e6.insert(0,larr[1])
  223.             elif 'Symbolart' in l:
  224.                 e7.delete(0,END)
  225.                 e7.insert(0,larr[1])   
  226.             elif 'Symbolbild' in l:
  227.                 e8.delete(0,END)
  228.                 e8.insert(0,larr[1])
  229.             elif 'Bakentext' in l:
  230.                 e9.delete(0,END)
  231.                 e9.insert(0,larr[1])
  232.             elif 'Kommentar' in l:
  233.                 e10.delete(0,END)
  234.                 e10.insert(0,larr[1])
  235.             elif 'serverHost' in l:
  236.                 e11.delete(0,END)
  237.                 e11.insert(0,larr[1])
  238.             elif 'serverPort' in l:
  239.                 e12.delete(0,END)
  240.                 e12.insert(0,larr[1])
  241.             elif 'Adresse' in l:
  242.                 e13.delete(0,END)
  243.                 e13.insert(0,larr[1])
  244.     file.close()
  245.     #~~~
  246.  
  247. btn_save=Button(confi, text='Speichern', command=speichern ).grid(row=13, column=0, sticky=W, pady=4)
  248. btn_quit=Button(confi, text='Abbrechen', command=einst ).grid(    row=13, column=1, sticky=W, pady=4)
  249.  
  250. def karte():
  251.     print "Karte zeigen"
  252. def verbinde_(event):
  253.     verbinde()
  254. def machmaidentsatz():
  255.     user=e1.get()
  256.     user=user.upper()
  257.     user=user.replace ("\r", "")
  258.     pwt=e3.get()
  259.     pwt=pwt.replace ("\r", "")
  260.     tx_text="user "+user+" pass "+pwt+" vers pyaprs "+version
  261.     senden(tx_text)
  262. def verbindung():
  263.     global thread_flag
  264.     ## Verbindung zum Server aufbauen und periodisch abfragen
  265.     if thread_flag:
  266.         thread.start_new_thread(verbinden, ())
  267.         thread_flag = 0
  268. def verbindema():
  269.     global verbunden,asciiport,istlogin
  270.     if verbunden == 0:
  271.         verbindung()
  272.         machmaidentsatz()#identifikation senden
  273.         verbunden=1
  274.     else:
  275.         mys.close()
  276.         verbunden =0
  277.         istlogin=0
  278.         #print "verbindung getrennt"
  279.         iststatus.config(text="Verbindung getrennt mit "+ address + ', Port: ' + asciiport)
  280. def verbinden():
  281.     global mys, thread_flag,asciiport,istlogin,istrxsave,savedatas,rxsavedatabytes
  282.    
  283.     mys=socket(AF_INET,SOCK_STREAM)
  284.     asciiport = e12.get()
  285.     asciiport = asciiport.replace ("\r", "")
  286.     address=e11.get()
  287.     address=address.replace ("\r", "")
  288.     iststatus.config(text="Verbinde mit "+ address + ', Port: ' + asciiport)
  289.     #print "Verbinde mit "+ address + ', Port: ' + asciiport
  290.     #textfenster.insert(END, '\n' + 'Verbinde mit ' + address + ', Port: ' + asciiport)
  291.     #textfenster.see(END)
  292.     try:
  293.         mys.connect((address,port))
  294.         verbunden = 1
  295.         ## Verbindung misslungen!
  296.     except:
  297.         iststatus.config(text='Keine Verbindung möglich, Server ist abgestürzt!')
  298.         verbunden = 0
  299.         # los gehts
  300.     else:
  301.        
  302.         iststatus.config(text="Verbinden mit "+ address + ', Port: ' + asciiport)
  303.         im = Image.open(imageConect)
  304.         tk_image = ImageTk.PhotoImage(im)
  305.         #btn_con.image=tk_image
  306.         while 1:
  307.             try:
  308.                 ## Hier muss der Empfangen-Befehl hin!
  309.                 data=mys.recv(1024)
  310.                 #data2=Data
  311.                 #Verbindung beenden
  312.                 if data == 'OAIC':
  313.                     #print 'Verbindung beendet . . .'
  314.                     iststatus.config(text='Verbindung beendet . . .')
  315.                     mys.close()
  316.                     verbunden = 0
  317.                     thread_flag = 1
  318.                     break
  319.                 else:
  320.                     #print 'Daten'+time.strftime("%d.%m.%Y %H:%M:%S")+'\r'+data
  321.                     if istrxsave==1: # Alles was reinkommt speichern
  322.                         if len(data)>0:
  323.                             rxsavedatabytes=rxsavedatabytes+len(data)
  324.                             savedatas.write(data)
  325.                             #print 'Speicherere RX Daten '+str(rxsavedatabytes)
  326.                             iststatus.config(text='Speichere RX Daten '+str(rxsavedatabytes))
  327.                     if istlogin==0: # 0= identifizierung noch nichz gesendet
  328.                         machmaidentsatz() # identifikation senden
  329.                         sendbake()        # und gleich eine Bake mit GPS Koordinaten hinterher damit der Datenflus beginnt
  330.                         #print 'sende login'
  331.                         istlogin=1
  332.                     # Eingehende Daten filtern
  333.                     data = data.replace ("\r", "") # Zeilenumbruch am Ende entfernen
  334.                     if rbtn_a.get()==1: # Nur Rohdaten ausgeben
  335.                         textfenster.insert(END, data)
  336.                         textfenster.see(END)
  337.                     elif rbtn_a.get()==2: # mur MSG Daten ausgeben
  338.                         date2=data
  339.                     elif rbtn_a.get()==3: # mur MSG Daten für mich ausgeben
  340.                         date2=data
  341.                     else:
  342.                         print data
  343.                     #data=''
  344.                     time.sleep(0.2)
  345.             except:
  346.                 break   ## was schiefgelaufen, das wars . . .
  347.                 iststatus.config(text='Hm.. mit der Verbindung ist was schief gelaufen...')
  348. def senden(tx_text):
  349.     global mys, verbunden
  350.     ##
  351.     if verbunden==1:
  352.         #  msg_liste.addEntry(msg)
  353.         tx_text = tx_text + "\n"
  354.         mys.send(tx_text)
  355.         textfenster.insert(END, tx_text)
  356.         textfenster.see(END)
  357.         iststatus.config(text="sende:" +  tx_text)
  358.         #print "sende:" +  tx_text
  359.     else:
  360.        iststatus.config(text="!!!FEHLER!!!  Konte nicht senden, keine Verbindung zum Server!")
  361.  
  362. def sendbake():
  363.     global lastbtimehuman,lastbtime
  364.     #
  365.     #  Source Path Header — “AEA” Format
  366.     #
  367.     # DL8AAX    >APRS,TCPIP*:!5138.00N/00952.98Ey DL8AAX Pytonscript www.modellbau-yodi.de/aax/
  368.     # -absender-             !---GPS--!--GPS----! --------------Bakentext----------------------
  369.     #                        !        !         --y=
  370.     #                        !         -- /=
  371.     #                        --!=
  372.     #----------------------------------------------------------------------------------------------------
  373.     # AX.25 UI-FRAME FORMAT                                                                             !
  374.     #----------------------------------------------------------------------------------------------------
  375.     # Flag ! Destination ! Source    ! Digipeater ! Control     !  Protocol !INFORMATION FIELD! FCS!Flag!
  376.     #      ! Addresses   ! Addresses ! Addresses  ! Field  (UI) !     ID    !                 !    !    !
  377.     #----------------------------------------------------------------------------------------------------
  378.     #  1   !     7       !    7      ! 0 - 56     !     1       !     !     !      1-256      !  2  !  1!
  379.     #----------------------------------------------------------------------------------------------------
  380.     if verbunden==1:
  381.        
  382.         user=e1.get()
  383.         user=user.upper()
  384.         user=user.replace ("\r", "")
  385.         adr=e13.get()
  386.         adr=adr.replace ("\r", "")# APRS,TCPIP*:
  387.         lo=e4.get()               # länge ost 00952.98E
  388.         lo=lo.replace ("\r", "")
  389.         lw=e5.get()               # länge west
  390.         lw=lw.replace ("\r", "")
  391.         symbolart=e7.get()
  392.         symbolart=symbolart.replace ("\r", "")
  393.         baketyp=e6.get()
  394.         baketyp.replace ("\r", "")
  395.         sbild=e8.get()
  396.         sbild=sbild.replace ("\r", "")
  397.         Bakentext=e9.get()
  398.         Bakentext.replace ("\r", "")
  399.         #
  400.         tx_text=user +">"+ adr + ":"+ baketyp +lw+symbolart+lo+sbild+Bakentext
  401.         #print tx_text
  402.         istbtime=int(time.strftime("%H%M%S"))
  403.         print str(istbtime)+">"+str(lastbtime+(30*15))
  404.         if istbtime>lastbtime+(60*15) : # 15 min pause :)
  405.             senden(tx_text)
  406.             textfenster.insert(END, tx_text+"\r")
  407.             #textfenster.config(foreground="blue")
  408.             lastbtime=int(time.strftime("%H%M%S"))
  409.             lastbtimehuman=time.strftime("%H:%M")
  410.         else:
  411.             iststatus.config(text="Bake wurde doch erst um "+lastbtimehuman+" gesendet")
  412.  
  413. def rxsave():
  414.     global istrxsave,savedatas
  415.     if istrxsave==0:
  416.         savedatei=asksaveasfilename(parent=fenster, title='Speichern unter...',initialdir=myHome+"/pyaprs/")
  417.         if len(savedatei)>0:
  418.             #print savedatei
  419.             savedatas = open(savedatei,"w")
  420.             istrxsave=1
  421.     else:
  422.         savedatas.close()
  423.         istrxsave=0
  424.  
  425.  
  426. #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  427. # Hauptfenster
  428. #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  429. fenster = Toplevel()
  430. fenster.title("pyAPRS")
  431. fb='640'
  432. fh='425'
  433. fenster.geometry(fb+"x"+fh)
  434.  
  435. topframe = LabelFrame(fenster,    text="top",padx=10, pady=5,bg='#C9C9C9')#.place(x = 5, y = 5, height= 30,width=int(fb)-10)
  436. topframe.pack(fill=X, expand=1)
  437. ausgabelabel = LabelFrame(fenster,text="Ausgabe",padx=10, pady=5,bg='#C9C9C9' )#.place(x = 5, y = 40, height= 230,width=int(fb)-10)
  438. ausgabelabel.pack(fill=X, expand=1)
  439. statuslabel = LabelFrame(fenster, text="Status",padx=5, pady=5,bg='#C9C9C9')#.place(height= 30,x = 5, y = int(fh)-40,width=int(fb)-10)
  440. statuslabel.pack(fill=X, expand=1)
  441. v = StringVar(fenster)
  442. v.set(fenster) # initialize
  443. b = Radiobutton( ausgabelabel, text="Rohdaten   ",variable=rbtn_a, value=1,bg='#C9C9C9')#.place(x = 50, y = 45)
  444. b.grid(row=0,column=0,sticky=W,padx=4)
  445. b.select()
  446. b2 = Radiobutton(ausgabelabel, text="Alle MSGs  ",variable=rbtn_a, value=2,bg='#C9C9C9')#.place(x = 10, y = 45)
  447. b2.grid(row=0,column=0,sticky=W,padx=99)
  448. b2 = Radiobutton(ausgabelabel, text="Meine MSGs ",variable=rbtn_a, value=3,bg='#C9C9C9')#.place(x = 10, y = 45)
  449. b2.grid(row=0,column=0,sticky=W,padx=192)
  450.  
  451. textfenster = ScrolledText(ausgabelabel,width=86,height=14,background='#baeaff')#.place(x = 10, y = 55)
  452. textfenster.grid(row=3,column=0,sticky=W,padx=4)
  453.  
  454.  
  455. iststatus=Label(statuslabel,text="Moin..." )
  456.  
  457. iststatus.grid(row=3,column=0,sticky=W,padx=5)
  458.  
  459. im2 = Image.open(imageExit)
  460. tk_image2 = ImageTk.PhotoImage(im2)
  461. btn_exit=Button(topframe , image = tk_image2,command=prgende,   width=40,height=40 ).grid(row=1, column=1, sticky=W, padx=540, pady=1)
  462.  
  463. im = Image.open(imageDisconnect)
  464. tk_image = ImageTk.PhotoImage(im)
  465. btn_con= Button(topframe ,image = tk_image, command=verbindema,width=40,height=40 ).grid(row=1, column=1, sticky=W, padx=1, pady=1)
  466.  
  467. im3 = Image.open(imageSendBake)
  468. tk_image3 = ImageTk.PhotoImage(im3)
  469. btn_exit=Button(topframe , image = tk_image3,command=sendbake,   width=40,height=40 ).grid(row=1, column=1, sticky=W, padx=80, pady=1)
  470.  
  471. #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  472. # Menü Hauptfenster
  473. #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  474. menu = Menu(fenster)
  475. fenster.config(menu=menu)
  476. filemenu = Menu(menu)
  477. menu.add_cascade(label="File", menu=filemenu)
  478. filemenu.add_command(label="Karte zeigen", command=karte)
  479. filemenu.add_command(label="Einstellungen", command=einst)
  480. filemenu.add_command(label="RX Daten Speichern", command=rxsave)
  481. filemenu.add_separator()
  482. filemenu.add_command(label="Exit", command=fenster.quit)
  483.  
  484. helpmenu = Menu(menu)
  485. menu.add_cascade(label="Help", menu=helpmenu)
  486. helpmenu.add_command(label="About...", command=About)
  487.  
  488. #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  489. # Existiert eine Dateimit den Einstellungen ?
  490. # Wenn nicht wird sie angelegt
  491. #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  492. iststatus.config(text="Prüfe Config Datei...")
  493. #  
  494. if os.path.exists(myHome+"/pyaprs/"):
  495.     iststatus.config(text="Config Datei existiert")
  496.     #print "Config Datei existiert"
  497. else:
  498.     iststatus.config(text="Config Datei wird erstellt..."+myHome+"/pyaprs/.einstellungen.txt")
  499.     #print "Config Datei wird erstellt..."+myHome+"/pyaprs/.einstellungen.txt"
  500.     os.mkdir(myHome+"/pyaprs/")
  501.     lic = open(myHome+"/pyaprs/.einstellungen.txt","w")
  502.     lic.write( "# Konfigurationsdatei für pyaprs "+version+" \n")
  503.     lic.write( "# (c) Dirk Ubcerzagt, DL8AAX \n")
  504.     lic.write( "#  \n")
  505.     lic.write( "call=n0call  \n")
  506.     lic.write( "name=otto  \n")
  507.     lic.write( "LängengradOst=00953.25E  \n")
  508.     lic.write( "LängengradWest=5131.04N  \n")
  509.     lic.write( "Bakentyp=! \n")
  510.     lic.write( "Symbolart=/  \n")
  511.     lic.write( "Symbolbild=y  \n")
  512.     lic.write( "Bakentext=  \n")
  513.     lic.write( "Kommentar=  \n")
  514.     lic.write( "passwort=12960  \n")
  515.     lic.write( "serverHost=195.190.142.207  \n")
  516.     lic.write( "serverPort= \n")
  517.     lic.write( "Adresse=APRS,TCPIP*:  \n")
  518.     lic.write( "  \n")
  519.     lic.write( "  \n")
  520.     lic.close()
  521.  
  522. iststatus.config(text="Lese Konfigurationsdatei...")
  523. lieskonfi()
  524.  
  525. fenster.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement