Start work reading from direwolf log files.
This commit is contained in:
		
							
								
								
									
										46
									
								
								app.py
									
									
									
									
									
								
							
							
						
						
									
										46
									
								
								app.py
									
									
									
									
									
								
							@@ -3,31 +3,10 @@ from flask_restful import Resource, Api, reqparse
 | 
			
		||||
import pandas as pd
 | 
			
		||||
import ast
 | 
			
		||||
import kiss
 | 
			
		||||
import glob
 | 
			
		||||
app = Flask(__name__)
 | 
			
		||||
api = Api(app)
 | 
			
		||||
 | 
			
		||||
### This block from https://groups.io/g/direwolf/message/3543
 | 
			
		||||
import socket
 | 
			
		||||
 | 
			
		||||
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM);
 | 
			
		||||
s.connect(("192.168.0.30", 8000));
 | 
			
		||||
 | 
			
		||||
# R frame for version information
 | 
			
		||||
R_frame = b'\0\0\0\0R\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0';
 | 
			
		||||
s.sendall(R_frame);
 | 
			
		||||
msg = s.recv(1024);
 | 
			
		||||
### End block
 | 
			
		||||
 | 
			
		||||
### This block from https://github.com/ampledata/kiss/blob/master/examples/socket_read.py
 | 
			
		||||
def print_frame(frame):
 | 
			
		||||
    print(aprs.Frame(frame[1:]))
 | 
			
		||||
def p(x): print(x)  # prints whatever is passed in.
 | 
			
		||||
ki = kiss.TCPKISS(host='192.168.0.30', port=8001)
 | 
			
		||||
ki.start()
 | 
			
		||||
#ki.read(callback=print_frame)
 | 
			
		||||
ki.read(callback=p)
 | 
			
		||||
### End block
 | 
			
		||||
 | 
			
		||||
class Users(Resource):
 | 
			
		||||
    def get(self):
 | 
			
		||||
        data = pd.read_csv('users.csv')  # read CSV
 | 
			
		||||
@@ -40,8 +19,31 @@ class Locations(Resource):
 | 
			
		||||
        data = data.to_dict()  # convert dataframe to dictionary
 | 
			
		||||
        return {'data': data}, 200  # return data and 200 OK code
 | 
			
		||||
 | 
			
		||||
# Read some log files
 | 
			
		||||
list_stacked = pd.DataFrame()
 | 
			
		||||
file_list = glob.glob("logs/*.log")
 | 
			
		||||
print(file_list)
 | 
			
		||||
for file in file_list:
 | 
			
		||||
    file1 = pd.read_csv(file)
 | 
			
		||||
    list_stacked = pd.concat([list_stacked, file1])
 | 
			
		||||
 | 
			
		||||
# TODO get rid of NaN in JSON data? Either blank them or wrap in quotes.
 | 
			
		||||
# https://jsoneditoronline.org
 | 
			
		||||
# SyntaxError: JSON.parse: unexpected character at line 8818 column 20 of the JSON data
 | 
			
		||||
#             "104": NaN,
 | 
			
		||||
 | 
			
		||||
# TODO do I need to rearrange the data to a different format? I want all the
 | 
			
		||||
# data for one packet (one row) together.
 | 
			
		||||
 | 
			
		||||
class Packets(Resource):
 | 
			
		||||
    def get(self):
 | 
			
		||||
        data = list_stacked
 | 
			
		||||
        data = data.to_dict()  # convert dataframe to dictionary
 | 
			
		||||
        return {'data': data}, 200  # return data and 200 OK code
 | 
			
		||||
 | 
			
		||||
api.add_resource(Users, '/users')  # '/users' is our entry point for Users
 | 
			
		||||
api.add_resource(Locations, '/locations')  # and '/locations' is our entry point for Locations
 | 
			
		||||
api.add_resource(Packets, '/packets')  # and '/locations' is our entry point for Locations
 | 
			
		||||
 | 
			
		||||
if __name__ == '__main__':
 | 
			
		||||
    app.run(debug=True)  # run our Flask app
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user