Edge Node side:
Requirements:
- create a TeCoLa Docker environment.
- python 2.7
EdgeServer.py : It is a TeCoLa mission program that runs the EdgeServer entity. To start a EdgeServer a unique id should be assigned:
python EdgeServer.py -z|--zone [zoneID]
Cloud Side
Requiremets:
- python 3.8.10
Entities:
- Registry.py : without this entity the system fails to start its executions:
python.py Registry.py
. - FTPServer.py : runs in the background and handles the Edge Server's FTP request during the "file space synchronitation".
- before execution the space_file/ directory should be already created.
python.py FTPServer.py
.
- before execution the space_file/ directory should be already created.
- LogServer.py : runs in the background, accepts Edge Server's messages through a TCP connection.
python.py LogServer.py
. - TaskManager.py : provides the command-line interface to user.
python.py LogServer.py
.
User - Commands
$ list [ <zone-id>| * ]
$ reset [ <zone-id>| * ]
$ kill
$ stat
$ run <edgeTask>@[zone1<arg1,arg2,..>;..] | ... | <managerTask>@[zone1;..]<arg1,arg2..>
Demo Job In the demo_job directory, there is an example of a pipeline of tasks:
- scannerTask.py drone task for scanning a rectangle
- detectorTask.py:
- requires the configuration files from demo_job/config. that belongs to yolo-real-time-object-detection
- python modules (for python 2):
- sudo pip2 install numpy==1.15.0
- pip2 install opencv-python==4.2.0.32
- sudo apt-get install libglib2.0-0
- sudo apt-get install libSM.so.6
- sudo apt-get install -y libsm6 libxext6
- sudo apt-get install -y install -y libxrender-dev
- sudo apt-get install -y libxrender-dev
- aggreagatorTask.py
run command (supposing you have two zones: zoneA, zoneB):
run scannerTask.py@[zoneA<'uav1',37.9278579,23.6500001>;zoneB<'uav2',37.927858,23.661409901>] | detectorTask.py@[zoneA<'tmp','.'>;zoneB<'tmp','.'>] | aggregatorTask.py@[zoneA;zoneB]<'zoneA','zoneB'>