#!/usr/bin/env python import web import os fileData="data.txt" class setCoord: def GET(self, data): fout= open(fileData,'a') fout.write(data+"\n") fout.close() historico.Put(data) ultimaPosicion.SetData(data) return "setCoord OK" class index: def GET(self, data): print("index: data: "+ data) return "INDEX OK!" class GetPos: def GET(self): """ line="" fout= open("D://desa//python//api_web//ultimaPos.txt",'r') line=fout.readline(data) fout.close() ultimaPosicion=dataGloboSonda() ultimaPosicion=SetData(line) """ return ultimaPosicion.GetPos() class AppData: def GET(self, data): n=int(data.split("/")[0]) pos=historico.Get(n) return pos.GetAPPData() class dataGloboSonda: def __init__(self): self.lat = 0.0 self.lon = 0.0 self.alt = 0.0 self.fecha = "0000-00-00T00:00:00" self.datosVisibles = "" self.presion = "" self.datosExt = "" def GetPos(self): res= ""; res=res+"

"+self.fecha+"

" res=res+"

Altura: "+str(self.alt)+"m

" res=res+"

"+str(self.presion)+"

" res=res+"

"+str(self.datosVisibles)+"

" res=res+"

"+str(self.datosExt)+"

" res=res+"

Ultima Posicion

" res=res+ "" return res; def GetAPPData(self): res="AppData;"+self.fecha res+=";"+str(self.lat) res+=";"+str(self.lon) res+=";"+str(self.alt) res+=";"+self.datosVisibles res+=";"+self.presion res+=";"+self.datosExt return res def SetData(self, data): dat=data.split("/") if len(dat)<7: return self.fecha=dat[0] self.lat=float(dat[1]) self.lon=float(dat[2]) self.alt=float(dat[3]) self.datosVisibles=dat[4] self.presion=dat[5] self.datosExt=dat[6] class HistoricoGloboSonda: def __init__(self): self.m=110 self.data=[""]*self.m self.ini=0 self.n=0 self.LeeData() def Put(self, dat): print("historicos put:"+ str(self.n)+" inicio: "+str(self.ini)) if self.n< self.m: self.ini+self.n self.data[self.ini+self.n]=dat self.n+=1 return self.data[self.ini]=dat self.ini=(1+self.ini)%self.m def LeeData(self): if not os.path.exists(fileData): fout= open(fileData,'w') fout.close() return fout= open(fileData,'r') for line in fout: line.strip() self.Put( line.strip()) fout.close() print("historicos leidos:"+ str(self.n)) def Get(self, n):#0 es la ultima pos y m la primera nn=self.n-n-1 print(str(n)+" getdato: "+ str(nn) +" dato real: " +str(self.ini+nn)) posicion=dataGloboSonda() if nn>=0: posicion.SetData(self.data[(self.ini+nn)%self.m]) print("Con DAto:"+ str((self.ini+nn)%self.m)+" "+self.data[(self.ini+nn)%self.m]) return posicion urls = ( '/setcoor/(.*)', 'setCoord', '/getpos', 'GetPos', '/getappdata/(.*)', 'AppData', '/(.*)', 'index' ) ultimaPosicion=dataGloboSonda() historico=HistoricoGloboSonda() if __name__ == "__main__": #historico.LeeData() app = web.application(urls, globals()) #app.add_processor(add_global_hook()) app.run() #6265