diff --git a/docs/Analysis.odt b/docs/Analysis.odt new file mode 100644 index 0000000..eee2145 Binary files /dev/null and b/docs/Analysis.odt differ diff --git a/docs/Analysis2.odt b/docs/Analysis2.odt new file mode 100644 index 0000000..abaa1b0 Binary files /dev/null and b/docs/Analysis2.odt differ diff --git a/docs/Documentation/AATC_AStar Writeup.odt b/docs/Documentation/AATC_AStar Writeup.odt new file mode 100644 index 0000000..5b87580 Binary files /dev/null and b/docs/Documentation/AATC_AStar Writeup.odt differ diff --git a/docs/Documentation/AATC_Client Writeup.docx b/docs/Documentation/AATC_Client Writeup.docx new file mode 100644 index 0000000..597417a Binary files /dev/null and b/docs/Documentation/AATC_Client Writeup.docx differ diff --git a/docs/Documentation/AATC_Client_Text_UI Writeup.odt b/docs/Documentation/AATC_Client_Text_UI Writeup.odt new file mode 100644 index 0000000..1958960 Binary files /dev/null and b/docs/Documentation/AATC_Client_Text_UI Writeup.odt differ diff --git a/docs/Documentation/AATC_Config Writeup.odt b/docs/Documentation/AATC_Config Writeup.odt new file mode 100644 index 0000000..19beee2 Binary files /dev/null and b/docs/Documentation/AATC_Config Writeup.odt differ diff --git a/docs/Documentation/AATC_Coordinate Writeup.odt b/docs/Documentation/AATC_Coordinate Writeup.odt new file mode 100644 index 0000000..64ec73d Binary files /dev/null and b/docs/Documentation/AATC_Coordinate Writeup.odt differ diff --git a/docs/Documentation/AATC_Create_Graph Writeup.odt b/docs/Documentation/AATC_Create_Graph Writeup.odt new file mode 100644 index 0000000..576427d Binary files /dev/null and b/docs/Documentation/AATC_Create_Graph Writeup.odt differ diff --git a/docs/Documentation/AATC_Create_Graph Writeup2.odt b/docs/Documentation/AATC_Create_Graph Writeup2.odt new file mode 100644 index 0000000..6700d1c Binary files /dev/null and b/docs/Documentation/AATC_Create_Graph Writeup2.odt differ diff --git a/docs/Documentation/AATC_Crypto Writeup.odt b/docs/Documentation/AATC_Crypto Writeup.odt new file mode 100644 index 0000000..34f34cc Binary files /dev/null and b/docs/Documentation/AATC_Crypto Writeup.odt differ diff --git a/docs/Documentation/AATC_CryptoBeta Writeup.odt b/docs/Documentation/AATC_CryptoBeta Writeup.odt new file mode 100644 index 0000000..42d502d Binary files /dev/null and b/docs/Documentation/AATC_CryptoBeta Writeup.odt differ diff --git a/docs/Documentation/AATC_DB Writeup.odt b/docs/Documentation/AATC_DB Writeup.odt new file mode 100644 index 0000000..ac08393 Binary files /dev/null and b/docs/Documentation/AATC_DB Writeup.odt differ diff --git a/docs/Documentation/AATC_Drone Writeup.odt b/docs/Documentation/AATC_Drone Writeup.odt new file mode 100644 index 0000000..3f715a1 Binary files /dev/null and b/docs/Documentation/AATC_Drone Writeup.odt differ diff --git a/docs/Documentation/AATC_Drone Writeup2.odt b/docs/Documentation/AATC_Drone Writeup2.odt new file mode 100644 index 0000000..a56f692 Binary files /dev/null and b/docs/Documentation/AATC_Drone Writeup2.odt differ diff --git a/docs/Documentation/AATC_Drone_Logic Writeup.odt b/docs/Documentation/AATC_Drone_Logic Writeup.odt new file mode 100644 index 0000000..ea172d4 Binary files /dev/null and b/docs/Documentation/AATC_Drone_Logic Writeup.odt differ diff --git a/docs/Documentation/AATC_GPIO Writeup.odt b/docs/Documentation/AATC_GPIO Writeup.odt new file mode 100644 index 0000000..1537997 Binary files /dev/null and b/docs/Documentation/AATC_GPIO Writeup.odt differ diff --git a/docs/Documentation/AATC_Monitor Writeup.odt b/docs/Documentation/AATC_Monitor Writeup.odt new file mode 100644 index 0000000..c34f958 Binary files /dev/null and b/docs/Documentation/AATC_Monitor Writeup.odt differ diff --git a/docs/Documentation/AATC_Monitor_Viewer Writeup.odt b/docs/Documentation/AATC_Monitor_Viewer Writeup.odt new file mode 100644 index 0000000..571058e Binary files /dev/null and b/docs/Documentation/AATC_Monitor_Viewer Writeup.odt differ diff --git a/docs/Documentation/AATC_NoFlyZoneGrapher Writeup.odt b/docs/Documentation/AATC_NoFlyZoneGrapher Writeup.odt new file mode 100644 index 0000000..d19f3e8 Binary files /dev/null and b/docs/Documentation/AATC_NoFlyZoneGrapher Writeup.odt differ diff --git a/docs/Documentation/AATC_PriorityQueue Writeup.odt b/docs/Documentation/AATC_PriorityQueue Writeup.odt new file mode 100644 index 0000000..7b662b9 Binary files /dev/null and b/docs/Documentation/AATC_PriorityQueue Writeup.odt differ diff --git a/docs/Documentation/AATC_Server_002 Writeup.odt b/docs/Documentation/AATC_Server_002 Writeup.odt new file mode 100644 index 0000000..ca9aa1b Binary files /dev/null and b/docs/Documentation/AATC_Server_002 Writeup.odt differ diff --git a/docs/Documentation/AATC_Server_Starter Writeup.docx b/docs/Documentation/AATC_Server_Starter Writeup.docx new file mode 100644 index 0000000..c94fa8c Binary files /dev/null and b/docs/Documentation/AATC_Server_Starter Writeup.docx differ diff --git a/docs/Documentation/AATC_Weather Writeup.odt b/docs/Documentation/AATC_Weather Writeup.odt new file mode 100644 index 0000000..428371a Binary files /dev/null and b/docs/Documentation/AATC_Weather Writeup.odt differ diff --git a/docs/Documentation/General Information.odt b/docs/Documentation/General Information.odt new file mode 100644 index 0000000..bfdbf6d Binary files /dev/null and b/docs/Documentation/General Information.odt differ diff --git a/docs/Documentation/HedaBot Writeup.odt b/docs/Documentation/HedaBot Writeup.odt new file mode 100644 index 0000000..b306cbd Binary files /dev/null and b/docs/Documentation/HedaBot Writeup.odt differ diff --git a/docs/Documentation/Install_and_Setup.odt b/docs/Documentation/Install_and_Setup.odt new file mode 100644 index 0000000..e6f122f Binary files /dev/null and b/docs/Documentation/Install_and_Setup.odt differ diff --git a/docs/Documentation/OOP.odt b/docs/Documentation/OOP.odt new file mode 100644 index 0000000..d7e152e Binary files /dev/null and b/docs/Documentation/OOP.odt differ diff --git a/docs/Documentation/OOP_Definitions.py b/docs/Documentation/OOP_Definitions.py new file mode 100644 index 0000000..39e2004 --- /dev/null +++ b/docs/Documentation/OOP_Definitions.py @@ -0,0 +1,471 @@ +ClientConnection = Class + __init__ #Uses private __ but is inheritable + Public: + Connection_Loop #repeat command running/ catch error/ exit + Send #Send to client + Recv #Recv data + Exit #Set Exit + Protected: + DB #Database object + Thread_Name #Name of this objects thread + Thread_Queue #Command queue for this thread + con #Connection object to client + Crypto #Crypto object to encrypt communications + ClientID #Current clientID + ExitLoop #Bool if should exit + + +UserConection = Class(ClientConnection) #For explanations see AATC_Server_002 UserConnection documentation + Public: + Create_Commands + ProcessCommand + Login + GetNoFlyZones + AddNoFlyZone + RemoveNoFlyZone + ModifyNoFlyZoneLevel + AddDrone + RemoveDrone + GetDroneID + GetDroneCredentials + SetDroneCredentials + CheckDroneOwnership + GetDroneInfo + GetDronesUser + GetDronesAll + GetUserID + GetUsername + AddUser + SetFlightVisibility + SetAccountType + UserChangePassword + GetFlightsUser + GetFlightsAll + AddFlight + RemoveFlight + GetFlightWaypointsUser + GetFlightWaypointsAll + GetMonitorID + GetMonitorName + AddMonitorPermission + RemoveMonitorPermission + ModifyMonitorPermissionDate + GetMonitorPermissionUser + Protected: + Non_Authenticated_Commands + Authenticated_Commands + +BotConnection = Class(UserConnection) + __init__(Override) #Overrides __init__ of grandparent. Uses private __ but is inheritable + Public: + Main #Processes the command and arguments once instead of in a loop + Send(Override) #Sends the result back to the main bot process + Login(Override) #Alters the login to the bot's requirements + Protected: + ClientID + chat_id #Note: This is now protected. Some screenshots may include an outdated version + Output_Queue #Note: This is now protected. Some screenshots may include an outdated version + DB + Thread_Name + +MonitorConnection = Class(ClientConnection) + Public: + Create_Commands + ProcessCommand + Login + AddMonitor + MonitorChangePassword + GetNoFlyZones + GetDronesAll + GetUserID + GetUsername + GetMonitorDrones + GetMonitorFlights + GetMonitorFlightWaypoints + GetMonitorID + GetMonitorName + RemoveMonitorPermission + GetMonitorPermissionMonitor + GetFlightsAll + GetFlightWaypointsAll + Protected: + Non_Authenticated_Commands + Authenticated_Commands + + +DroneConnection = Class(ClientConnection) + Public: + Create_Commands + ProcessCommand + Login + Update_Drone_Status + DroneGetDroneInfo + CheckForFlight + GetFlight + GetFlightWaypoints + MarkFlightComplete + Protected: + Non_Authenticated_Commands + Authenticated_Commands + +##################################################################### + + +DynoGraph = Class + Public: + Size + Get_Size + Get_Count + add_node + Add_Edges + CalculateNeighbours + MapHash + Node_Cache_Hash + Build_Node_Cache + Save_Node_Cache + Get_Node_Cache + Direct_NodeID + All_NodeIDs + Find_NodeID + Obj_Find_NodeID + SaveGraph + ImportGraph + Hash + GetNode + SaveNodes + EvictNode + FlushGraph + Get_Nodes + GetFolderNames + CurrentFolderName + Protected: + Nodes + BlockSize + cwd + GraphFileName + GraphFileSuffix + FolderName + BlockFileName + BlockFileSuffix + Node_Cache_BlockSize + ABInterval + ABSlot + ABSlots + xSize + ySize + zSize + xCount + yCount + zCount + + +Node = Class + Public: + add_friend + Get_NodeID + Get_Friends + Get_Coords + Get_Cost + Set_Cost + Protected: + NodeID + Friends + Cost + Coords + + +##################################################################################### + +UserInterface = Class + Public: + Login + GetNoFlyZones + AddNoFlyZone + RemoveNoFlyZone + ModifyNoFlyZoneLevel + AddDrone + RemoveDrone + GetDroneID + GetDroneCredentials + SetDroneCredentials + CheckDroneOwnership + GetDroneInfo + GetDronesUser + GetDronesAll + GetUserID + GetUsername + AddUser + SetFlightVisibility + SetAccountType + UserChangePassword + GetFlightsUser + GetFlightsAll + AddFlight + RemoveFlight + GetFlightWaypointsUser + GetFlightWaypointsAll + GetMonitorID + GetMonitorName + AddMonitorPermission + RemoveMonitorPermission + ModifyMonitorPermissionDate + GetMonitorPermissionUser + Exit + Send + Recv + Protected: + Username + Crypto + con + +########################################################################### + +UserTextUI = Class + Public: + Main_Loop + PrintMainMenu + GetMenuChoice + EvaluateChoice + DisplayResults + Login + GetNoFlyZones + AddNoFlyZone + RemoveNoFlyZone + ModifyNoFlyZoneLevel + AddDrone + RemoveDrone + GetDroneID + GetDroneCredentials + SetDroneCredentials + CheckDroneOwnership + GetDroneInfo + GetDronesUser + GetDronesAll + GetUserID + GetUsername + AddUser + SetFlightVisibility + SetAccountType + UserChangePassword + GetFlightsUser + GetFlightsAll + AddFlight + RemoveFlight + GetFlightWaypointsUser + GetFlightWaypointsAll + GetMonitorID + GetMonitorName + AddMonitorPermission + RemoveMonitorPermission + ModifyMonitorPermissionDate + GetMonitorPermissionUser + Call_Exit + Protected: + UserInterface + MenuOptions + Exit + + +############################################################################# + +Coordinate = Class + Public: + Get_X + Get_Y + Get_Z + Set_X + Set_Y + Set_Z + Get_X_Size + Get_Y_Size + Get_Z_Size + Set_X_Size + Set_Y_Size + Set_Z_Size + Print + getTuple + copy + Protected: + x + y + z + xSize + ySize + zSize + Private: + __str__ #Overridden String method of class + +########################################################################### + +Crypter = Class + Public: + SetMode + GenerateKey + ClientGenerateKey + ClientPreSharedKeys + ClientExchangeKeys + ServerGenerateKey + ServerGenerateKeys + GetServerCertificateChain + ServerSetKey + SetEncryptionKeys + Encrypt + Decrypt + Send + Recv + SplitData + Protected: + con + mode + Exit #This could be simply a local variable however the general "server" program layout uses this system and later ajustments may uses this as an attribute, therefore it is an attribute not a local variable + AESKey + IV + EncryptAES + DecryptAES + +########################################################################### + +DBConnection = Class + Public: + Exit + Table_Headers + AddDrone + RemoveDrone + DroneCheckCredentials + DroneGetDroneInfo + GetDroneID + GetDroneCredentials + SetDroneCredentials + CheckDroneOwnership + GetDroneInfo + GetDronesUSer + GetDronesAll + UpdateDroneStatus + GetUserID + GetUsername + AddUser + CheckCredentials + SetFlightVisibility + SetAccountType + UserChangePassword + GetFlightsUser + GetFlightsAll + AddFlight + RemoveFlight + CheckForFlight + GetFlight + MarkFlightComplete + GetCompletedFlightIDs + CleanFlights + GetFlightWaypoints + GetFlightWaypointsUSer + GetFlightWaypointsAll + AddWaypoint + AddWaypoints + RemoveFlightWaypoints + CleanCompletedFlightWaypoints + AddMonitor + MonitorCheckCredentials + MonitorChangePassword + GetMonitorDrones + GetMonitorFlights + GetMonitorFlightWaypoints + GetMonitorID + GetMonitorName + AddMonitorPermission + RemoveMonitorPermission + ModifyMonitorPermissionDate + GEtMonitorPermissionUser + GetMonitorPermissionMonitor + UpdateMonitorPermissionLastAccessed + CleanMonitorPermissions + AddNoFlyZone + RemoveNoFlyZone + ModifyNoFlyZoneLevel + GetNoFlyZone + Bot_addValue + Bot_getCommand + Bot_getStack + Bot_getStackSize + Bot_flushStack + Bot_SetUserID + Bot_GetUserID + ResetDatabase + Protected: + db_con + cur + cur_header + +############################################################################## + +DroneInterface = Class + Public: + Send + Recv + Login + UpdateDroneStatus + DroneGetDroneInfo + CheckForFlight + GetFlight + GetFlightWaypoints + MarkFlightComplete + Exit + Protected: + con + Crypto + DroneName + +Flight = Class + Public: + Get_FlightID + Get_DronID + Get_StartCoord + Get_EndCoord + Get_StartTime + Get_ETA + Get_Distance + Protected: + FlightID + DroneID + StartCoord + EndCoord + StartTime + ETA + Distance + +Waypoint = Class + Public: + Get_FlightID + Get_WaypointNumber + Get_Coord + Get_ETA + Protected: + FlightID + WaypointNumber + Coord + ETA + +DroneInformation = Class + Public: + Get_DroneID + Get_UserID + Get_DroneName + Get_DroneType + Get_DroneSpeed + Get_DroneRane + Get_DroneWeight + Private: + DroneID + UserID + DroneName + DroneType + DroneSpeed + DroneRange + DroneWeight + + +############################################################################ + + + + diff --git a/docs/Documentation/Recvall Writeup.odt b/docs/Documentation/Recvall Writeup.odt new file mode 100644 index 0000000..055e4f7 Binary files /dev/null and b/docs/Documentation/Recvall Writeup.odt differ diff --git a/docs/Documentation/Untitled Diagram(5).xml b/docs/Documentation/Untitled Diagram(5).xml new file mode 100644 index 0000000..199c5f8 --- /dev/null +++ b/docs/Documentation/Untitled Diagram(5).xml @@ -0,0 +1 @@ +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 \ No newline at end of file diff --git a/docs/Objectives for AATC NEA.docx b/docs/Objectives for AATC NEA.docx new file mode 100644 index 0000000..21f87bb Binary files /dev/null and b/docs/Objectives for AATC NEA.docx differ diff --git a/docs/Server Process Overview.ods b/docs/Server Process Overview.ods index 8b13789..6ef33c3 100644 Binary files a/docs/Server Process Overview.ods and b/docs/Server Process Overview.ods differ