-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathCommProtoLayout.txt
86 lines (72 loc) · 6.13 KB
/
CommProtoLayout.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
All of these files are structured in a certain way, so as to organize the library architecture, here is the layout:
Inside Directory: CommProto
-------------------------------------------------------------------------------------
| Directory | Purpose | Language |
-------------------------------------------------------------------------------------
| architecture | Intended to hold all files used for operating system | C/C++ |
| | checking, configuration and anything OS specific that | |
| | are not necessary for dealing with in the main src. | |
| | This directory will hold most of the architecture of | |
| | the Communications Protocol. | |
--------------------------------------------------------------------------------------
| connection | Used for holding connection protocols and types. | C/C++ |
--------------------------------------------------------------------------------------
| network | Used for storing network protocol objects and tables. | C/C++ |
--------------------------------------------------------------------------------------
| serialization | Deals with buffering data types and information, into | C/C++ |
| | manageable arrays for sending out. | |
--------------------------------------------------------------------------------------
| encryption | Used for encrypting data objects for sending out. | C/C++ |
--------------------------------------------------------------------------------------
| console | Handles console input and output from/to external | C/C++ |
| | applications. | |
--------------------------------------------------------------------------------------
| pkg | Applicable for packaging and handling package storage. | C/C++ |
--------------------------------------------------------------------------------------
| hash | Houses NGCP hashing for universal use of common packets.| C/C++ |
--------------------------------------------------------------------------------------
| debug | Used for debugging CommProto lib, and handling runtime | C/C++ |
| | requests. | |
--------------------------------------------------------------------------------------
| tools | Contains custom made data structures, certain generic | C/C++ |
| | allocators, possibly some algorithms and what not. We | |
| | Will most likely not need most of this crap, but just | |
| | the data structures. | |
--------------------------------------------------------------------------------------
There will be many more directories being added in to CommProto, all of them must
be involved in the internals of the library ONLY.
Outside of ComProto:
-------------------------------------------------------------------------------------
| build | Will hold tests and our project. | lang |
-------------------------------------------------------------------------------------
| cmake | Any cmake modules that will be added to our build | cmake |
| | script. | |
-------------------------------------------------------------------------------------
| XbeeX | Xbee/Zigbee dependencies that will | C/C++ |
| | be linked to the CommProto library. | |
-------------------------------------------------------------------------------------
| Encryption | Holds third party encryptions for CommProto encrypt. | C/C++ |
-------------------------------------------------------------------------------------
| scripts | Holds scripts to handle autonomy of packaging CommProto.| C/C++ |
-------------------------------------------------------------------------------------
| tests | Holds library tests. | C/C++ |
-------------------------------------------------------------------------------------
| unit | Holds Visionary testing toolset for CommProto testing. | C/C++ |
-------------------------------------------------------------------------------------
target: C++11-14 is mandatory. All Platforms must conform to modern C++, otherwise this library will not
be of good use.
Should things go right, we shouldn't need to create any scripts (unless we decide to create an installer..)
to generate any more messages, only have the separate platforms do it instead, our job is mainly to create the protocol,
have it be sent securely and properly so that GCS and all other platforms can understand it on their end, and optimize the library so that it may run efficiently.
Architecture Layout:
For the Architecture layout, we are following your idea:
------------------------------------------------------------------------------------------
| Application Layer |
------------------------------------------------------------------------------------------
| Process Layer |
------------------------------------------------------------------------------------------
| Communication layer |
------------------------------------------------------------------------------------------
Application layer : The layer intended for user to communicate to our library, telling it what they want to send and expect to receive.
Process Layer : The layer intended to process information and pack it for sending out.
Communication Layer : The layer intended to send out the information and receive. This will be our lowest layer, which will do a good amount of the work.