From cae89cb77248ded2094df7df5a5af9bf0f01b940 Mon Sep 17 00:00:00 2001 From: sanjana-gunaga <60638707+sanjana-gunaga@users.noreply.github.com> Date: Tue, 4 Feb 2020 11:23:29 +0530 Subject: [PATCH 1/4] Add files via upload --- Sanjana/assignment2.py | 85 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 Sanjana/assignment2.py diff --git a/Sanjana/assignment2.py b/Sanjana/assignment2.py new file mode 100644 index 0000000..17692b6 --- /dev/null +++ b/Sanjana/assignment2.py @@ -0,0 +1,85 @@ + +import json + +class vSensCalculator: + def __init__(self,filename,time,acc_rate,temp_rate,battery_rate): + self.List = [] + self.count=0 + self.accelerometer_sensor=0 + self.temperature_sensor=0 + self.battery=0 + self.total_disconnections=0 + self.time_diff=0 + self.actual_count=0 + self.filename = filename + self.Accelerometer_rate = acc_rate + self.temp_rate=temp_rate + self.battery_rate=battery_rate + self.total_time = time + + def read_file(self): + with open(self.filename) as file: + for l in file: + self.List.append(json.loads(l.strip())) + + def total_packets_time(self): + flag = 0 + index=0 + for element in range(len(self.List)): + if(self.List[element]["PID"] =="998" ): + self.total_disconnections += 1 + if(flag != 1): + flag=1 + index=element + elif(self.List[element]["PID"] =="0"): + self.accelerometer_sensor += 1 + elif(self.List[element]["PID"] =="1"): + self.temperature_sensor += 1 + elif(self.List[element]["PID"] =="2"): + self.battery += 1 + else: + if(flag==1): + self.time_diff = self.time_diff + (self.List[element]["TS"]-self.List[index]["TS"]) + flag = 0 + + def get_time_seconds(self): + self.time_seconds = self.time_diff / 1000 + + def get_connected_time(self): + print(self.total_time,self.time_seconds) + self.connected_time = self.total_time - self.time_seconds + + def calculate_packetloss(self,expected_packet_count,rate): + self.actual_count = float(self.connected_time * rate) + self.packet_loss = ((self.actual_count - expected_packet_count)/self.actual_count)*100 + return self.packet_loss + + def get_packetloss(self): + self.read_file() + self.total_packets_time() + self.get_time_seconds() + self.get_connected_time() + self.acc_packet_loss=self.calculate_packetloss(self.accelerometer_sensor,self.Accelerometer_rate) + self.temp_packet_loss=self.calculate_packetloss(self.temperature_sensor,self.temp_rate) + self.battery_packet_loss=self.calculate_packetloss(self.battery,self.battery_rate) + print("\nTotal disconnections :",self.total_disconnections,"\nActual Connected time =",self.connected_time,"\nAccelerometer packet loss = ",self.acc_packet_loss,"\nTemperature packet loss = ",self.temp_packet_loss,"\nBattery packet loss = ",self.battery_packet_loss) + + +total_disconnections=0 +connected_time=0 +acc_packet_loss=0 +temp_packet_loss=0 +battery_packet_loss=0 + +filename = input("enter log file path : ") +total_time = int(input("Enter the total time :")) +Accelerometer_rate = int(input("Enter rate at which accelerometr sends data per second : ")) +temp_rate = float(input("temperature data packet rate per minute : ")) +batterydata_rate = float(input("Battery data packet rate per minute : ")) + +temp_rate = temp_rate / 60 +batterydata_rate = batterydata_rate/60 + +vSens = vSensCalculator(filename,total_time,Accelerometer_rate,temp_rate,batterydata_rate) +vSens.get_packetloss() + From 48b644d352064bff9e48c98e7e01af49942cb6f6 Mon Sep 17 00:00:00 2001 From: sanjana-gunaga <60638707+sanjana-gunaga@users.noreply.github.com> Date: Tue, 4 Feb 2020 11:26:18 +0530 Subject: [PATCH 2/4] Delete assignment2.py --- Sanjana/assignment2.py | 85 ------------------------------------------ 1 file changed, 85 deletions(-) delete mode 100644 Sanjana/assignment2.py diff --git a/Sanjana/assignment2.py b/Sanjana/assignment2.py deleted file mode 100644 index 17692b6..0000000 --- a/Sanjana/assignment2.py +++ /dev/null @@ -1,85 +0,0 @@ - -import json - -class vSensCalculator: - def __init__(self,filename,time,acc_rate,temp_rate,battery_rate): - self.List = [] - self.count=0 - self.accelerometer_sensor=0 - self.temperature_sensor=0 - self.battery=0 - self.total_disconnections=0 - self.time_diff=0 - self.actual_count=0 - self.filename = filename - self.Accelerometer_rate = acc_rate - self.temp_rate=temp_rate - self.battery_rate=battery_rate - self.total_time = time - - def read_file(self): - with open(self.filename) as file: - for l in file: - self.List.append(json.loads(l.strip())) - - def total_packets_time(self): - flag = 0 - index=0 - for element in range(len(self.List)): - if(self.List[element]["PID"] =="998" ): - self.total_disconnections += 1 - if(flag != 1): - flag=1 - index=element - elif(self.List[element]["PID"] =="0"): - self.accelerometer_sensor += 1 - elif(self.List[element]["PID"] =="1"): - self.temperature_sensor += 1 - elif(self.List[element]["PID"] =="2"): - self.battery += 1 - else: - if(flag==1): - self.time_diff = self.time_diff + (self.List[element]["TS"]-self.List[index]["TS"]) - flag = 0 - - def get_time_seconds(self): - self.time_seconds = self.time_diff / 1000 - - def get_connected_time(self): - print(self.total_time,self.time_seconds) - self.connected_time = self.total_time - self.time_seconds - - def calculate_packetloss(self,expected_packet_count,rate): - self.actual_count = float(self.connected_time * rate) - self.packet_loss = ((self.actual_count - expected_packet_count)/self.actual_count)*100 - return self.packet_loss - - def get_packetloss(self): - self.read_file() - self.total_packets_time() - self.get_time_seconds() - self.get_connected_time() - self.acc_packet_loss=self.calculate_packetloss(self.accelerometer_sensor,self.Accelerometer_rate) - self.temp_packet_loss=self.calculate_packetloss(self.temperature_sensor,self.temp_rate) - self.battery_packet_loss=self.calculate_packetloss(self.battery,self.battery_rate) - print("\nTotal disconnections :",self.total_disconnections,"\nActual Connected time =",self.connected_time,"\nAccelerometer packet loss = ",self.acc_packet_loss,"\nTemperature packet loss = ",self.temp_packet_loss,"\nBattery packet loss = ",self.battery_packet_loss) - - -total_disconnections=0 -connected_time=0 -acc_packet_loss=0 -temp_packet_loss=0 -battery_packet_loss=0 - -filename = input("enter log file path : ") -total_time = int(input("Enter the total time :")) -Accelerometer_rate = int(input("Enter rate at which accelerometr sends data per second : ")) -temp_rate = float(input("temperature data packet rate per minute : ")) -batterydata_rate = float(input("Battery data packet rate per minute : ")) - -temp_rate = temp_rate / 60 -batterydata_rate = batterydata_rate/60 - -vSens = vSensCalculator(filename,total_time,Accelerometer_rate,temp_rate,batterydata_rate) -vSens.get_packetloss() - From eea927fabe1a160f118f348329416f45427f9858 Mon Sep 17 00:00:00 2001 From: sanjana-gunaga <60638707+sanjana-gunaga@users.noreply.github.com> Date: Tue, 4 Feb 2020 12:54:08 +0530 Subject: [PATCH 3/4] Add files via upload --- Sanjana/vSens Packet Loss calculator.py | 85 +++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 Sanjana/vSens Packet Loss calculator.py diff --git a/Sanjana/vSens Packet Loss calculator.py b/Sanjana/vSens Packet Loss calculator.py new file mode 100644 index 0000000..17692b6 --- /dev/null +++ b/Sanjana/vSens Packet Loss calculator.py @@ -0,0 +1,85 @@ + +import json + +class vSensCalculator: + def __init__(self,filename,time,acc_rate,temp_rate,battery_rate): + self.List = [] + self.count=0 + self.accelerometer_sensor=0 + self.temperature_sensor=0 + self.battery=0 + self.total_disconnections=0 + self.time_diff=0 + self.actual_count=0 + self.filename = filename + self.Accelerometer_rate = acc_rate + self.temp_rate=temp_rate + self.battery_rate=battery_rate + self.total_time = time + + def read_file(self): + with open(self.filename) as file: + for l in file: + self.List.append(json.loads(l.strip())) + + def total_packets_time(self): + flag = 0 + index=0 + for element in range(len(self.List)): + if(self.List[element]["PID"] =="998" ): + self.total_disconnections += 1 + if(flag != 1): + flag=1 + index=element + elif(self.List[element]["PID"] =="0"): + self.accelerometer_sensor += 1 + elif(self.List[element]["PID"] =="1"): + self.temperature_sensor += 1 + elif(self.List[element]["PID"] =="2"): + self.battery += 1 + else: + if(flag==1): + self.time_diff = self.time_diff + (self.List[element]["TS"]-self.List[index]["TS"]) + flag = 0 + + def get_time_seconds(self): + self.time_seconds = self.time_diff / 1000 + + def get_connected_time(self): + print(self.total_time,self.time_seconds) + self.connected_time = self.total_time - self.time_seconds + + def calculate_packetloss(self,expected_packet_count,rate): + self.actual_count = float(self.connected_time * rate) + self.packet_loss = ((self.actual_count - expected_packet_count)/self.actual_count)*100 + return self.packet_loss + + def get_packetloss(self): + self.read_file() + self.total_packets_time() + self.get_time_seconds() + self.get_connected_time() + self.acc_packet_loss=self.calculate_packetloss(self.accelerometer_sensor,self.Accelerometer_rate) + self.temp_packet_loss=self.calculate_packetloss(self.temperature_sensor,self.temp_rate) + self.battery_packet_loss=self.calculate_packetloss(self.battery,self.battery_rate) + print("\nTotal disconnections :",self.total_disconnections,"\nActual Connected time =",self.connected_time,"\nAccelerometer packet loss = ",self.acc_packet_loss,"\nTemperature packet loss = ",self.temp_packet_loss,"\nBattery packet loss = ",self.battery_packet_loss) + + +total_disconnections=0 +connected_time=0 +acc_packet_loss=0 +temp_packet_loss=0 +battery_packet_loss=0 + +filename = input("enter log file path : ") +total_time = int(input("Enter the total time :")) +Accelerometer_rate = int(input("Enter rate at which accelerometr sends data per second : ")) +temp_rate = float(input("temperature data packet rate per minute : ")) +batterydata_rate = float(input("Battery data packet rate per minute : ")) + +temp_rate = temp_rate / 60 +batterydata_rate = batterydata_rate/60 + +vSens = vSensCalculator(filename,total_time,Accelerometer_rate,temp_rate,batterydata_rate) +vSens.get_packetloss() + From 1692bf16187d3e967bdddbceb7720f2ccbe9d0c3 Mon Sep 17 00:00:00 2001 From: sanjana-gunaga <60638707+sanjana-gunaga@users.noreply.github.com> Date: Wed, 5 Feb 2020 15:53:42 +0530 Subject: [PATCH 4/4] Add files via upload --- Sanjana/assignment.py | 118 +++++++++++++++++++++++++++++++++++++ Sanjana/test_assignment.py | 52 ++++++++++++++++ 2 files changed, 170 insertions(+) create mode 100644 Sanjana/assignment.py create mode 100644 Sanjana/test_assignment.py diff --git a/Sanjana/assignment.py b/Sanjana/assignment.py new file mode 100644 index 0000000..0e90221 --- /dev/null +++ b/Sanjana/assignment.py @@ -0,0 +1,118 @@ + +import json + +class vSensCalculator: + def __init__(self,filename,time,acc_rate,temp_rate,battery_rate): + self.List = [] + self.count=0 + self.accelerometer_sensor=0 + self.temperature_sensor=0 + self.battery=0 + self.total_disconnections=0 + self.time_diff=0 + self.actual_count=0 + self.rate_seconds=0 + self.filename = filename + self.Accelerometer_rate = acc_rate + self.temp_rate=temp_rate + self.battery_rate=battery_rate + self.total_time = time + + def read_file(self): + with open(self.filename) as file: + for l in file: + self.List.append(json.loads(l.strip())) + return self.List + + def total_packets_time(self): + flag = 0 + index=0 + for element in range(len(self.List)): + if(self.List[element]["PID"] =="998" ): + self.total_disconnections += 1 + if(flag != 1): + flag=1 + index=element + elif(self.List[element]["PID"] =="0"): + self.accelerometer_sensor += 1 + elif(self.List[element]["PID"] =="1"): + self.temperature_sensor += 1 + elif(self.List[element]["PID"] =="2"): + self.battery += 1 + else: + if(flag==1): + self.time_diff = self.time_diff + (self.List[element]["TS"]-self.List[index]["TS"]) + flag = 0 + print("acceleromete count=",self.accelerometer_sensor) + print("temperature count=",self.temperature_sensor) + print("battery count=",self.battery) + print("disconnected time in milisec=",self.time_diff) + return self.total_disconnections,self.accelerometer_sensor, self.temperature_sensor,self.battery + self.accelerometer_sensor, self.temperature_sensor,self.battery + + def get_time_seconds(self,disconnect_time): + self.time_seconds = round(disconnect_time / 1000 ,2) + #print("disconnected time in sec =",self.time_seconds) + return self.time_seconds + + def get_connected_time(self,total_time,connected_time_sec): + self.connected_time = round(total_time - connected_time_sec,2) + #print("connected time=",self.connected_time) + return self.connected_time + + + + def calculate_packetloss(self,expected_packet_count,rate,connect_time): + self.actual_count =float(connect_time* rate) + self.packet_loss = round(((self.actual_count - expected_packet_count)/self.actual_count)*100 ,2) + print("packet loss=",self.packet_loss) + return self.packet_loss + + def get_packetloss(self): + self.List=self.read_file() + self.total_disconnections ,self.accelerometer_sensor, self.temperature_sensor,self.battery=self.total_packets_time() + #print(self.total_disconnections,self.accelerometer_sensor, self.temperature_sensor,self.battery) + self.time_seconds=self.get_time_seconds(self.time_diff) + self.connected_time=self.get_connected_time(self.total_time,self.time_seconds) + self.acc_packet_loss=self.calculate_packetloss(self.accelerometer_sensor,self.Accelerometer_rate,self.connected_time) + self.temp_packet_loss=self.calculate_packetloss(self.temperature_sensor,self.temp_rate,self.connected_time) + self.battery_packet_loss=self.calculate_packetloss(self.battery,self.battery_rate,self.connected_time) + print("\nTotal disconnections :",round(self.total_disconnections,2),"\nActual Connected time =",self.connected_time,"\nAccelerometer packet loss = ",self.acc_packet_loss,"\nTemperature packet loss = ",self.temp_packet_loss,"\nBattery packet loss = ",self.battery_packet_loss) + +def input_testing(total_time,Accelerometer_rate,temp_rate,batterydata_rate): + if(total_time <= 0 ): + raise ValueError("Total time must be graeter than zero!!!!") + if(Accelerometer_rate <= 0): + Exception('lets see if this works') + if(temp_rate <= 0 ): + raise ValueError("temperature packet rate cannot be negative or zero") + if(batterydata_rate <=0): + raise ValueError("battery packet rate cannot be negative or zero") + + + + + + + +total_disconnections=0 +connected_time=0 +acc_packet_loss=0 +temp_packet_loss=0 +battery_packet_loss=0 + +filename = input("enter log file path : ") +total_time = int(input("Enter the total time :")) + + +Accelerometer_rate = int(input("Enter rate at which accelerometr sends data per second : ")) +temp_rate = float(input("temperature data packet rate per minute : ")) +batterydata_rate = float(input("Battery data packet rate per minute : ")) + +input_testing(total_time,Accelerometer_rate,temp_rate,batterydata_rate) +temp_rate = temp_rate / 60 +batterydata_rate = batterydata_rate/60 + +vSens = vSensCalculator(filename,total_time,Accelerometer_rate,temp_rate,batterydata_rate) +vSens.get_packetloss() + diff --git a/Sanjana/test_assignment.py b/Sanjana/test_assignment.py new file mode 100644 index 0000000..4ee920b --- /dev/null +++ b/Sanjana/test_assignment.py @@ -0,0 +1,52 @@ +import assignment +import unittest + + + +class UnitT(unittest.TestCase): + + def setUp(self): + self.obj = assignment.vSensCalculator("data1.txt",58156,5,1,1) + self.test_read_file() + + + def test_read_file(self): + self.assertNotEqual(len(self.obj.read_file()),0) + + def test_get_time_seconds(self): + ans=self.obj.get_time_seconds(1000) + self.assertEqual(ans,1) + ans=self.obj.get_time_seconds(10000) + self.assertEqual(ans,10) + + def test_get_connected_time(self): + ans=self.obj.get_connected_time(1000,100) + self.assertEqual(ans,900) + + def test_calculate_packetloss(self): + x=1/60 + ans=self.obj.calculate_packetloss(882,x,52906.87) + self.assertEqual(ans,-0.02) + + def test_calculate_packetloss(self): + ans=self.obj.calculate_packetloss(260030,5,52906.87) + self.assertEqual(ans,1.7) + + def test_calculate_packetloss(self): + x=1/60 + ans=self.obj.calculate_packetloss(883,x,52906.87) + self.assertEqual(ans,-0.14) + + def test_total_packets_time(self): + disconnections,acc_count,temp_count,battery_count=self.obj.total_packets_time() + print(disconnections,acc_count,temp_count,battery_count) + self.assertEqual(disconnections,16) + self.assertEqual(temp_count,882) + self.assertEqual(battery_count,883) + self.assertEqual(acc_count,260030) + + def test_input(self): + with self.assertRaises(Exception): assignment.input_testing(58156,0,1,1) + +if __name__ == "__main__": + unittest.main() \ No newline at end of file