From aa33dc36d8ad5fac751a7f74e92580e878a916f8 Mon Sep 17 00:00:00 2001 From: Konstantin Lampalzer Date: Sat, 16 Jan 2021 01:32:48 +0100 Subject: [PATCH 001/246] Add ghpages script --- .gitignore | 2 -- .idea/vcs.xml | 7 +++++++ docs/source/lib/Battery.rst | 7 +++++++ docs/source/lib/Buzzer.rst | 7 +++++++ docs/source/lib/IRSensor.rst | 7 +++++++ docs/source/lib/Motor.rst | 7 +++++++ docs/source/lib/Servo.rst | 7 +++++++ sphinx_to_github.sh | 21 +++++++++++++++++++++ 8 files changed, 63 insertions(+), 2 deletions(-) create mode 100644 .idea/vcs.xml create mode 100644 docs/source/lib/Battery.rst create mode 100644 docs/source/lib/Buzzer.rst create mode 100644 docs/source/lib/IRSensor.rst create mode 100644 docs/source/lib/Motor.rst create mode 100644 docs/source/lib/Servo.rst create mode 100755 sphinx_to_github.sh diff --git a/.gitignore b/.gitignore index 8649d80..d2ec111 100644 --- a/.gitignore +++ b/.gitignore @@ -128,8 +128,6 @@ dist/ downloads/ eggs/ .eggs/ -lib/ -lib64/ parts/ sdist/ var/ diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..be2ec28 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/docs/source/lib/Battery.rst b/docs/source/lib/Battery.rst new file mode 100644 index 0000000..c9505fb --- /dev/null +++ b/docs/source/lib/Battery.rst @@ -0,0 +1,7 @@ +.. _lib_battery: + +Battery +======= + +.. autoclass:: compLIB.Battery.Battery + :members: \ No newline at end of file diff --git a/docs/source/lib/Buzzer.rst b/docs/source/lib/Buzzer.rst new file mode 100644 index 0000000..8a1894a --- /dev/null +++ b/docs/source/lib/Buzzer.rst @@ -0,0 +1,7 @@ +.. _lib_buzzer: + +Buzzer +======= + +.. autoclass:: compLIB.Buzzer.Buzzer + :members: \ No newline at end of file diff --git a/docs/source/lib/IRSensor.rst b/docs/source/lib/IRSensor.rst new file mode 100644 index 0000000..d320c0f --- /dev/null +++ b/docs/source/lib/IRSensor.rst @@ -0,0 +1,7 @@ +.. _lib_irsensor: + +Infrared Sensor +================ + +.. autoclass:: compLIB.IRSensor.IRSensor + :members: \ No newline at end of file diff --git a/docs/source/lib/Motor.rst b/docs/source/lib/Motor.rst new file mode 100644 index 0000000..2d26d06 --- /dev/null +++ b/docs/source/lib/Motor.rst @@ -0,0 +1,7 @@ +.. _lib_motor: + +Motor +===== + +.. autoclass:: compLIB.Motor.Motor + :members: \ No newline at end of file diff --git a/docs/source/lib/Servo.rst b/docs/source/lib/Servo.rst new file mode 100644 index 0000000..eebedc7 --- /dev/null +++ b/docs/source/lib/Servo.rst @@ -0,0 +1,7 @@ +.. _lib_servo: + +Servo +===== + +.. autoclass:: compLIB.Servo.Servo + :members: \ No newline at end of file diff --git a/sphinx_to_github.sh b/sphinx_to_github.sh new file mode 100755 index 0000000..fedfc2a --- /dev/null +++ b/sphinx_to_github.sh @@ -0,0 +1,21 @@ +cd docs +rm -rf build +rm -rf gh-pages + +make html + +git clone git@github.com:F-WuTS/compLIB.git gh-pages + +cd gh-pages +git checkout gh-pages + +cp -r ../build/html/ . + +git add . +git commit -a -m "Update documentation" +git push origin gh-pages + +cd .. +rm -rf gh-pages + +cd .. \ No newline at end of file From ec0b5562cf619111da5b7b2ff7dce1916b45dca9 Mon Sep 17 00:00:00 2001 From: Konstantin Lampalzer Date: Sat, 16 Jan 2021 01:55:22 +0100 Subject: [PATCH 002/246] Add code examples --- docs/source/lib/Battery.rst | 20 ++++++++++++++++++-- docs/source/lib/Buzzer.rst | 22 ++++++++++++++++++++-- docs/source/lib/Motor.rst | 20 ++++++++++++++++++-- 3 files changed, 56 insertions(+), 6 deletions(-) diff --git a/docs/source/lib/Battery.rst b/docs/source/lib/Battery.rst index c9505fb..306730e 100644 --- a/docs/source/lib/Battery.rst +++ b/docs/source/lib/Battery.rst @@ -1,7 +1,23 @@ .. _lib_battery: Battery -======= +######## + +Class Documentation +******************** .. autoclass:: compLIB.Battery.Battery - :members: \ No newline at end of file + :members: + + +Examples +********* + +Printing percentage +==================== + +.. code-block:: python + + from compLIB.Battery import Battery + + print(Battery.percent()) \ No newline at end of file diff --git a/docs/source/lib/Buzzer.rst b/docs/source/lib/Buzzer.rst index 8a1894a..e5f7790 100644 --- a/docs/source/lib/Buzzer.rst +++ b/docs/source/lib/Buzzer.rst @@ -1,7 +1,25 @@ .. _lib_buzzer: Buzzer -======= +####### + +Class Documentation +******************** .. autoclass:: compLIB.Buzzer.Buzzer - :members: \ No newline at end of file + :members: + +Examples +********* + +Turning buzzer on and off +========================== + +.. code-block:: python + + import time + from compLIB.Buzzer import Buzzer + + Buzzer.set(True) + time.sleep(1) + Buzzer.set(False) \ No newline at end of file diff --git a/docs/source/lib/Motor.rst b/docs/source/lib/Motor.rst index 2d26d06..f5b9d09 100644 --- a/docs/source/lib/Motor.rst +++ b/docs/source/lib/Motor.rst @@ -1,7 +1,23 @@ .. _lib_motor: Motor -===== +###### + +Class Documentation +******************** .. autoclass:: compLIB.Motor.Motor - :members: \ No newline at end of file + :members: + +Examples +********* + +Driving straight (maybe) +========================= + +.. code-block:: python + + from compLIB.Motor import Motor + + for port in range(0, 4): + Motor.power(port, 50) \ No newline at end of file From 2835f3ae42c82123e13322811857ee78bc0cb50c Mon Sep 17 00:00:00 2001 From: Konstantin Lampalzer Date: Sat, 16 Jan 2021 02:01:07 +0100 Subject: [PATCH 003/246] Add how to document your code in readme --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index 54c07fb..50424e7 100644 --- a/README.md +++ b/README.md @@ -6,3 +6,8 @@ Need dependencies: https://github.com/Freenove/Freenove_RPI_WS281x_Python + +# Writing docs + +[Inline documentation example](https://pythonhosted.org/an_example_pypi_project/sphinx.html#full-code-example) +[reStructured Text](https://pythonhosted.org/an_example_pypi_project/sphinx.html#restructured-text-rest-resources) From 651713c081179adf109526bd129091f4fbd0429d Mon Sep 17 00:00:00 2001 From: Konstantin Lampalzer Date: Sat, 16 Jan 2021 02:07:18 +0100 Subject: [PATCH 004/246] Remove useless stuff --- copy.sh | 3 --- 1 file changed, 3 deletions(-) delete mode 100755 copy.sh diff --git a/copy.sh b/copy.sh deleted file mode 100755 index ba4c513..0000000 --- a/copy.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -scp -r compLIB pi@10.20.85.225:/home/pi/compLIB \ No newline at end of file From daef7c97e46432c3a5f02e52983889ac3a185261 Mon Sep 17 00:00:00 2001 From: Konstantin Lampalzer Date: Sat, 16 Jan 2021 02:10:40 +0100 Subject: [PATCH 005/246] Rename folder --- {compLIB => compLib}/ADC.py | 0 {compLIB => compLib}/Api.py | 0 {compLIB => compLib}/Battery.py | 2 +- {compLIB => compLib}/Buzzer.py | 0 {compLIB => compLib}/IRSensor.py | 2 +- {compLIB => compLib}/Motor.py | 2 +- {compLIB => compLib}/PCA9685.py | 0 {compLIB => compLib}/Servo.py | 2 +- {compLIB => compLib}/Ultrasound.py | 0 {compLIB => compLib}/__init__.py | 0 docs/source/conf.py | 2 +- 11 files changed, 5 insertions(+), 5 deletions(-) rename {compLIB => compLib}/ADC.py (100%) rename {compLIB => compLib}/Api.py (100%) rename {compLIB => compLib}/Battery.py (94%) rename {compLIB => compLib}/Buzzer.py (100%) rename {compLIB => compLib}/IRSensor.py (98%) rename {compLIB => compLib}/Motor.py (97%) rename {compLIB => compLib}/PCA9685.py (100%) rename {compLIB => compLib}/Servo.py (95%) rename {compLIB => compLib}/Ultrasound.py (100%) rename {compLIB => compLib}/__init__.py (100%) diff --git a/compLIB/ADC.py b/compLib/ADC.py similarity index 100% rename from compLIB/ADC.py rename to compLib/ADC.py diff --git a/compLIB/Api.py b/compLib/Api.py similarity index 100% rename from compLIB/Api.py rename to compLib/Api.py diff --git a/compLIB/Battery.py b/compLib/Battery.py similarity index 94% rename from compLIB/Battery.py rename to compLib/Battery.py index 164309b..fd95f1d 100644 --- a/compLIB/Battery.py +++ b/compLib/Battery.py @@ -1,4 +1,4 @@ -from compLIB.ADC import ADC +from compLib.ADC import ADC BATTERY_CHANNEL = 2 BATTERY_COUNT = 2 diff --git a/compLIB/Buzzer.py b/compLib/Buzzer.py similarity index 100% rename from compLIB/Buzzer.py rename to compLib/Buzzer.py diff --git a/compLIB/IRSensor.py b/compLib/IRSensor.py similarity index 98% rename from compLIB/IRSensor.py rename to compLib/IRSensor.py index c56076c..f696ed9 100644 --- a/compLIB/IRSensor.py +++ b/compLib/IRSensor.py @@ -1,6 +1,6 @@ import RPi.GPIO as GPIO -from compLIB.ADC import ADC +from compLib.ADC import ADC TOP_LEFT_CHANNEL = 0 TOP_RIGHT_CHANNEL = 1 diff --git a/compLIB/Motor.py b/compLib/Motor.py similarity index 97% rename from compLIB/Motor.py rename to compLib/Motor.py index 5d29f7b..bdff928 100644 --- a/compLIB/Motor.py +++ b/compLib/Motor.py @@ -1,6 +1,6 @@ import atexit -from compLIB.PCA9685 import PCA9685 +from compLib.PCA9685 import PCA9685 pwm = PCA9685(0x40, debug=True) pwm.setPWMFreq(50) diff --git a/compLIB/PCA9685.py b/compLib/PCA9685.py similarity index 100% rename from compLIB/PCA9685.py rename to compLib/PCA9685.py diff --git a/compLIB/Servo.py b/compLib/Servo.py similarity index 95% rename from compLIB/Servo.py rename to compLib/Servo.py index c7674bb..d4a0d58 100644 --- a/compLIB/Servo.py +++ b/compLib/Servo.py @@ -1,4 +1,4 @@ -from compLIB.PCA9685 import PCA9685 +from compLib.PCA9685 import PCA9685 pwm = PCA9685(0x40, debug=True) pwm.setPWMFreq(50) diff --git a/compLIB/Ultrasound.py b/compLib/Ultrasound.py similarity index 100% rename from compLIB/Ultrasound.py rename to compLib/Ultrasound.py diff --git a/compLIB/__init__.py b/compLib/__init__.py similarity index 100% rename from compLIB/__init__.py rename to compLib/__init__.py diff --git a/docs/source/conf.py b/docs/source/conf.py index 66a39ca..35a3f76 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -35,7 +35,7 @@ extensions = [ 'sphinx_rtd_theme' ] -autodoc_mock_imports = ["smbus", "compLIB.PCA9685", "RPi"] +autodoc_mock_imports = ["smbus", "compLib.PCA9685", "RPi"] # Add any paths that contain templates here, relative to this directory. templates_path = ['_templates'] From d3a6fcd42cf5720e6e24dc942726fba84bb052f5 Mon Sep 17 00:00:00 2001 From: Konstantin Lampalzer Date: Sat, 16 Jan 2021 02:11:15 +0100 Subject: [PATCH 006/246] Fix documentation --- docs/source/lib/Battery.rst | 2 +- docs/source/lib/Buzzer.rst | 2 +- docs/source/lib/IRSensor.rst | 2 +- docs/source/lib/Motor.rst | 2 +- docs/source/lib/Servo.rst | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/source/lib/Battery.rst b/docs/source/lib/Battery.rst index 306730e..59628f9 100644 --- a/docs/source/lib/Battery.rst +++ b/docs/source/lib/Battery.rst @@ -18,6 +18,6 @@ Printing percentage .. code-block:: python - from compLIB.Battery import Battery + from compLib.Battery import Battery print(Battery.percent()) \ No newline at end of file diff --git a/docs/source/lib/Buzzer.rst b/docs/source/lib/Buzzer.rst index e5f7790..5e2d8db 100644 --- a/docs/source/lib/Buzzer.rst +++ b/docs/source/lib/Buzzer.rst @@ -18,7 +18,7 @@ Turning buzzer on and off .. code-block:: python import time - from compLIB.Buzzer import Buzzer + from compLib.Buzzer import Buzzer Buzzer.set(True) time.sleep(1) diff --git a/docs/source/lib/IRSensor.rst b/docs/source/lib/IRSensor.rst index d320c0f..f955b0a 100644 --- a/docs/source/lib/IRSensor.rst +++ b/docs/source/lib/IRSensor.rst @@ -3,5 +3,5 @@ Infrared Sensor ================ -.. autoclass:: compLIB.IRSensor.IRSensor +.. autoclass:: compLib.IRSensor.IRSensor :members: \ No newline at end of file diff --git a/docs/source/lib/Motor.rst b/docs/source/lib/Motor.rst index f5b9d09..258d668 100644 --- a/docs/source/lib/Motor.rst +++ b/docs/source/lib/Motor.rst @@ -17,7 +17,7 @@ Driving straight (maybe) .. code-block:: python - from compLIB.Motor import Motor + from compLib.Motor import Motor for port in range(0, 4): Motor.power(port, 50) \ No newline at end of file diff --git a/docs/source/lib/Servo.rst b/docs/source/lib/Servo.rst index eebedc7..5f1c65a 100644 --- a/docs/source/lib/Servo.rst +++ b/docs/source/lib/Servo.rst @@ -3,5 +3,5 @@ Servo ===== -.. autoclass:: compLIB.Servo.Servo +.. autoclass:: compLib.Servo.Servo :members: \ No newline at end of file From d1a50d4bfc1ae5130970593b5c050762ece08fc2 Mon Sep 17 00:00:00 2001 From: Konstantin Lampalzer Date: Sat, 16 Jan 2021 02:11:22 +0100 Subject: [PATCH 007/246] Fix documentation --- .idea/.gitignore | 3 +++ .idea/compLIB.iml | 14 ++++++++++++++ .idea/inspectionProfiles/profiles_settings.xml | 6 ++++++ .idea/misc.xml | 4 ++++ .idea/modules.xml | 8 ++++++++ 5 files changed, 35 insertions(+) create mode 100644 .idea/.gitignore create mode 100644 .idea/compLIB.iml create mode 100644 .idea/inspectionProfiles/profiles_settings.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/.idea/compLIB.iml b/.idea/compLIB.iml new file mode 100644 index 0000000..79ef678 --- /dev/null +++ b/.idea/compLIB.iml @@ -0,0 +1,14 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml new file mode 100644 index 0000000..105ce2d --- /dev/null +++ b/.idea/inspectionProfiles/profiles_settings.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..abfc5f6 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..bfe6efe --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file From c25715de408a5ecca6257f5000d1913609f41929 Mon Sep 17 00:00:00 2001 From: Konstantin Lampalzer Date: Sat, 16 Jan 2021 02:13:00 +0100 Subject: [PATCH 008/246] Fix documentation --- docs/source/_static/.gitkeep | 0 docs/source/lib/Battery.rst | 2 +- docs/source/lib/Buzzer.rst | 2 +- docs/source/lib/Motor.rst | 2 +- 4 files changed, 3 insertions(+), 3 deletions(-) create mode 100644 docs/source/_static/.gitkeep diff --git a/docs/source/_static/.gitkeep b/docs/source/_static/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/docs/source/lib/Battery.rst b/docs/source/lib/Battery.rst index 59628f9..3a1d26c 100644 --- a/docs/source/lib/Battery.rst +++ b/docs/source/lib/Battery.rst @@ -6,7 +6,7 @@ Battery Class Documentation ******************** -.. autoclass:: compLIB.Battery.Battery +.. autoclass:: compLib.Battery.Battery :members: diff --git a/docs/source/lib/Buzzer.rst b/docs/source/lib/Buzzer.rst index 5e2d8db..9ce4584 100644 --- a/docs/source/lib/Buzzer.rst +++ b/docs/source/lib/Buzzer.rst @@ -6,7 +6,7 @@ Buzzer Class Documentation ******************** -.. autoclass:: compLIB.Buzzer.Buzzer +.. autoclass:: compLib.Buzzer.Buzzer :members: Examples diff --git a/docs/source/lib/Motor.rst b/docs/source/lib/Motor.rst index 258d668..a8be270 100644 --- a/docs/source/lib/Motor.rst +++ b/docs/source/lib/Motor.rst @@ -6,7 +6,7 @@ Motor Class Documentation ******************** -.. autoclass:: compLIB.Motor.Motor +.. autoclass:: compLib.Motor.Motor :members: Examples From 0e0a61d710d7283b36a5ff4efce97eb69ccd89a2 Mon Sep 17 00:00:00 2001 From: joel Date: Sat, 16 Jan 2021 03:09:31 +0100 Subject: [PATCH 009/246] finished api client implementation added tests for api (compapi should run in the background or be installed) --- .idea/.gitignore | 5 + .idea/compLIB.iml | 7 +- .../inspectionProfiles/profiles_settings.xml | 3 +- .idea/misc.xml | 2 +- .idea/vcs.xml | 1 - compLib/Api.py | 28 ++-- test.py | 132 ++++++++++++++++++ 7 files changed, 162 insertions(+), 16 deletions(-) create mode 100644 test.py diff --git a/.idea/.gitignore b/.idea/.gitignore index 26d3352..73f69e0 100644 --- a/.idea/.gitignore +++ b/.idea/.gitignore @@ -1,3 +1,8 @@ # Default ignored files /shelf/ /workspace.xml +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml +# Editor-based HTTP Client requests +/httpRequests/ diff --git a/.idea/compLIB.iml b/.idea/compLIB.iml index 79ef678..e2d46e8 100644 --- a/.idea/compLIB.iml +++ b/.idea/compLIB.iml @@ -2,13 +2,12 @@ + - - - \ No newline at end of file diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml index 105ce2d..0eefe32 100644 --- a/.idea/inspectionProfiles/profiles_settings.xml +++ b/.idea/inspectionProfiles/profiles_settings.xml @@ -1,6 +1,5 @@ - \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index abfc5f6..a2e120d 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,4 +1,4 @@ - + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml index be2ec28..94a25f7 100644 --- a/.idea/vcs.xml +++ b/.idea/vcs.xml @@ -2,6 +2,5 @@ - \ No newline at end of file diff --git a/compLib/Api.py b/compLib/Api.py index bd5fe7e..2492733 100644 --- a/compLib/Api.py +++ b/compLib/Api.py @@ -8,26 +8,38 @@ API_URL_GET_OP = API_URL + "getOp" API_URL_GET_GOAL = API_URL + "getGoal" API_URL_GET_ITEMS = API_URL + "getItems" +import json +import os + +API_URL = os.getenv("API_URL", "http://localhost:5000/") + "api/" +API_URL_GET_POS = API_URL + "getPos" +API_URL_GET_OP = API_URL + "getOp" +API_URL_GET_GOAL = API_URL + "getGoal" +API_URL_GET_ITEMS = API_URL + "getItems" +API_URL_GET_PARK = API_URL + "getPark" +API_URL_PAY_PARK = API_URL + "payPark" +API_URL_SIMON_SAYS = API_URL + "simonSays" + class Seeding: @staticmethod - def get_park(): - pass + def get_park() -> int: + return json.loads(requests.get(API_URL_GET_PARK).content)["id"] @staticmethod - def pay_park(): - pass + def pay_park() -> bool: + return requests.get(API_URL_PAY_PARK).status_code == 200 @staticmethod - def simon_says(): - pass + def simon_says() -> int: + return json.loads(requests.get(API_URL_SIMON_SAYS).content)["id"] class Position: - def __init__(self, x, y, rotation): + def __init__(self, x, y, degrees): self.x = x self.y = y - self.rotation = rotation + self.degrees = degrees class DoubleElim: diff --git a/test.py b/test.py new file mode 100644 index 0000000..a5de56b --- /dev/null +++ b/test.py @@ -0,0 +1,132 @@ +import json +import os +import time +import unittest +from threading import Thread + +import requests + +# compapi is a dependency for this test +try: + from compapi import server + + START_SERVER = True +except ImportError: + print("[!] error could not import server module from compapi, assuming server is running") + START_SERVER = False + +from multiprocessing import Process + +from compLib import Api + + +class MyTestCase(unittest.TestCase): + def test_get_park(self): + ret = Api.Seeding.get_park() + assert type(ret) is int + got = [] + while len(got) != 4: + ret = Api.Seeding.get_park() + assert 0 <= ret < 4 + if ret not in got: + got.append(ret) + + assert True + + def test_pay_park(self): + ret = Api.Seeding.pay_park() + assert type(ret) is bool + + def test_simon_says(self): + ret = Api.Seeding.simon_says() + assert type(ret) is int + got = [] + while len(got) != 4: + ret = Api.Seeding.simon_says() + if ret != -1: + assert 0 <= ret < 4 + if ret not in got: + got.append(ret) + else: + self.resetApi() + + assert True + + def test_simon_says_iterations(self): + for i in range(0, 4): + ret = Api.Seeding.simon_says() + assert type(ret) is int + assert 0 <= ret < 4 + + # after 4 iterations the api should only return -1 from now + for i in range(0, 10): + assert Api.Seeding.simon_says() == -1 + + # after api reset this test should work again + self.resetApi() + + for i in range(0, 4): + ret = Api.Seeding.simon_says() + assert type(ret) is int + assert 0 <= ret < 4 + + for i in range(0, 10): + assert Api.Seeding.simon_says() == -1 + + def test_simon_says_non_reapet(self): + """ + Checks if simons says does not send the robot to the + same position again. + """ + + last_pos = Api.Seeding.simon_says() + for i in range(0, 100): + next_pos = Api.Seeding.simon_says() + if next_pos == -1: + last_pos = -1 # state is reset, so reset here as well + self.resetApi() + continue + assert last_pos != next_pos + last_pos = next_pos + + def test_get_position(self): + response = Api.DoubleElim.get_position() + assert type(response) == Api.Position + assert 0 <= response.x + assert 0 <= response.y + assert 0 <= response.degrees <= 360 + + def test_get_opponent(self): + response = Api.DoubleElim.get_opponent() + assert type(response) == Api.Position + + def test_get_goal(self): + response = Api.DoubleElim.get_goal() + assert type(response) == Api.Position + assert 0 <= response.x + assert 0 <= response.y + assert response.degrees == -1 + + def test_get_items(self): + response = Api.DoubleElim.get_items() + assert type(response) == list + + def setUp(self) -> None: + if START_SERVER: + self.server = Process(target=server.app.run, kwargs={"host": "0.0.0.0", "port": "5000"}) + self.server.start() + time.sleep(0.25) + else: + self.resetApi() + + def tearDown(self) -> None: + if START_SERVER: + self.server.terminate() + self.server.join() + + def resetApi(self): + assert requests.get(Api.API_URL + "resetState").status_code == 200 + + +if __name__ == '__main__': + unittest.main() From b1478b77b4d8bc0bea716ae82f03a4dca276c57e Mon Sep 17 00:00:00 2001 From: Tamas Sel Date: Sat, 16 Jan 2021 15:06:53 +0100 Subject: [PATCH 010/246] Corrected a calculation error in the battery percentage --- compLib/Battery.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/compLib/Battery.py b/compLib/Battery.py index fd95f1d..9cb76e9 100644 --- a/compLib/Battery.py +++ b/compLib/Battery.py @@ -4,7 +4,7 @@ BATTERY_CHANNEL = 2 BATTERY_COUNT = 2 BATTERY_MULTIPLIER = 3 BATTERY_MIN_VOLTAGE = 3.6 -BATTERY_MAX_VOLTAGE = 4.1 +BATTERY_MAX_VOLTAGE = 4.2 adc = ADC() @@ -21,4 +21,4 @@ class Battery(object): :rtype: int """ voltage = adc.read(BATTERY_CHANNEL) * BATTERY_MULTIPLIER - return int((voltage - BATTERY_MIN_VOLTAGE) / BATTERY_MAX_VOLTAGE * 100) + return int(((voltage / BATTERY_COUNT) - BATTERY_MIN_VOLTAGE) / (BATTERY_MAX_VOLTAGE - BATTERY_MIN_VOLTAGE) * 100) From 1b6fd1cfdf1f9f20ea19947662628ac303d70335 Mon Sep 17 00:00:00 2001 From: joel Date: Sat, 16 Jan 2021 18:55:10 +0100 Subject: [PATCH 011/246] small changes --- build_newversion.sh | 23 +++++++++++++++++++++++ compLib/Api.py | 9 --------- compLib/__init__.py | 2 +- init_gbp.sh | 0 4 files changed, 24 insertions(+), 10 deletions(-) create mode 100644 build_newversion.sh create mode 100644 init_gbp.sh diff --git a/build_newversion.sh b/build_newversion.sh new file mode 100644 index 0000000..ddbc170 --- /dev/null +++ b/build_newversion.sh @@ -0,0 +1,23 @@ +#!/usr/bin/env bash +# use this to create a new version, be sure to push the existing /debian folder from the old one +new_version="0.0.2" +python3 setup.py sdist +cd dist || exit +mkdir build_${new_version} +mv *-${new_version}.tar.gz build_${new_version} +cd build_${new_version} || exit +tar -xzmf *-${new_version}.tar.gz +new_version="complib-${new_version}" +cd ${new_version} || exit + +if [ -d "debian" ]; then + echo "Found debian folder" +else + echo "Could not find debian folder, cloning repo" + git clone https://github.com/F-WuTS/complib-DEB.git + mv complib-DEB debian + git init +fi + +#debmake -b":python3" +#gbp buildpackage --git-sign-tags --git-keyid=97B61E4D515353C0A498D2AB22680B5AAC0C4FCE --git-ignore-new # git ignore while developing diff --git a/compLib/Api.py b/compLib/Api.py index 2492733..b977402 100644 --- a/compLib/Api.py +++ b/compLib/Api.py @@ -2,15 +2,6 @@ import requests import json import os -API_URL = os.getenv("API_URL", "http://localhost:5000/") -API_URL_GET_POS = API_URL + "getPos" -API_URL_GET_OP = API_URL + "getOp" -API_URL_GET_GOAL = API_URL + "getGoal" -API_URL_GET_ITEMS = API_URL + "getItems" - -import json -import os - API_URL = os.getenv("API_URL", "http://localhost:5000/") + "api/" API_URL_GET_POS = API_URL + "getPos" API_URL_GET_OP = API_URL + "getOp" diff --git a/compLib/__init__.py b/compLib/__init__.py index b3c06d4..a0235ce 100644 --- a/compLib/__init__.py +++ b/compLib/__init__.py @@ -1 +1 @@ -__version__ = "0.0.1" \ No newline at end of file +__version__ = "0.0.2" \ No newline at end of file diff --git a/init_gbp.sh b/init_gbp.sh new file mode 100644 index 0000000..e69de29 From b2a085eab32721cd69c0b7cedf27d9cabd734af8 Mon Sep 17 00:00:00 2001 From: Konstantin Lampalzer Date: Sat, 16 Jan 2021 20:44:53 +0100 Subject: [PATCH 012/246] Add logstash logger --- .idea/compLIB.iml | 3 +- .idea/misc.xml | 2 +- compLib/LogstashLogging.py | 72 ++++++++++++++++++++++++++++++++++++++ compLib/__init__.py | 7 +++- 4 files changed, 80 insertions(+), 4 deletions(-) create mode 100644 compLib/LogstashLogging.py diff --git a/.idea/compLIB.iml b/.idea/compLIB.iml index e2d46e8..4a206a1 100644 --- a/.idea/compLIB.iml +++ b/.idea/compLIB.iml @@ -2,10 +2,9 @@ - - + diff --git a/.idea/misc.xml b/.idea/misc.xml index a2e120d..1dae23d 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,4 +1,4 @@ - + \ No newline at end of file diff --git a/compLib/LogstashLogging.py b/compLib/LogstashLogging.py new file mode 100644 index 0000000..5e417b3 --- /dev/null +++ b/compLib/LogstashLogging.py @@ -0,0 +1,72 @@ +import logging +import sys +import requests + +from logstash_async.transport import HttpTransport +from logstash_async.handler import AsynchronousLogstashHandler + +host = 'logs.robo4you.at' +port = 443 + +logstash_logger = logging.getLogger('logstash') +logstash_logger.setLevel(logging.INFO) + +transport = HttpTransport( + host, + port, + username="robo", + password="competition", + timeout=10.0, +) + +asynchronousLogstashHandler = AsynchronousLogstashHandler( + host, + port, + transport=transport, + database_path='logstash_test.db' +) + +class StreamToLogger(object): + """ + Fake file-like stream object that redirects writes to a logger instance. + """ + def __init__(self, log_level=logging.INFO): + self.logger = logging.getLogger('logstash') + self.console = sys.stdout + self.log_level = log_level + self.linebuf = '' + + def write(self, buf): + self.console.write(buf) + temp_linebuf = self.linebuf + buf + self.linebuf = '' + for line in temp_linebuf.splitlines(True): + if line[-1] == '\n': + self.logger.log(self.log_level, line.rstrip()) + else: + self.linebuf += line + + def flush(self): + self.console.flush() + if self.linebuf != '': + self.logger.log(self.log_level, self.linebuf.rstrip()) + self.linebuf = '' + asynchronousLogstashHandler.flush() + +try: + requests.head(f"http://{host}:{port}") + logstash_logger.addHandler(asynchronousLogstashHandler) + + sl = StreamToLogger(logging.INFO) + sys.stdout = sl + +except requests.exceptions.ConnectionError as identifier: + print(f"Could not connect to {host}!") + pass + + + + + + + diff --git a/compLib/__init__.py b/compLib/__init__.py index a0235ce..8afaf7d 100644 --- a/compLib/__init__.py +++ b/compLib/__init__.py @@ -1 +1,6 @@ -__version__ = "0.0.2" \ No newline at end of file +__version__ = "0.0.2" + +import compLib.LogstashLogging +import logging + +print("Starting compLib...") \ No newline at end of file From 73284ceab867965e580992713b60be149018259d Mon Sep 17 00:00:00 2001 From: joel Date: Sat, 16 Jan 2021 21:21:00 +0100 Subject: [PATCH 013/246] removed .idea from git tracking added new logging dependency --- .gitignore | 4 ++-- .idea/.gitignore | 8 -------- .idea/compLIB.iml | 12 ------------ .idea/inspectionProfiles/profiles_settings.xml | 5 ----- .idea/misc.xml | 4 ---- .idea/modules.xml | 8 -------- .idea/vcs.xml | 6 ------ init_gbp.sh | 0 setup.py | 6 ++++-- 9 files changed, 6 insertions(+), 47 deletions(-) delete mode 100644 .idea/.gitignore delete mode 100644 .idea/compLIB.iml delete mode 100644 .idea/inspectionProfiles/profiles_settings.xml delete mode 100644 .idea/misc.xml delete mode 100644 .idea/modules.xml delete mode 100644 .idea/vcs.xml delete mode 100644 init_gbp.sh diff --git a/.gitignore b/.gitignore index d2ec111..8c9cdf5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ - +.idea # Created by https://www.toptal.com/developers/gitignore/api/python,pycharm,code # Edit at https://www.toptal.com/developers/gitignore?templates=python,pycharm,code @@ -249,4 +249,4 @@ dmypy.json # profiling data .prof -# End of https://www.toptal.com/developers/gitignore/api/python,pycharm,code \ No newline at end of file +# End of https://www.toptal.com/developers/gitignore/api/python,pycharm,code diff --git a/.idea/.gitignore b/.idea/.gitignore deleted file mode 100644 index 73f69e0..0000000 --- a/.idea/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -# Default ignored files -/shelf/ -/workspace.xml -# Datasource local storage ignored files -/dataSources/ -/dataSources.local.xml -# Editor-based HTTP Client requests -/httpRequests/ diff --git a/.idea/compLIB.iml b/.idea/compLIB.iml deleted file mode 100644 index 4a206a1..0000000 --- a/.idea/compLIB.iml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml deleted file mode 100644 index 0eefe32..0000000 --- a/.idea/inspectionProfiles/profiles_settings.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml deleted file mode 100644 index 1dae23d..0000000 --- a/.idea/misc.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml deleted file mode 100644 index bfe6efe..0000000 --- a/.idea/modules.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml deleted file mode 100644 index 94a25f7..0000000 --- a/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/init_gbp.sh b/init_gbp.sh deleted file mode 100644 index e69de29..0000000 diff --git a/setup.py b/setup.py index db3c254..5aa0da1 100644 --- a/setup.py +++ b/setup.py @@ -29,10 +29,12 @@ setuptools.setup( license="proprietary", install_requires=[ "smbus", - "requests" + "requests", + "python-logstash-async" ], setup_requires=[ "smbus", - "requests" + "requests", + "python-logstash-async" ] ) From 8bc35858fb192fd8f18454754647cf5ef6360376 Mon Sep 17 00:00:00 2001 From: HerrNamenlos123 Date: Sat, 16 Jan 2021 22:40:33 +0100 Subject: [PATCH 014/246] Added Ultrasonic sensor --- compLib/Ultrasonic.py | 107 ++++++++++++++++++++++++++++++++++++++++++ compLib/Ultrasound.py | 106 ----------------------------------------- 2 files changed, 107 insertions(+), 106 deletions(-) create mode 100644 compLib/Ultrasonic.py delete mode 100644 compLib/Ultrasound.py diff --git a/compLib/Ultrasonic.py b/compLib/Ultrasonic.py new file mode 100644 index 0000000..2ecbf60 --- /dev/null +++ b/compLib/Ultrasonic.py @@ -0,0 +1,107 @@ +import time +import RPi.GPIO as GPIO + +trigger_pin = 27 +echo_pin = 22 +speed_of_sound_mps = 340 # in m/s + +rising_found = False +rising_time = 0 +falling_found = False +falling_time = 0 + +class Ultrasonic: + + @staticmethod + def __send_trigger(): + GPIO.setup(trigger_pin, GPIO.OUT) + GPIO.output(trigger_pin, False) # Ensure a clean transition + time.sleep(0.000005) + GPIO.output(trigger_pin, True) # Trigger now + time.sleep(0.000010) + GPIO.output(trigger_pin, False) + + @staticmethod + def __signal_start_callback(channel): + global rising_found + global rising_time + rising_found = True + rising_time = time.process_time_ns() + + @staticmethod + def __signal_end_callback(channel): + global falling_found + global falling_time + falling_found = True + falling_time = time.process_time_ns() + + @staticmethod + def __measure_pulse(timeout = 1000000) -> int: + """ Measure the length of a pulse in us. When either the pulse doesn't start in [timeout] us + or the pulse is longer than [timeout] us, 0 is returned. + + :param timeout: Timeout in us + :return: The length of the pulse or 0 on timeout + :rtype: int + """ + + global rising_found + global rising_time + global falling_found + global falling_time + + # Setup pin + GPIO.setup(echo_pin, GPIO.IN) + + # Wait for the rising edge + rising_found = False + GPIO.add_event_detect(echo_pin, GPIO.RISING, callback = Ultrasonic.__signal_start_callback) + start = time.process_time_ns() + while (time.process_time_ns() < start + timeout * 1000 and not rising_found): + pass + + GPIO.remove_event_detect(echo_pin) + if (not rising_found): + return 0 + + # Wait for the falling edge + falling_found = False + GPIO.add_event_detect(echo_pin, GPIO.FALLING, callback = Ultrasonic.__signal_end_callback) + start = time.process_time_ns() + while (time.process_time_ns() < start + timeout * 1000 and not falling_found): + pass + + GPIO.remove_event_detect(echo_pin) + if (not falling_found): + return 0 + + # Finally, return the time difference + return int((falling_time - rising_time) / 1000) + + @staticmethod + def get_distance() -> float: + """ Get the distance from the Ultrasonic sensor in cm. + Returns 'NaN' when the result is invalid. + + :return: The distance in cm or 'NaN' + :rtype: float + """ + GPIO.setmode(GPIO.BCM) + + # Trigger the measurement + Ultrasonic.__send_trigger() + + # The pulse length in us + pulse = Ultrasonic.__measure_pulse() + + if (pulse == 0): + print("invalid") + return float('NaN') + + # Convert the speed of sound from m/s to cm/us for convenience + speed_of_sound_cmpus = speed_of_sound_mps / 10000 + + # Convert us time to cm distance + distance = (pulse / 2) * speed_of_sound_cmpus + + return distance diff --git a/compLib/Ultrasound.py b/compLib/Ultrasound.py deleted file mode 100644 index 6cfbd89..0000000 --- a/compLib/Ultrasound.py +++ /dev/null @@ -1,106 +0,0 @@ -import time -from Motor import * -import RPi.GPIO as GPIO -from servo import * -from PCA9685 import PCA9685 - - -class Ultrasonic: - def __init__(self): - GPIO.setwarnings(False) - self.trigger_pin = 27 - self.echo_pin = 22 - GPIO.setmode(GPIO.BCM) - GPIO.setup(self.trigger_pin, GPIO.OUT) - GPIO.setup(self.echo_pin, GPIO.IN) - - def send_trigger_pulse(self): - GPIO.output(self.trigger_pin, True) - time.sleep(0.00015) - GPIO.output(self.trigger_pin, False) - - def wait_for_echo(self, value, timeout): - count = timeout - while GPIO.input(self.echo_pin) != value and count > 0: - count = count - 1 - - def get_distance(self): - distance_cm = [0, 0, 0, 0, 0] - for i in range(3): - self.send_trigger_pulse() - self.wait_for_echo(True, 10000) - start = time.time() - self.wait_for_echo(False, 10000) - finish = time.time() - pulse_len = finish - start - distance_cm[i] = pulse_len / 0.000058 - distance_cm = sorted(distance_cm) - return int(distance_cm[2]) - - def run_motor(self, L, M, R): - if (L < 30 and M < 30 and R < 30) or M < 30: - self.PWM.setMotorModel(-1450, -1450, -1450, -1450) - time.sleep(0.1) - if L < R: - self.PWM.setMotorModel(1450, 1450, -1450, -1450) - else: - self.PWM.setMotorModel(-1450, -1450, 1450, 1450) - elif L < 30 and M < 30: - PWM.setMotorModel(1500, 1500, -1500, -1500) - elif R < 30 and M < 30: - PWM.setMotorModel(-1500, -1500, 1500, 1500) - elif L < 20: - PWM.setMotorModel(2000, 2000, -500, -500) - if L < 10: - PWM.setMotorModel(1500, 1500, -1000, -1000) - elif R < 20: - PWM.setMotorModel(-500, -500, 2000, 2000) - if R < 10: - PWM.setMotorModel(-1500, -1500, 1500, 1500) - else: - self.PWM.setMotorModel(600, 600, 600, 600) - - def run(self): - self.PWM = Motor() - self.pwm_S = Servo() - for i in range(30, 151, 60): - self.pwm_S.setServoPwm('0', i) - time.sleep(0.2) - if i == 30: - L = self.get_distance() - elif i == 90: - M = self.get_distance() - else: - R = self.get_distance() - while True: - for i in range(90, 30, -60): - self.pwm_S.setServoPwm('0', i) - time.sleep(0.2) - if i == 30: - L = self.get_distance() - elif i == 90: - M = self.get_distance() - else: - R = self.get_distance() - self.run_motor(L, M, R) - for i in range(30, 151, 60): - self.pwm_S.setServoPwm('0', i) - time.sleep(0.2) - if i == 30: - L = self.get_distance() - elif i == 90: - M = self.get_distance() - else: - R = self.get_distance() - self.run_motor(L, M, R) - - -ultrasonic = Ultrasonic() -# Main program logic follows: -if __name__ == '__main__': - print('Program is starting ... ') - try: - ultrasonic.run() - except KeyboardInterrupt: # When 'Ctrl+C' is pressed, the child program destroy() will be executed. - PWM.setMotorModel(0, 0, 0, 0) - ultrasonic.pwm_S.setServoPwm('0', 90) \ No newline at end of file From 134cd3a30e09f55c11b17f9123387e5191e7e823 Mon Sep 17 00:00:00 2001 From: Joel Date: Sat, 16 Jan 2021 23:33:09 +0100 Subject: [PATCH 015/246] added more api documentation new build process --- build.sh | 7 ------- build_deb.sh | 8 ++++++++ build_newversion.sh | 23 ----------------------- compLib/Api.py | 29 +++++++++++++++++++++++++---- init_build.sh | 25 ------------------------- postinstall.sh | 14 ++++++++++++++ setup.py | 17 ++++++----------- 7 files changed, 53 insertions(+), 70 deletions(-) delete mode 100644 build.sh create mode 100644 build_deb.sh delete mode 100644 build_newversion.sh delete mode 100755 init_build.sh create mode 100644 postinstall.sh diff --git a/build.sh b/build.sh deleted file mode 100644 index 6b518df..0000000 --- a/build.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/usr/bin/env bash -python3 setup.py sdist -cd dist || exit -tar -xzmf *.tar.gz -cd complib-0.0.1 || exit -debmake -b":python3" -gbp buildpackage --git-sign-tags --git-keyid=97B61E4D515353C0A498D2AB22680B5AAC0C4FCE --git-ignore-new # git ignore while developing \ No newline at end of file diff --git a/build_deb.sh b/build_deb.sh new file mode 100644 index 0000000..3ac3f82 --- /dev/null +++ b/build_deb.sh @@ -0,0 +1,8 @@ +#!/usr/bin/zsh +# be sure to change version if needed! +fpm -s python --python-bin python3 --python-pip pip3 --python-package-name-prefix python3 \ + -m '"Joel Klimont" ' \ + --license 'proprietary' \ + --description 'Library for robot used in the competition' \ + --after-install postinstall.sh \ + -v 0.0.2 -t deb setup.py diff --git a/build_newversion.sh b/build_newversion.sh deleted file mode 100644 index ddbc170..0000000 --- a/build_newversion.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env bash -# use this to create a new version, be sure to push the existing /debian folder from the old one -new_version="0.0.2" -python3 setup.py sdist -cd dist || exit -mkdir build_${new_version} -mv *-${new_version}.tar.gz build_${new_version} -cd build_${new_version} || exit -tar -xzmf *-${new_version}.tar.gz -new_version="complib-${new_version}" -cd ${new_version} || exit - -if [ -d "debian" ]; then - echo "Found debian folder" -else - echo "Could not find debian folder, cloning repo" - git clone https://github.com/F-WuTS/complib-DEB.git - mv complib-DEB debian - git init -fi - -#debmake -b":python3" -#gbp buildpackage --git-sign-tags --git-keyid=97B61E4D515353C0A498D2AB22680B5AAC0C4FCE --git-ignore-new # git ignore while developing diff --git a/compLib/Api.py b/compLib/Api.py index b977402..060bd1a 100644 --- a/compLib/Api.py +++ b/compLib/Api.py @@ -15,14 +15,23 @@ API_URL_SIMON_SAYS = API_URL + "simonSays" class Seeding: @staticmethod def get_park() -> int: + """Get a parkingsapce from the api. + :return: An int between 0 and 3 + """ return json.loads(requests.get(API_URL_GET_PARK).content)["id"] @staticmethod def pay_park() -> bool: + """Pay for parking. + :return: True if successful, False if not successful + """ return requests.get(API_URL_PAY_PARK).status_code == 200 @staticmethod def simon_says() -> int: + """Get next simon says zone from the api. + :return: An int between 0 and 3 or -1 after making this request 5 times. + """ return json.loads(requests.get(API_URL_SIMON_SAYS).content)["id"] @@ -35,20 +44,32 @@ class Position: class DoubleElim: @staticmethod - def get_position(): + def get_position() -> Position: + """Get position of the robot + :return: A Position object with robot position + """ response = json.loads(requests.get(API_URL_GET_POS).content) return Position(response["x"], response["y"], response["degrees"]) @staticmethod - def get_opponent(): + def get_opponent() -> Position: + """Get position of the opponents robot + :return: A Position object with opponents robot position + """ response = json.loads(requests.get(API_URL_GET_OP).content) return Position(response["x"], response["y"], response["degrees"]) @staticmethod - def get_goal(): + def get_goal() -> Position: + """Get position of the goal + :return: A Position object with x and y coordinates of the goal, rotation is always -1 + """ response = json.loads(requests.get(API_URL_GET_GOAL).content) return Position(response["x"], response["y"], -1) @staticmethod - def get_items(): + def get_items() -> list: + """Get a list with all current items + :return: A list will all items currently on the game field. Items are dictionaries that look like: {"id": 0} + """ return json.loads(requests.get(API_URL_GET_ITEMS).content) diff --git a/init_build.sh b/init_build.sh deleted file mode 100755 index 1cedad2..0000000 --- a/init_build.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/usr/bin/env bash - -# DO NOT RUN UNLESS YOUR REALLY KNOW WHAT YOU ARE DOING - -DEBEMAIL="joel.klimont@gmail.com" -DEBFULLNAME="Joel Klimont" -export DEBEMAIL DEBFULLNAME -python3 setup.py sdist -cd dist || exit -tar -xzmf *.tar.gz -cd complib-0.0.1 || exit -git init -git remote add origin https://github.com/F-WuTS/complib-DEB.git -git fetch origin -git checkout -b master --track origin/master -gbp import-orig -u 0.0.1 --pristine-tar --sign-tags --no-interactive ../complib-0.0.1.tar.gz -mv setup.py setup.py.old -echo "#!/usr/bin/env python3" >> setup.py -cat setup.py.old >> setup.py -debmake -b":python3" -mv setup.py.old setup.py -git add debian/ -git commit -m "init" -gbp buildpackage --git-pristine-tar --git-sign-tags --git-keyid=97B61E4D515353C0A498D2AB22680B5AAC0C4FCE -git push --set-upstream origin master diff --git a/postinstall.sh b/postinstall.sh new file mode 100644 index 0000000..1bb1f0b --- /dev/null +++ b/postinstall.sh @@ -0,0 +1,14 @@ +install_package() { + echo "Installing package '$1' via pip3" + pip3 install "$1" + if [ $? -eq 0 ]; then + echo "Successfully installed pip3 package '$1'" + else + echo "Could not install pip3 package '$1'" + exit 1 + fi +} + +install_package "smbus" +install_package "requests" +install_package "python-logstash-async" \ No newline at end of file diff --git a/setup.py b/setup.py index 5aa0da1..db795ac 100644 --- a/setup.py +++ b/setup.py @@ -26,15 +26,10 @@ setuptools.setup( "License :: Other/Proprietary License", "Operating System :: Unix" ], - license="proprietary", - install_requires=[ - "smbus", - "requests", - "python-logstash-async" - ], - setup_requires=[ - "smbus", - "requests", - "python-logstash-async" - ] + license="proprietary"#, + #install_requires=[ + # "smbus", + # "requests", + # "python-logstash-async" + #] ) From 3b18b0a66cab895a2626e9e60af4b6240c4e97ac Mon Sep 17 00:00:00 2001 From: Konstantin Lampalzer Date: Sat, 16 Jan 2021 23:41:39 +0100 Subject: [PATCH 016/246] Documentation --- README.md | 9 +++++++++ compLib/LogstashLogging.py | 2 +- docs/source/index.rst | 16 ++++++---------- docs/source/other/usage.rst | 28 ++++++++++++++++++++++++++++ 4 files changed, 44 insertions(+), 11 deletions(-) create mode 100644 docs/source/other/usage.rst diff --git a/README.md b/README.md index 50424e7..5a9ed13 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,15 @@ Need dependencies: https://github.com/Freenove/Freenove_RPI_WS281x_Python +# Dependencies + +## Building documentation +``` +pip install sphinx-rtd-theme +``` + +* [Sphinx](https://www.sphinx-doc.org/en/master/usage/installation.html) + # Writing docs [Inline documentation example](https://pythonhosted.org/an_example_pypi_project/sphinx.html#full-code-example) diff --git a/compLib/LogstashLogging.py b/compLib/LogstashLogging.py index 5e417b3..d507925 100644 --- a/compLib/LogstashLogging.py +++ b/compLib/LogstashLogging.py @@ -23,7 +23,7 @@ asynchronousLogstashHandler = AsynchronousLogstashHandler( host, port, transport=transport, - database_path='logstash_test.db' + database_path='logs.db' ) class StreamToLogger(object): diff --git a/docs/source/index.rst b/docs/source/index.rst index c207a90..2c0ae75 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -1,25 +1,21 @@ -Welcome to CompLib's documentation! -=================================== +Robo4you Competition Library +############################# .. toctree:: :maxdepth: 2 :caption: Contents: -Indices and tables -================== - -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` +CompLib is the library used in the robo4you competition 2021. -Table of Contents -^^^^^^^^^^^^^^^^^ +Contents +********* .. toctree:: :maxdepth: 5 :glob: self + other/usage lib/* diff --git a/docs/source/other/usage.rst b/docs/source/other/usage.rst new file mode 100644 index 0000000..93b2425 --- /dev/null +++ b/docs/source/other/usage.rst @@ -0,0 +1,28 @@ +.. _other_usage: + +Usage +###### + +.. code-block:: python + + import time + from compLib.Motor import * + + def forward(): + for port in range(0, 3): + Motor.power(port, 30); + + def backward(): + for port in range(0, 3): + Motor.power(port, -30); + + def main(): + print("hallo ich bin ein roboter beep buup") + + forward() + time.sleep(1) + backward() + time.sleep(1) + + if __name__ == '__main__': + main() \ No newline at end of file From 24817dcc325aa2beca88b20a0b8b40f786f9f81c Mon Sep 17 00:00:00 2001 From: Joel Date: Sat, 16 Jan 2021 23:56:39 +0100 Subject: [PATCH 017/246] updated to newest version --- build_deb.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build_deb.sh b/build_deb.sh index 3ac3f82..1aab7da 100644 --- a/build_deb.sh +++ b/build_deb.sh @@ -5,4 +5,4 @@ fpm -s python --python-bin python3 --python-pip pip3 --python-package-name-prefi --license 'proprietary' \ --description 'Library for robot used in the competition' \ --after-install postinstall.sh \ - -v 0.0.2 -t deb setup.py + -v 0.0.2-3 -t deb setup.py From 327f87ca34e84857faf5a8e5d0bfda5530963244 Mon Sep 17 00:00:00 2001 From: Joel Date: Sun, 17 Jan 2021 03:04:38 +0100 Subject: [PATCH 018/246] chnages in build --- build_deb.sh | 16 +++++++++++++++- changelog | 5 +++++ compLib/Api.py | 7 +++++++ docs/source/lib/Api.rst | 7 +++++++ setup.py | 4 +++- 5 files changed, 37 insertions(+), 2 deletions(-) create mode 100644 changelog create mode 100644 docs/source/lib/Api.rst diff --git a/build_deb.sh b/build_deb.sh index 1aab7da..f6c58ea 100644 --- a/build_deb.sh +++ b/build_deb.sh @@ -1,8 +1,22 @@ #!/usr/bin/zsh +export PYTHONDONTWRITEBYTECODE=1 + # be sure to change version if needed! fpm -s python --python-bin python3 --python-pip pip3 --python-package-name-prefix python3 \ -m '"Joel Klimont" ' \ --license 'proprietary' \ --description 'Library for robot used in the competition' \ --after-install postinstall.sh \ - -v 0.0.2-3 -t deb setup.py + --deb-generate-changes \ + --deb-dist "buster" \ + --deb-priority "optional" \ + --deb-changelog changelog \ + --deb-upstream-changelog changelog \ + -v 0.0.2-4 -t deb setup.py + +# --deb-field "Distribution: stable" \ + +sudo apt purge python3-complib -y +sudo apt install ./python3-* +sudo apt search complib +#ar vx ./python3* \ No newline at end of file diff --git a/changelog b/changelog new file mode 100644 index 0000000..a6c361a --- /dev/null +++ b/changelog @@ -0,0 +1,5 @@ +python3-complib (0.0.2-4) stable; urgency=low + + * Initial release. + + -- Joel Klimont Fri, 15 Jan 2021 23:14:01 +0100 \ No newline at end of file diff --git a/compLib/Api.py b/compLib/Api.py index 060bd1a..a96332a 100644 --- a/compLib/Api.py +++ b/compLib/Api.py @@ -13,6 +13,9 @@ API_URL_SIMON_SAYS = API_URL + "simonSays" class Seeding: + """Class used for communicating with seeding api + """ + @staticmethod def get_park() -> int: """Get a parkingsapce from the api. @@ -36,6 +39,8 @@ class Seeding: class Position: + """Datastructure for holding a position + """ def __init__(self, x, y, degrees): self.x = x self.y = y @@ -43,6 +48,8 @@ class Position: class DoubleElim: + """Class used for communicating with double elimination api + """ @staticmethod def get_position() -> Position: """Get position of the robot diff --git a/docs/source/lib/Api.rst b/docs/source/lib/Api.rst new file mode 100644 index 0000000..717baff --- /dev/null +++ b/docs/source/lib/Api.rst @@ -0,0 +1,7 @@ +.. _lib_api: + +Api +===== + +.. automodule:: compLib.Api + :members: \ No newline at end of file diff --git a/setup.py b/setup.py index db795ac..2c53186 100644 --- a/setup.py +++ b/setup.py @@ -12,10 +12,12 @@ else: setuptools.setup( name="complib", - version="0.0.1", + version="0.0.2", author="F-WuTs", author_email="--", description="", + summary="Library for the competition", + platforms=["any"], long_description=long_description, long_description_content_type="text/markdown", url="https://github.com/F-WuTS/compLIB", From 5fbe0bcb8daa46411eafd415a501b8dec3c1fb22 Mon Sep 17 00:00:00 2001 From: Joel Date: Sun, 17 Jan 2021 04:36:25 +0100 Subject: [PATCH 019/246] added examples to Api.rst updated version changes in build --- build_deb.sh | 8 +++--- docs/source/conf.py | 2 +- docs/source/lib/Api.rst | 64 +++++++++++++++++++++++++++++++++++++++-- 3 files changed, 67 insertions(+), 7 deletions(-) diff --git a/build_deb.sh b/build_deb.sh index f6c58ea..f9a81fe 100644 --- a/build_deb.sh +++ b/build_deb.sh @@ -8,13 +8,13 @@ fpm -s python --python-bin python3 --python-pip pip3 --python-package-name-prefi --description 'Library for robot used in the competition' \ --after-install postinstall.sh \ --deb-generate-changes \ - --deb-dist "buster" \ --deb-priority "optional" \ - --deb-changelog changelog \ - --deb-upstream-changelog changelog \ - -v 0.0.2-4 -t deb setup.py + -v 0.0.2-6 -t deb setup.py +# --deb-changelog changelog \ +# --deb-upstream-changelog changelog \ # --deb-field "Distribution: stable" \ +# --deb-dist "stable" \ sudo apt purge python3-complib -y sudo apt install ./python3-* diff --git a/docs/source/conf.py b/docs/source/conf.py index 35a3f76..dd8f84a 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -23,7 +23,7 @@ copyright = '2021, robo4you' author = 'robo4you' # The full version, including alpha/beta/rc tags -release = '0.0.1' +release = '0.0.2' # -- General configuration --------------------------------------------------- diff --git a/docs/source/lib/Api.rst b/docs/source/lib/Api.rst index 717baff..44b2a43 100644 --- a/docs/source/lib/Api.rst +++ b/docs/source/lib/Api.rst @@ -3,5 +3,65 @@ Api ===== -.. automodule:: compLib.Api - :members: \ No newline at end of file +Seeding +******** + +.. autoclass:: compLib.Api.Seeding + :members: + +Double Elimination +******************* + +.. autoclass:: compLib.Api.DoubleElim + :members: + +Position +********* + +.. autoclass:: compLib.Api.Position + :members: + + +Examples +********* + +Calling Seeding API +--------------------- + +.. code-block:: python + + from compLib.Api import Seeding + + park = Seeding.get_park() + print(f"I should move to parking position: {park}") + + if park == 0: + print(f"I can't move to this position yet :(") + elif park == 1: + print(f"Moving to position 1!") + # drive to parking position using Motors module... + print(f"Now hopefully at position 1") + # drive back using Motors module... + elif park == 2: + # do something similar to park == 1.. + elif park == 3: + # do something similar to park == 1.. + + success = Seeding.pay_park() + if success: + print(f"We scored some points!") + else: + print(f"We failed :(") + +Calling Double Elimination API +---------------------------------- + +.. code-block:: python + + from compLib.Api import DoubleElim + + position = DoubleElim.get_position() + print(f"Position of my robot is: x={position.x}, y={position.y} and rotation is: {position.degrees}") + + goal = DoubleElim.get_goal() + print(f"Goal is at: x={goal.x}, y={goal.y}") From 7de2d921d8e68f50087ed967342a57f1573a08f0 Mon Sep 17 00:00:00 2001 From: Joel Date: Sun, 17 Jan 2021 04:50:10 +0100 Subject: [PATCH 020/246] fixed error in doc build script, causing html folder to be copied instead of its contents --- sphinx_to_github.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sphinx_to_github.sh b/sphinx_to_github.sh index fedfc2a..74cd21b 100755 --- a/sphinx_to_github.sh +++ b/sphinx_to_github.sh @@ -1,4 +1,4 @@ -cd docs +cd docs || exit rm -rf build rm -rf gh-pages @@ -6,10 +6,10 @@ make html git clone git@github.com:F-WuTS/compLIB.git gh-pages -cd gh-pages +cd gh-pages || exit git checkout gh-pages -cp -r ../build/html/ . +cp -r ../build/html/* . git add . git commit -a -m "Update documentation" From 210d377e9b977e38420d4251f9b11912cbdbad0f Mon Sep 17 00:00:00 2001 From: Konstantin Lampalzer Date: Sun, 17 Jan 2021 15:07:11 +0100 Subject: [PATCH 021/246] Fix api documentation --- compLib/Api.py | 14 ++++++++++++++ docs/.gitignore | 3 ++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/compLib/Api.py b/compLib/Api.py index a96332a..e59f646 100644 --- a/compLib/Api.py +++ b/compLib/Api.py @@ -19,21 +19,27 @@ class Seeding: @staticmethod def get_park() -> int: """Get a parkingsapce from the api. + :return: An int between 0 and 3 + :rtype: int """ return json.loads(requests.get(API_URL_GET_PARK).content)["id"] @staticmethod def pay_park() -> bool: """Pay for parking. + :return: True if successful, False if not successful + :rtype: bool """ return requests.get(API_URL_PAY_PARK).status_code == 200 @staticmethod def simon_says() -> int: """Get next simon says zone from the api. + :return: An int between 0 and 3 or -1 after making this request 5 times. + :rtype: int """ return json.loads(requests.get(API_URL_SIMON_SAYS).content)["id"] @@ -53,7 +59,9 @@ class DoubleElim: @staticmethod def get_position() -> Position: """Get position of the robot + :return: A Position object with robot position + :rtype: Position """ response = json.loads(requests.get(API_URL_GET_POS).content) return Position(response["x"], response["y"], response["degrees"]) @@ -61,7 +69,9 @@ class DoubleElim: @staticmethod def get_opponent() -> Position: """Get position of the opponents robot + :return: A Position object with opponents robot position + :rtype: Position """ response = json.loads(requests.get(API_URL_GET_OP).content) return Position(response["x"], response["y"], response["degrees"]) @@ -69,7 +79,9 @@ class DoubleElim: @staticmethod def get_goal() -> Position: """Get position of the goal + :return: A Position object with x and y coordinates of the goal, rotation is always -1 + :rtype: Position """ response = json.loads(requests.get(API_URL_GET_GOAL).content) return Position(response["x"], response["y"], -1) @@ -77,6 +89,8 @@ class DoubleElim: @staticmethod def get_items() -> list: """Get a list with all current items + :return: A list will all items currently on the game field. Items are dictionaries that look like: {"id": 0} + :rtype: list """ return json.loads(requests.get(API_URL_GET_ITEMS).content) diff --git a/docs/.gitignore b/docs/.gitignore index c795b05..1e0c211 100644 --- a/docs/.gitignore +++ b/docs/.gitignore @@ -1 +1,2 @@ -build \ No newline at end of file +build +logs.db \ No newline at end of file From 00d6c54cdc27683d28a9b4683aaa12266cd423cc Mon Sep 17 00:00:00 2001 From: Konstantin Lampalzer Date: Mon, 18 Jan 2021 20:02:29 +0100 Subject: [PATCH 022/246] Fix usage example --- docs/source/other/usage.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/source/other/usage.rst b/docs/source/other/usage.rst index 93b2425..8b47eef 100644 --- a/docs/source/other/usage.rst +++ b/docs/source/other/usage.rst @@ -9,11 +9,11 @@ Usage from compLib.Motor import * def forward(): - for port in range(0, 3): + for port in range(0, 4): Motor.power(port, 30); def backward(): - for port in range(0, 3): + for port in range(0, 4): Motor.power(port, -30); def main(): From cb10bb3a4dae7c2f783a35c44aef893e09804f46 Mon Sep 17 00:00:00 2001 From: Joel Date: Mon, 18 Jan 2021 20:07:43 +0100 Subject: [PATCH 023/246] added dependency "python3-pip" to package --- build_deb.sh | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/build_deb.sh b/build_deb.sh index f9a81fe..931982f 100644 --- a/build_deb.sh +++ b/build_deb.sh @@ -9,14 +9,15 @@ fpm -s python --python-bin python3 --python-pip pip3 --python-package-name-prefi --after-install postinstall.sh \ --deb-generate-changes \ --deb-priority "optional" \ - -v 0.0.2-6 -t deb setup.py + -d "python3-pip" \ + -v 0.0.2-8 -t deb setup.py # --deb-changelog changelog \ # --deb-upstream-changelog changelog \ # --deb-field "Distribution: stable" \ # --deb-dist "stable" \ -sudo apt purge python3-complib -y -sudo apt install ./python3-* -sudo apt search complib +#sudo apt purge python3-complib -y +#sudo apt install ./python3-* +#sudo apt search complib #ar vx ./python3* \ No newline at end of file From ce1c82a19274c0ed936f6975d1ba8f4256fc651b Mon Sep 17 00:00:00 2001 From: Konstantin Lampalzer Date: Thu, 21 Jan 2021 16:43:01 +0000 Subject: [PATCH 024/246] Add more logging and exception --- compLib/ADC.py | 3 +++ compLib/Api.py | 21 +++++++++++++++++---- compLib/Battery.py | 5 ++++- compLib/Buzzer.py | 7 +++++-- compLib/IRSensor.py | 1 + compLib/LogstashLogging.py | 28 +++++++++++++++++----------- compLib/Motor.py | 8 ++++++++ compLib/__init__.py | 2 +- 8 files changed, 56 insertions(+), 19 deletions(-) diff --git a/compLib/ADC.py b/compLib/ADC.py index bb7e5b8..b4297ab 100644 --- a/compLib/ADC.py +++ b/compLib/ADC.py @@ -1,5 +1,7 @@ import smbus +from compLib.LogstashLogging import Logging + SINGLE_ENDED = 0x84 ADDRESS = 0x48 @@ -32,4 +34,5 @@ class ADC: voltage = value1 / 255.0 * 3.3 # calculate the voltage value voltage = round(voltage, 2) + Logging.get_logger().debug(f"ADC.read {channel} = {voltage}") return voltage diff --git a/compLib/Api.py b/compLib/Api.py index e59f646..794d86d 100644 --- a/compLib/Api.py +++ b/compLib/Api.py @@ -2,6 +2,8 @@ import requests import json import os +from compLib.LogstashLogging import Logging + API_URL = os.getenv("API_URL", "http://localhost:5000/") + "api/" API_URL_GET_POS = API_URL + "getPos" API_URL_GET_OP = API_URL + "getOp" @@ -23,7 +25,9 @@ class Seeding: :return: An int between 0 and 3 :rtype: int """ - return json.loads(requests.get(API_URL_GET_PARK).content)["id"] + result = json.loads(requests.get(API_URL_GET_PARK).content)["id"] + Logging.get_logger().debug(f"Seeding.get_park = {result}") + return result @staticmethod def pay_park() -> bool: @@ -32,7 +36,9 @@ class Seeding: :return: True if successful, False if not successful :rtype: bool """ - return requests.get(API_URL_PAY_PARK).status_code == 200 + result = requests.get(API_URL_PAY_PARK).status_code == 200 + Logging.get_logger().debug(f"Seeding.pay_park = {result}") + return result @staticmethod def simon_says() -> int: @@ -41,7 +47,9 @@ class Seeding: :return: An int between 0 and 3 or -1 after making this request 5 times. :rtype: int """ - return json.loads(requests.get(API_URL_SIMON_SAYS).content)["id"] + result = json.loads(requests.get(API_URL_SIMON_SAYS).content)["id"] + Logging.get_logger().debug(f"Seeding.simon_says = {result}") + return result class Position: @@ -64,6 +72,7 @@ class DoubleElim: :rtype: Position """ response = json.loads(requests.get(API_URL_GET_POS).content) + Logging.get_logger().debug(f"DoubleElim.get_position = {response}") return Position(response["x"], response["y"], response["degrees"]) @staticmethod @@ -74,6 +83,7 @@ class DoubleElim: :rtype: Position """ response = json.loads(requests.get(API_URL_GET_OP).content) + Logging.get_logger().debug(f"DoubleElim.get_opponent = x:{response}") return Position(response["x"], response["y"], response["degrees"]) @staticmethod @@ -84,6 +94,7 @@ class DoubleElim: :rtype: Position """ response = json.loads(requests.get(API_URL_GET_GOAL).content) + Logging.get_logger().debug(f"DoubleElim.get_goal = x:{response}") return Position(response["x"], response["y"], -1) @staticmethod @@ -93,4 +104,6 @@ class DoubleElim: :return: A list will all items currently on the game field. Items are dictionaries that look like: {"id": 0} :rtype: list """ - return json.loads(requests.get(API_URL_GET_ITEMS).content) + result = json.loads(requests.get(API_URL_GET_ITEMS).content) + Logging.get_logger().debug(f"DoubleElim.get_items = {result}") + return result diff --git a/compLib/Battery.py b/compLib/Battery.py index 9cb76e9..2fc0eb1 100644 --- a/compLib/Battery.py +++ b/compLib/Battery.py @@ -1,4 +1,5 @@ from compLib.ADC import ADC +from compLib.LogstashLogging import Logging BATTERY_CHANNEL = 2 BATTERY_COUNT = 2 @@ -21,4 +22,6 @@ class Battery(object): :rtype: int """ voltage = adc.read(BATTERY_CHANNEL) * BATTERY_MULTIPLIER - return int(((voltage / BATTERY_COUNT) - BATTERY_MIN_VOLTAGE) / (BATTERY_MAX_VOLTAGE - BATTERY_MIN_VOLTAGE) * 100) + result = int(((voltage / BATTERY_COUNT) - BATTERY_MIN_VOLTAGE) / (BATTERY_MAX_VOLTAGE - BATTERY_MIN_VOLTAGE) * 100) + Logging.get_logger().debug(f"Battery.percent = {result}") + return result diff --git a/compLib/Buzzer.py b/compLib/Buzzer.py index 58739ef..4b1329d 100644 --- a/compLib/Buzzer.py +++ b/compLib/Buzzer.py @@ -1,7 +1,8 @@ import atexit - import RPi.GPIO as GPIO +from compLib.LogstashLogging import Logging + GPIO.setwarnings(False) Buzzer_Pin = 17 GPIO.setmode(GPIO.BCM) @@ -18,11 +19,13 @@ class Buzzer: :param on: True if on, False if off """ + Logging.get_logger().debug(f"Buzzer.set {on}") + GPIO.output(Buzzer_Pin, on) @staticmethod def exit(): - Buzzer.set(0) + Buzzer.set(False) atexit.register(Buzzer.exit) diff --git a/compLib/IRSensor.py b/compLib/IRSensor.py index f696ed9..0477c7d 100644 --- a/compLib/IRSensor.py +++ b/compLib/IRSensor.py @@ -1,6 +1,7 @@ import RPi.GPIO as GPIO from compLib.ADC import ADC +from compLib.LogstashLogging import Logging TOP_LEFT_CHANNEL = 0 TOP_RIGHT_CHANNEL = 1 diff --git a/compLib/LogstashLogging.py b/compLib/LogstashLogging.py index d507925..8ff02e3 100644 --- a/compLib/LogstashLogging.py +++ b/compLib/LogstashLogging.py @@ -5,7 +5,7 @@ import requests from logstash_async.transport import HttpTransport from logstash_async.handler import AsynchronousLogstashHandler -host = 'logs.robo4you.at' +host = 'logstash.robo4you.at' port = 443 logstash_logger = logging.getLogger('logstash') @@ -16,7 +16,7 @@ transport = HttpTransport( port, username="robo", password="competition", - timeout=10.0, + timeout=60.0, ) asynchronousLogstashHandler = AsynchronousLogstashHandler( @@ -54,19 +54,25 @@ class StreamToLogger(object): asynchronousLogstashHandler.flush() try: - requests.head(f"http://{host}:{port}") - logstash_logger.addHandler(asynchronousLogstashHandler) + r = requests.head(f"http://{host}:{port}") + if r.status_code == 400: + logstash_logger.addHandler(asynchronousLogstashHandler) - sl = StreamToLogger(logging.INFO) - sys.stdout = sl + sl = StreamToLogger(logging.INFO) + sys.stdout = sl + else: + print(f"Could not connect to {host} -> {r.status_code}!") except requests.exceptions.ConnectionError as identifier: print(f"Could not connect to {host}!") pass +class Logging(object): - - - - - + @staticmethod + def get_logger() -> logging.Logger: + return logstash_logger + + @staticmethod + def set_debug(): + logstash_logger.setLevel(logging.DEBUG) diff --git a/compLib/Motor.py b/compLib/Motor.py index bdff928..73fd1b3 100644 --- a/compLib/Motor.py +++ b/compLib/Motor.py @@ -1,6 +1,7 @@ import atexit from compLib.PCA9685 import PCA9685 +from compLib.LogstashLogging import Logging pwm = PCA9685(0x40, debug=True) pwm.setPWMFreq(50) @@ -21,6 +22,11 @@ class Motor(object): :param port: Port, which the motor is connected to. 0-3, 0 -> top left, 3 -> top right :param percent: Percentage of max speed. between -100 and 100 """ + Logging.get_logger().debug(f"Motor.power {port} {percent}") + + if port < 0 or port >= MOTOR_COUNT: + raise IndexError("Invalid Motor port specified!") + forward = True if percent < 0: percent = abs(percent) @@ -44,6 +50,8 @@ class Motor(object): """ Turns of all motors """ + Logging.get_logger().debug(f"Motor.all_off") + for i in range(0, MOTOR_COUNT): Motor.power(i, 0) diff --git a/compLib/__init__.py b/compLib/__init__.py index 8afaf7d..36693bb 100644 --- a/compLib/__init__.py +++ b/compLib/__init__.py @@ -3,4 +3,4 @@ __version__ = "0.0.2" import compLib.LogstashLogging import logging -print("Starting compLib...") \ No newline at end of file +print(f"Starting compLib! Version: {__version__} ...") \ No newline at end of file From b06962e955edf6122f059be83d18340fd19fc35b Mon Sep 17 00:00:00 2001 From: Joel Date: Thu, 21 Jan 2021 19:37:04 +0100 Subject: [PATCH 025/246] started working on vision package --- README.md | 6 ++ compLib/Vision.py | 144 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 150 insertions(+) create mode 100644 compLib/Vision.py diff --git a/README.md b/README.md index 5a9ed13..f7db811 100644 --- a/README.md +++ b/README.md @@ -20,3 +20,9 @@ pip install sphinx-rtd-theme [Inline documentation example](https://pythonhosted.org/an_example_pypi_project/sphinx.html#full-code-example) [reStructured Text](https://pythonhosted.org/an_example_pypi_project/sphinx.html#restructured-text-rest-resources) + +# Stream Video + +``` +sudo raspivid -t 0 -b 10000000 -w 1920 -h 1080 -fps 30 -n -o - | gst-launch-1.0 fdsrc ! video/x-h264,width=1280,height=720,framerate=30/1,noise-reduction=1,profile=high,stream-format=byte-stream ! h264parse ! queue ! flvmux streamable=true ! rtmpsink location=\"rtmp://10.1.1.68/live/stream\"``` +``` diff --git a/compLib/Vision.py b/compLib/Vision.py new file mode 100644 index 0000000..25f9113 --- /dev/null +++ b/compLib/Vision.py @@ -0,0 +1,144 @@ +import os +import threading + +import cv2 +from flask import Flask, Response + +RTMP_SERVER = os.getenv("RTMP_SERVER", "rtmp://localhost/live/stream") +SERVE_VIDEO = os.getenv("SERVER_SRC", "/live") + +app = Flask(__name__) + +HTML = """ + + + Opencv Output + + +

Opencv Output

+ + + +""" + +# it would be better to use jinja2 here, but I don't want to blow up the package dependencies... +HTML = HTML.replace("{{ VIDEO_DST }}", SERVE_VIDEO) + + +class __Streaming: + """ + Private class for opencv stuff. + + grab frames -> do your own processing -> publish frame -> view on http server + """ + + def __init__(self): + """ + Create instance of __Streaming class + + This is done implicitly when importing the vision module and will only fail if you would + create an object of this class. (There can (SHOULD!) only be one VideCapture) + """ + self.__camera_stream = cv2.VideoCapture(RTMP_SERVER) + #self.__camera_stream = cv2.VideoCapture(0) + self.__newest_frame = None + self.__lock = threading.Lock() + + def get_frame(self): + """ + Grab the newest frame from the rtmp stream. + + :return: An opencv frame + """ + ret, img16 = self.__camera_stream.read() + return img16 + + def publish_frame(self, image): + """ + Publish an opencv frame to the http webserver. + + :param image: Opencv frame that will be published + :return: None + """ + with self.__lock: + self.__newest_frame = image.copy() + + def _newest_frame_generator(self): + """ + Private generator which is called directly from flask server. + + :return: Yields image/jpeg encoded frames published from publish_frame function. + """ + while True: + # use a buffer frame to copy the newest frame with lock and then freeing it immediately + buffer_frame = None + with self.__lock: + if self.__newest_frame is None: + continue + + buffer_frame = self.__newest_frame.copy() + + # encode frame for jpeg stream + (flag, encodedImage) = cv2.imencode(".jpg", buffer_frame) + + # if there was an error try again with the next frame + if not flag: + continue + + # else yield encoded frame with mimetype image/jpeg + yield (b'--frame\r\n' b'Content-Type: image/jpeg\r\n\r\n' + + bytearray(encodedImage) + b'\r\n') + + +# instantiate private class __Streaming +Streaming = __Streaming() + + +@app.route("/live") +def video_feed(): + """ + Define route for serving jpeg stream. + + :return: Return the response generated along with the specific media. + """ + return Response(Streaming._newest_frame_generator(), + mimetype="multipart/x-mixed-replace; boundary=frame") + + +@app.route("/") +def __index(): + """ + Define route for serving a static http site to view the stream. + + :return: Static html page + """ + return HTML + + +def __start_flask(): + """ + Function for running flask server in a thread. + + :return: + """ + app.run(host="0.0.0.0", port=9898, debug=True, threaded=True, use_reloader=False) + + +# start flask service in the background +__webserver_thread = threading.Thread(target=__start_flask) +__webserver_thread.start() + +# for debugging and testing start processing frames and detecting a 6 by 9 calibration chessboard +if __name__ == '__main__': + while True: + frame = Streaming.get_frame() + criteria = (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 30, 0.001) + + # processing + gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) + + # find the chessboard corners + ret, corners = cv2.findChessboardCorners(gray, (6, 9), None) + + cv2.drawChessboardCorners(frame, (6, 9), corners, ret) + Streaming.publish_frame(frame) From 77c2354c00075a00b3241a026b2228a26c207c1a Mon Sep 17 00:00:00 2001 From: Joel Date: Thu, 21 Jan 2021 23:55:26 +0100 Subject: [PATCH 026/246] updated to version 0.0.3 added vision daemon which runs in the background added more documentation to vision module now including opencv dependencies in complib package --- build_deb.sh | 19 +++- compLib/Vision.py | 33 +++--- compLib/VisionDaemon.py | 20 ++++ compLib/__init__.py | 2 +- complib.service | 11 ++ docs/source/lib/Vision.rst | 102 ++++++++++++++++++ docs/source/lib/images/chessboard.jpg | Bin 0 -> 33543 bytes .../source/lib/images/chessboard_detected.jpg | Bin 0 -> 71084 bytes docs/source/lib/images/opencv_http_stream.png | Bin 0 -> 400715 bytes docs/source/lib/images/opencv_processed.png | Bin 0 -> 364619 bytes postinstall.sh | 26 ++++- sphinx_to_github.sh | 4 +- 12 files changed, 201 insertions(+), 16 deletions(-) create mode 100644 compLib/VisionDaemon.py create mode 100644 complib.service create mode 100644 docs/source/lib/Vision.rst create mode 100644 docs/source/lib/images/chessboard.jpg create mode 100644 docs/source/lib/images/chessboard_detected.jpg create mode 100644 docs/source/lib/images/opencv_http_stream.png create mode 100644 docs/source/lib/images/opencv_processed.png diff --git a/build_deb.sh b/build_deb.sh index 931982f..c1961ed 100644 --- a/build_deb.sh +++ b/build_deb.sh @@ -9,8 +9,25 @@ fpm -s python --python-bin python3 --python-pip pip3 --python-package-name-prefi --after-install postinstall.sh \ --deb-generate-changes \ --deb-priority "optional" \ + --deb-systemd "complib.service" \ -d "python3-pip" \ - -v 0.0.2-8 -t deb setup.py + -d "nginx" \ + -d "libnginx-mod-rtmp" \ + -d "libsystemd-dev" \ + -d "python3-systemd" \ + -d "gstreamer1.0-tools" \ + -d "gstreamer1.0-plugins-bad" \ + -d "gstreamer1.0-plugins-base" \ + -d "gstreamer1.0-plugins-good" \ + -d "gstreamer1.0-omx-rpi" \ + -d "gstreamer1.0-omx-rpi-config" \ + -d "opencv-dev" \ + -d "opencv-libs" \ + -d "opencv-licenses" \ + -d "opencv-main" \ + -d "opencv-python" \ + -d "opencv-scripts" \ + -v 0.0.3-3 -t deb setup.py # --deb-changelog changelog \ # --deb-upstream-changelog changelog \ diff --git a/compLib/Vision.py b/compLib/Vision.py index 25f9113..f567e6a 100644 --- a/compLib/Vision.py +++ b/compLib/Vision.py @@ -6,6 +6,7 @@ from flask import Flask, Response RTMP_SERVER = os.getenv("RTMP_SERVER", "rtmp://localhost/live/stream") SERVE_VIDEO = os.getenv("SERVER_SRC", "/live") +BUILDING_DOCS = os.getenv("BUILDING_DOCS", "false") app = Flask(__name__) @@ -27,7 +28,12 @@ HTML = HTML.replace("{{ VIDEO_DST }}", SERVE_VIDEO) class __Streaming: """ - Private class for opencv stuff. + Class that handles rtmp streaming for opencv. + + DO NOT CREATE AN INSTANCE OF THIS CLASS YOURSELF! + + This is automatically done when importing this module. Use Vision.Streaming which is + an instance of this class! grab frames -> do your own processing -> publish frame -> view on http server """ @@ -40,7 +46,7 @@ class __Streaming: create an object of this class. (There can (SHOULD!) only be one VideCapture) """ self.__camera_stream = cv2.VideoCapture(RTMP_SERVER) - #self.__camera_stream = cv2.VideoCapture(0) + # self.__camera_stream = cv2.VideoCapture(0) self.__newest_frame = None self.__lock = threading.Lock() @@ -79,7 +85,7 @@ class __Streaming: buffer_frame = self.__newest_frame.copy() # encode frame for jpeg stream - (flag, encodedImage) = cv2.imencode(".jpg", buffer_frame) + (flag, encoded_image) = cv2.imencode(".jpg", buffer_frame) # if there was an error try again with the next frame if not flag: @@ -87,15 +93,17 @@ class __Streaming: # else yield encoded frame with mimetype image/jpeg yield (b'--frame\r\n' b'Content-Type: image/jpeg\r\n\r\n' + - bytearray(encodedImage) + b'\r\n') + bytearray(encoded_image) + b'\r\n') -# instantiate private class __Streaming -Streaming = __Streaming() +Streaming = None +if BUILDING_DOCS == "false": + # instantiate private class __Streaming + Streaming = __Streaming() @app.route("/live") -def video_feed(): +def __video_feed(): """ Define route for serving jpeg stream. @@ -124,12 +132,13 @@ def __start_flask(): app.run(host="0.0.0.0", port=9898, debug=True, threaded=True, use_reloader=False) -# start flask service in the background -__webserver_thread = threading.Thread(target=__start_flask) -__webserver_thread.start() +if BUILDING_DOCS == "false": + # start flask service in the background + __webserver_thread = threading.Thread(target=__start_flask) + __webserver_thread.start() # for debugging and testing start processing frames and detecting a 6 by 9 calibration chessboard -if __name__ == '__main__': +if __name__ == '__main__' and BUILDING_DOCS == "false": while True: frame = Streaming.get_frame() criteria = (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 30, 0.001) @@ -140,5 +149,5 @@ if __name__ == '__main__': # find the chessboard corners ret, corners = cv2.findChessboardCorners(gray, (6, 9), None) - cv2.drawChessboardCorners(frame, (6, 9), corners, ret) + cv2.drawChessboardCorners(frame, (6, 9), corners, ret) Streaming.publish_frame(frame) diff --git a/compLib/VisionDaemon.py b/compLib/VisionDaemon.py new file mode 100644 index 0000000..c08aa1e --- /dev/null +++ b/compLib/VisionDaemon.py @@ -0,0 +1,20 @@ +import os + +import systemd.daemon +import LogstashLogging +from LogstashLogging import logstash_logger +import logging + +__run = """raspivid -t 0 -b 10000000 -w 1920 -h 1080 -fps 30 -n -o - | gst-launch-1.0 fdsrc ! video/x-h264,width=1280,height=720,framerate=30/1,noise-reduction=1,profile=high,stream-format=byte-stream ! h264parse ! queue ! flvmux streamable=true ! rtmpsink location=\"rtmp://localhost/live/stream\"""" + + +if __name__ == '__main__': + try: + systemd.daemon.notify(systemd.daemon.Notification.READY) + except: + logstash_logger.warning("Warning, old systemd version detected") + systemd.daemon.notify('READY=1') + + logging.info("starting gstreamer background process") + os.system(__run) + logstash_logger.error("gstreamer stopped...") diff --git a/compLib/__init__.py b/compLib/__init__.py index 36693bb..29c6d95 100644 --- a/compLib/__init__.py +++ b/compLib/__init__.py @@ -1,4 +1,4 @@ -__version__ = "0.0.2" +__version__ = "0.0.3" import compLib.LogstashLogging import logging diff --git a/complib.service b/complib.service new file mode 100644 index 0000000..43e3f49 --- /dev/null +++ b/complib.service @@ -0,0 +1,11 @@ +[Unit] +Description=Monitoring service +[Service] +ExecStart=/usr/bin/python3 /usr/local/lib/python3.7/dist-packages/compLib/VisionDaemon.py +Environment="debug=False" +Restart=always +RestartSec=5 +Type=notify +[Install] +Alias=complib +WantedBy=default.target \ No newline at end of file diff --git a/docs/source/lib/Vision.rst b/docs/source/lib/Vision.rst new file mode 100644 index 0000000..8793ad4 --- /dev/null +++ b/docs/source/lib/Vision.rst @@ -0,0 +1,102 @@ +.. _lib_vision: + +Vision +===== + +This module provides an interface for grabbing an rtmp stream and using the images to do some processing in opencv. + +How do I use this module? + +1. Get frames from the raspberry pi camera +2. -- here comes your own processing -- +3. Publish the processed frames on an http server +4. You can view the http stream of your processed images in a web browser + +Opencv Stream +************* + +Because of the rtmp stream needing to buffer some frames and waiting for P-Frames, importing this module might take up +to 5 Seconds. + +.. autoclass:: compLib.Vision.__Streaming + :members: + +Examples +********* + +Using the Vision Module +--------------------- + +.. code-block:: python + + import cv2 + from compLib import Vision + + # get newest opencv frame from camera + frame = Vision.Streaming.get_frame() + + # do some processing with the frame..... + + # publish frame to streaming server + Vision.Streaming.publish_frame(frame) + +Connect the raspberry pi to your internet and view the stream at: "http://your_raspi_ip:9898/". This should display +your raspberry pi camera. Note: the stream will lag a little bit BUT the processing of the image will be done in +realtime. + +The output on the website should show whatever your raspberry pi cam records: + +.. image:: images/opencv_http_stream.png + :width: 680 + :alt: Processed frames from opencv + + +Chessboard Detection +------------------------------------------ + +In this example we process the captured stream of images and want to detect chessboards. Run this example and +point your raspberry pi camera to a chessboard and it should be detected. + +For testing you can point it at this image: + +.. image:: images/chessboard.jpg + :width: 680 + :alt: Chessboard for opencv processing + +.. code-block:: python + + import cv2 + from compLib import Vision + + # get newest opencv frame from camera + frame = Vision.Streaming.get_frame() + + criteria = (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 30, 0.001) + + # convert image to grayscale image + gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) + + # find the chessboard corners + ret, corners = cv2.findChessboardCorners(gray, (6, 9), None) + + # draw detected chessboard position onto the image + cv2.drawChessboardCorners(frame, (6, 9), corners, ret) + + # publish frame to streaming server + Vision.Streaming.publish_frame(frame) + +Connect the raspberry pi to your internet and view the stream at: "http://your_raspi_ip:9898/". + +The output image should look like this: + +.. image:: images/chessboard_detected.jpg + :width: 680 + :alt: Processed frames from opencv + +Here is a screenshot of the stream website while viewing the chessboard in this documentation. + +.. image:: images/opencv_processed.png + :width: 680 + :alt: Processed frames from opencv + + diff --git a/docs/source/lib/images/chessboard.jpg b/docs/source/lib/images/chessboard.jpg new file mode 100644 index 0000000000000000000000000000000000000000..53ffa830f94e264c37a53ab47e55102594e5f213 GIT binary patch literal 33543 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 literal 0 HcmV?d00001 diff --git a/docs/source/lib/images/chessboard_detected.jpg b/docs/source/lib/images/chessboard_detected.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4f64fb6d04f99f4bc732108554e803671db9a0bd GIT binary patch literal 71084 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 O@zy!a%1%F>KmXZZm=Xa1 literal 0 HcmV?d00001 diff --git a/docs/source/lib/images/opencv_http_stream.png b/docs/source/lib/images/opencv_http_stream.png new file mode 100644 index 0000000000000000000000000000000000000000..8fc68536b3da116fe5e96c1284d5e8326ae21fa7 GIT binary patch literal 400715 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 pgJ!zT|tD@eKrw;Etv57gF?Qw>( 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�|I*dQ2GSzIfeEFI@Ymaa{q|g`}eT-OQP*bsYB?| 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�`6RuGKN7?sK%CR+c9 z41Xag#*i5g1{tOI^>nbWsGB;>C$3l}QTfg_oXs>}o?3o$*7C)1&9bp*AOtbTj1l@E zUCPdAtogP0@4J$gzXlrk!SCOpfzqO-tz#SlUE4B_1B+S1#oHBijUa*l#=mT+H9Cn) zbxeM@8SNY-F`~4_X(yo?MsYn3RF6;i=JuL2(}b!bD?^yX-Z2xk=-fhqrqeqoLYY{+ z+Sf8ArAv5n8E%qL%}yIsD&kiq|9?!0ezU=8OYLg@<@bN!Xjv16k>zYgWeq6?QtoLM zbBu=7?ez|o(^}()5vLoJG8CgCrY!Wgt7|s5k>7stRf$qj7)Eq1186K7iTth|`{DYP z2Vhx@MD9cx=w!39B{Cpklwv;bM-6e(t2 zzq(*^e$M9n2D^baO9KkIK>f;;=VnXuK)_f-jDbXy&peFiT4>vY_tZg z1}YLJ_2jfA4Uy;#No#_USfQ;S3Daww%reECq_iR`F$ATeNRB`b8lx>L1y+7!bL&}M z!&wJM9enlZNUlF6)q`X9VC3d=m8P3jtk&lkovE!Ax>#9^wfKIZb~Oq?i(|-gfCweh zBPU`E=m^GYhUn1-`eBQ4vOsDFNeczu2c$J149sfF=o~o*QkYKOa=@8TKBF`-y>Fx3 z*Q8DQzmy`W47k&uRh1>BunTC8(bF^)-g~l^IzeSLF&Q=k+zzlFuGx%+(=$gidqm2f zP47j&rz(s!jALNC8L4AWNS3NSA_vcQ*f8`XBY`0f*sA6A`6a*o`ZG4e4VBTHKK`7y z=Py|1)0#rv1qK>b?wS2 zT9ryBb%)|Tlxs-pRoY1=-W6cyUoAhSgCYuE2H1Z2>f~36#CA(y4##~y}|n4 z;L1B@pbzH&{^bY5_q&WgRkQb(_?3uwqK-IMQ8`OnJ2pe$a^>OG3N)O=j_RnAA#k$e zmJ$U*7SJL>>I41C^Y(h+`DM@d7d=0`*>HX};KxK|6pPkyGIJbt6^q7F8(Fgjd=Lk4 zEUsHhjU-vR*vx?;L`(dH==YSSN?=P}Stb#478i0BX3a)cJuK4`e^2J%pv!j}$+G2pVpuI#!#J*{nkws2fEHBU+hH((~TGKYs3Wf8Y1pCtp8fb#cY! zd__Na8lwcw0BKk#8*#|eFPQ6we%w$mm;CsrZ&33E$%&ITWuY3R^+4^K@5Bvz2$jkU zjye;P{2P_TU@^InRgtVG6jqye#L_85`puS3S&XrK_w7&o{nt3p9$}5bs7M?~ z+NMI2S>IgKE{@STQCrEwYpV)fJL+1q9#aXzjdZ4>cH;Pr$z!x7$9=Y$3`GW&5~{Q# zs43X9glmdU@u6i@?UAjN2nE7bn0MShM@L7*6fwG7U{UIbf=^`u&_%15@3@nu_uKox zFbuRa(Lc6rEA>IvVwB~@Pp^qrH`pF##?azWeISKM(gvgKE+a7)jgv8&8G# zQku4~X$tn1P*vwDa`0d**(!$M!OCJfYiBf#<<*I&@Knpfwq`25M2T)aKUnuf))f|RLiM~EYRzd@r|EL(CK1tIsD5HcwS$N{Sa z$*XFEQgK%yHz9q~0GP{0D5%~!CyiWyPuwyneeO zlQ>B&^|C@$1u~0SthHk%2Z()OeLHe-GxG9g;K!?x=T`%7Z#_O_YNuJYhT~bqNg4i} z(Ixv;=185mV;;#l3j?A{h;k_@mnzpRTEhuu&@%8RGCpUVrhALRB^Vfm{sC99zA8)l;`hLNtv@sP)Wls1p1d; z9}nGA?=wLB(j35#{`^uq$wPmyGvtUfnv?>zP~KhV*lq%2%)4}wpZod`(*SLDs9Y&Op2X7<2b;B$3^fET z*$;n-s1!L-P9a$iO;V4sbGc1OU`k2S#mgcm;mOja8pM5SLij`Wq;62vXG)+Ub-LMUrx~};8>%ZY|zFd;}SA~YMB6JTz5$0Hs z$w`BAkn?q4x3Ie)^4-cfjUj})5f;-RI2lAvPmV|durkz42w;q2%n>+V-#y&l(*#K; zU<*K7)%(iBl-OMNm;oAPsC9$(kV1s0u-29DAE@iPAR`iv9pWe*t|~F)NYADrSoFbsJ+J%*h&{hmGx@g#R4& zRfd0!Ga6Mju)e0QVLSB9k2^dgaTtjNnpsO^LrxZ*JdLX{Ik9MGqzKtZRO#%T689&r z?>@5TnowP16Vhs57|)JPa<&ZWFcPYhPJd4s(lgT}*_dN*QVW;R}kn$dd`w&8<5B_`Du=Q&kvJXAyLs#@W zw6FT`AoSO!gWo4^|F`{>$auUO7?a{^J92R|pmHwFJ8-r3_)>rN$UvnkK>&P$K9RS9 z&!MWFKDn#_YFqx?mdKfzQ=GMi z&z6qQmX70A%qc!5{8l2IYNe@^!entAqqMk`ZD|1^{n-Zjzc%_e-TR3tpj%##QVNx% zp(=!kb2Z!TnzlRU`g+T9IcK}M{C6RCu>Cl&IGS@>b*$_z;fQP8GCXRv?MFZSjur4 ztYp|cK0V>Xpoq`Zrx@O}^kFtUS{Qz@PfAyL}`Ki`jOIM@uV6_NGSu3)W|coQ87Ia6gVI?AYt zV`3bVEE2Y+at$Gl#1v)t43b~utR@8yDF~`mI$w{Dj_@I1T8qykQE9AkI{|=nBBh1mV*Ol1>;()|JXABiEHh(P+cmTIQ{xZ48x>14&4r zoIyEDKW;%=60kfumO8vRlqL^}GRaCJbMo}LBst9F9C6Mtl6KVL*!SexQ7eu2(9JdL z?TRlxJ0XV+DL_(*ZdMh?cP0&y+A4I8)J78jM?Go!WaP^f!-H0LKUa0AL6hrmiVV_B z)qjGXrW|RS8sZ?a;Uzj~KA-dE^=rV;bq%+hz_`2ukigfDR>^A zESYsRt#J&)K;Lf|#|_RostPvSfz4(lB(RmnIY++@oSk<3%OB7A{Aq>GiQixUE5G~O zueiP0Fq=2K+D0EDv!+3t8Qb*+KlIer5uBC#OKWM3Qx-eLw%7=}W{|WOkgLh0P!RGg za)`+hEnU4vXxKYWx%8f4=pmHOl!&af>u&xzgU($I;x8M--j}nNKao!UcuwDko`d@6 zYyQ}4NI88F)%=S~5I^)7Dw51VbcU!BK1w4~XDnG|*1c!7_0kSi8%~TyS5{7OVb-6gHJ&Ke=+(8 zpOjGeA;@MIj2d&^3Dr3m0AtPv z15pW(M3+!VLsV0bs3I1Wt*#s@C${6j7(B*WR7h;rJ@a|RcDtpn+^+sC#ub&5-=`Gt zBQ#ab#myz-IO2U`-d1e468c&4XLp01I0e<6QuyijDY3i3@&^|0`}&sq2;Df27z0>o zOb9`mMw~H((U;C%b|=Bfp(RM5My31Cp8LY}v~v)p6wp@h*mTLEQdng%2(7NOrm@o7 z8bT0#7#U?0F+^+`2JHX1ShBJ7A%e9i z1&gC4V;G1zU`Wy(T|V!=?=eQ)TNX#S!0Y7){K)uiO{J`w_0W6`QYDTlR&#oRLt122BsFm5({{_GJ)^99Z%#=NEPZ%IkX zNS-}SQzQu5l5=9Y>{ze1JbijZ2pfit=h5+!AHRLU(Q!viBa1~#&Y97V%$kO}t_h$|*ronVckJG-;u$ zl@4Og`!i@b|LxGf{XvjB8KiqNnW)zS&Kde)L({e-rI^h+`t7<%+dfSL_-hVE@B4mx z{o@MNZSksswI}vLs+hEq6F?kMwnjUN1RsMZX~UbF9`p2wWVHzF5s`i>A;?M_36G7L ztfUVZC>lTcO4itHgzDSHjPFl5kWg9^$G9(RF9=c!LgOkE88;i2O^qLVI;U|~pz1hA zY^Bjwk+Q)DFwWBV8~iX3y@+SMAK3Kr*i|dd239LvF`P&srXi_JQiV=SdrDXB-c;G_ zWowYyJpBMgl%|_hK@3T5TCE95P%dpGAT!00rtTntPNJ(wQ+``cqUJlK%XDWkI{8Zpi#tw}LKwvtIVQFvK; zh>eydTbCZq9HDa1)``X@DxFGYm!ql;IgY3tv06Cv7*jE3K-Ja7c`WalkC~)25yj}G zMI#pU)&h}Ks>w77LqgLvHMXnh+J?$O?HXblWFShRoa8LdJ8J|<)hZK-B*0b4L@@7RyIC9T|o-7R&3`mo#(5d_JeHTgGu@97k-?$2#W-Ly$-%U0M_p#1Qb~ zD2KGV++mu%@k8y0BJT&epOiTW(uSC%m(v<|uOIgV$dF1Opo!BxjixTBz1?YNA8IN1 zC8*iMIy`mvarxAZF8%Vy|J4rOUyJ_zr3chZRvzOb%}i6birX=AeG@oek6dj=#*n$) zMi!0Z?6{>nQj%|Cjg%%N7>3AZ2=rs59};6}yva(5UT@d1vwv4IW%!GkF=oav9ppt) z)fv!EjAF)!KHntpar!y?s=}!>RI7|L(o~cM;AAw3N-HX@X>2ax?-DVx)BIVas;;$# zs+R1*xzn^pn1!v65?&nzQEzHP>jV|l#mp9x?EBiL(xwwc-~G@K_=!R1hvDjfZRhXa zM4u#Bev)Gm%N{T5mXC?LZn(PHa&mgaYUP=A6<2yK2zY*A2+Zn%jLuIR7Jn86{4{~O zjfA+tB!f$il%$Cvkf<8V7z35o)Q!Pr&E|Sd@1Z+7!)Hav37<9DSd`H+hbuWpGUW2YiKYp@Nh)}U3y>cq20M_j*o ziOGrDI%bQG*XL{MR&jZKPB$xPR*0ySNGcPwlAvU*Fi$l{{R@==^ z*t=eDdG_opR@=8?tv7+q`VD7~{{xi)lN&)otIU_b`HWx`c2>i1LkJ_LTF}S9I!7-1 z4a3!ju`0&-~(r~4u5sSNaSX-;&eVo6BxHWr;7#a z)rzjJ2z?oDTtgfKT{~lKx724DPAg2a;A(iovYQdc4XfKLPMA z^+@du?V@EnuF|aY_nXi%SVs+;lKTa?O?U(Y3ED)W}t2= z#?4010j=>qvR=X9SFC!)^4Rh8=`qSxB;CUpQCV7Io}6}k@o0fjGNr4ONq&P*l5-Yw z!kUWBdgS>}=bW4zF`pkp8X5XQoZUv@lczBTZB1!S@F*gt0y8=A4qUdfjO=seq!T&a zGj=G9c10rL9(I$eJ^K8vv_c&i1s)h+iq4RtDcuc@Q?Ii+L>~7)@9yyPQ0CbK1C&Y! z!D-VeVUIRWxuAy?Qu{U%ktgh3&v#$luB-H86zT^C!TiCL+dV~jXXwhg>D|mym5lYekABR!pe_ zRPpejRgMOEKOk%U?)`D6Nh+leQ^1Wc2ge{ZEI}eSv=didwwjPeW^KnRj8sRDdH&`# zcHR=KVN@Bf11W1l*2K~$j4E%A7StwdfxbkO6^S9@i``)wc5{hCNF|aX7o;i@sViHY zjhf9^v|__3-M~ij|FlX)q?*dol28VQ6!1Ya7CobL7UvQoof5HXRvJ~_XvxUy*{*ZR z^%H$q!jp|6kw5<7 zoRbz*3G~e*ab#yCZY9bPUN;TeY0=M3#v5HpmW>vAPN76QQ=oH}py2!#6qOLngk(dJ3I3k%` z@&IMMQ_|8ALK)=D11IGCQKQ7qN2}Dk&R3Nl*ksh64kCR3(aP@(f4@vicYp%&uBq%} z+QRqIW`7+N@GtA~{q-22to_<#j%OA2)G=!;ZD*L>_H4&US1D#yIgV&8e5p@R8M30F zcfu;oDtTXPXIONOdH4Ub_hwIWB>A1+$A9h~M;>+H=;>>Ema{{V+?8=9QKD?0^u#|{ zkJ6jWWVU)+aYf@AcZPGZZva(=syrgXFFpJ`GP8g}1L&UN49(bWFvC^ItjGxWpMTE= zXN7$%>_WyE)wXWO$Zm-2hCr-sTw*|^Xw{>wHE`b2wiajQP}gcsY%Hm2;%7~oDho73 zT0&tLYO!KXuCQY8Stv&3IIR;d7nUb0t+k^L=WbrhQf7#mT}W((#1vHDd|vcxJFlC6 zE}2juP$)KIU8?(Sd3f?8zw+xJhSvT55ac6sc^FPh6=a@BN9LF*lM_ZFPBL9nTZInU zy_MyB(_!y>pnwkzulItWov~`T$mkIyYoL}D0ax9S8E6_d(|}!d{N^9Gw14(7Q{OPS zi6FW53>s2x9X;v^BhEC4Bof*{p-JRf7x$J11=SqsC^$NJvr9*AUd1nG#Lo4!Le~M~^mrL_z>r zT1XiwnN$ZV?>)uq2H&l7Q#rpnv}+!rl^al z^>lsDUW8P1V4i8pn2uV~l;-?LQ(ef%MX8j6)T%#?`q4n@lr+n$7;tTa2}NDMrr?~Y zGq>@G)2b%@4E5gfzCJ7S{azQXX^MvfXN;*DqS8Hd###&BFqOzSCiVfsK5{Wd#I!8? zMKxbJ$dPHx7@`K&N_EPM)<&6}szu5YLn4Hcl-23G%q@+#h_Oe5NJ@w`_?k|uDB`Jt zD<3p<_lKAA7Gp(uw*~$?^>=SJalA?|KQvgq+n?um8f0JH{AL8>p{5XZjURiHUw!F6 zyc73fGr;@Md8dsc59y)a{5``xmT4RKU^DPy)3P0vjd;BD^t~Rw@wMi{ zYQ$MC8ra-=gB7h-TQ-i%b;J3pMXa!!GMg!r(ZF+43fp~PQ)}aN@6sQwGjz_-dDR`Z zm17U!_#~`5Thuxt3YwewLAFa_;8Rkp?|h)gv*8JymRzkRLiH(I3;Jskl0O$ zUC8VwWk*)6&^k>=uwn>t);nq!vDiZ6Rr>V1yu*I4oxk6?KFI5O+gA=r>Kiy7%A9lb ziwcY4Kr~}rB^*u4V}c0W2EmE zOuIeVT81#uS`DKuNp05SIAD!B54{s0KuN4t3rdbU4Anr*W#3ZH8qGSKM#S{gzk(PQ ztD2%YgHO*qUJNBgt=jRHX+Pqex_sZdeW+XHb?LFST1mItW31+%&4XVEYC=gu zLr&`KlKZ)2)>@>bszFuAzjY1SX(;jRD4rV;a*ni}Foet$M{_Nh`y0u7Q?C>57yTxh*yNhs0`iMk=w!5@a<6QSi>H(WO}svZ06$pBE}hVG4%S zIJRM|+D3qgcMk6&44IEUT+vEmf4Aj>bI)J?^}plt@gr_`FIZSh$~$g1->^RG_|rdi zOfTd8dK^)`-V~GSO^xCFTmz!xG+VoXgyTA$V`; zy6%|aSYu`S#_9p4juA?YS*B4%hhl2%l1T0UA}P~at^$_*|FR0IA5<=ua|Xbo=?YMOeW=A zpDWe6%BdCWm44adz?2^hbbj+DQNGs+`)#h;hrh18#~}C$^{Nlt>p6gR$T{5*Umb?Z zVK_E#9Gu>cO#bjq`&|dW2VIcm-CfS#2jwiKkg`F%XK}g28Be|&S>8F$H;(NXFs88X zJj=@t)7QK%F%&CKf^^nu~LgO-1(vW6)OH3YTlo7FlR=!mo z->OskxbwE|Yo_i8ItZp*j#&82u2t{_(W6(eN*~+m9;O;U=6p(Tg>`Q^UwD>{#aDL1 z86jn*zhlg7$HcDIS@wvhfI2M%fPngjUz9|AeaV?Ua^ zOl=RNMpNlp9@WljQ}#?2vZ*(GQQSm|p2(YSfe1|dNogig`Y9ws zPWeFlo?gs*CW(?sF{*Qz!Zb}v1-q79-MY)BVHgIMRtGfiJvK(jnYM8Z`wc00HCBXy z5=WeAAl8h$R!H&WlvJScmT@2H+Fs%H>cDCn$8LP7O&5p3;4SW(R~NJyk{8P`PWZm3 z$W|3aMrl2Z-UKtnU&t!>H6FoYjlp|M$#V{2fgH7=r1lVt2v;|OroU!+?pfplZb!dp zKnA3-qzOL#lh1hCEcw;-4Jk#s&eQsqu?l)~jyO^J*;_|R2~)IDB^v!qmuEdWPa2&t zs}+p)!(|Fyw8wecPlQ3Ak&K~ukL`Q*DIqN|)ecsPK<0zT4cprdehvTOKm3GG9z7<- zk(amMvN&^G-+ax_{=1Jf%7wyT{`dcm|L6buFRVHkr@a=V*NrTy%@u167nciC+Ec=a zNfEJLHA%S&pkq>*ojYb~sUJF2U5Yw@Go`k-K+}j)s}{zTNEN|LMHBqBip)`pc369B z2{9ki{%y4DlNsfxl4 z#yG?{rb$C&oj77Dc;Ap?&^)kIL)uGHZJyD^ykrfB9VZy4LJYT*WVk$E(fEe0UDX=B zk(?qiMNA!7HQUT<{b8*@%sCT7ASE#Dh`F#{E-1xfox?gq32-yfC&){RJ7hnzJS@mLEB2hJB3 zgBtzX-s9FSwD!>bTT&sXd}!D3URX933v^Z#&9jEC5n69>lGsi<1e&_mpLeyx7mds* zMbW_C3(L;Z*N)%=&080%SnuNl%63wfI3s~AMQK_mcw0mFYsR1f8mI4f;YD);=L800 z)MS`6QDQq}HVMvq%h|%R?mc~@d(@mz=4!CDGX}iYaQ@3j|K2tb-ftGFDzO9m(=?W@ zcf@TXMNO3uQ@ee$xvzhm(Z3?!n;L)61hR3NHWge(k+Nb4#xNF*tLT~**LH+75*yFw zUtZH*o^v;ignb}MORg~=3C;V%=;_>)!lxg7ObCJNt1HTGr>KXBR?g-8zz0?Cm&Mg- zwM5;>cDHxf({Da!nxU-kHsqiWeVPTearRc zHWa$1VJexfaabvo6euOpddE2J5zBksWX9Yd2=%n)nIiOy71rNW>%KdPJH^zZZ!=2_ z?Bkycw3FC~mHU1S!xhT8a!vBP5f#cy!LWUyw~^N|D|;5{j}I zr-OcW>C?J+pw4&{Hd#ehB zT;mFCK}c-3iT~k${0Tq(>|^q{Bd5T{<%)fn`25RXGfvn1^?&>eyenM4xWTywW8m?l z$COd)&JZXjlgfnkE#hIdc1+_nrHpziHAeN76hcUZ0LCRu5gMsK95=O8sHTo$a#*@mV6@axHH)mZFvOS9X zwU1mgH-{nd)mPVS?shzVa>nJw3erff^mQRA^*jsSOJ=cH5vIgA4q!Bd-I&ZYMRvO_ zUc3&ot=CLHEKz9&inFx_&fG))?&`9U zHzFc)Q^9M$$1#ScJkVtFDw_DmfB?QR2kkv_;vO=2yvqtM#^SuwY9TSu2_{>b>~OYf zb9)cH)5WXI6>ys0B}NZutrPmj(ilTif9)-FPUSjQ3?fRYT7k|vW}c}OmDFg|6STh4 ztWM)zYQsEMv{*rE3)kTun1{d`5^Vrip!34AwX8yB%$c$36)olP9%q`EqP4Ex*3jw# zFmX2&ZbD(%S-ew9dfrE=Z93L!yGY}}G#OVJ#wQTnDg*jEJT0dxmkxG^N+&8Ktta2NdxA5x}<@V_aAnBnsm`lcUl=kwUK8qg)F6 zVFKs48z*kY!t&yhTO;I<5!+}^V5vgYq84w-24UjkCm(Qocf~nnQo77e#f+;7|ix{R*I9n~qmDVfO zf}gYI(upSW9Gpfa7UCEQK`6yDrhs<_ONN}tW2D47G>c)ehIY}@`3C14Q;al?hH@&N zr6}H*C#DkVYvq}?pOkw#A^;~=tKX`Fx;TSz&@LKM+1Gk4{oce{5|O5H>PRz=+v_`x zapBm3m?&(w8wBtU&d!9@a*6lCU;oFyVn1vcr#;KAp#i>n_AS5t>I<%}C;sZME}3G) z7>B{}^;h50d5g6kX$)nG7)fMFBm-@eC|zQ)oY)Q5KsB+VZby^Xq=7}i=V%8X=xm(*msQNLEq#oP9ZG z=$YC)kc(iQ*WThVFpi0wMuZ!}IB|L2*MY(#)GXZb{PAX;&bv~;<=s(0lfRQLer?z^Z{7%x ze_yH#_}!7kKcoim`{ba#TCI7ijWU(BdK(02#p12yVDNMXykJ_ZHEUv^^Tz=(Xy%DY z1&f9zH&%1;yr_1swL;@`FtUaNbz6#7xsB7j>Fb+FIoAWAI&8hGGOCKKQRY8l}X4s4eS{6a9Pry`>bYG0+`)w@XgsV(9ypyX{aJrHB|u&gJ2C zrO3$|B=4kAev=D$mXbMHd(u>EOQx(4un4$<7{~s0WSU0g@(I_&mLPDxUee}F5+Nmn z%_{$wicUx_h^S_+BeM@9Wxt_p?{K9cUdrMl%Q!necP)3 zZ)Qwt-kd3FX`v)?(h9Ru3iE7~bA0O@{*X53@I}Qih6pH<7g9t_B21~8JOWm7eJ`rF znhhEu%yngn?CL48zQ-KPL5Deum~$@Vm`N!hR%_O>DOfK|IWeXIaYE}G>`trIT;pbt z^|e6k`Q|I4E01p=G99#5r5asQE;z4wffmcKnP?2!00Vg6lANpP51c#r(T|?+^zkKa z>v{hCTh1@eC^_?+U;mctXU{N_DPHJS@IU{r{|m$Jni4!`%QOD|`9ILuhV9*k^S&cX zq124tVyem46 z>ZWBW`Sre5MM~8YYfaHp`MgrQ8eUwA4&p_#xE7sbwOY|HTC8{qiLbx;2D4W|wOD99 z^nFhld^I8xh18jI~v}SE`)D(zFIj zL9ioI@1I+szyAK0v&^>-J43!$Ss;hhP8wbNJr1A>`H1{&hXzn>W#SMnHZL z74^>(H2p&4IX+I6j)q=>;*@IZ5Ebr`fpb$q4{fU~)*9J)m`#7OFEE*ha7 z1*;ny&I(;c7faH?PS*zmO`&s2@h)12vxXRy3LZngA15?7grRw+;u2j`5c%B?THkB% zo3k^&_Y0Rdm_g>jtJFOhL=wg-DgeGfLBE9n_6+?*Zr-?L8tQHMvEVy;gKmFnxKK|*4ltn|ly(33KoCdQNG}u;e zpb=*ht%E=R$%kw%TRvP`zWVAbuC8v_4SQM)(f3S2@QW3>_WQPNixJUw1JSP7)pE)8 zvu_C@v1~hf->`joO=nxI5w4zp%f-Uc_bnkzhl|+v9U_{3zPY{S;^Km7n)u|CPq=zE zv0A9e{>6(IbS;D|gpgS->P0GralhrmCl|DCWZ8F&!;bY5hT){l-AX<6WJM-VHrvf+ z!}{{#K>wwjS+19CHXFK&HM`x!SKmBSDm825Knj6H*JF(^?l)YV!EP^vA>n*WDMp>1 z-qQFMF_}0;`nF@(jWpI%#NwNVn_KwklLaYc&Yzz1ayRni$s@MI6;n=Z$BZ~bV>@!y zSlTLNjWOb!#X6YAJ$=(MO%vXGQVLjW31uJ~Se^BhcFS$rf+TjkiN3Y9c_foUWZf=! z_T?6DAq;`eEf8zijsue5(W8d*&pyKTEp6Kn;)riLKL7l4uCK2N)2>Fb7(^_qGe=AV zeQVj>Zs={x)i<|%aB&2EdaFierBANHJIp7G1yUL#KMreQY>7&^|* zAM^A7_7583Y!_U=xZzJe`WRD$?PkOF>IRn~Y!j=l9uk}<#1ZKmym(}oxVydO$g~7r4&z(UYfq`K!-4J3D8$35SKEZ9Us>c075q;>+h7a)|iGGfsikvcpQPU}_wV z7i=k5lxqLv!>5!|*bNg?h}^#1aC7wnF|b@NDP_>`YZ12F9Up)EA-A_1)rgwHejLG! z+863Q&#tyCR{fz~&RTmwpHI84b2Va^+Q}=n;tx5IqUwh+@c;hjZ}{j(@ac~~WVu|Z zqj$Qaq-tEr6WejiFoJI^zVUeD2qAELx7Ds?-;ifwlfJL= zpce4egV-rD^sx3Xze2N`lZ?Mp3Z}f#5b`c&lDATr@_P2*>6e(w)NooGR%zvX2#cHy zgEbVKY9gAycX=(Ru)J{tnNf(-9JY5g${cB_`OyCzD291m9CZ3>;^a-ry?V8h0%>-> zB1cVid4`fVyvI2%8s)0VK?-FY?uwLZe z>#KQKsolBt>8Kko$1w9c)Exu_*&Ggam}B@e7&V~P0V&mg)NstubCsgDMvWuh>Oi<` zthR=v#1vHuBnC?BmCm^Ao00?{UnQ&59aKTR=jp)2Ke z%|YS*=lklta$j`+UF81Bb$Y|!uyS&M%C9{a2UF&uo#^$P!lqTQV>TC-JjeYA-dGlk zp4~1mjT%tzT%*rczAy36mwdHZEWguWJkKKs4_OXDdqvkL)9QSI7Zkuhr;%mn*s z2d;3ng@q*c!yWy?ffcr40%vd*oYUUTFlExXCr*)XpM8S~BWH`Ai=X|Jk_vZscYOWL zGrqam5f=+?$BA(q6)rV`Ya5)cRb--dXN|G!h8-TkM5TRm3Ut0fiW&g43|s1HO7PZ_ z;)HXKVHjwaYbcp<7%9b6vAG;vmU@vCfRU094oXw?VfSuKsfbU_0eo!<`i}eR5dDL& z+e0$(5WO**71EU0+`gows6DIORH5NgUDaByD2;T7wCY2b?6*xYrYM z&QLTkSl_2*KSsRsWP#=Sk`ST}yCO_6f^@_nL>#v}?LAI$V!b>kj*%QDT5+r%KPImy z_IDe0o5IDa)InLWjpJrF&^DIcZpW&7!u4&zRYQ(CxsQ=9MwAjLWGs+N!Wl4L@Lhv* zikvyaAwy7dLSlwwD5Cc~VrZ?F345&n8s+vAY{tYCD+rPcQ^<@H1Tmy0Vtv3$`A+TVA2h<{_hANk z_4mxN%FTGF3{^En4CL zWg$cd?ZR<0-Qk-R`x5c11u;d&nAzu8V=^*Lzhy3g(pYdqDh7#%e zH9!05BYxJe_}kxp&42sN7X%Dl+v!wV<6L$zskl8y8t=KW#@2Z4rfARlxmIBpaR?KzDj8}IUFC% zSMSqozWbJXby(bOA(fFBb!Tn>(IwZWW21B14KSmJ6D;r|TQKMZ-Am@ZR#H zrx%FXQ_2==VZXiB))dJIT7RbYd&_>eWA*3>gPFKE`-uHE6DF{YWt>KQ;|P-_WXFq} zI&hgS;{Xfav+R~SWK9!OjQF;}n2|&x#EkbI*EEEiiT#*L^bUQE;A*SjKRvImbL`ZsXs`*4^5!PttWZNABpv`N->r+#R zyaSENJ5#d1YX|Qv41aCVH2F2;@7}*rAF%vdzTKM;#P_4M|MkBIE?cQ|j7BokM%NcbBpEZ`H6TB&eTo^-U3W?%j42kU!$QZUmBt%6bQ!ET) zCd7QeSVJs?YzVese8M;Rjr8y7e)`9z<@@0~D6V6%T31VS!(y>ux7*bKZQHKGw7MWZZIN*c(!-{YJ^Y$3#4oy(}pkw}W#4=YtK7D70D z&FrQ;3MyYgLcaImS*p$|lj3n=4@1OT$25#g)4;{W8Nd4VGktiCKJ>BH4f2-4m?x~X zoS%14ZlH`fX?SsSMd!d9eO=9uQ%y}s1?M|*$SfBZ?00*_G=O0Yg{Jc)9Q&zoyM?Y* z-RWj?$N92q`K*OFY3FX+(DV&rw42&B9%BmQSXf%e%j*~PO^f8DdKp2rccR03DjBJ5 zAUOrP#*;%)mz*^`_BHpukL@Uwk5n*`Mh+t6X|ACq`HR#+O)+ygMhzm@q@YSdksL^BUvyD)Rk4gWlV60Ke}bdHD5f29EN68pj_Pd-Ht^8TYUKANM9d*TI#T)Z8(< zD~{30U@Q8Ui~gN4l1D|%5`Z;WrwF}Z4#f{SDVtMljYT?Kj&gGEnK_=K8bLEeedeUn zin9}5kwHT?9M!?IREKgd+BdAVb{hVC)(A^$kX%T$@oCBm5NxJExq~ql zzI{2eACu}E=d~cKOd^%Sm8gT*j}M88}T^Tba+dBjj6 zuJe3(dxNu%tL+V~b@Z;ocuy3^eo9Os5~9I0E7s?a@d($qFZrkc@8|UY@LT@PXMe)S zpMA#j>l?Ov)g)ySV;CrtQn6E-=xxiCR2P?OF5RpH&`cuHVby?jI>5v>x(4Lhf;D+(|pghB{` z)!B-xyDO%!=i+ij&d(0DVOpoBPL(idSFWO&n%}o}qIp%Tj&Htx&NxL{*VDR|5Hd~E zfzj{NNX=i1+7w}M7?U_PRZ5Wq;vhxaT;}gO8|eEMincg-YuSg4HTFO|2IKH z$>3_Hkr-hLiQCPdTMuCkzJ=9ljcq(wr`iRRFeMN}r1kKl%Oy`Q*Tmt9k}{3)yu5lz zV+~G3>1dJI?(&WCP7G;m}#v;av(BA%Nf=D6UNTj$QbPUSPlPy8xM7SVpL}!J@ozmOF($cEZ&My-C>7oe4v45-GrhwQ-UFohp0e<0pkq5 z2&NiAN+jSMN`w*{oF*(AxQ9jWz!(zd>&C?&hh3#`%>2@ZbXe<+D3%=V(_A z{c^#AK%Pd%-9Qc#);pwc7;iV6H7#x&IB%BN#*&sjH$}J(na#9gH*DGAHAuPXkfvdA zamH@9QxU#+&YpgVi16#@FZlb3S$fh9a=0(t7QW@Mz-7SVe_&gglWP# zrPW9o(`clNNIvwtwynpQi7CZui5Hs2(XZBg{p}SZRw377I4NH^gf*UCv^hpVL@>@{ zOj64Ddmdt?7CP%`NDdirITyk-v0na&Mb|LycbuKCIcU`@g*fZF#9E9=P!c6sidEsU zR?RuAckK5AR=h@|q>;9r5x|0TmXr!pjCF`~)y=KYq7}56;sInqdkmppw2CC;h&3K^ z!MHk=g1UB-($hta!pzK+IIlyvfnt^Zbj~1+N36$qH3WFch>65-$N5>ylSfOusNlFH zgL56*n~B~obofjGD?%|7DMhR`S}E9hoEL_;R|#>{db*s!NW=4+Eyh6+OERboK@ah4 z!${sF_Nk-qI_**(x7wTSEGY%nD~C549W!h;*i!Qwr%Va~YqhShVrDoILWuN>9`Xin zm79!5MWWCTlgbGfc!O(l(B18ua0IjvQ;Oi`awFL*rf41*oj{ zfU__}aE(w7j_(@wT-4w+pUBI+N!4MmoFLk|SQ>KDfysNXMfORXQ`%1NqhT7EUhGL> z;QYMfe7(RqAxs0gWcuYf7w49*zI=|g&}gX&dL}5^Rh%;3mwV#=hf(S`FX$rgiU5AU zwvKmg26=N%;lmotH@)sZcXZ1SMF7hmI|3*MVj`uCo`cH$&&-@88Ye~n*hk73wMYR& zV=Z>9y1r{$QXFin|ZQU+ty8L*lu_;lT{>Kqiq z5DG(v$%AVX-pAKUv0fkiUcFcT1t5UsJ)gO9G>fDZu&$-;e02n;Lrl+sg?SIH?YqAJ z`Fn8x`PX05t~|>p3og$WJZ>$^RA}p4^tC=ra;BLkdJ*z&MpD`I7>1!w*O4@(v4B`vfJB%|lU5mH|V+^~^E#0!A zGmxgh#d^(?vyS2R1}UBxTD2%CW+?r_Dj zXcz1wSnGLyb%XDqNJBJ^y*=c6IVa@(i1R|qRWDQndaV^4TKw)s^TNED(Ljw==vq%0 zMq&)aNe@B0+CS{QCydAVo(zX(lGA%S#;6*=2{lgDO+-W>#*=u0jG>Cajn*8cT9rII z6iaolWpsFyTu51;l_DB`uCJ+Cepfd;LI}i==@%{D8l2NLzUL37^?eAs~U>(ut^@AF?ZfIkEQG*#wQv(6sA zd~^8om?%Re1?|Ok#?V?z%!OpMuRWKljZ1m}>6%2JEjYngj+F1ck4>r7lJbE%KI%Vp z*h?uN%poC`+BvS@MGIjn<5;#1@8r<@(RiVV!`Cj`n3CoW8bjZE z&I$}6(}>}6;T51sFap5{*=KyGhc)>Zi2i-|gmwB2)uxX3kX2|uyS6qpjl;S`PSp(Z z&}A?)9=5-?HjC&Cwz6`|8OBU@*K3KtzFVFbw;)2JIdv0%TDB0rs1z{LC zUo3cW^$qQ^CGIE6E^{uH)uJP{3tq;|H`|ft`f!aPCQyKDA{OubSjvpR-a`>8GUImrC^g%!L}Sl#>r@m zw^Vwu6g6I$qJsWRuJ2n&#$sx9klxq{Ok%qq7<_j)fqG|IEPFn9`k3Wn&2K;dC#GpY z)(u_P5R&EmY{~g~&u)KB>v9!3H%udladi<%U<*ZrX$p#X<;Zg7XJBI%wL4 zVKNwTY&QeWc~aIPf3fJvBsTlqVL?RTW|O$PeaVMQ!_qYv=ddwxd3MJ2-3wMtL)`2& zwnoc=DOIxIovWJegh*41a||UaON|J|n(A&CSc>!OUt-ns@a_qiB9k@eS1J zgRAxXVDxXKN#FK557W@{3LRbELN}ibp{6`YanBmj`-9&rF5o{F9o=_q`hVOSz)ICo zt5KcRd;AbAI#WlrC^u$GP_$4>3{)p>L=PqzMb%WtKEOL@t$6vtj!|x z02q@Fax?lj%YtGq#8_&h2Zu0bBTD0C_@rMc7kz2vxKfIcsu9f%@k(2cc6K<`(e(*d(-nN@A-`XF0v@) zl>zPa_tVLsc+yv{A2?L+g7I1hYOVfV1Bd+Bd*5rR|K|KU#lF)3czSJT2XM|A_doq_ zKjr4;mao5k&dnA4_8Yjmy5-mXEvv@!C!c&mn_yubUGI5bBKGo(l&3>$1teUGxM9Z= z@tn89PrPSuJU{>Z3%qUVeM9ILOeHhq#6AW>&Un`ohKMniwzUUX6f!wQ7H!Xdn&`wL zF|uqsR*Rmme-*i0JHCE##o9p$i9Ae12JY+zw<_#RV#H94BaZOF*%`n3^_T3kP`n|; z#P!Q7e)Pd-{KcQ2QA)!<{^A#Sr($!-6D96&c1a8qjn_=HyUm_L$E@BJNmwj}z*JMy ztreQ4qwAK4X^A-z^MtsJb6WLA65aRdQrTlV9~<C_!j}$m;LNYsk2i=DHp3pb_GAZ7KYB_kU*Wrkmp4}| z8q0Rv;+Bq3py_&~UGj@xf6m#`;YZ7`yQOO)#W@zM7Bj#{PcLX5ufSP8d-|Ba{V#uq zGz}N$XSA(nH*KI~e)4aBLP!JR3&kdOX-9f-h4C;IHB`LZj4TV}(l8~VUADO1(=Qy0 z&hq@LXRNvoF^O^5K)&E?^@zKx%zn)H#?Uw+g-QEs3+fW8!pCAV$rP?8*nD%XPOiog zo_~$EaNc_U@$df*DHD$`*Q}T4f-?Pwxb0dtSVF$#Q*$ zWJ8L%#>#Av#?o{J>nvx>j@^D_yB%4$p5^(PXJ5YH$!fvXv(I__=$w~VUz2lS*)K>b zuv+z)l(l_?Ldk}UM<4U`fBK59F-%Q?FjBI9?@D?38u@aXLsx3GUR{GSBvU9d8-CbWX<)hXJh@oWb%K?QlME<2 zYn{xg?Uhcf8?LF^->P>MQ61B)X*|{~y-Kaxie~E14?Ui5$Ps)!CojK(x|REtQLn&q z>7g9KlZ~l*0000W07*naRE$Bfax|Tt(2sLGgi_e25)E^&O7K`cSPr>wvj)f*L(2KB z8^}8YAa5A{jyP4h4_X-W8h!sRgXHNznSbEkeP0jzYEGd#CQJ!P9BEBdow=L@_sv7w z$$V03aJ~~;RjNgc4=U;wlMZMxYY+Go>$5cfd#~OV@`EFL>q40k3U`T@kcFx`fs1I-vw@OHe5fuGk^1!f6iBT zdw%u&hA(cf+23Z&V!_$!4Cxny0tH7bnJ|rvNnMS7-_tEtg#Ey{-4S*ZZr$On!$eIu znyFjg8oI{O`UYPD#X784!MiU#``yIF5|{#ySLb|j{gS?I2~2dpQ=0K^1GYy5&R3R2 zue6_t(Krz_3g&pjYDZhnleRh3ri6M}((vPy$mz7eIa9P~4=O@8#|xwaflMIc2#OBn zgqId;JQ)ZTIg_Gpp>ZErEj^TgIKf!UlmokAprp)ldCuK-OG=rL16g9dxg*XgI_Qir zO%tYD)=fck=@Kx;5sZiI^u{ZqCI?fhhD^^l8PO!WBG_UPEK<}25DLUBl+q9;gCv7V z`dsH6i77*hoSk`$z_{H~tZ?_@1-32*fm!1ccyzJGNUGgrEZiNrRt}gn7mZP z{ETFrhQb;M<4|4j=~x423Na*7NNje48ltQ^byM;++tz4#y=WT{S&baI9K(b4t}h2u zlvc#mD{`-MH6GR^b2znEqeeMurcBXJVP`eiyyQsRHhAxm62N5o7Mj*-onOvKPGpTB zMfAA*&ISZs(BGx)LinB856x-N^g|hi<~vZs6T!E6$iyM9bqOCgp5xE&H-N~$7z4&1 z3CBkv67#?`?(tp_>o~Y`Z9Ra@z|_GjGaZx)C}~b+ zcUPm8*O)(aRzm6pmZa5G3YRoWsoN4C5Z1^kc}@RT8NcK;h% z=WyKuS#{*6=M0~&*lq&DKJoW|_c`CbjC}sh=d649@PnRDe)J({%N0%xyI~^7hL|iS zPZ$bqBb+Tf>$PKh^%X1E^5;Lg;4^v3%M^LO+w<-16<5!`;^O1acz(BMKkVuHB~P9{ z#&tb+cXzz_<{6JK9}&l>Rd3ePT1T8lItPoU;ktmh7TohE(X99_Q|8JI{W*!z?c`PQWQDkes4vPCS`{MDt*VnZ^n@3Jt|{ zh{=diiqm9^&4L7ri9#7bf?y_t&jyn$ZPRhH-_fpHhMXxy@LkL8=8jCkiqWucGATtq z{P1J#XD+cik29Tje0y_+t3%W@?ddwl7$ROgA?#=uD`E<)Rtt9fTbz@F_C<`!5r%Oj z1n8EY{eHxHIU+jcVKgEatxDP@r8i?!Pmi6a!_ZhAY*L6d{5c@DrC_kG(f4c(xg@+Z zq>4CA(?l*>r-(Rg<8e(jew0WQA&b?d{XA-ujD=XhbsgPuMYme9+1%D#z6S9^$QI*z zj1zKd2&oWj8c0SL{zKMn{dqRj>_Lw41Qpb>)*YI6sFc!adV@WQGf<&IIUrzaBth#N zog;gvw6L`h1Emxeiv?YywRSlNrKGdPS&I`Pmhhbm;arDzT>r}b(|*ox(8&Gsk*D`J zkMdr_=kaSFK(Fdy?>>5YAN~4QIpDhu@zIQod7z(K?LW7!YW3#qup>e@n<~K6NGF3> zMRT$F(Bctth6#3KWU9G=cyrYJrTp*!m^8|4N{arCL9_P?`nppn2YsJLoheF`=HEOy z$C{chfYspPIrr9>qM5oyYeTK5ma(Q-#%!>n02016`}}BTH*ocfwOTZkG-J^;f^-(d9XxUam>j zv$=V}ZOqtq!N-@6HSxa)tq99zffLKkW=r2%`o1SlV6a&0Da8 zl?t1{nVKkYadE*Hw_g*NHB-uTi%T9q{fL(@ZnT57Mzff6qW19VM~{IKD*>A$HVc)j zxx2Zgau#o49|DU-!!Slokw}`83z@~mg5B=fK@~jjAqK~8w<9GL0Bv{U119)9yU1r_ zE$@Bd;6$b@r6!F`F;O|odeN|GE2^#~hLOA7$gbBoJ#Q6dvlepD%;Y#kFffHc7B%^f zxuvQr{G!qEXNZVz$dzSG!c-7S+rS_Kz9Lyq%$|h9IgfWObz>3RVXGA}NA^RaS}IcN zN>6Rd2sIagBj&8=;~`B%4*$!(fd_w%yglfFjb@%6Ld%RCa!}_q0wiH_X_`cNe`d}# zEs|p$$(!#~ARWh``7r+c-aei`c=7jcpTRew2*&u=I{Wh?@Ik>#J{t*}KNf%=wtj3N zF%t8Hk6woXN`5VSgLXtYWkO7hNz-b)wHOP&(%jdW1s@YO81f{HInhsQdLKfTVcr|Szo{pgy<7d1_{#?=nS zJuy$Lmn|tJ!muUx_joK%>xxfT6}evUqsxwO?|Yu#e9beHz3bs&uqvslcPqdr6{B__QP6@ zTPww)H;}C%W?cxzJ5m}MhY{y0mdhp66#2Wqf62f5%RfDYQOB56)R7IBt0f|^UN8Ck zT|$hg{f-rqfvScaAWcFP0jDaq`Ju2S$`0>H&MG2hJkeUjT9VOlA!EJ%>MY|Vbhe;w zzQ&k@ubrY^-hnq{Ysm)2FqIKs5sc)Ci}iwwbp!DhBU%I+)q2qH604G1t468Hoyz&B zXl?46wyk)z*^o^{Od=b#NAbSm+4H+Iv|dCDl;hOj95`c#?#h-;(s&gMF?Z&IHHnxe zLN+WLkCBQbi5N36MZ7a~bu8mrRljBe*1`}VTcK$jrl~N#!Y?{yn%aTMI(h=ta)pTr ztf5-nu$=-o{mA(87Pr~3ShiH6B9f)`+}sU}QH#Q4GZD4B$yV3CvE|^%AV!T!=V-vW zaaQzN9<1%-HPOt;6Vz$GhBL)!Mjwhvw>O$Y8YCaSzKS2JT?&U*d}op(cga;W5~(isD#MO{;Ca+J%`TsY$m+ix`L&1~R6B>nlsw zW~`0hdmVnTQuwW--~85b?DrKUeIK7oV`mTX07mE*E9x4i@$~DSc$j8$;1g=3=Z6)3 z4@bcB`}CXpUXNI-3a83joHsZO6^0-NUo}KY-0i;P?tUaE$G`f^&-jo3(-Z!W|NZ~r zH=BFDxV`6M0YCm|$tRC4S+B0B5T-EVyMnJOn1@ zA}~co37t8bNXMw7?U^r_k|lmA+~QL#wzbh1o2AthrnWFf>rZ5$b4 z*Y~`7r3-#mbjB&*lg9|G*K1OQr%#_?46Lu#tRF2|*M@~pbXA26neDfurhJ4vPkhT` zq_!}=_86}PUo50nQ+)kwDUdRPSi_j0Hkm-u1Q&rR^iV;&=mErM2IP<0=Dx=A-PUd#M_E6l+N5_)~gm@!8i`2G?shn2veqQ z7rcD=1y#ktpX(5|Za7hHopU~Nh{$XVZWZ;+#p=Q4%yx+E$4KkM3Pe`F(D1UDXiUPKyInapaqHoUdol!rHf0N?Tc}xv4GZ(i!Us>kZIddYo zc^xy#a`O3e0XefDb7ns!LeRYOU=1OGca~@&7=y`%8i>XaVq_3uedT#_ooMQGLX0#& zSmF0WnTeYdmxK>V-}$Zx;QQX6+Q2wM7%{d6GF@jG`mDT3tJDJP3?e#hoB5AYz>5!k zhTn()b{9|7C^?KoQNv3^CR<%daT?j}H)Ju??Sen~@wLwRcYAK`|B?UnpZ^Uno^AN% zi!XWc3U0sH@x`kh*GtE`ZursDr_@Y zr){8ZJ31`u^_sfYaj2)~Vtq;7wRFoBsSKxPMDG;U%Q=#bJtM^9W=e>10DVcT&sjfw z`8xBzo8s>7v&Z2|td_yxFwPOPrk{AP{H~lJibDRTc<7BW;t{G=6+`1V;+*57r6L@D7dtd<=y!fL%B3M|(x7mwDgTSH?bi@IXGADLeCc*$6oNj7W8g7OKCF;tbq zdOdie2&oi@hnTwJL?2CJAE7Z5!A7cT!4RV6D?7_RjO4B*ro^z_Yw=-n$s&$8oB8b1 z$B2xWG~#MipNC{f{fGx@YmgMEyk{DEszpmbgaZ$3eX+#YL`(xAPU^>pVT_5zy5r@m z4NU_v z)7{AZ-N38e#J*2VNvAks4V71G6(^8FVn0TPGQmoP*EddyVbbToyQ8JgA<`{LF}_#z zx>`9YGH$JwcgY<2ymCSzoa-++p=(HK;BtwWvxUnjl8ddEB9#4<7{^3y4A~i`C_1Kg z2C1E$YavYTG9{-~q5_>5QIzU0}LBhNOPpm4nyx!HWh^>V?-S1YcT7gTNm zX-k|o#3_@9J7nXxFn&P?Ts5BCUN^N`CTvQO z8n6LNrA3Gs!W6i>%lMV!+gG=I^4SHi?lz1G7$PxRVodZsn5rj*M9vUGd?NxV_MB6s z2_d<}6yunJsnauU&3faHVLch!-Q&PTMev8 zinf%XuCX>JfsvVl#8Y|0oo&r>CB+ViYB79IDR(_&Ffak((W zn1~Xgb~N>|K}$dYs-IFmS zsTVDO`maCZ`g+H&|M3}l4{p8YYW0NQ{KGH#`(NMj^vdz*vgK;saDDMH%ax~pc}wSN zD(?`JA!-zzb0fy@xtu2cxBu|3aLWt6eYN5L{lzbNWMT8=E7}HDOQ_P0RkdQ>S|n!f zZeH+{N1rndBa5yfWavZYvhJ9SXP+&(23xh5lvphmfFgh|?sp`~>W^g|#(MU{NVn>^ zxmAdHUpvuF=T7ZVA8n@;9v73UO1(;1xdq*^k-Y`~%~wiN}{0?8iMW z1nNqQ*fdO-d&__OKmRLF|Mer*pI%_w3#NXL$*NFw+2LKw?blnH!t1hig{f+?2z?5y zuP&*sm*lGjy+rPJTO>@hT}6_Klt%vQKmJ?d)Z^p8df73CTWar^vhej6&$zg7m?#G% zs;ZO5aiv?!ePHJWnYd$ZyVAs?I`A-0vsucF$QpUQxRWx9IrxX2bLQ9k<(_ zh{eQA-;ZERmoA#3;*6o+D@S!2)pBJR6Jm{eYC6w8=ylk>yvI31Rn<(%U^RT2yKTU^ zivRns|C-B3D{_X;#gdGpO@bJq^8OG%b;^^Q4P8@6#T!knFy=9%9%@!|PN~Ylbz&t` zVicE)iWoJ*ZWt2l<(iyQL15?Wr*VLm$g-(1Hfd^5F}R(*_O!sW2ZLl0QAIIFvt&%x zRGWE}pVMK4t)pvqf;I{%o_m3v7Eh#s2~qNU+=Gf%hyk@Q6%Q6-0R++Z-0OK=XA!iJpZ@+hV^ws@vGX?4?7m62B|8K zohBYXskyzKNI8(Rf(Ig|xGLm=)FzDe@Ak1gYt~=y-+TK7ST2CO+kAb0|$n`x*b?&m+J3@*BST zW{Yp20eswILx-~o*DBX)*|gNYW*i}Qmi?5tA0pM_g7j+3l#W&_&grJwwi<1w=$$>= z-lRMba&qX%!Q?f65CL=Moz0v07?f!1y~p6xtg(=9o3166EvIQKTtVH8z!)MqDu2vY zHJ%QWmCw0atr*iiUw-*DSL-K7JDL>8(I7D>=@b~I9$zb0&o*8&S8Ek8*xG{6Med)@ zH&p?j4V!O9HrtUezI=sW!{QR2esamDKl+>}Pp+6uBnOKL_pAV)YT_h>3NW523qfGa z5s86VRG=zw7jgl|iya zvc+1*ID}%Bsh)gdPE>Rcyjjh`{a-iD`HZ(kDVv=sowknPObKYGjK+<%xFWu|>l3lx z5mQe;Chq${A0k04GDH;_NiG||s(npye>X;XdPX#7*NBb^tXOQ;LPm^W#1h3}MeSxR zhE#Z@WWB$}l~In>0+n)&jdNh4at}koM5r9JwWqEtqJheqveD*Zj;aCYzC0&pPSBC^ zG#OJ8bRf&ob5DPkd0W;(WftAoQg39V#rE688*lg1dw&t~T{%F%4@BZLgZxzGdqDGy zeb4*+UC(&`h0Ty9lT9F)iQ4F%Vrvz7TzUu2)7F8M4X?JkXL@TiamX7g4{dF^Y#fWm zalggY8zx%m8&zxe!;=XZB{5q2NADF6T< z07*naR3*}Rp(J9c>kV2&PFbsQM zyx8DvG5NHj5kBTv1itYAFsIQ?#|1iX;tvx9l4!SRoTaXc<9C7>l6u(HEg?mw7+Ecr zkZ+0#6UK2=Q{XWZY^L#+7-2sQTrU@34Zr%;mh1oFsm25qgZ`xc=107}p zb>VBwV;JL33Hh4FkZs}C8A~#TWGurZ>_+u;9AYV#Y{ir{EZ#X+CeU(Fz#bHQNe!Kq zGEwURZcZN-d?r5vc8r>z?m-As{O^0UJ<(N-$r zn42YA_N3Wu-jvKx{t zFOScU9Qj~!$RId;p8DLXjoK`DvsP1qltiQtbmJUN>#(gO+JY_?n9+E_S6Mw;zi09H zAw}GrWb?M9p6|kO{inzzjxo|S9fDHPL?TtCxxm&zipLm971r6q^u-nWQa0xZ-x=-m zJzJEo5-e=RMbpuB9T`Jf8m5q#V&c{PJ)2(GPl1>sAqe9LRV~z=AtA^#kV>(ioRH9N zCdP`8mE=z)B-3J|C1s0pbTfW?!1_ZAnA63TQo_|} z_N#YgvFaGB-;c%XFEEZHtJUgoaC!&R7^rkvFiuem0c)71=^#E4!$HiDk|^OmTZD+W znWly9cFW>&!7xq4SgCL$M|C03BUR;?EC@x_c2dAvEv~mT*6A7x31b?DDYAEoVHC1A*vcLm%5}>aZ;460 zC8tTRn)8Mr5dmtaV?*cky=um^r5}P0A+tq9N9~pGc=l|IcaX9<_%O=slPf0>u*`x4 zR~}03oQ>ryV(ZxB&E2#rSrev^zLUoPO^MwY*iR4>IIo3iwoVoEu}t>LVefE-W#~%$ zsCi8qV2gL2F=~-C4+63gRW2HpYm3zgDq9*9z4!Sn{w#z*RXG-`j@5FB%dp>Vxxcw( zw+$?6MFF_RAy#zXOUiiDqxOr!i{p z9v{BxfG{7RLVnXhHgkIn=8e1b{CUo~ccL1vkE#&{rL7%pZE;TddWSq;z^f`Vf zkGdbaKs-JdA4Wm=UHJ^Y?`uemm{zb@at;^-UwP`frmA2HoW(dwNyjpF_Ii|e{)F!< zVts9(HZ3kY@)*^$(psw8&{l@k@`~LwvKuFMr?Az4)|;haj$$C1UdAypN>etE~QzPjP6gP(r>gr9u!l${eQx4_pU zq=}qH#$jTzQxRP_Dp%o+P?4EJQ1#OoNHJkTB9HLu*&bItXTO^eSFyiOeELbvWFlee zd3=4vZZhomd!9ePXYlYp{*}g~NkMM3Dbf+J7=38W2QC1G<%^Yy=);sGgM)~UeZ!P+ zZA0ZPQw+GqGu+?P_dVm4g^Xqtp|4Uex@Sd&O;EbizT zi&LAN;xb^0MNQUFI#LRZ60ns)NGujD)>_6f=$JPgL)3L9b zVdulw({XAp@oc3~I{dwkz^zlHz+si#E$Y^fNn|7BVv^WYI=W4$zgW)7DYVw&ih*s; zi7AZ4Skty0Yr8JvgF78ni6H5;L68H|XU__)*;D)6pUw(zEt1TM3Okol)7VT-nx}0} zs0j~?!Porp-m)2+cNAbhSkdrCkp^$&8ojIFJN>se9ae8Vbl&mv|MB%(lz=9YT_RV4 zt&}sXL_dpN7`ltZr~QI;;|M8{a#r8yLYb(Ip>~$Kc6etF+1akBd2<#*$cQUR8$~pA zWNDgGxamjE90VhhRXk!3jm9a!Y|c1fYOY>Br!?d(_kPm2CM+-GKPqA^07}KgJUC87V+4KWr*1T0L1SXtuWFsV*c>K{7+wF$uH$$-}@k~w4-+gn-&wurT zCl{Vi9$)g=(@QQED+oPl>ZyztC*y95bEPA*mT}mVB=V|xp-B(f@#s>;B9AXGsTUVa zA>k6pFkr2)+uYH14fp#k!vMBXKf6RaLv(WC|DDChyypTt=MH3X<#OZ`)u>*(kW+~U zidfs>D$A5I>vqBLa$+1u*6a1bfU~L^hGCEK8X4xTidGD|aQl8o-E@5N$tT!s58sRO z?23h|HgpRZhJnvM`7zI5-5(G`N?L-5P*;jMk)>=Xx-n!?($>}Tk|72*DKf;Qg)0VE zP^eYaQh7%|?J+hog$caJIPE^tC>ZCJ$5>Z%UCXjEEM2Dd6WzMuV!a^8fs`VR_hbph zKEbft_1H=`vJk@DA~VK76fGzPXu7!o9Lv41SW_Vx6{+0b<6W(Wr%tfektG(>&HUi7 zKF054qp1Mqkfb3+IGjqNhHkKtOb|yOGrK9X8v|p6KF(&KD)G(Y4#vvHs$y@J``dYw zkkb1X4_Xnyiap5sj1`<%5*cr_U>DI*t5}C~S`>?%t5<8;ibu0^ok9DI@RuI?kz=WFk>Oy&_(-ESF1O-b{1s{qg5AM_O5_ z$bWkTaI)IPnA%`c#xP=R0-KPSxW9#NQQ`ao8yy$EVR60YvWdL7zvt`imR#wGDy6L5 zjBD8Td!9Y}mfZ+rRPKPdMD&5oMD`jl_3c+97i;+VqXl9dyZyk|w|gv5d&{(Ud~x@Z z#jjrS*^>o-`q>knTs&cz_H6EMc)D2OBr;3`X$;Cy%87onW!LW+`^Zm!+)*ztcyzI* zTU;UtJ*DTl*LO2$CXN^Gf~&>iaF#h^i#pJ8f4^mQ-5`<}#}RK;IXMgib+bUSX6Po9 z4hNn!g~(qSZtw5-$xnX9G))JozsaR&NfGaz7APqfL*A3ow#mHQy(BpyR1LN&hP{&U zS?~E20(Q=eWnxM~vna0iJ~GBYNUn5q9`7x6<*01L3p~15v1}Xe?{BasQ+GAP7|4Y} zu)n#-J5Bx=g8EB3Zx{z5J9Xg~Bh+=Ro9YzROVBbL1QlQT3*r1~Hy+ z?B>HeQ}}nr6cV-agOUa$>%-?fF~cZ{J|^}-*u}(<4FSQ{WTVd>VB#5dLp_`oO3#QFIC^{8#m|rQbO##k} zNjY$}zTl#5wJ{m?jN@1ea5=;zmeu+I`8(gZ-*ix%@+{9#^dbV8`GfM#P4;~U(5e3( z2L$Fw+xReq?uU83>Ak*=PQ34MIv)YQj|=$S!sP$>I=#@!iOx17R+PIDQZa-!FeLIA z$dd8aU@0k8S*J!iO)~0{nsO1NX#pt5EYahX$mrha3g0eMl)|E7!Pz8wULUh5yDMOY zo;L?pX^HaI9PR_MI5!-nU`$!V4kT;Cne@O>Zni5Cp!41&9L(d@@Lk@|J@|nNsJDqg zPOXss5V?Pc0?d2m=$~*IbIw@nSu7SfcT9QYZ|`M#gTZ?_}Mm8y5G zSJ$cn6ggatwri1P9CI3THb;5uWv1s;(wwPd_BYTCDHbk9&Ugg&H`I6F9G9 zh?sK8WmSg2#WfJ&?ru*kyRogCl7lPUPZM3$FxbRDJlpfjuYb+;8vf)*Px#44pAjXK zr=DIiH5S(_sjSd-OQvaJdw0vHpMB0|zvt%bFWE0Qbc+@125J*ov={W*vZx&{WY!h@ z#ZUhXm+q)c#@GNvoFuGh6plT_>m&|_N@vjeiEV@zaOnU|i`DUCDj1QkpsO1~*RdZ* zLK4Cd+3iPivEFeh(A5hCcpQk+)D1B(P7_Ucjjt?Y*iluQ<}$>fd6J?YRiQlef>i+r ziN+eXw~-tj!xV`*lbsq*+MI|{N>1_lbEL(efXj?Ak%7r%f&oKPX@xgR+zc6qvzl?-M`1rj_5sEu#8Nyu=MLVD#yD&-L!KLkAOd%|Lec1+Bg;; zRza}Y;AUgztQ*Q^AE=u|Yg;O7!B{O~Q$(Vg+18C`wXTsI$zx#O_o`qYYJT+S5z!e! zQSC~~W#dUjxqG@RnFDn|(^*b;VL98h#mpW0jKCg0jMeY+&|<}y4@bU!H?REq*j2tu zQTpZv@;tlOoN-Oxu7WiDi&N(AN1l#dcyG@I9}Gn1T^{N@1yeTbNod3sSi zY%>KJlmnB+J4Gz5HAjEKQk-Z^-JBsQAJ|ve_apT06@kPD(}43|bN-M<(EgM844Ojc z%Ecr2;LSs(ZW<~FDO<9I^uX*|sX_L8^>F@r3CqS~b7mNN$Pu@wF$giJVQomtALBBSg+(7Bz&<(y?qWXfg~pFZl6K|56K|2JZTvYSFMyBOzr{Hf%Q|UA2I?C#8{3pFHL3 zXSY;MOTtiJta;TB_}}=-h@)}zke)+4vV_iiqJK>|J|Bi3J_nrnB49|9!Nyd& zdy99iT05YP$e1U{nVc2>j(tzx_q3H~*|uDN{4qI4_S+r(Zga@#4pGx?tWbnK#quEO z&yh(i7G1GAfu^ZRX;9l92W_V#e{Tin4JnUgG+Jvm=RP8Lr=y*jD4z}%3i@{?zFuDE z=$!B+BY-SRka)%4QM7i{hn!roQR8a_7QG9L6ln%s^;laU=w=4-`Q~(l_FeQCHlBlae zDhVR%+2yl={Sgv6^as`)ID|8w-I^H%ELp@dPmCpqPsAblEJ1zR+Of6x$L;#j0{C*VXY-aA{>@ODqueVL@SulCddKnHf(wuA_VcZ~o$|I~LBcY#bL$&&A5} zXx(tVx?*|ZdHL)s7IjV6b#$#BvSSExxV6-I#H9&Oq%xM| zJYFm^D$HLyST+ld;WDblv|=#XVzOoy>o_$bdD6_^1jbf)*W#Vpk~qNTghxkoiX7>P zmn`_4@i|hPL|enitSr^M+L+aN*hr0)0YsFeD;mXhb92M(Ced9cmbSyX24^dL7Fut~ z0YsdR59^9dpsp*Xl(1Q7XNUQc8EdEtYd?~#rK&pm7}>{>$3J?6JTa`V7MN=oZui(w zk%EJm%jnV;KRQPiSY5zww}W-Z^JmXUHWgt>=JOwaP6{Jemn*W_Q+c7PYPQ=gIaofr z{+M43-y$)SV$@C8>VuKRmCRW!9IQ*EoWR8Lp;@_tE$Ew$C7rPZQt8Um!CTi90fIgk zg>h4S_%f-CZoDeQ#S&0j&^`!bf{=7%osBQ!P&aG3-q4ZC8#axTjj^2ZM}NWxJVlxR zJZ}J2Ayf4E7O{sWJ(tOqm5eQaZ>{o!9D;XE@f}l?!j(OV1IcMm^S5pofnmo8R`FtMt+V%T=jWyq}y*}^*6-noX z%t?C5cgy{KH^=96EG=?+&HniM-Q4+-1Z7M?&y1R(BbeGLC}7nfUG|ZB5@L>e$j3~` znVgDhH=VC1TP7%`B;e$n8KYpVo|CDZ0eM#XmZsv6)>9O`9E`<}ZNaQ1oo$cw+&#Ad z7mPNlr9iDKi!UF>os`_xl;v!Sx2OGZ{@;O=`0jQ3Fumt0VII=>T+p?R$l`C%y_ z<;t6UxF)8YONLC-RJiRxN`iM<%%*bQXz}^|P=3E!b{M0%w%$7JP)aO`j-u4A#5$c< z_d{l}So6i#FBGlwsOTdas(Qhc;O1`6ZY%_FYuQf`JN1Wox6ZyD?VJ+172EI^@`kPD(SEj*kF;tQkw=t)EkktfVE;V zV)5drt)s%?1Z-KXwRKd+U`iHn$QtjF3Nar8A@&FnV-uD{IqBaHn|3ZPXvmqs+sh7Ok^;}+cY&Z7|X=K$Y z@%hJ}|A=AOb8*>lzrWE!&O7cmcX(N2?SgU2*sOj^##zKTtg*$&TipIIcwf!kq7?IH1$9nGkmls~`nA+Z)f~#Xj1ZzQrbs^peLm)N5Cd3uqUhs; zI4%!298Gm7(SY`KbN?5xEYO%t(J)n*RCwe`VzMU0BWOo?;z z7W!c#r+qP)Ub9+utX3;31B2feZ>Wrk$Ia7~(XP=U`f-Cb`J^*{v&!vU{P2fgl zBE|Umc-L&{-@G+gXGtPVU>@*R@oudCqg^J(v`}?kOOerE+aNc7ujAJI-L|e7R$hf%9J4?uc+Sk0g+o@`_ za*QEktA-#Ru?=5+`;`XEM`)^+ezzy5$g<6}Z3QMFF*5dhjPrz4Jcg{6c|kHZYjjx< zDTRYRB<>`6LBvqije4V*M3lhoklBZU=XWEugU73ubyxA^a>3Q|ipC3)dSV!mUBJdn z4jZhkxv0Qaf{R;H8mMz%^Wqg=7A(63mFsBTg2{U-bHg|W+R9@POtz&MuqCoZW7nFd zp{{GiXmZ9HMF%A%hCz#z7^9j_Gov2DI3`2_-T@M@CUdoh`&Zy3V=~mXQHO=MY~`NU(_U>KR#5IC2&wsSQnT)KZ}9T4Wq?&hY5^ zlJ&ABOt*xXnNpx@Tef{*N{+6*8x=m^hfUW;1i_3W@v! zp5C{Ozz)S-AzZ&r4SMv|JMO#ZV+k!;XTD*|nQYbDE1Ha*qT0dOqAo60LQ0Y}np+uz zMn;ykwCEbDre;++ru{%Rlakp}K6`)mBE+WsDm27sGWkTfpQ~RF6Y;_bdXT6nL>9c^ZK@3&w;fFwM_oK?6e;Vo4X7 zmBh~3(p=B@`>A4C=M2UO&PbW&9XWvJ4P)I0bjtTOz;7J^o6}VC-yH(@aCAHuf2Zc! zKg=s16>f(DaDn$X#fLY)hK7FU2J~S8=q%W%3&a||*~u0p%V~FFtuT#l;$DYs|$`y$9Py6CFyl*5LpvNZIUJhSS1O zc@;`rw_anwrWh~|%{6ttY%4({(!!`*0H2UNKn|=HHU8zKaC_E7jxYu-B+SDbu0oM^ zu^=W$;)oGKNaSRQIjS{^gBT}#rIs+nNQzQo)?DF=o%Um{*nE`lghyPR|?ouR4WFPPIKN}a983{Zq7R-Ym;6X9*Pl*~9?pPKj@XL^h_kl4cT<7UlnHYup=RNnY z24cu$Z#5>;=;F)5)0oFqTYh~Ob3R}no| zT%qUUF=iEIn!?MKGFF~h8C6mIR$h&&?TNK%D$R0bty)bP!HSRqNHWEv^dU6^-pmF3 zm;5rXQ9}-ETQYT{rqJGp1NZQ>5d6L`Z$&U9RUnpJ0q@EZD;-MZo3dCE)_Gpt-suro z@>p@6EDnrgw^Lz9%|JjULjU9fe9oT$Yl{%#xdR}Zu>nsZ`s~Ps;Xg}_GIfYULo%pk(rCVjCOld2)Gm( z6Eva`VbnF^98)RWQcBpmMp+a4->#N>c#J^Vi*btOk3=z_;6 zMWIa6O$N`pPq~0)53^C7UbD!qwXoyT&E^TR-g0Ba$N({H3<`0>xIPb*e*O{8)#rTe z`{LC=@O2mY=dY8002;uJ1M=?!2p*+iv%2ULfYSo6augSF z1L`s%i1&fcg$&*`RiQxT+BXJOehzBR`ahr7`9aq=cy)#m@fIu&9{eFfChHH`wtozc zU~+w-NBG@}$XPo7?I zadAQH1F{sEN{)24$LCXvCsEi#42#a2LexG>%N;KG?4*%sp-@q_}s%f}Ra#y8%+M+~T1U~zto17hAySTN5YTliMzx{qTMp-AdfQS-iMJh6m~2k* z8=$*Aq(nq;&~-%Nh)rN`Zx88P+KV-z6$#r6RTm`TYPzYD!)-Dfa}g|MS<akvbhN7VC&mQ%+Ahe)_}vm|_cXoO6Ui<9q}a={*!$VMRa}B}!|$uA{8X zRhOeGX`5l(04mC4su4TDH}0Nd(}{a4snZCdH`!plwY2?^qs1m&KkW2vlE(+H<3QY9 z0I!cmlH4dSwQ_47iMu~*r#$?M8*Wqgw#z&YmcoFKF{RC`!Cjm?golFqoi$5JffgE} zV!HUF#Yd9)B~ue22Sle{?bIINbM(R0MJ!x-4V#}aaO*KKg}*5Ab=Sk1uLHpNl9Bf7 zvVd{Zx4Mm{y55ugO6K7g1}KW>8Nk2i=bm(`E?x4aLQhIm1Tiv*xoF9FWWtnE&OOo#%LN4Q}}jx*!|4y^fTTCS=ZO%5C(+vWe+jog$E2W!Bv)qsw(K(RE8jBk~$5QuV0D*jM1Z|+OS4( zM?+$*hbYlHwaz*hD5YVsjHtTAA+UYNc)ZVYdCu{y=H%oIqhPW0$rThGfj}W(z6T$? zcZ;vTdk=}@$Dx76c)4 z$gdy-kFXGZ>cQ<}(%0GHtyQUZ=lA~lK6_)hc`)ME(H@7YVroicD2cHltR&Hnn2k%6 zR0v_w0!D?Ut_xP{K8Z6?AlVrQZ^x)YnN4tTKog?C*+|>uIk-<-hO>vNvN4 zUsvO^Whvsdy10KFvi(e1KoRgN5(|kKr;V9HLtUUs7)#A~(i0lXxa}y{9qZ20JCBnA z>(YTslgadvj>{^ULPW}(9^zki^Y~=kj)&vGFp^!m8=vphTPcd+u|n43 z2TZ<)htco$Fn0AIBeU5=lI0sgqJzTsflx-2ieCu;d$k7eXASbV@jut&nO>(0{Plm( z&Kf5Mlc6I-hc;k})cx)QD3uQa;mb4M8d6PI*kO`}H@7THf`_xSGs?*!lm$Qj_)}11 zp}nIhN}8r&HrwOmAGme< zHoy1quc$KM)glEh_gzO(3U=d-y!Z5d&%5ux&maEj6N-_fu19pMHS+_*dbwh3Dx^;C z;}`?$^_uB?k3ad=pP~$`)|T7v9MkodXQ!v!IlRT=C!cZq4s^|euYd3^AOGlkwC$8p zT_Rjh-?xY|qBSTPvDpA%UFu<0M8ax8sU~Fbydj#IlxzZw96@8^bc?=3_{mpdp218grI*5Do9r@m&XBtfM4S2CFm;jQU;7sZgh<+r04nKQYDXlyC3 zy(d>0w-;$TuZ)o7&f)2WdUbK-On!ZArMOnhc5O!(*3{h%K+;p5ax;zY%fY-NL8?3?)n#5#;{A_44)|x`o3j6p0K~KcyNEkbXKxnbqHm0 ziGX`$PNDY!WAx^J8K$~g>-0qyaBj6Z*O({-2$i#e0xoXrXrfG`x!?tbsd(~qMaYRL zGJq0EcsiXbZca4^GlQm~TQro?akf0?8~^N(t~+6I`4DTEsfbRGSA#k%QObe@&Dwf?T!YihuIs21>%V(#km~K8L0yuDu zW93$?R~?)!80|Hf0F@}IWzAHN32k633zT=zcSPG!NP#p3rIK_O){8ZxYD~B8XqpaV z5?iHwYFRL5s|6SqQulrE9F$V`@CG^*%BiUA@(2o7%(cuzOK zM;nO2=Fr`M95!Q8G=T|$0&pQ2O`0xs6R($0>jEt_D&&hIw>NR5h{tCWvMnG zdc&0D-zCEhloq$4GdF~g%qlUnfLMZ$n^Ss_YSW$BhopJ&IZnav7(<5YvX~blt~hXa zY; z4Hy2e*fq#MjJ!V~wuj=MAD43^;t4ps3PcT}kI-1+s!v@(0elw-*5NzLy7R0%kM({t z0v^^bEfb(ulGGrQ50X+OgQm>QAR(7U_^{0a9O}u3TR4OyqYB|_CvMUk#tloTNRQdu zq{FYXd8;roMb6~MymF3s?(mS-HW>vbD4HhFRWk2SuPP)s;K)W?Ita$IZ@u$1bUo+4{qO&0mMsK-$#k-h8mGKMoJAUqBGTF(Q;m=TDrGPxFmfH=ymylu zzNZu^yjo3aR9Pd+8mCI45Gq2Dv6WPWjtRT432NkmBFVv)wP3>tTl zH9sQ9MX&>y22Xt4nhLJEXRnTaBhLq!2I2;fhOF~cnOzFm$uckuF-Alf^h2Jgk`y42 zdW%C4I2F+{2gYhe?;Iv~p^mBot#uB8_8YOd%61f)tFC@tyn>%MX89t|^Q+(F00ef8*(DQDlB+CZt3+tqvU$<^aPz-cf3z6A(*zT zUr5nV&Tmd|3A~Bi&Lhz#yKO~EjqpJrc64|?rz!bOgc!woJ;F(%rviv@@h>< zOstV) z9m~^I%j3%xj~6S>`$$mGcbopY`sYZyZM>os3fLP1ed~032D4&bIQ5P2ad8d7^UfK!}0A~ zj3$DM^K*=9)7XFh7N;kcfAhP4MBhVQDQ@n~cyj*<_ij!w!4q71pJh(o?>mbw(&)CR ztIY^0=_3OQLG%tG3|-f3h@9SAlmJsm;?5{>=&T*wtm(e+bS}{Okg~Ia$PFzi7jTGF z5Mls$NjE3ORS`}QaWhH+fl#ReXaIpiWQIWIe8*&`*t%ll^VM0qBgU64phJs+y3+R< zks^;(vr{`C?eoAjbu14jc1IfhghV+YWXcvZQ4m%7d{g*&4(E=M&IhCnC?Qc&6JvjE z)H94y!!HH^6mLHExdJ-=L2LBFHDDmG{oU2^{&V9v@#R}zUIz4DcTAsZ&n#Yf0wL+0 z4Y=UAShqY|SS}lva{W^IE+*${ZnShNv71s3LC;A8?{d|f$cBp$wg7O@0A3A7-^R%} zp8;S@ZAI7nu|pgTD1oL=Y-DK^MRxtl+;Bo(!-mF>fsxuhY7DHsAVt9xQPQ=MeibQ< zKo=noYuyXq=a*HdeLh%<8`;C(-C^si{v~-~hd5%>2^>iokfU+Ma@lVtCfC>Z7fBp; z`@=WahxeQB>mcN|r=6{cc-Kj&q@lHe^}0<9qD-5e6bg?bijuR7C5z=&96BybY6IiS zP^d_BE4mh9zvRx%+l(g#2lI;m;y?e7`2OF1A6!R&exJqZCB+Y-%7gZn5pXb@Q%B1LOWApJ+d;b~3W3cr zB>VL=>6@hCP%3WKW8TsgC*v9C!Smfu9zy}_l~@s3xt>QC@aVe__)GDC4-RS$>Vm!5 zl=*Z{HG&v=oa+d##YjQZtWY|#UaxUsP4vlNb1)hcWseI2;Uv1ZEL!lrr>wxPR#bcY z7$m|c4P6TNOs4_w)1uMa7Q}RO@d%-Cwr8Z&Mnf6$STBT-nOu)41a&=TxrEhagAfX% zE2Qr>fz{3h>UzxD^%OE?JTWl9LSi?1lyq8=J|KikZcUNKqcS_QQ{uczW#}SxN>-*O zMv0b|UwQu~flH7boeh-L4ZNH2`+xBJ{N!VJ_wE$GY`|F#rc?Z?MNi6X{D_+|$*OHB z%aRzOsuBQfa|FyL@YwqtD-@|mIRtf`I;oY4biKvejzX3BK8-{fad<*VF89uQ?531m zY-*XdtolwUYYt|R*8);S+>Us!s$1A(^NE+7kW(Fye2La+_>!Ny0mjVcZ6qHt;)Ni@ zu<6`P#Un{4NJvo>f{1rv2aM)ALy@u%walZ7tZMf}S{Df3QWgc3RtOibjDBCW0SrZa zf0r)c&vn_o!3g*lYh(JmWIZHjm8z)#AYw=vdqZ4{kb^OfY!=+f^HX92$P%C%6nJ9G{0;FhY@0s@&F{eaiS3|o zljGM~PuqK}4Hzw{jiS_Y+me)7zaSDT8O4?U$xUm?&=C~@Ed)~}8cDbEv?j^2lo{fl z+_jOg*jXdr^Z@qDoGF--9-}9OG`<~=Yc4O_Y!({W!dJfsX&R)4v(qYkWQ_5{NN*g?d!kB|MzDUe2wWdb~eyihmw9H5}nOvv<+NdE~ynL zOsbhdK?G+VqiV#$r=LYkk1u`7e?&)uP5I}W3mJd%u&cpp^pL? z4Sm~kczeX{yE8g}Mlllfs}kE6{K>cen){zR#uIq_WWhJzxy9=7V~!6GC|sma1tR2@ zjx18{x}Ir0Vih~8DviARzE2KqA2P7@NE6XUaO0q4T{@mcPv3#W<7|s{0TYv+PzsfS zO`vy4Gn3rDx#CU?ot!ziRXpFiF|dDfm-rEzzPZmGJw4CvWvxY&&w-5VAeMW76lQ5f{*MD-z!YfY+aM z>e>Fq909)y(EcL`d;t)Q*CT<{&b7FcunVN;n8zK)58MaL!|WNCz;Hr5JMP0+tjeeQB+-iP3K)Cc{B9h^?t3#%-*O z4cqSzOx|!LbRn^R>(0^lN$xY!l95pqN?r+xXD3ru3X$>OE?d975p@2H3L!887B+G znNaJ%sFGBLpfZ6`DOq)Jcw?WBKKu#QXiPaiLKbtPF6f=16oP70qqSkYKjwe^KYou{ z4gdV#|8?Ga=LW0Qia-1FKj)k8k9q6fA+z!l=OPaudY0>mrNvZGOpZCZTrfk?k&Fr| zq+TxRQi!bsf-bOtt~C3mL_|gO7W?ceZE!HE`CvNYt*?EJ2g`=PeR{%!i-raWRm}>| zMev9Vi@vl>O1Lps+&mbwH#Y2z%tjMgPiF)vXuF15NrLxODv8}Sl6pJ>G-anLMiOL8 zv^}nCF(XgtJ8s{qD8_T{-Mh=_<1-*+{a(B>4zSh|rN9`2)`HeW+P0(bHB}{vD&oB7 z#{LbWht<-dYJqnmn<@k`KyZ=LRN1&HHatuMl@ehLeF!)lLPoT-2;b)m&x6;1$%sG_ zg-;!ni4TKV(041|d;e{ev2@FG3NxbVB0v0_5BZ}%dd%H>2i$*f%I%vYma7GC-96^y zr;qrxckUu(pBBat5FtJ1zK5bHSob}~n9ch!Z0LitS4Z%D$9!+XY^L$?85idsAye&6 zQKS)%R1&2nJ_KCvur}ZvxKxfy%$h(3lZara%53*m-;PgmmpK_4Z6iE({zI@4aqm9X z@aLEi?@JfJmxY&J)r+M5-wg|wpSK&_t70%hs66tId3?;q4CDv)Rf>(N#b;)*3yxqR z*wiUHY!Y2?&;?Af`+QTD*&uNKWf%d&^Cq1)sd9R)F{*fhi}@EtA9da2bFCwGd)@ln zq?2Qa2#JmUicBz9qjTQmy^BN~KK5x0EDA)a5VE8kX*7|bbaH!kk=O<30(8lMxN3X6 z58Gys%m@}*QWlD`P>_upJ`Sxy>C2_;>8yv$`o2N?7q{ctjp-u?KzA;%>>caYqaw@- z$+Xgp3W?56k`M>&<(4%ZzQ|Ed!|k5dh2(rjdq@BPAOJ~3K~yMKr2N!EK=2yZde&!Y z0#r>i6D3-RmLcr@AL|R{iw`n+nm1_q>blrDh;wCP^0KPBq?g@}eRoq4y!YtjbR0q= zL1Ywaheiom5QL@+lEwi#Wu75YP;m&!W_T~3)-e-zBgfhc!PWI{|ZkZ!@u_*zJ<06e(P87;G*Mu z-}!U?#eepn5N*%oKmK=k{P+p~_wW88AAjUsx!`M6+zKIP8sJ^B(BtwV_t-?fa2g1&2LZBI246iRR~DwxbGoCSMv ziCeT(bI(`@e)aAV_5KleZyoa&GHLR*p};ZM3^`)xkfNh1D+(hJZN#=7-zyXfEhE9N z*_+SM3RV`3ku+Xl!Vo5!+`P(EDTrH`bhAd0T%kf^`z8f&M~~4GAwzPcg;alr03|}Q z;>+|sFCmIR5EfLb-@EtL5w>4qTZ?mnlXJx%f9El(hM#7#SuWOe>jgFhjFD7D z&8lfLxKSkgio@kGe25XH^Usw-sBu0Whj>NBv^(2#XLSYBzplV?^ZTQNqg?+0Xg)Vi)kv zw1}v*7CWa1 zHnKby^eF0)-tt@0LvYF9l3A%&>6Tx7AE;m8i$7dDrw#YC->l|RL=YCK3{vlQFRRy5 zKxnNu@h`hB;K3N8@o_Vn65e5>CB%r-2B9k!eFA|G&(<^o3SF@78cbagt)tR{ho9U> zJBUk|)DYG!WqZl~TryE>r0bcDZ?ZhQjf;QT&!XOe&M zpZ*r-XAM98?n6HN(J6BA3CD-G(e9kXO5xj%qEM__%c`@??u+&j z5Bh}B{R{SQ?Q?VQn2{-%XwT~6oKnxxQ%RH&MUQbU@%(~HM5HVkIS`9WKKhGqGxtkw zm^tF&5%=bBvS>LxtZCN^Ml*qy0cY1tr;^iWA5o3IMzah|YxwwwPx#Gm{5D5>68fi% zC!TV$W;TZ=!n0n|P|>$5_Dpj9%F^Ishj=##Ea1e_N1DzfS>8O;oO6gWQEXEYIkgK_L1Lru#b zk+=@*9qw~-{)o~<^hhF|Nu9Myql=ml&S=^t2+QF?#d7hO7+Q)#VLOMBCC&xBbJRsd z$d1+JGj86PAt?Cp;}e9^1O(%~Jv!%EwJmMm(Yq|n)*0k_M;x>`*W#v9wxifeIyRtd z=ayIU`OSQX)U&~Ea_@951r0f(N2p}d@mvLfDI0Egge5l&z-GjooxbEA(&!=~h79zF z#ukyszaHx{2ph!sN+D#**i43(q;C>oh}y~K6`fjzqL4UI(0WN9CB_(PQ_@IJ5EAPm zRZ+5NTIQ1yVN*Z3Q8DKX3X~Qp1a+Vv^0;Kf91h@7gdCYe0`9{GCZ2Cwe$fbNH;QMQ zjk?1S$+(eB3%v!FFRHZ)n}u9#f0keqMReuo$DN;_LE(_urIgq#+93p#QfMvVMQt+i zb4F^r4DjdRNbxxor+7^h%*&V$t<_bKCw2i}>I~Pq$nQmZM+ZGqYSnpu+;^P`x&B

ZXq}+^(SO0~Q|?T)u3Q1zJ2!^suL-uy=k?6O>o?%;_4lId)9+q@ zh#Wm85n|wjJG4=>-2!hre*GJ7^X+eaLRHJ8gO$l}$R_N6%O-DJ+dJ(|e$aI*iO~uz zhscLaEe~bvLr`Uunq}u$yX5ebq|vYN7APPHo;*BfTEeU{+}@iq)}Xw_;F(q)tpw3} zYE!aWH8|feold#9Sg<&Qk&*~!h(R%)jwr{6eEiunIuHAW;O_A;&BZD6vF5`cJ>pm2 zyG4KTgrnmLHp zUqGLuQi5=lrJ)E49Y7fcK2SxQbZ5;fMS(b&+)ALxY*_*+wn^RifbGQ#5K84X_iYdp8 zRZm%5;M;X_1tk|Tci-~2H`!TG{59Ve;bNW!evbkPx9@)Ab{;1VR2DMfz>ERA@KibxfR zy-g4(rWh7NM9FMs@ByVPg)A{fV+w^*$qeCRNaN}NAqWC0jkRTpWx1Zmw~OE4^)%|i zMWT550;Z+9V)gfVHIE|Qh(Zk6dl|6gfYLN>PoiJ4^ZG>?K?#+r>UMM?yHbM029mn6 z^Zyxw!)IV7qhK4WDz>8iK_=i+G)xrGxuO0o& zl9ur`STC{TEEQoV{5ZUvfqT{8zwq&QUCQBk_VJBC&}L@)+N^;Pzf3IP?&cd`@aJC$ z8Z-3*yERr<7$K2fBKl0f=|MRow}(3|ppeKyBCSldi(YPm&XZ9sIe~i@=v@MRcJq6n zw*!MDHe+NZwy=f`8yK-JvT7Wct8|!~)`}aGg4sw@7AhO|at|=cjjTj^nkoZ4J+OQX zU=TC{L;8C)2QORti@&PUnxMO@F zp!$5>=+A+w;f=b2VVx*!l1-|th92{b;rLirykM{ZN z@BN5w4F?A!gcEq@dF#$Sgiw6%d*8!37)>Ya9URcPj@9}c>)`n25&gv(k_jrtOu;*} zC^(!|jBgjL`vv`anQo*Y@B+Mxgj%t8W6Z(5ITKak+#$=wnzNI0mS;=)MW9*3dTo(C zR3%7naZX@Fs#a4r0fP~SGDvO}Bff9pcq+KLcfi;0-Xok{ay*_g5(U2PS#}MJe!;nK z>6Qyb)Il$13*SzHjLMqw~W_NoHetg&swkrM13 zjwq^%QIymj;0<0HyioL_V0w6yYW#g{R7fLPw++@lqiZgxE642Mh_`Ml?w@!LCKY|V zpr#?}9%~y+QGu`t_^BS@d|m(|UO4Lcm}ar0Yb=#A6iO4FOI3U%#yDmG;G)Ef!~k|G z;FQ7#&wKB^$D-*NPxtxs<464Iw>ze{1lmGRQhG3=bbqOll89x>}H)GHRCS1nCJyqLhbzCa8{ zi5SC%-HJo3#I*<*8S}V(08iH#kO2s){PWZQljIP)uWy^+pEWvcUw;e%A3ae@%y0tT z(G*_QRc$p}K8Q`jgHi(FVHrJzDyb`jQdvXk)2MqeQwJpK$|--RF#X!Qe1%bat=_fp zIe;y^0i1s`&DrN}Zkc&ZdhA`d_dj&a)T=k%znAwW27+&KVvUU&?KG;-C`sk6cbOSm zpU1#`Vsl+g~H&bD1yqC}RGNsS^RTpV z+6JDsfk!LHCl?(*J!`pt(Q(##s!`<0S%W`oj|P2Cbt~3bA_t?8H{3I z#^8NX;P)mV@Tv?}UIBqaD$9_C8FB)Mv+M|v!xug@X|bu730JyMgHLh=AvMe886kiw z2DhRj1SnL^#lqowD97;5ojG@oYDO{=kH##|Q)GuSiq^Hv4`&G3A<>{TKluJU72Ww8bxAagoy9MT}Hh zW1=LufOi2U6tn^9Ed?N4u(ZQnzsV^fbAm3(fwx;NAHFW^|L0*2F?_>EWZt zpYhRme@YWz??7;L>xk*7#s=6se23sW`ew;$y@DX=V@qWUjt_3&8V5+E3y3BVGQ-x1 zNGlw=P65wt>nJPDcvNz9aLlNxD2!rtzU1iO5F?(Th2!Mu1N1l&OF=y<5kAGApdbdH z4h8}co`~nxJMZ)8p=I&Z5|u+024y87ND5uxnvRITBNIy})2Q3)n5vHo!+Y<)&kr7a zi?`ps$G86M+e{{KFdgyse2=p1(RM}qWQ{5%Sc&yLWv<+0)5(}_kltF1NjFASRVgUj z+D&7Hi0LNMy1@2nl$L7SJf4=m@9`dlPLJ32Hl^=h0f1sN`VpT44qmkxrQl<^$r*g% z(sZq!ad@4(j~%ZqK$_f(9V1%G%>jA1w>SNkIld=~tT7Z38Pk0zLUQ&hBtBOadJ&K@ z9S&6~X%q z#*)GdWS2GdDkH1mnzYFb;(L#69c}M%E(fs7l%eE9#M#8$buQAlz`9Rk-_9jK*lZYe zk?Q1>Oho{jp5SB%X?xG*I)T4J3+5xuv^Hodb^u0#9)*%rDw#osqm&Z6Q;lr|P0U|D z*If1@h2*yuPS=jdOV7hg$D^g=v!&(H!t!ioxo88e6tueZ zOT}!gn2sVww#3lB0N{vi(Eb}O|iN|vp9leM+WqAK!pKt!=H(AHPqq8$UdvMC*{s~^dy?b|< z?RrI_BIUshS!7VqC$Ybm=|JFQ4nroL{K~x&e<5hjp!X5$*2plJ8zeq!<3nbgLO!LY z>nt#xjwy#WY6abJJPo#VSKE?btTCm6d<^=#3D z_eiA>GSYWl3V{}Z(Wu^pKo8k}LZp$kR))3h5<7`N3W?DLMyF6#n}xH^*~B1wpFxad z8=M)F)<=9XjZ_p6{Hss4h1OdasZtvtDrM^M9RT8H1RSq2jLu~(*$}}K0=rqCaued3 z7t^e>63BGl=8>&HrmCu#l-`o`dy-5fU^w*f4mE*E!|3rLk1#^WZ(pk63kaNrb<T=O=Jd0QJ;^`2Fqa{GE0So=s96G*Hr#nqgub=z+8~_|Pg%Gy7tu&WXL^SKx z(Y8<&DdVMg9;GzSMq<#Moh+G6U|vG4Bhs}rmnV#8$J9nMACGA5ilXu?)+ZFBn(^$2 z4}b6w6~RbNw`#G!#t8PajZ^;ppgyx*k!~6^}mqkQ+x(7LvNs7;llvQaH7@TjIQj7j%lm6u+ag1WmWHS#-WX1sOQcL-cF#zPOV6#z1f?CTc9}XCbvmVu zv?55Aom?IvVfpA0m-io`CsW=zJmmQ99*-7F9$lRC!@qjSY_6HkC+r=}nI6pWr6kIV zPC+yl?OoDO3@1zv1d9+Jqt^V|TZf#@8`kSJ>t~O-EF0!(N;xgqzj>3>#TnBQn)Qlu zf68n&qv@WpZr1FLZsZ$3^}#w3^Pkg~8Yc#|?HgR{unueswga_ln3X1vBoc!pghWQr zL^P4ZgE{Bt=N#O;!?(WkXN)H>nay!sMEe!{BZaYw^J&4Iw{Ej&ERUr{E-kvZshK3k zB%016TT>fibQE<(jFG|wrf-D!qC?l zpBK%)DT8zU+$VP!x)*CS^oI4@bwdu{v%z0$@433EYArXijzGNX@Xhf6R~8_Z^p0sX zoN5M>b2&Kz)5tpI0}|P31`t=lNq!#QyVQBq_-aDQ*PhT!UGAsMFG}D+CF9WExW+7_jESp zkai)`le0%ju3(}k=FxFy15Fp``atwhYr)<`aWFBAtJKM@h-g8YrYK3F#HI#rIMk3E zL1HdU4??6bcA~;;r0YFrt>f9s@!4h1r{^7yE*+;$;IfM>JFr3IF7RZ4QBtC1Bucnw zB8w(sRFYkd76BU_<61K=3&w>{`t56`i7&?het8z~Wx(&tU57HKJ*53|Fh33V{$w(` z!VZ2Z1~A4n?)A~_)P^Vo8i8iLUek0i9vPevSleTY0%FRHTd(29So6;DjEaZ}fl8IE zFBgo8ib4v!3>@7U)Ai@bae+2tzW2Qc7%8Bal!d_t&)s+5=Epz%h?C2f{ezOylpC$q zqel<9bLW7v(nQ}=7(sLvq`>waGHME;iM?lazUK0Di93h7DsaIgqy!@XYJ%`gv zdMfaaP)d50MDtNgN^MY5;++TAqx;BBsSzl;Wy^B)8QvK7#$)COx0(A>E}9ijJ~`(n zpPVD6uz%+U2e*%4tZ70=tv!V_iD?X;;2T8fFwr4`%Xpez-Y@>v6zYRII7-uIMdf)kdqOf4aO-=obog2lUlC^VgQ2vrc#co(rgF?}JV zj3nwxvA0)Hku)fBaR9cCIjUUr-zPRe+Kh{ngKj%+CH&w;_D7 z&+PAS44k!qaZN83zKGZ|(sv%#r293*)GhAF&fd7m`UIcZyMRy<>myC?S#^$O=UHa} zXhX#1EY4xn8$!zNbUxDCK-VXbNsLTO!QNPMFwsn^6agkkTE9v|ttF)rXq7;!%%Cd! z=yStS(r>$%Ow4^=zgr(!dpK)7kCr`;mpxCGj;AZfMVF+GHVAx{|F|6~i`Ig&km*Yc zN)5A0GaqTHQc;$IWvf_pP??-jNc)n;n6Fv`D8Doae7)iCj@UWt{-O-et!L@LpPp-7 zk8)#7PnPscs8!kk+Zb`e6QTnX z(PeVBMgq-x2{JKpS|rhKFsZXu1(>0s`*2A4Ux6nU* z$U!}#v;tjdF0{kTKu|#85k>mM8XxEb+!$%X+ClFqlxBZCV`2=8-m_Sp@hkHKo=Ht1 z6%V@=&pKG2oblz5dIv z+dBT_M^k1-GP8zCX$%69EV=A1kop$9M@GZxq$c{n?W-%6Uw%Qdu#wQnf~m1+2cm09 zeTz_xI6e%^6uER{1tge^5ZC>S3W{TMz zMnol$DWXMWF`uBdr0E0e25g~e+K$u0aJDF^OeC3zke(z0t?Sq}E6UL4bcJxNJ&S`2 zcrZGsLkOleiZMej4ns&6U{clisAyVGA2-~sI<}1?#k@c{7Y`w*4>Ft5chq2r^zlqH zAHzLI?ilEK%mU`yUOvhM?wJ&+_9l>H7Rg%s4&!nR03YVy9j_NMC7jRY--n-he<2)$ zxJ3#%n{hO&40%*Yo!O4i(QiSBEmc)wbxl=F2?*rSjT#3gFd|VO5rvN$z;Cn|A2%B? z8ZiEGnXiY7xe)rEdFde|_+1&R-|;fye;_TO!^bU2C*;f^lAu{9nl|9tv=6M0jw9*S z*yJ%x;)d$CZ68>7o?RbkeB5XMjTZU5CS=yH4~cHj4W^K=N-(b^=M%}kqB|#Gs8yDI1k=w>|vvsWc#9bG8yLDV|11q0sVxmie zm;_>wtB9dKR49qHib-u)ObpXXGbtp~GC$ALiKVvrxF>XE(?#k+GcgHG1kwKkfWYr> z1pJ+UR+NWuf}`t0$ZXcrM%+J?euszEoy*|IryMUJwW4>4&IfcoWr|wrt2Jk^k4i5YuECNUwuW>!>6BI^69e+7PATe{@?$bv=adZ8a z+0?M!ZP{)*iXgcC;tjSbSzp1FtcmElj;b;w9MZxMe)xjhP|9GWA<;pML~_q@ zASa=R6sYQgE_D3z7aJ}MNfRQi+hHdQs%pYdUw=haRD{?NMSze)J*#TY&FYpov3R2i z$uqw!DN4zgU+w5EOc#c?E5~#cT&|=503ZNKL_t(h(cd&YIhm4_Hio&Y_daM4HH(6$}LNsS;9T+4J`F_{)L(cx1`*TXh+=sw`5 z4Hu`M5V|ef%{4##(R12v#na16{`${%T-F-jdQ#t0*n)llA`C2`EH(9X!fvsFkff5Pmvi zqZ~d6@RG#)aA43LTMP!L@m{FC2Ylm*H3P(WvCLChY8Xq<6@eAtHaK1OZ?^JyQV9S)#yAM$<39z47s z>QQjF*JKX8n|r`}tk;Z(OuNH#J$@XuH`D9^wm9@N4{D*0Q4AmW{l$@4=i9NDNq#g4 z@Ey>5?_S~CODGO=%KLvmcBM-p-ubm{*Fa zl~|cauvX?suu@A3BQZ)M0syc zpC;tdv>zBl#!SE=wZLe}tg@UjlV1O=s?ppD?aNNJwpoF;UEB z{NmTYA}W|Iasz-$k?ryZB?3m}O+^D%N~Fn+0xbe*Yp#CN(k?+bg^fiXN6Uyp5|c*= zC@O<4Bwh==6q(73ZeXUe_59v)7$LeyyJ<6<=mo-oQ5s^z6b0+;4ZF}#&%iew#2iJ^ zx}GFOW+^rN@b}O7;ZL3;iim#p6<^*giAm8YPxO&y3n}J4<6b4EMc|3FbgLWY+R{14 zvnQwg?cEYI_#STGtm!*QHutV>Hn;rxi(94@TwYY1pH8_vo71-~?XE)zNl{3Yh^)Ic z?QKIfk*LzLur-reiAaG$K-lfruD6_2XVA2yt|7P<bYvZWcl(s zcjmSoMUp6&H&g`}8Uq|UcNvulTHAw^0d#}6oRD8rT!AtOF?`vA@{k}WUf z`5HwYPOxLWVM^Hyp|n8T0%aAq2~Y`AdOQR0A)tK-VDk6L zNA)Oj$jWoh=lH1o*X3R}C=pm)kW`*C2QkF$bdlRtgAj@7v}94wC~SpKYod1)roc#( zuM6aN)?$9}>*Bkyy!(cgBXAyuxS^b__;oZ&-`{xjAL{4->&HW67)V5ta3pKdN;9i8 z^@%1qjSQC13$~lUawXVq9j=Y^ZD76Y^BC7hS|8c@L>Ce{(Q`P=#T?Ka0(hTCz)C=6 z1+!8xDLKM?xghf4*ToFxwl1;mBg;N;*9ES( zo;RDGtF7l|8(6kkIujZ7fs!c2-o(J571UBtYRyS)c``3~x+uArl`N(OlS*NY#F#{B zL0%EF+BE>a=Hezb%vu*H;DFF!{u3uFu!ZxO;HV?Y^b`+zJHv&9Lf zR&*+h*p<udtN;I46`}|UGVz#6{1O~vuo%AZIf^U8nH$PNFM5{Wak>D z(+gUc$IuruN$Mj;4>}NGkhTKgHg_?~BFe2$(hfFfNrS}M0p@w!7ArEZj&^<{?iRG@x`#!tG ziv<%~6S|%dTFSy8Rc8Ah>i!@oWI{a z+TlZnlz%Fd#6N_~_g?@C9GK*sPA{xM8UfztBTmlT1)*!KBC|-+3jO6^cozDRl1W)=E&C9IsNE47l{r805xkxsd2$ z{@?%rPK&52wjg*5)ln|n;lYHgt55<-sNmADK)F*j=l#wHC&vZ5c}U` z`=|7T9;&It$H-=zxO=^#cw+fCzxNYfzP`h|JT~@yN1xyamp|mq-5pchH zg90ChPGClRJE)|HNg{(l21Rq{C?dorVUoa@64y1vE@u-Jz_a-R)hwyB!YEA)AdO^N zm$-hzY+4X$xa)72J-MK+EUGGzr>96C;j@~sb!@ITEMG3^UPH5lg~=D8i;`x&B?Qn( z@Sp$ak6GVdad-C>y9T!25pa}sg|13Ot&p+d;^K^}+gpD1XTPL0@cdcL^UD(^6HAO8 zrLG2dRUT_91h_!-Szy|^Vfm$AiIG2b4bO=~9dgvh1T4Sw6N=fjZzVEVg zQ%Jn;X(I?F(3L^Th?H=9bxmO`%I91>tu0a;dN1%Pvv*2FHrpje4X2nSP$FMvLJPci zNR_oC(rAzp=L1R_QuG9$@G%=znl1yVK1lA?JC-X)pAS=mzLh~Qm~-+T0wXDo`Y#@s zD2~k32$1k81QsulWmjdfH z^2Jxz6h>0o1*I;KdP*O9Qu3rA2A6Ys90)#Ggg*v^-UX81FTZfC+02_q{C54p-vao( z|MwUFXu$6qjds5?v-!_Q8#cr-=Q~+A5FHVX5Edad)=JDmF?WiylbYHpUcXk{t~*vc z$EJ&jK7v1LwpLJx9N1iFL0t%DrD9qrCZ(b@lENsAmU;4F6opX~MgD(62>J*v zAK7$)O`qMycWoZ^-Zq|_Ca`P+n=Uhgjn5{KK4!C-91;MO6lf{;Ne@!Oq%fRLEl=kq zPv#{T^OBR=Qdx~vGE0?)=ix*mj8g3ZP)czyv5^d&hua;5Aea?9jL7K%-?}~KJ03(H z77Xyne(>SLTa1Ic{Z^WIuO=PcIB$9B`oU-7ZbP3HE*uh{NCjc zsLBPu{N-OUoq}&0sv5HYD+Pn;-teXN1s{{f}pczXw?3w;hGRBvr(x} zxEΝ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

GWr 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%0ALya(M_8QShxtjo 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

t3ox;%5AMlUVdjlp#hc82H0FfC%5d}>S8 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

G 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 literal 0 HcmV?d00001 diff --git a/docs/source/lib/images/opencv_processed.png b/docs/source/lib/images/opencv_processed.png new file mode 100644 index 0000000000000000000000000000000000000000..27b59c78f0c016b5fd0e069af5b293e1ddee557b GIT binary patch literal 364619 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

_%&yxgj5FM6${G>qrCw{vf2{>wUZ)^W} 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

>ESl1IW^_S zZ0Q22nM#Q^C`d;jWZTDtO?zof?Pf`2{dE22=HDJH&@{)Zp#YDQwvm_IFRn80s->cT z=COp2=kod^E%v@H$8*un*MGd;?vJQ;%7*K_Lez*U7Z(?g_su7%SQ2v(C>m(oKRy=X ze8iqF0qcZf`IFo$yWXmfNoA#FjD}&x1dUj-tT7DiUj5~l#pf26ctW3J7PP^TK91|v z*}9h&_JO^+vonue)v6wi`3?l-4@6^AlFAzvf5by^`vqY4`@3=-I!dMkP2KI{bc{7tzU3UXuC!m!jqAFAME#ib|LsI>9^Vs zS)`^#SLy+t$?Qb7Qr|wh{9oz=ffT|exZYiUBhBxXihjh{Ga?_Or{x}7BD)?q=+-LJ zFqYsVn6h`#u=W{fi(#KS4!9TJYGZbiEHbuL92B>!8=P8q5bZsRzrVowEIL2!qJ)?- zZrPSm#%E32bRPAJzh3w+EkKnES#grejkkb?rsmtA=t`TU9_4s~Z7 z=syEw2;Z}MCh%f3hN6-l3==xoF(wwuwkUYtc?+~}p8e{Sep+&i4vRbVYRGW`>?yzq zSaOghkdV!`%ddXA0GkYA?b_;KP$$sUGsXM# z?7z}oTpm)NrJi^nX)aVMDpr#@dx{759MpcMy3C2{+xy6#-dCsSb%o8Pu}n9S5FJe} z6;tVanC(&5?u`q95Jrtq0uA>qDyzzD<+K&kxj(Cchz?%#y*WEiSiRncqyyCTcP>sAo{;o ze-}ZC__0sHprY85%JhlLIJ153Eo2OSeN7V7)_gkJD6O|ZAX})-AUAFRzkFI}fH&-g zs|F{5Gdi30{bLg=QZ_9jCtO8vSN)|60dzlZmQW+>&NwoM9>llG0mGe;cREoDsb$_z z&BVcHu;9v@<}H1r`Ciu&#;f&Iw%;l3?rHeM#89g$D3k8weR6Tv7x~G~XBVD0mz}hX zoLTlFO{%!&3Z?jksA~$D)nnJu>#Y6#eVPXLgn9|(ICK1L#n7KWe=>P>UgOj`^@>nM z7DTkpAJ+o6BT!;F$?n*+7Za7(1>6FZGV~N`>Wf4S80xd1z5cmevkrOXx>RJtQOV4?lpS&*&X|;hJ@5RA3;hj zx*;PLtI-=T$YJ8F;Kn>p%3Ym8^~m`p2~&HEtW<}c($mw3uX}rU_pI--PJWY!?K~st zGWF+`Cd*Z|A;NQ!#xI&ScV3Yw9|#8u6*7w&^VEMB30xL4$j{#2O*B138J0Mz>{Zr4 zy);!_pDIsucQ>w4n2BlujVEwu?>MgfjUEw9gu3KHiPY6O%WobuQ_M}pNZ>yWT6YNE z^?!>zT}ynB=el>Ac+MJz$+A1zE~q)Rb16GmZu1Z#x1tt2$B$$q*vA^zj*+N>j2T#~ zLADrq(0@8W-5AMf*BJc#s-~y~F>yrUIy5cCvJtjI{%iRND2C5z9yq^Wv=?z=jb*9C zRZkzE#58QkWSY7)kF0mh@l2=XJ7Chvc3I$wk>@InDp<-0w^Dkb-%qY5==H)_^jbGZ zS5jH0xM`M@l9eF)QkdZ$c>Djb^%X!-hVS+Uh=PDfw;&yYAYBR)B8^Lj(z$djDIzEh zQqm>ex#X^NvxL;rxrEEowZ#AP&irTYy}$d-Fu)AV*84s0^PF?ub6o29K={fisLP8o z+7HmUEsxQ4jCfEgg_{Nz{b94;GXF~}yPkqIO^J`PbVR6%s(tWQ@rQEWGFKJymWlKA zS$jKu3&f0QukD=l_(jdO1$D|x4qgJ|cTjC?1E@|jC(V*tKgnhJcTng|n1vII+ZlSU z_vRW)%e~%jFzb#`;$|@N@Sn*EgFtVj#&L;+r*9V2{Ukk%MS_{k zz$f041tnY+ZKudk{^*8rz`2*urL_r0y_4n8e|>^h7&PySZlG?V?2+Bb)bBxb1X zp(QeM$EI=FFP?tkS)IYvRm*1E&gLcpu8x^)X0SEhc%4@;O}$F_(bvE@&Iy+l!7bVmJ@ zNxOk6inIRgcTqy3x&!3jNH(cz)36IxpW_8E^~qkVPLVAxSH zbRFiz3!Lh*>uY>19!G^1g(bxrxw!yDXbjZxSh>>nOFFr=rni38Nx&mlN|Ey2y^V9l$0Q?9C_35{L=0VB<% zthO86BGyh1e!et^mS0BA^*XHTB~?qViFMl#);K7AZ!ZM05C%@k5mTu~DOHStbdT=NHiYn_-;)t;y!yhtNeIZeX~Uxy+Lx3VusL zTsPx(jSTTCPwal{MnF6%#@16Uou&DK?aEU^)Wd0=ht zn%5WgXg=3oiq^yySrjN#-kfvwljAilCUfPeA2*S+PXGs3hvEj-h|ox~vnKev@TYP0 zbydK8%9Ik?nUr6w?3f_EeAHz${-IW|_Uf+rrD}TY|Gu0ndu)r3qb&4>Hrpgt5_H={ zHUFq-MjU>1_;Api{nbPKTsM44DFV|yJ#scsS|v#D)!eJ*=92xM;l`18H3*gU9y+(t zyjzJ%-L2S|zmKPv^rN)0F+3QL_%QODOv1*7zp60L>zr3>Cqm*Ox?X#N9ZiGuBL-Zf z@*`vQpwpA2emva7+GREkoosQ9JCGn<3R2m-oseOIAR1=T*HCGU!jrcVc6ZA|RLF>Y zht`#~qS*XupAngfR&S&O(Q~3OoR-fa+R$s)FY@&hy~YZTto7O^lMIvRBVy^U?s)V% zIwPnr1TQ|Co0FpG7%%!{{>33^Cb6F`+FBouv@*!LZFEh{bJgV#ZCrScDSekzte@vi zI9Rjph_=_Q|4@g%`ylA*!w!S?wcSDGZx!wY(N{F2f95qeN(~FkjNLEKC@t0q6d$iz zVdQwSzGei%Uu|r>LV9Po4;@c_cKPD@L`vwxdB2(V0qcKGUArzjN~Rm0AW6p%(=c5^T-O#`QK6J_b{;tCg6JayLT{?%JcouPP_|QdPROU!7Eq z)oVirYkvJucUP-!w0 zDraY#v4Udeq#l*e=-9VTCxj|=^NzQQ$am2yHv&;-swv20{Fw$i+VSbXi+_KasVM#L ztI=!iS3E42ZU?7@NFqZmz8g7me}TK9_SgJ`^jmED5WWiUN5as@bLWchYcrEM-aV6l zZclx>cKnyDK)+EC()6hSe2;MZ6p=k)Y*t(M!Cp?7jl5y&2VeP}{US`j(t*=R6tJU2xMtK{fr$!ND^9P9a@m)kQ{r9cr(8k-gahPKFDQzBaf?)6Ud= z|0}#wI{DW}!Iek)<&*Ig^J z6~(f8JA6P+l$yRyE6~_c?56r7$%=%wOdZ(dZm!&mYSOOBhq2ooPHPs; zDm=`K*UX5c6kVlSQ!nxQK%zYNyyZz{&sU#qVn`-9>~Motap}}(vsj+hoSey5v8or> zXYOb#FO9?hFW3qyV| z3&is_HFgFnGlRuK%vmDu)=el8epqCi=)R-CIzeYjF8)j2;8O?kEL+^hK?D^xexVIc z*50~csH`};^}pnL`}L&80zD$}>EZ3wWLnjTrYh`#2Vnydiz9`PLtE6Q93R@HyWBn? zOR-#LX6(_i>{Qjb2Kgu&#}JhrZQrMZs#HgRoR!SG$uQjf$r|m^7$D+xt*lKoF>lIE z^m5|l2U27ujkE$%7OlP^;m<}vQtLH+cU|M1WuYHBWgpTF4&#QvkdSy?A9lhpzinA#!dl-BKQa+Zm4!&*@*AvGEv8N0azm;uDzw&&0_d%AI zJx=6lxE||+i0+)KHM^22hx+GzIzRDW5K)40Ex3ACRUbUXV&M$d$(G^t2Tdp{f5*3h@s&vpH0V<_9vMp?+ZorV%K zkTX^s7a`7A5`RKE_fc)z4VZ#@f@+8?>4hIWTy+$-_DRJ>#EEYB>g4$gipS>nlKd$A zJa7pQJL!EzqfGgyjUwqmEVcR$l7`DkQ5kyQEW0!tj;PF1|EPsMqEY{7Bnu~oP?l6V z1}*9Gem*#S27ML-WvV|pzBE6rG=JG7;e?62XZc35KY9j`@31&%g}oqygrn&yY&>k^r6M-y$f1kT<;K zuZ+G}CqO>RCwu??e$U#=smoSVAmzdJ@><$b-_^ojh=awtyuwSH6>3Vb!X+EOms+s! za0?kHrhe+l@1EFBrD5hQ+Jj^c+AjkQHQ?IQ=l)(j`W*F{pm#r|J@XC7wfWDd`h2y& zAu*tz1?lCf&!O?R`xT?S7z`EQq0vqivY2!AfrdNr|EM0l@7Vo8=D~h{?Pxd1sOTLY zPO2zkGo7E7(MNrq@WM}*H4GUP%0?3X31IDg6){cnH^X+80pnT~$^%vvGI5;SmIKMk z+~?Ma{%Dyc17>|jWJdrY!d}Lf^25LMKHiu3vGqWvsE};_9y0@$mUYgeJOVV~Fiy`x^1EYnR;c+1n*rPM@ zzE|-&W@!x{o7WEaRr+2ahAIZVo{2(DU$FBp%(=BrG!=_B;%Kys0g-7$mfA^x;cyP? z^FhJz4ky7B6+Ix&-5b9*ffGK_Lh{Wu;ErYv9ew#0D*VL*M>;jJ8WYBdWiG{SJ7s%L zN7aqiaSyY$#YtOK|EE_v_r0}#>NI^%ohr^a*An{_R+whnQvX!r#V=-+B|@L}Pw7M{ zZRfj8^M=-}H~gPp<2x+jE>d|z&|SV&wqZMaDz;@* zQEK8jn!HB&0$q1HHS{!0JBWw)bYOtnA0!M~^2E#h1LAs8-)=QK$zSr3=VQkyWQlQN zouBL4C%!rh>O$s2-T0#it68FPGZHu=p^fWAQ6Wdd@^*wf6x4SYoCMub5jsd35AK+I z*YeonQIA-<3xx$f8<1B(RdzhO@x82Kdqb+EnK{jJnsN#e07n2}cDuW~K!O%9qlL?YJvF+Y?G$Jtzbz%g8(DMqV+3uia!f5*Ma!vdn>y__HT^{l z+T0u@>9yMA;KKWp4~-_7od`5CUW3D-Cc-bil0N8m{3{t_;W*e#_6Vosu6oZ~0((@y z1-r&TUA8N|&*c5EvQEerlJr^HZl>Q9jq82!V3oY6cFv%&CkY)keS&hts#cGGyrB#k zV^x;ZMg8m;9TvFMS4-j)AjCV%QY;{+kB{>b6i;aT&nV_1;Pr#4w+(C*%7h&xn zQ<)B3-IyOD%4|$%4=1j%yj?7!{)?8ZrhC6z`6kR@Ae{c|fBv~7!bsag*207iU{NKMA z*t2NgfL_pyIZyXI#1+jedaKD@d05_+lkp10&K|Z;x}asptv-^*|L}d2(k8blg^HUw zDoQN(Qz*dVmVdpwYfc_1ny&L^VbA%~{%1A2$=S<7a%F-6&N`C1M`$@ZK`Zkq53a`l zz|Oy7Y4)mBO!NOFNh_8Mu^ml~m;|{Z+?As_^phWfm^juXQ^HR@`$F!w(%{nrKj-X~5({}VE4 zdoBAYk`UocKfc~Hs(UYOp6QD3Bk&a!3Tua|(qm5q6~5VnW$OChGzA^dvzm&mRxTx` z%PZ(UGPd6qS7abtRSVui_YdT9Sdl^F)^|Nyfa=D!##MCH0Wb2#uVHhEsL7mD)}4$s z8WBrMO1eYCy4Q+6ul@m#o2QFX(6a}st*T?=||fcu>Z{dc3vxp8nP>mY^4{ z#x{jNG_VdzByli~-$<3*szoQ2vkwjH0h^7#PKUAmF{O2^D5v7$S=lX@yjJ&rdv{T4LVZ|3~9z|=1?Q? z(RN0>=g0RZpOku-uVMP4;|MdM4#K@yq^FO#Nm+5FprSZL<;0)L?1Mw|n8B#BlkF1g zRfAnjcRWjy+W#Jrl^Unl$l_pzptcBpbpz_P$(SCh^qQ!{vW0iVydIf9nxg$=4Aa&y zZDg;hzb|@Uc}j0ES_Pk0 z6xb3|AKFxoONo>m?5khBNtV2m0dXx(rgT3{mlPpmdp@0dJ&5fSkdql4Q~1Qs!Mbiy zG^CkGYoR1}DfAUY@jV_nl2EGkMT;VzE=BZoBm30zp)=KVT`onT zUr%w@NSa7pGjco>yowP$P1dgHC`El!+G;LR^^!}YZFL*E`la8MST2*?p>=5 z^zov=c}2_KYLX#1NBg+piLv9n$F#A8K~SX=o#Q{*6zqBqp7D>XQH%H+hmyhQ^}YrA zu{FW0i^rvQG(})kXVT_ClQ_K=sE=Rbs@>C zWkKPBezzBiqyhYG49l7*6A|sfc-9Fp7aGu#rM_9DZNb5!hj@lLg30vrbH(UaZ=HMt zA(`4_-4v|Ho@btM@-A2NnIqGAr^3GaizcW&J(yu;CC^VUN#Va|IO#4XDbz~}yliS+ zxpt~-_#1QyqXqFH__#c@!8J7YukwZU1P1uOE7%S82{k;u`N_3O`0Z@z5k&-k0hRvz z>`SgLc^vkqWaHZR1V1^Aj?6VH2W*F3eBX`E*xX|G3Kh&k=QRvQaSs zc4Q~EJoa{Ham~ zHJvobOEhKIhSf4YPsn?zpERaP;Yfyr{P@6)mgseJI@)&gq^CilbYXN7`hWM6ZFLIH zN6f~e`@P4V?`862mb|SWcTf|y2Bjm<4(%;RZ6Ya}l~?|J?e~sSJA3wxn8&S0c?3xh zeO*ah@N1}LCO7v(QcgxJN-V{@J2ejdDD`JBtsp4z5Rz_sbC`Sq1X#N5HD14P;)H!Z z1}Ot%aYJkyVahMMwtzy-&`kf+S;^(Q#M#rknq=KWH_^$jpOOGQTh{Frs%az1kSa=n z${b*KfbO&M*TP-23eq#viN!SQw64$*qIN3#Q(hD`O66dz?e6yQEYRFMnEM8;ym(UK z#p{=J9skjK07&elEI9pRV4swn+<%n*p06!|vUM3Z9kQ7c+0#kt6Cg4rLOZwtE>usl zoZml5d;JOo8rwawN@z9k-97S-1~fW?9%eT*JI!o^0wpD8mX^4m^Aux7I7-!V0B?b%{^6KA&zv!W^EB~S_ z`p_yWGtA6sG23^@Q-`2J9rEeWXl@23(~=xddeAT>D|l|*a%gnC;IDm@)DG^t#Kv+* zjlD(}b;n8Ag45%-+g!wvo$TWxE5}_ESr;k+>xzMYpe|E2&CLTsx~9X}r88+T9Ni#= zULyv63^-DCT0P3b&Ogdh2cYrkrE>+C>m;ZZUGCJ@JFxLP=)U9`1hF=bxl+^7(GhiB ze|US?uYNckc%th-^zAI%7rWIf8CpxkxLFC<-82}ZE^aSm+^$cikG2CZlC`yKooN(amZyelIg#w+b6thHmnHzYk-_w5&Q4D*RNHf~ zc82Xw&5(%1+5r^_V1VvCB8Ga!HBSnzBWQ>!OQd*Z#-c2|I22My60o^ zh;c6NJ|0o*Mrtkx4Z)5LJved&SOx2lXsvL})d*&NG)FGMa&|^5%SOT-Addi5T;AAs zpg{$m_drQW$)@Ph2IFn>g0wWTj@5?&mo`a+dia1>i{FZN+m&}B%Z??YJ)J{-)P8|qdL478G&T5}>nzOK(_V(A zaI4tQeOJ29%Pn(u1ZwepLJ!BqThTg><#@qWOi;Tw|P;*}16 z4Q1!T1Hri1JJQHiT@$Q9-Bh~Al)fb90)YZm1_%L#O9r~(HCx;hb8{Y3ThrH72%EakfVSxF{-=Q5VJB(y-ijD1y^}TBWMIjEKX|xR zQR;F`a*K(0rSkTWkAwua8y90CNps+Ids#W$vR+Hz8cw? zNUI@|=z>9&OLh4T!p*F6*}?p+jE z@p_|V6gys7m58JIY9ax>E+B7fsE0>og6&;{Bd0Cg6hTWBHPooIHQR){1*YzL`pDkHWe(u4 z23$4<`+RV7I`2{Bcbt4}*ld^s8!A10nps$1FBJLm?-HERo;SvKeywUMbjU$HI_qJ$ zTGm+O>hAQCk|r6Qq<2+yH$xPgl5V|{y0hu>6hgB=o^H$Svxb_kDh(BnH#4_q_{%{h*lY$Wl zF8&_CF(e~vW6<9NyxVZjeS%I5K$0l&JmJ;jQ6N)$)Nt=j9>26Xx4pdP0jDSvvN zoq?b0~z5Ss}5A2Wy1l$Vr>jr$Zj&i!&qvi!+251l%iU^6{)%_N#jc=sXMN*{>1 zwcW7=%s$iSFHm*m!clWwtw^PL#qj`sDi!k4-m!qUWb(-+G$XOoojJD*VfwZk8oe@M z$}?bTH^*TQoZX%Ld{&@+nKA$hHXbp9g(zKaf|(?Pdd9_@STJD>3IeAS>)?bg-`v7UgP}A*fNu`?CgdLYTb47 zXIH#lR@M^euU{t!51`uV43gfljDh{{8_#oyEhQO_#)t!d%G^%KWN6wEB_*Aw+@3CZ z&#)#t&y_6ZSplkZIDIR?H@a5Y1GyH8QS9YSf`bqB=Qc=nr=lC5Em@XfBwFciF{z!K2&rf#!_r&p>0)5?7F+Lby$e`2JgC%S_ zYM+te_!-d22`^sy!h7pYu?9y0{+nlh#Ok-1n4F1i=MCT^-5cby_V6GF#2-YCO)=;r z+{UFGIV0eH72NG=|3O0Bv@aWQEYAlBDo55vBrxj;nf<%c2M00t_vcYkF`eItYa1GR z;$C|1ue;kr3* z!)%z}ULjN=0Xy+o>z|U1I`Wqe=&wecZrDT?+(~7QpUZS~zG(Wo((@qjBss8OQTjM% z(}o$2#^JD9K`quq^O&yjSNzEWxSq69=b^fA%wYsL60bTXvcdyXbsM z3-OUT84(uKtG|4YU6S(s{lPM>+-W7j!#LaIkI}JsrpNpV)XZhi?KrbJNybR-CAlV}%H)FcC1KL;6_C{fh% zESdb+P<$*ceHOHB=FbLXA!k-VbPP-AnK2>Kv>*X%`7)cwB4Kp*<}!F@m+?=m7p-xbB`8j=2> zh~03K#e{fgH{nB)$>OIvX^W+gDgDl0N#vWv*mMgZ45wN$n~r_Yi5MiiGD;Qo7rh>w zcz^k>k(|W5TNU8`ysUmF>?#FKZz%?TxL3o|UsG014F6j*=zYA#Fe#l-(7~c%(ku_k+n3Zo8695Ro$Xhx$%V`6;xPH8pK~ zcuhrcBA?!xfukjMo!*LeM0a>HW#%!L%fy?f_vE3kTWDNPlFq>V-TTvES=x<)6OKVw z;b^c1Z7_iC%R5xR>Ny&7LzSrus6%qG5}MR?KNEF77sEzXgbm>bNaHP`B3>q^ZBY3e5vum>gKxCbR$gNM@ugD z6z@L6L7(E`Zl&)+Cc>%Gdo-AF$XjwVoX_93_r$Y>?K1{)S_?U%UFyT!R^E0aOg*XL zSIyH0BDdJUqp2mVRKS*Ez}GDAZf=?yP5a^Zrl$gn9v2()F1_@Aw*)4?5v@C*t3TYP zVf9JY(!2VS2k+EZhn>9dd(FGxAueE;HTJ;E!i!1MOIDMs@#MpqUKxgbGWcz@*DKV_ zwrA7M05@c9*Azj!c+55;c4ow|{~Pb{8W9*!s}{(=tbV($ex3%uu?O4-aQ_Xl=M%uY zga|mTm0S)YUhn4f=bSRQ+0f3qw_F_)D9L!e{|$n+Om?}&E@dUd4-@}=3g^>&0S8}q z7rkUw9{DX_V^GO2S|SytcQjl7Zt$U+cPrLK#e_FbFSFw%&La8287D_p#!WW7C) zEhYJa5F|*2jdcyV!txwJ;B!qxpRdn(nR%`uP3a-YpbcU*H#Bp6w}{S`2N;7A(C_%N z*HB&l$yd~M*4;|B zqGENc=ckb^V!}4K|CIsOgFH2=<}LEAU^!>%2{LF~)3EV+$^+)UM(?+SG;A8-6vawX zMcsYR_F!ThY)i>!;dEB6Dl9K6_*5bS5O`x#ZZ7@~QX4MmNQJS?<%+xWtdHiV|JlU8 zj183_bP&}?$YGI`8E0xGS8b~nR<2H7d+e^)Zq~j#Bl-o9%_IFb$8LA5q%}e}-V&F& zK{MZ4f2wG5j_Uv`pl0chWF*pAFWEup>^9?m{$_x`kj7;$?z(se`~uS_=sxjC%)Q}Qb8-trhg zR&{ZTq|UfKxH`X1Py%viFBo=VvAk341|f4z8hF?n`1to4!>xCXB#LSM9Yb-c_vN-oFRrq<_zSH}+?(F+Qqyvd(9EY4Z09Z!xzU#kU7C zhd^US_4(hNA$ek}ZVnuN)5L?HNnuuM0qFToGJK8x3IT;B{u@U40F3&e%vvVR3wDi; z^0|z;-HP$X0BjM9FPL$i z@#Y4T<`HmB=wu@uh^fsQrj)*g+$_BgUp$O*a{hNCV*K~qfadNW29gn^2fHXp^F~f& zjR2jRyOz?Dy5H5B-xlM|-OupL2>7xlaP!1K{+iRW9>h(876F-_$k}F8WuU(x$H^sd zucjb;C@4+bHRUb=GCJTusB)z*?s)+AxuW;TnLi_OK%d2Hl z^ZvAxEu>J{s7ibT5<`-?bLweQ%U8_kExq1I1<;tnY4fFzpQYWumuZgztT?(tqV@2V zu0={a6(3#%^>1*in7Ne0KG%e|F-Yum-7$W**hM*xmOf!HK)%$*Plk69|HG&|9(G@{ zrYB4zyd&{x%~N{rGYQ%Rx&0DWdnt(V+7VeqVq*3a0t?d*ueqFmeA<5L8htV*uDj$( zz}Ny#{RH}TMSAQY0!$o9O!~xZRZX3S&Q- z)I`@5UBztcXSCq;{Os|(ut>M36_OpkS0i2lwSsF#$a_CHvpBWgNHGHkrXrTni^ z=!&xSv#IaGuGQ&SPoeY)r^$IP<$-aGHxA=1Dsb~a-TU6{aa_#b?JMv@uCX>VH&F{) z{+R=>nF~}Fd`(Dx+zS>tr!%k!c?5J0G~>|6N54rEI->~xVPx1dj5P$3!sxR?a1q3K z)xIrV8ose%3BKqNQB#%@#ata-tg}nM6vWsAI4FQo4{eIHWkkH2ou9X`wcY+j2TvWO zfNl5CiXD~JrebuBAsb1zX>~3Z9*J*ujlj(ZJ)!%!jn@rxjld>-vBxeQR~fLu?RQ3+ z`5PW^5D_Ks`QH%-*$!}{qJ`<4N0)s$AX0J1$3n(3J;yE!?|qS9`I%tecgp0=x@QFv zpoxkNDliv6c9rwuRQy1hM<9S3Qu2nUV7k*X)yOtoM-NrhZ3tHT^=raVArevPp+M5Y z#`DFM#_=$;(Ze7oQFle$REcciMRal0FGsfzYH=yxX9d|)L|+a|J4*dy7Mp{}i!%6& z>GEs;)Wb*cdv`9$3EOq2ggiE=T4;2|?Skr8VwE|Iq;fXtBD+3in8&Awzxen@pW|^6 z(U$b%(>KDO?c(EHsLJ~j6iSPX+@dCrqt7^g;2MaCHI8vfBB^?t1=Pb!C^TVxT#`Rv zj?6XH*_Jx`vlV&1S}h~`>kXiRInF?+ZvaKyv~sbw@@0?T+{K~fqHuOwjNTM`ONMRy zq%X+aDUcY2fg5<=swGgkkD#o2;hXa)hoTI_k6{kv6zxsT)UQbwa8Aw8{sMDn@?X)O zI6JL&fl#zpO~hh(g(_+y7KVN!bE79QT^z5aruO^q^~C|pZqiPpWtOsS-Th#N^fye6 zNaAnu;A+OdF*47fFQ01oVsl>HpetVr;{KU>>#-K=Eo0CaU<9pz= zXVjYrHf=F{#l2U#rP-INWlkO2M(~v>L-2on%`u$vn;h08AEW|Zs;hw5-V!sQOQMeP z^3a2Ht@P&=S@eFMb=Af0-9ehwHwkQK#8*>J8_>nW zB<;h%WcvzOD!8&&p3-zEQP-&2*xVmFpL}j8`6CT}odk9E*SO5wxs}_qyeU>NAuEHr zW}#fp_djKx9v2=h6YyC8FiGHTfb`L}I;Ig3<9FWKdd|wX(uN5T`G-0HgvVk$&FB9y zze=tBiGvNOPAU`Jm`kgtU)}y~gCscW8e^~*!(!7&RiVP2KilJH^yPPDpKO!F78xCs zJX3gbmwLGcwo9dsH=wQg0jJw*Qlx5y>tU{RQS=u zXVDiegt}^z*+jN@P8LtFh%xnx?WR@Ns-vyYO`ECq6`NRW0DQaWuH5_aM3$Mb50m9q zvl8Avv(IaK=jTlZwq49JNhfQef{2k2{ept&T+4S>iQ^n*xOsP@?(!1nP9%-3)gZO|8z%@$l~w!^~6%yG)?P-Xct@KS9d^N$?L`~H|m z?Gq6sjM)-QaYshr{X5X8#&Ng?+WhJOh7v~qvfCw&wyp|*!GXo>v#_rymO z^&NC?*G_E2HoaW!lE^gXfxSRkq9x0rvLr_$CL9yBiB`6}A59ZU#eeg2%`4#sD2T$ zlk7QIAr6Q=yV}k=oT&66XS^8wHq+opi}0JOt(qbtNFR~HNSa0doq_pJS~?)>!gNZz zPtkLnK2kM2Yh|?vEBpLNN9dfxd|g<%A=DKMSaK4YUXIsbZu>yG)t+br>BAM`T44D< z)0c#=0l-+V$pJnXyD5@VN|xShXF9e^V*YE)hHm7v}J+O3zUB4Ah;8G6HXErvGh* zo(@X^dMl&P3C$m)(tTfKT`b-DPM!f~ffv^@m(Qhd#$pZ^z2IrHv-$yNK%)51!D|Fi zJ17GVC?No(H(~Qi2V^;2yQ-quPN zff4Iqv{WObM@b}x6q2>=;vwZ5KD3c{mZgL5poSZ{NF2kIskH|#l~;e+pk_|Q zvmTW2d1)5OUKjP(6TrF$A zXjfFHew>ed`_%T?5%o)jQwGTdhj^?%1*I>rvHSe<6?Mn@TcIfLa6C^)Rr`=f#FIdX z?0Yn64AyKf9kZkZ?Xf_*mnZTUp<>%Cl6xZvXF8%d?Ena_e@JQQKC z-7WJ}=>f6p#(6~qjUS-9pvFfaZ-c+n)c~5S=mC_|q0t^U5ThqBHAm(YI zqGu(>(}(r^d`|J6Zu`zl4c07?6b-F^g6n^H-KO=EnZDQU5|i1KWf?(q279!*m^_gw5*+V#X?F-dUdsH(whuB zm#3hh2wn312ayEb$I}3roLx@4A-v!cL$%jH=smmBRlezJaNwC2paW6A9YRz&VN75L zCzXY6*f!tf`cEz{ah@&10GAe8x!{FqbC_#Rq-@=imrLYxHbS>x7JVV@z_=!LHs5)9 zviomsGoDDID;LkC7f(;2M-{+55O{lBI16`Tw70hM9*Zzl(IjhKg9hvt?H+3!)Fi|G zlw9F^CzYs0-@O%>F9vrxHO47OLRyG z?u*9#4ojU;MS!L7yXc|4SV@K@AWVGG0*3oELeVJk7YMhC)*i zgLdh>XT@WqU*#cDL+M#20bgq@A+2z_08qvSL_~Tq*Nd1jFjPIvgTY7yJqL{$fqj>Q@Vo~N7hRSA&fRx;|1by)9R%qbdng+hhCKOa*a4YHTXa{BH4BEcEMeT* zaVhr`3MDrZW&zJ=z@PX$(e#2mb$IigX_ugnjH|2bk0szO**u<5uT(d&mo)RXKxeSB zt*&#hOet%b{rTa3e2wX~kU1Y761JHYj&k_XR;Sft_jtbEJk!yQ9_GCZ-TwANtxQRy zKAYs1Xc=@)G!(?_KJ4;qiy30e!>cCz>m9h@$mUnRvKph`AGiN!lwdEc*LA}9PFFS zcujf#cmu7U^-td7Z~Cz^Mb*@}gwMk@T|ht0nA3y?UJ{dW_fIDdOpvyjma(X-|B)a3 zDDk4WLS3VvvTX4NuQr1S0i!>5)SKE<+=bo*GiQ>2(M%p zj9FhQJ?Xd0l0t?}#R>SUyGLVQ_By0C@Oz535@iXi)SI||J=Od1R_E(S!tf_XH3xiA ztE?p5F0t_~W?r@TdqWfbUH(DoU?}n{g{Ndy_E+rphzH+_-!0L^aL;>p5=tKFBUV+N0tB4` z=jP7a02*f+zCzf#D}~9~IyoOthIQRuq5@5X;q%VdCs)who28VLl$8-D{|NZSAe;_% z3xl5%n7ExxUiHi^MY}~yfZ-W3ekcjXV+cZ3WU&ty0;J>}xX$gX=k-nO@mWiP1M6{jOm+9ArW=MDef*-#x0g1ubjWqD8 z7{Zq!@GOV;pdQ#gZ?9`*BpfbG&#zDrG~d-dnSW4f3~*N4Z%;5w|MceCuwg&bt1Tic zaACLcvcB@4p2+VUKxYO;7LH>9hZuo>HHps`jRAP4z1FqpPHEo-O4x7ifK~R!^B?bL zn#}P60g}yiYcvOx++ulTRRP}J6&|}kzYut zTVnAb`kVXpkvBk_t|SL+C!co#1Luct8ABqmc+-e-od|%amRS+1gbY7ly*$x-3)GRz ziL6Z^CgnNcJ25MC`~T>A%b>V|wp%+m!3TGOyA1B`?(Xgy+}+*X-60SN?!nz%2MroD zz?tWqIzPViykGyC+O=zHYS(o4z3*P@TI1b45GxG^lOVw-9;RQXCD&cCtEJ(%WPOhp zeWP!?pC9{z{w+A)qu{}d($DT=MzAvG-^^3F*JpE(h{#y2;a|E2a5ZhBzCPYtuYqO9 zNb-Iv<^6GAptSQ_Df-GFgYti0xX<17lcnjBnjPbG-1^=4ao)H>UC%+R!cWEOFXc3- zms*UUkhA{XRPhAXvy}c`E5HHAUADl` z57h_?p4y~gjlNOyocJoriKyimu;;{>Op{!WAyUT@i(i@9E{)Q3mBuv9n5;%LAnX7( zJxdy-@mM_1NwOOKY0M)vA4RFzgAIhn3PFhY@lgUBibkIyyYy{>)$Vwpfb(?| zeL8A`1(JMy9KIHyB<1+@yImu+N+dc;6NZ{$8b{=t*?4?Ev|d~3FJ~4T2RM(PR0#7l zB_3s80iv&pHpPTXn(7YP@g2k)lDXx7qk`~$n0;H~n)DnqpJ$NPfNELD;7T?v&KdoI zzdCtUtR`v2>+QNiyz(2KP0( zB4@XsqlJAXRMmF4YL8O0627hM*QgoB>c?B3+ZDKhYts061`dL_+4X(8+!wg^Sp{U? z{wjRq`QrF%KSE=dIVJ@4-_`D2aNqmpq3z<>$6q5Y|M&kK`Bo4(a$i=AG;jQL*yIej z;0knGw-fqo74lu;yxizaeR>};BD{S!t6%KW)J6uw_6rXd3tyLRuD829T>jP?^<1*; zc3v=joRO3895@9$ZrHtCwyie2?(~3*4?Xb7$sK>?<`v{kbfUlg=^E5c=d51@cn4>a z*iz>ixb~m*J=Ns;3(@Nj)}@R#e!kZ9-Gc9oQ}Vksn>2h&_3V2SNvwyETn(HvS_OAw z$Ce9gCf>kOs>F`Vs{d^X7e}8wxlW}gr;f^cNs-pAGAV0xWxy= zmp@)HOy2Aq_6VIhTu6~`iGv*@zwa*7cmf)KI0~&NZk9eil&S=PU!zPxvWaU6ddViD zra`bPiAnZ|`0=psB^0x6|0ilRg3=ee7T0dUGzyxG^?4R$Nql+ebfJ%DtH)KC2Kgib z7m7*F0dc-mJPrmZizo0twNFhj{6WU)Q-U}20BH!Zsrb|wTEB)L#0um*Sb)mCWDFNS zuL%z3Sp9aWOed;EZq2h`9iAa#E;GJPxZy#UExIYo>a=7Y%AZH09`r@E1Rp(FT{2D! z(ni!J=QZ#~;43|AJY|Uls>vA{SwmAFQ_MkAYRZ25YF3^=ylIpd041jWjuIK8Oul(; zhUa2}+T<6^4kR*H3Uvp=ZSwKX{PIne>wKQuGb@=X4>zBZ^2jk>73rewzm6!~5#w*V zahBrb5BXAYDN>|bB26;p4#=jMb|$8#A!I%+Q>LQgX2Y_ohP5hSQg(GUzrXWdNCC5+?V9!Pd(O8fl5cLXxjMg!zd3=>2#b-pbIH-?V}ewwv+`n=7?#Zp6sho5 z%sZy`%%Z8AEPe0~3Cop+6;F^z)1XPv%#^X}POzFU0MHs^K|dtP6vM3-xyK0<`~WOq zT^cO*TY>7puRQIHVce!sbPn`TQwPDV09C-D2$G7Lkp&>{Cp&&Z2$PBcC;Ual%EHxO zXK*|`IdY~-hQ-DVI=mq;-JvHXMWx@%^wg{*iHq$7`{dRXty#RZ ziV=8@HjW0QfiaA=El`!GmBx(27e7STk(&^j#-Ce7cWAe1%#Zk@!(vQG8etm{Be&F- zWxFfAD6SkTOZOd3)WV^m2qm3eixFEO1i_R|R3}MC%#mTc1u>h?eiuVS9Wy$jMV|9a z1E0>@kv0aMeZlq^*FaSTHZ@@L3lmZWfTw21=SP!q`2?=8mbOhJ!;CfFEuR>@aU=bCDpr=rBI1 zojRQxVGV>DmUL7I(M~0Nm7MGmZt8ttzv^g;q7Yi%fE=#kXGw)By4%u+kdAsU>J!-* zcQwu9F}1jA^FI@AHVSu-B=wcU@KWu-)hd-kFBTr2akhqzkk2;Uee_fcEUIch$`hXWipaOt3onuU+*AQWrj72rpAJQCjk`UZJ!u8AD~tMIQ+4**oB zW~P^z0#$2}S}=9t5Qn#8CZN&&)W7mlJQ^#ov*O7TiHfkNNGU~S$LL*<)&Q0AX}-Nf zU)rj}#`X8OQmR+y)ws_=lxV6a<3e>n%75u*kTEo&X zvZE<;hUXjnMkR+SU|Q788|Tv`7@#alg@(QC7Z=bgfjYUGv(*N7NnPurm~^`3jNRnA=6wpb^h%@wN!l#ph~md+Q^{PLPl1K^XB zp@38$qjHj5bE_0n71Y^e3k(F9+ra94=$A^yM}~mF`VHDu&&~Ef&&y3&0+E8pw zQ}L4;?KQFmpsZwmCAJCXT=;iNNMD^#6ha=p>cJgi8>TjIbXq&CRXy4P`2)=66nj61 z@}(9EJwr7MSXkKhMM&)>8gwa##9+D#?sb_4cBqWQf^Um5yHPMPz^cX?D{*Du(L7m6 zdh$=>eAU}1>mO0>@Yr?^Ev=lgHwfN}JJ!k(f+CpLvT-sVo0{~wmSI&f&45xg_5}njx~alm&@6?wnqc2jz!1Tssy`v?=GV8Y;U)@hF-affBD_ z+z_C20crVINgPOlLFOw{vyw1y1zmy60Xf5(Uy^(PNs$2(otz3EQ?3~o*C}qEEXj-} zo_cOZ57(NY)_D@X-6akjJ3?7tDD>&uCR3(Lr;2U;) z!4!|*sak}1cWtyex-zW@q^80-s+BUvE&h0E=od}Mluh+O07EebuG7zb<-#d?5pw9* zd01i*2Wc~Y{IEFVuwL<3@kU<7r=GDQ9@& zL{ErH$^uA3zS{Jmk5rM@h?%w+BBQ5_aP5^0)r=r1eu)qM_7Gprjsk>HB%k54m&k&H z+VSazCd^5j0KP}ah8Bh3E3tS;3tBn}|6iFRz|yH?Pmbm+-1TqaZ@yx@eIQ#@3Kmh)0AoR)thm<1|FN$>$XO3g`VU-)Q+bDU$4arBO_1o|J<|0 zF`%cxO0I^M3f>b6$h(R0z+Eg6rII0k*jr(6GMo!YBu^4UOix$Ysf4dwR0mm^K( z9+tJ_`JyfPLl7WpeY}Vt4YY7SIk=@dC?T~KmY$_`V`I(c3eJKjNd2wM0f?4CCWtj8 zyK0J>Pp;c}*h&g+`yrEEVEOVU-iO)AE$fVw?iab)2#YuTfq*}`@9Q{R;CthL{gx#w zV?{^rgaNmybVFJ~hE>ehRNXG)PZQD%YX@UjTPIT^eF#VTT~G2ylR2JU+<-akats=l zjIFYYYKh%B6Gw~)z)VEnf~4jM-a9U?n&pI?0EO@@^3J0#R zLjMM=W~xO?m@xh9*M*@`v8)vcirvItu-^8@rRC}hvaVP$doG+6@;fwD)iD4hX?dQW zt8Nu64BTH2Sq6*co7%<~A4K+rYl-dvHJS}nYo&41miR~XrtEJy(u}pVwc1O7uWJ(_ zYi&gN+I#nLEGw2yE2d9gxi8T&yc?AkjM>X+*Lb2eoKfA6FpT)7EL;iUSs(PamvNK zh)EUl2O1ka>vq>}CMCqx&Ub?%7 z?ftDy>K(7(N|wmrrm%*KVK<2ucJVm#r6-}2QK-e@iIHu&C3;~jP2SRW1)*0Hl4++9 z-MTdO)>`~Tx)h27Vs#dj4bRJx@rgTQkrs2(5`{`nylaGF3~UIKKjKsILMRx@M3^ZzV=&Ip|8UXE-v?xr#1&ZyXa>#J;TutTKKF zAyT(i(AA=#LGw)RsUSc{Fn#?=t<6bu8Q(*F_?=OV(x2W@2(#`&hE-^^t!uUWig&X0^4 zI5`kGLR6Xtl4R2NEwGl+=|v@@M^a)%O2jBtb&cK~qp{H1a0}JP5^)HlzgUi_9BD6K z*RI17P3nTc$MfaaOwaeim0OU?q8O7=@~PY z35!M0Nv0;n#;hn^W^+(bH6)w%D5D?jVnP4?-~P`PFKe%>UIL!KsK3Y!v@wOlZG@W=ot4d@{ zt1NPDu<~)OY6t~e}RkN6h1`?$7FxOGNqpGXjEi3jbytF&U)gD*P9nSD1Y??}Y? zIzdRh`8hnNX(*b(u%uiQ1cALOK~Ay-fdmKD@?F((HOvLwvi%Zi=f62uU}kDBG&~i$ zyef61?HK?f^%*&t61~g>2?HTjqOjUA@^9p;JmaJF4ADXGiVPg=R zlGS~OnM-$krE0fKOCt(Za@&q?oz@1`SOm<&oF#Dw$OnbEJ2bmFF54Z{5;)V^bl+8n zm%A6q#GjwvJDvIS?>e(`8myE3xtJY`N>d8FKLX=SgjSb5-Cog$e)PAFse z8!pIt0yh>BFTPu%52}Y}%_magDPOGMt3S34JI+meXnEm=b!rY5q$a(Ek38L06bwT` zRD6QRys<)HiY1qosbdNoN`r-;WlGP8V@@jGP8d6Ot-l+$BE8dAQ1$PIsMzQ_+h$V=&aSOli${nHHXU6nYLt_Fs0bB19qxzwd%v2DtWm29LG|sc{Mpv zqhqTgcIwMr`0IQVISJ@LBU3x1)b5B4>V3`SK+72;boV`k_im__fh9~_Iw&c>mkw1h zwf;)W1&$rJPu2dtH~vso$ljC*MmbLz;p0Tf#Dj{$EdhvX&>RC~)#&~0{+}iN|4f9# z{XG@6*M=!xLK^>gpiKM|P05Ww$u+4?LTmI|TM4eId#F$|1(e(o4cbTug{Ty3Y(1;9 z*3ML7&G(5v&OLCmrG?Y>6X%3UKT0FY6w}udu{t?Bl2OBAmMG^EHHe+>jEDmqZ}LDd zExE5ys$S3Zq~pCMxFuA(v$z=Jm>kJoDi+VbM$M=3%qVQd^Xtj{)eaZ#-sdKl*6PTL zR2?16Ia)mXS?d&YkS_C5ufAI#(KWZgW&YS!S2xkG9Dy7u()=qsLFA_ji`wWGe-ui5Fjje}|r* z$OR3~<5X+u&BsC>%3CX-L2iYFVjS7mWvWRrGR}Ic5}lEjB+yo;BW%EF z?&g$|Q2>k@$lx~!*eK+dRX2_N$RY5`;s z)RL-ZTqeXY*frK}6`pVC9YMss3dYGPv1b5nvD~EXNc|QZqFt$`*tM#0242__NmkWS zYc#g0bIyVJn}oAaj6DBO*p=3dzf(;g^ovOxSrdA5-={WFWO55fom6)#nl~Er+$9zp zj5)57%5j&p?d2QSl}qxOIxBz#-KM3*NHK1z76OR)HD{ZnbXsi)IGIRT5_C2eXsOZx zb}Cjkmc~Q{@H|2ko%F8PE@`<&nb(J_D#9kpXjO@uA9%wr2!na6&OJzHJWe(O5>$V_;c z`nsHax7vo*dia?VEe3LMMzr)!jC9LR{jc#DBrN@*+*`%SmHg^>xj*?Cvd6rxvqH2k zQXTMm$4U6g%|jq~aijzLmNaY_AlCekhs)uLskP#Xb)-$fe&ZhWuck>=GDO&v;eQ0B z8LFo+?O00yWvb{_D$celGJQ5T+GfdgldI7zc6t5lPs{devw+y}sP1b*`Ob zJx3u-zF==$UxZ8--WPEQ&t13+LjG(1EcTni$Ti@~-T_SLH5_a1d}a`YzP+(p8O?kd z(m{d4U{0I!%6by$rpIZp{mtfm&yDB$Yi83~zYq9SpWfNIU>n56ZOy9RC)SFjojPi) z;iyatBPR~kK3^i_wAR&mlo)t~k3G&EKk0?nSi$X|!F>5lA)6Y))VuY?la{|VbVJNq znIWbbdjuVhZ`GIt5pNN0jOTs_Zv{A_)*1J86p)r1c+Vy;V3i|hc+c*&fopbne_41s zH|}5K%>p1uWeZXZ9gUH$z00W=<@3ssD7@_@E2fy5Zgv4F&g}LSj;?V>`oM(Su{g1s z7Nn(!e6u_w84RjZIGl|oHEj|P6Rv@Sh3ou0c z|6|XZnmRh8`qd;q-Wm5z9|kyjd{o^gpqS4XOQ%~PvG;4PJYDV}O zUNF6_C!o->D|~YC&Y-}gzMKZ3A4~?>@dc|Knv9kxmhIq8p6B4-ac$ak^?lCDx7=n0 z_-~_?${6H4{%nn3UNTH~kN^9}4;GA6(H$NhPR-1uSm4FR%0$=YTv}BZa8MamBaIWU ziKi$${04n%vk=xsHDnt#9zjmuikE}}Ej-RBkQqfA#~W10>lOHB@AVkz3eH)xpL%p1 zdCwdikWFs|!<`hV9mgpF9e*$U zK6?7bVgrxCtelIht?$#7-UH#F7H-RIJ5GRttPBA|Hm)CoNKu+_<4u|&&~C=WWyozU z>&jyD=SRH4A>N@?oXalM8_y}TvE*t?ugO}Hr#5uSxT@p*Y1S%XsOl@vN*xJkurhzB zz#o;Rt90mC=tlKVQ!db~m5_n6)qNAnp7%W)6LD}yK+n29mo)S1Yb06mHrzKfS$2{tJG^uF9fjKJ-?k zI1{o8c^x~<0aJOht;s30l^^>ynL`B*O>QKMTKWT*#omvFF1)Kx*e{pyTsP++{!D@0 zp2&+{7iuek3q1A^-M0Ouna?Du3nNo9;)S3d^7&r6#w4B$3(xCh2 zF3QTg|9G*0oieK{G|r0hYbcAy7x8iRDAH2F4D6kIJNM5zhJ)GmdtF;& z@Ag)~OirDz-V7f@47pDK@DJmf_h$>IhGY5N?0kmuoaBVrO-+YwDC{iLEGRbOBu`r% zO(4!5_X@6?k4ZkF->$vCFd_t)tQw*;M_!wBFy|gMjAQ>;6`_(YcYIUXOWIpQY2(Jugg^MC6wsFl2%TnZFCJEnMn^BcLJIrs)fLT_aqEFW4?E3xPMYS=>A)Y)Hp82L zntsLiv$3qNMYy>hvPz(!NQdR++tOm&*up(N7$4*B~AX;gO{5p8ML%MPra=$xo;~BCfZEqK*r`s+N4sj5yeZf z-3a0heTBq<%*J1dQ({}4%`*HM?CM%z(^V*__9KVK@lI40nOlpMZQIgmo+68r%%+P> zW;upeoh&=M3^-3cX?ey#_r8PVxzm%lSm@8h_vl3RC+~2Cx12e9=XjyA?2iUc;5uVcCH*kHH0wg!8t+BtC+K8 zS&x!eY82t9q!EY^0m7g`Bf~m{^@fYh42mN@P7lpEfS1bqVS1y1_}ni0p8LsvgK|bQ zZey;TN_G3OZ>UYHQZuuzIW^Y%I*SEmEV2M7JZ!TZ=)br^it~Vv^EQ$LJpM@f9WRLM zk0GJGtADWh+lZGN_W~%*v5TE~5@AfS(#ZfhIjV0f#_B-ENLogS8;eMn(X2B?wrOrF z7b*op1D`2iB%H1iPvT1JZ0YB5V@p37!6Tv=)qJ6I5nzw`ITc^~$;VL?BxUX0NPKVP{wTrf!;1 z{qAdC#=oYr`L5z>leR}hnGQQbU7I|Z$U!(h@dDgucY$10DWxiJ#4pjMko?|Hhf_Waf$}o*@k>U(!{~k^;`CSzgRAWJz-o)^(NV$v?j+_1sO&z|37Ea$} z9PZbs*nsu?=BZZz|7GTXb?E+g7sJa-U3xcNHa$I2ilBye7GsKqKt-Ho#kBsoj!n_b z(J=vR$0waZ(dc>)C~RTKCUjb~Hm^dM!JA;6vp*Tm%8SLp#*Us(wLosaS_7vynZ3W_ z&Gg-bh*Nas1>F3&8&yUY_+|*+gZq`;vCW3bw5`VLq3pQ1g(m+U`03&yPB&9oFcd5M zG0@7IfTMWim6X)d1b)RLUV=r9SLr4*n7|UisP`C!RKUl-wt<*Eiejh zStEYlHTu0R+^_$#OleS}JJD1(g@-l+FxqVV9_>g4HLOoMJZ(?Bk4$%rhq%pl5^*h? z`{?q#4bqQSFq^&gqWF3`?t{f>c%bv}@7l4;UpOtWYGtyUZ23EB=Iu=yo*{7xy@^l0 zDw%0@jRl&ows2g#{(+d}67nW8yZ3DF6&QcXWbb%vB{B1OTMbq?Qd5AOyX0zuCnMGf z&CGkVvV6Iy{1e1Ib~$skW$iJr=Aq37VG&ln_|ge7kika18(?eip9%eUsbn;M>;_V0 z$Y953GDNxR&>#A*3_W=No65e(Mq=A)agV7l?1;7cd|u@K3?lvh z2+XL2_~G>UP2vytckARSZQgtxS?V;4@eT*765!9Z9o&09lVB99f9jE-Uc6E2-5HYi z{lfdu?xcPSwJElMd5_npIN&TKh6z$?BV`6r2{T4BQ%oET1=Ck@ zO4?eu_gWib;5GZ&Hwb`cRguz(hwNz7JPr|3`pK48bTqkcI1zL*-|0H1n!xY zUC4>5gwWZo$^)t3z)x;(nc0igs?BQ6-4!#6`q;EnRA$NzbIx47dB{JJw!`gf_Y z(rgxjHHT{Km%U6d?*UoU0+9(fv!>hP9v^)^HnAPIYQ(keSjpiytRXVg+%ukG?v@Woy0D@&Ds)rUhNp;}2LT9NB2W6K_5ZQT&g=HFw|o_xc%mxRgoZ_f ztyz(kv8%W6@xccX)_XvK2piUgHNal_1)L+(NX?;m$=HCvV9Qn+_+YSQVrz?V=WXI( zjkILB54r1c_Mit`^8B)B-?V+ z6sB*MA)lfX#OsBxd>-d$0wb66*%4;F;=uDp`~$w4dEERQ?5H@j5QRTwEVP+TS6s>N zAfc-K4ZE(aJ!~%#$}OJOjT;6=m}KGm+qK2}0|pJk*!$C!u}NSoF8}=#F=YQM5`kJx zg(>{T-bXgiS{qEj^VhAWV~>tc2<}$o**|2A|+R6Nbo8#L1qHbQ~PUkIp*9NF}nay{9 zWsw}w>2iM{ex_6R`NphkW`>do#U}>dUVHB+3Z}Q=Op!j&`X%C$$G$Vcq5c`tjeTm` z55`v7c4zXiGAq^LG3gmg>AaFAO7r+-b@9ZP{{yUx80KpB`)I*r`&n?Q(XK0dF>avf2jP2Hcb*p`gtc6I5Vs7j52aS=oVzbxO@CX!N;B<46!nI zOXJ~YgA6|uOQdeZ0?&J-?H9ioHa0i7BKpcUm%{XO>z}}%H5eycr)I|?$={E_t~Wz$ z5BKbV1Hl!Ae2H1kQy;mXIYN?8Dt1@SpM)A8qqw&_%$ukr7uxY(^killEOXzCPuj@= z_KDwBQY+S+qQ*r;%vwH(hpCWOm1H`v2j?7p=YH&|&Btd=km=PrG#HN zHq)RFzz_w%J)_lFXD83;TXCCP9Ked9>*{Fg(OKL+m@s4m^QDYWyN-Pw20}R)t>Y%k1uuoY51~_gll6u8y&tz|9FtdyC-K z&g%uvcMiL#nSD(Augy_=X${|PIC8S|v#-A6x*@ldFswOm;Li{V4JT~>oaZItWgoY+ z?D+n!bNMy}_d5rt`8MWfi}fmo0)~hRG&xU61-=~w03H~+X3j9_(o(4Cjfi@=HjPo} zg;JQkJ1g|~bQjqDjKuq)xwRC4&1ZKyH9L20p-q^;;DCLIhN)&DEU7X&fpkJ`90I@gyn$p$vd)*`{ z4g@<&4%tt#Kz1b0)Eze=qsh%tB|^*>Tnd1Vn%eGGb-FJ-NJ*IDaoOVaoGaD`D z3uYh><=HnQt9{^Pje_S)>gcZHnc!Dav~pEGnU+3vWUprUWJbOAvYAOFrk_=G<;)SoV;=@@)*Xbo zeBjm-7}rk3=K;nTu#7gD48eL_?@Z6+^R0Kffs|=it=XSH*M0A;CmXtY@9*EP{AW6c z2x?{NWXcCJjz!QpiEhGfh5I>;rE&3ZSVt949igt$o8-q7B1w}Bzqd;F@1gxlrHU>V z!xcpuc7Yp*vAubtAM*LBrvg+MllKHL$L(8d^j zeq;XJ*BVL}TQCa9b2aAwE6VMTE=gGF`SR1nwPPxSw)YaEfLC&2g1ov2FENXqW7#;p zey?+KMY|9dg_(A_slO67SDuGQaA?~~sj2-}0;bmdb7@{~#&a(O#1Mdi&vN?MQ9p=^ zDv!zKXt1{9Z@VYP>yzshTj4N|tsg10(4kSlhg$c`h?d)U56-RD>h`#OOV}^cR-67< zYQR^D5kEF_={Pq?3e{# z`64a#;adh0EBj&>NJdl=_JtlzS6~>h7dIKOD9Ku4HT-s_IG6;2|x&>ymJ9sE`yoEcNdNtY&UV zK8Bobv;tqLk>G-_w5g#n37K#$b5&oKYcTl1J;zT78?Dh&Ee&@fwtG{^dPW0^UqYHk4ObHDL@C>{i z0!;VjJhkbo8J9s=--!eK3I4h<@x^4y03BvDa zsq2F6#|6vlFY7VA0fIJ82{bI(^3FSI>R97(w%p&cN&D*>vPXmH`9Y&P`VDI0s^;A; z8AoYz9+y<#B0v8Gge}R!!1~ZQ@nh?}?jgq?c)dMaCs$B=6NoaKwRv5eZ0j}f)ut;`Q6hL=ky*y3ot|9N z5=O<=aj{$oGx>3Oy*3C+8eVq@ztJ+NSh5Ef@ZiO=h>p8Dqjsu{d2<%%Gpc`9JY>pF zkrip9mwe4ZuTj&i+mBf!;1?P+(tx=Z2*9{br&ja3AZ_?~BGC64&>$?_f-3FmFl`@^ z%}X&Y+ch%dl%)t;l6R$UWd^c!V^med75eAxj1|BVigpHx!DAt_So~(~yJ`DODts6E z#E7|J`#gEm7DQ68L25JCOuT_A%#Vc-m5z#(QEB}SmbgT&R0nA7!yXP5`t!{mQsy1_ z$kG`OOm>7*YU&)agQ{re3x-Oejg-Hfx2|c5&t+-fVYQy6p%1v^#0JyPb=k0D@b&?5RiHfH40!Oe9_HVUFm!*5p?=I6gm)p;c2f$?6|v|be>_v zjs&Ab!5tn8or9iAn;Z#IVHHd;&JTRl)4CofvkCGOWFzr>WaiGMhTE!)#QC#$|0Ybh z1jB!Q@8A8$$ugsMNsJQ*u9Z`uUpk}ZH21{Jp|{}+J6^aJ`w90cO-wQihbmtSmqKbP zKD0O~o_OY)m%>Rb1iFI#HNe)3P>~S+dEw`ijz}3+>1N?YNj?cr`hBN|D4{G_(p>wP zj+$ZAp*3GVs@LV|e+{n#*P_!mZO>mjg?n#n3yL(8Vo6wH1iAc$r(+`Msux~&GxK3V z%aU=(GWX)Id4?)1#0u3HIpAE!g$4A@%}oYo=EJPUgNWr;pB0EXU4JjJ_9a#lU}1bzd&z=JXMBTPKrhdkY+B zd2osvFd4&jkksoJr%P10cwD<^($*=G|FN4+eK0{UO+o%HTgl^4nwn6Ed5)M=7;8ID}S# zhLF{8fAAOQR+j1D+%kK)Vz%g#9FXA)mE$9u7L_x!WD<*_GN#H}po$=L&&a&*)p%4G z_`JB~@k*653G4M*x1~Q6ebFx{!;!730OgK3`ZrAUb%_?8QPszSGj~6aJVII)RMjTJ zOvu9RO&T17+|DzCuBSioHLUOXX!;>&=;7>d@mKPsVFpPWc0T-R=Nj(HGU!w~7VX`W zn!*oVN1wwn?e|Lq{_DX$sMW!}?SkLfqhYmPyk>Dvw=V4#vPAg!K*)^Jg9}b7oiH+7 zs~iA0t(L8{RX&JvPZdAmixrvjz`mA1BKaL?MkCVGvA_;b{DP-$&~2O*e<&DmG|@8EFn6Ez zw)C}0>)C(!iA+Z4-OsC3hp$A)H3dN?-8?vK{)gGuD-M#42sbctN^9I@`U*c4w^f&Z z=7y#OrF#!ep1hT_zzFMmrT|yWNjL>8L{|B~XmzBN;*u)0IYLB7haRV*nVuo*gw#KT zeTncIBl8v3VckijoWT?!C*|VapOXWLME^aM^ieSVM;_Z-1UDd?qAp$RBG70iQ@}r2 z6n;Irj86!WPo*SjyUh(Hr%Z{KDZrDIrG^wPt6zfzvi;r&_3@eCg~Dw{l;rUQFV1pCK>QRWvm4LS`_0X z^zvB}FJ1z2vS&J9$2u&?5RNbEq3FpyJ*i2qB&IRLY59FX=)8fV-7!20z(E}>M5QcJ zut=Yh+A8J_dH>x4`d|BqtUo^QJ&C@Bo40>v-k?B@sNSl9fMbRn2NQU*gnbsoJ$Hjc z@f!(|HFE57gU0SR;8+uOc&UwL=OV`vQl!6RDPuQ=9~%1L)bTE@sxU<|dkS>Ssqm|@ ztm{h;RZ3Pv-EDb*dC$+$5uvBWo8qV2GcX(S^#Z5)Ws3Hvy+F8czF7^7!v4Uq1EF;| z7eqZE?Fb=-PH`aict)PK`5d=x;74}JFAVO zM)1--_&3TVo1GZ#3QbA3FVCcP0%x=^Y@KRr!};km7jFtYv@N$ctl|n1kN6kOGdCQ9tx+Av zeWn?GPLqlVox$?3L`l~1H|;ocl-&z8y=nO{zF@gvE6Arm#A%5QH{F4Ep8BP|; zDDVocR#Uw~k5ZJ^hL-BOmQcJANFbXL|{5>&tz1 zHme_iD1?rbXc$QaG2{+bW_Wl@@la7hSn)!lK50eAs4LsXcpusDgJ~6nmjFBr%Wv4H zoqnH_7gZiSr4rUblJx=@7(jf5FdYm$pvV`HTulJ#ZmqP8^?Cn~hIfaHc7D(~ra zBphEK@z=9jh5*5}H-fF}cOAyS4;!{kw?8qHv4bfH0fvYszql5*&b&#ccjo_V-1a~B z0Sa5(pJomtNT%k~H?)m+5in>GWIU*pm3DoZ<>chRlRTMWjvcvm9f>jRLzM)PFJ!d) z8ofpPD$jQ~bpbWpyYG)kV%K&@tU!}ppdW|7PsLa7VS=QVFCnukGeMhevmCUe{G+`4 z$ig+x{x<1u^i2{aI(&mV1kSp$6trYKXd0e)W5^>XDhuYGxk+y7YTv`u z=TC!lGtQb(8pzm#*AlDn$Y{sR?RFqk^nR98%Ih1Fe0j!f_2+pUAPnR9zEO&^ayA07 zh6@XoQZK42mI8&(0F!jd$?+Xe z$;_1n4Kd8GC1g>Zw9rsNv`V9k*+>V3ejleQ-KUZ(^y9o>AXk5&d4~HO<0{b_@Ni0% zaY8~^__O-b_AP}*C1iQZGKK`xo~`_I31U_MN%gsG{@>xIisNAOU>4if5be&0f?rJ6 zdIvXRYHTmX~BHo5feXY5jWnW#&*69{Dd4I|bw@1GFkMMVIPwT0-N^4E3D0sKe)A z)8!3zXj852fcm$S!#amh1D-*z86yN4TAf~kT3M!9xCzCwRng(gQwVL#8g0!lYk z{+|sp@Q_FOf#c=8!{BlBL(psMv0<7L5>X2V5%dFzM^Y-Fff|DuW#4C%Ok()IxtIUS!n1+xpdWNk6 zmPd+1zq*Q=CzTgpi7AUdV0XNn%N^et69eJsi?W?XA)IqJ&1j7^i3^5o+>?PN7d~o? z;eZXUAAm}iI$L6`H6K$hr@^PKnn5l6G@L5wM9dcm-7&*QiXYs_C{2AvcvXqa7$(s7`fN8xTN~acZBX7=~&YQy*G)=}q#eZFlo;P=y z0>vneP`lPAo*Hz9k}-}J8liq_?yv65!6x<}QTZRQg$ps6`57<&uqrOlD%Fz3wLu5q z!ys~)lyB)hK0l2X=+TO>?il{fajWnV)l=Ms3S(-+H}Ig*{XBn~Xu z9Qx&G59|D2uP{aKg^g~ak1?`WC_$m{1J6I!g-}HwopQDt?*ey6dmVT66iC@gTigG5 z7AMg(zzK-TO(4l50|;29!lPy8&Eu$%ihlK$t+i$k=e(Uc3WuSh1FVEtu7r&BTOFTypxo86MSA3W=$=$^N6Lj2gv3*Ic zd)-t`JA73fGO$zPj~gs+S4mJJveyCR`|64ua%lX6{htpfq4ibj88l&oU%05k2h4eA zZ$=F16;#fCuauSgL0sN9>|IaQ1m z)D^AiT0BDml9vo6?4A zrmP0iQmT#2>hj{tYCoq&QphPRZ!}$7Ui7bL5)Zbba$CR8{A#WBBWQ|l_FE7)K|Cak z#3^RCw3ueyEY-Qar0zGitt^EK?|tUrlw<)?p{TBj-&+VD#M2k6s@tlzYzM`bN#-Hx z)+%3k8aVm{wXAZ+$PP>AIoJJ8-1(Xyl?gM=oMy?fiku+8o3q9`t2)fBaI}(v9Y;&s z%<*pfvxU=SngBB-HZ?(IcWhx&lV8Ch-C@U4X5(;ecGiCsN1V$B|30d;Y~<#JdwA*< zd3Od8FU}%BM)b|V5n`ONb`n-|Y>SM6~sm+cce;Y$QU!8RZadP7ed{?@ z03#j8@u^0*`-oOLq;K8!3g7?iHB`a{D@}t5bR)}rWtpCdfwL*N--C`5DA4B+el|3K zrx(Yfgyar}D*cHcQKPBd%Q?OnceJ48wXHX;3Y5!;=4dk*77wuu(Wxb&7VJ|umDdg5 z^>DmQlEK5syBtY0GY>K93fTR>S%Ty-MNHovzj1Hj`n8M%^^VB;(^o9uD;*6QW-w4f zE8%wT5;M@E(AYBWNoVu$I=|aYzEBFR+};HqDvY}eT4<@zE6n}-$2h#7>~|$F3a*~# z=H@PY}5K8-ORf zN2gt9JZfRE))s#|f}LRL3Fgn4ESv06M7iMMYxv0aa5-^|X#qkWeRXO$#ggM|dS%Ow zq2fT6xYA~Z9mv5D*^uV8rKZcTkqyrK$L$Z)Y~)H;U4J|&!Vp9S@oDh+dEpu~XYsic z#YINo&5N<+YIEmZ->TM?@uUFqs=f}29BATYm6z;A95l}mcaVs7b^b5l$z`*%`1 z+kT}KH2c@I)GiyDl+kVN@!M(}-&Y<0F;a#YKuccgi!?MMxxXtc-5^O^R&MCe%U_Lpr5^mZlnLMIdb}5@(MRXiqdC5=hpDE~ zV+d!?AFkYFDebafGH{`+|Fw(FGM2k$kO{$KjAsdEWTi=k{w|#UTPMCbz@iN%7f-zN z2Ve&Fo3KgMJ);Vx%%$%D%#TJQz|nh+Wb6=D1qw=(z$B(rQi zoDrc^`9s8V;Dpw{H2I`4!h^6VBr@ukSon-vejia90^xMO*^knw@u(K`;AT$7XzRqV zpzvIb(JN5%l?$#ODV&#G4eW?#JbH7)pphoJrer$gYS%OsCf>QwFdAn92Et#LIEfBqwIvrHoPMQNt97rP7a!ffk*yr&d|yQaF!}rKxc_4{Z*%R- z-r1Zttl0g=s_XjSOyD!oJKg7k*ujW_*G(+&3AOK1s4uLl>gmEtbolcX%zb^lSa*!_ za{sT$^CGrhkWX^yxqDY?04Ba}i&6ByT6qd-k^VkEcDnNa&LMIQ0`;%xUrQ~DZ)L?1 zQXH`wXHZU7W{GW9`)1eJ^sPikX>F@I`@Wt5B7hvnBK8oB=R*c5}7P8f1Qj zfA));^psJjSa@7)+s=&MH-PCvbj;Rq0yq+}r}B@qcudf`Uwx!4$4=|&6v)8E&DKYF zii;sCg8#d99tiv?RJS9?K#%ESP5YWl z?d0~_dE(Nv(=;#OC9cQRpoeG-ahJ>;JoD8yUe;WC1C#nubqcacj?z|C?9R^0E~j;T zh8k$)0$WR-2iPZ68LG6=dG%Z~hoV*Gbt`sfbpu`*YvvGND~?p^hj3j(TBhjcs8r$KtG?~^{$GS9V*j; zVxo7%R%lItfGoHt;&LIR#;X0`og$U~)e^$*$g!aXp!5h;-!fG8YA6qb6U1=y=wJ|P zEuy}rDlU!1--X5E*-Lx9)sxqWIVZX}zpP8Qv^hNMi#HZ*mxb%E`@{j-?m`WR2s72- z1tV23fIgD%+77HFqBw4R_-9wQ5A+8^jln#9zqcW=_lg=a!I5gCJHjuqfIYgMC+VGc zyr99)d(fw7|I1W=eD+Py`%AsmAV{b`&FSUX=~(IWqVT5w?J3Fa-;rG48(kp4ZR~%) z*ILiRpL*r8B-lBJMfK*XW*J% z_LE{(;CGXGKtMj&<;qTs3c>I9$P6y>f{VLr$K#xfPfXhtaKP^Is8=k1vRVhZ4QY|{ zSs&)|Xa+f~K^nlZvfRWRo|=ms0)U(GsKaCpV9F$zkx48vyRRXhI=4MY_!TlSSoSx- zX*#r^oHunXp1jk`i?rgxJbHsMf@nV6Pws;m;E^ca#_RZJj-5}BUrotwdPeq#S&k8! zMvF&B4uK~4ePY)-C=Mlh)v#nWZ&af^SgN}-hykD@QFm^=GQ?D-_A9!Qv7^%K*va?( z#BmNtbV`7ylvK0TOcexhlbhVUh_nWOC9SCr%N)=q)` zhb=d`|Bktoy|5e#lSCr}FCL%Lhb51hk9Of@Y?2h! zB8KzE+qkApP&i7l0a_w6Y!`dTs`QEd16^k5C4h`~w? z8<76bvrhY<&d{;ABC+av8}-6l+zo7;yy|;(1o!{PN!oX33wsYqzWk52A_44nA$y;Y z=>S9Sy~jOPU1nNWA)WUZO2BQCox3Y9Eb%=ovQPfplUbLSdzBGVzUhO1oDsU)_{smF2Qaa6tyTW8hP!R}N+B^OblB!hh$Q}MJE zb!r-CsZnNXLd=M-h&*+~=$-55J9B_#cX@S}$d1 zggmC?woTruBB>BL>Ttrw@U(DsKoe@6G4_@DuQgL+lv3KlB*JEXd=Ct?Jg&r_-|A&- zAt`7_7rcwFI z*c$7guCILA__{ui_ZO0p-#t7xaaTdm7Y37LMOs{jQj~#$CYF-TRrP_J;h=OnWZF_E z7CU$bQtA()jESVbx{`|>^&b9CV3zL#_UOFEoF;R+EUr5dPD-@(zHD=NJ7ns7bL<9Wal9l184gmidUdXp#8z+) zjV&YWGBZzwu5uJTONzahk%u97sIH+fWEQ;o1m(i2z?`@a7X8_N2JyXibQ;RPOOC%) zoC?1ZJQ6Eg`|A*v-gYgRH|`9ZDpiJXVtFv?Q_2ZUcqyvrVut0!M=D#3PBXb@u+_y& zvy7}?>w899wKQ=UU}6D9%nITYpNSlzHKLF2;&xYgtx*B*!1oXT{sQ$ciBPP8juul(*@5cj|hQfNAn$GVN^s`-Q4ksryt}d z{~PLu{SxFz$nV5%uMdKAn;FGh51xK2tO2>J=3TO~p54jXmYZ9A+6+8L_>pv}z1lN; zEAjqSGYcC8X3p$*3POwiAr%RtsX85bbRzW)IRp4&%Z&J(aKR*5Qi+rC_$<;z5g?O@ z80iIw>CGn`=I+eIFT5`FsCcR$K@3&88o0=^Ug_ea@$5X3-SVo(EdhPRjn zuRSL&H#C{^=MT93MyoviuR{I9c3_9G;X|0%L@#J(s{Z|VJv(6n?$CAr(;uV1ZF)|Z zsFMG6cgc+V%nj-WTE?-pj`J0GU#a_0-_^Ye1%sr;rvP#4e<+mM75>w0|4DY?kxLsF zx$`;-{pl`PR(C%7_^D*vuJKfKcQ9DsS3_m8{q1fw)wwEsUKJ26sO~o*VZcR?WUkfB zSv^RY0XZ#Ao{Qy+H?6}8m4m6~;Bs@cV-=-~8>HzPZYht@IAY%>cV;qad4B*af`WaJ zl?YWPC@m$i%p#d{0jKrl+l++YJ3%aU5)?B&2Vq%tF!S+4buf|!x4j#SaMxNzsZ z#_==w%dlagAg{ODNcaYWZDboq;W{^?EVlo?%|8N-xIL_NaRMluffqu5moVLYc*-m! zez_;(y{6MY$?&*0l-S;~4rX7GxAj`StBiHxcu-jMQX%Z0;bcM$;*RALj#d48*L1>Ap6F#$DvQ56uugzf9I>jb}(vU$;*;+LvAh>io<{ol~PxvhAZp1 z_-!HC=?|fQZ{8;QfUp8ZA0vqWkEsP`RQx<+nYU3JIwsYMXG8Xchzg6wSu z@ji8k=9npUPife^V=uE#d#R!+C@Ki~!{|ftU?4Khfu>c@cGb!1qF#jY-&JhHzr-zj zOt&5$5?K5a7!v-Q{Dm!Xk4loFa=!9!mR}fo8(rtXh12Z&T_XhxE?Y|cGA&AJ`eWsS z8W!uufj@Smzf+4NnrB|&f2i30pG-!RafWZEJD?p9Yr&_U5y;~|hG8P74wIX$UuksD zhhXy;THqd3&)JOA@%;Yq|2Xje0qx8CX}kU6!!E`%+{Ovf|Sd z=~)q|2usv9;=9zX7Wk#+`{>F^Zw%OC3?qeGO6vwcI}m!sN&}0ux2F~cdAnS2t1R$+ zODATfj1Z;1AVJo$qZIwah=a$#79MLMEg4Sb>I)Gc@O#mWpu05~4Q^Mmon6_ChZB)U z!ZxMGk(EZ5NE`Q4S&$}Cz;fZ}{+9L?ybmcqy<8NX-1ci#ni^6Xtt2UC%2e|Ev{1b4 za`YXBr1SBYGC--S6nCMDNgoP64^JEHeesdFvYU|1KUk$$B!?iD%Z`PsBxx&e;3>__ zY(Si3Azr*U5P{+wwyQ?DL>4DG((#@77aBUMWbScxy3sQGl}B3WNtez8WVghl1VQO? zlgMGJuwhkwNLQ}31g@I8)p#?QoY9?8opJ=ch$8ks{<8`-Y9YTFnGq83J))<@m6qb2 z>yo5pVne7eDPanQ#B#f4ZJ>Rew}NPPPXx98(7B_XAM~-Sw0ZXcs(7~PZcJ`=&i4Ed zrPA+&`*d~To8&B#u9@JK6V#i!I~MZb9Pt^8%;}mG1a`L4N>=c07Q0i699CcB8lz*- zzGB(teO+*iCTNu7_84Ni&r|(1UY!gzk+AXiZX(6nGoX#yp(pSh%xQi;l@T4X61yY# z(g%9&OPT}Y$+ukZX7v3oTfs#uk0zOc?(`g0w)E|%S{zy)NOSzTjT|)f- z>+qc5z>N#hQIuW$i@B6+zF@rczz@dYaIKaTP^K7fy=uQ2D+}+oMi7ktJW7NIvh3%xa`P7Zmza*^y9BJwl zSs~M(49#cpP0Xid6aTE^B$gO_$K@P9RD#0aR>cOP9z?w6w~%`)9y$PC;d72E4BRI_ z+se1LBA6gEU{cZvnP>1j5T<4jRxENW4E>{rnYpej1l(TnvX#W9uL|ZB=Ej&uV_Hbseu+3GWQ}#06g?8@0HMc$&-gB$c|*1ZcRbpSG%-P$vqMcB3kZE) zS?R79p4AkGqZ<={A3gHXsoC#PHs2>4-rcs^TyYbnb=D8iv{jnNwx?etbP$LO9j}jm z#_=!16P~Q5sgoNc$caaz%o0anM^{HnP3lIVz#aZ}Gs_d-FV1|rb)M!?`BB`}I&=!v z*Bj`8F_$>zIT%R=BQ-hXKw?=LDhs1NSgA572t$J-Q>5g&WjvH}DI1jICo_YTK{(wm zq>sWv%mGshTLE(rFG!Q;V-6ifTkWh}G#-oqgJ2;mx8_Knp~E$$Og@S!0zeRT5ezh4@J_4HM$q2v9!>MD=pjmv{nj>dPp^4_%nW?>|&6i0i9D zOiDBJ0rt*$YE=+(A73r~DVg#>lmlrINY1cqpq6pd(DS>{OH-{U*ip=8CNUorpB$Ez zg-cF?-k(KMwkm8g^3N$leWS|k8CVhLZf`ja)A@6o0(^5JPZ^MV_I|)Q&9~?v@86Z> z%@Mc=Y*YP>zN=dVVeAxw^D}*$Of{yGw4ruPZ`BT@!U{R5Q2EZT@g3U^2G07hGhmWh zI@U0R%gl!RU}DDW_U7}1r4%hNw!$s^XPnW*xU&D3j&$dLs9GwDKL1jLo+geE$9&U& zJ#yU43r^0^02J0;WRIuW)ym&Sq&r6 zCuP_>LB~>#H_$HdHm!wmDc*^Pr9<;ouFDqg7t9b5tk*K5Sl0N=J!Z#VcF#7suX7St znb>5PCHei+;8EOIopQxU%sHKy%T7hMv^c8!iNROrG$gfo-JUd<0-2#K-ZHk*_w;`Qg-4jKyB8z`IJnh@lPzpt%Yf8{ZClSIXRTfRh zskrwjpR+>|i0EOPO(<3fZlvkhVajMGbi8QG5&4_%Pd9|4y)q1)(WGV> zPF=D1Fd#v*H>dcQx`~&xj5X#8ZqcI%vUOl?cb3FZ?v!acBf_v$*)5b-dz3SA$Dm6% z6|@!xt9crMgu#&1wYO>a^;a4p;$i<%CEW&A`#$o~V#Axs(>Z891b)~C(Qv>Bh>>>F zi(_7?%{&HQgXp2Qh(|OOT!%k;ZVperw!F_b#?4B3{b{C3%T>lK0#l&czVPRmT$&Iv z0))2ltLwEZpUpkns5@!w;nh3A=x%dl3qt@eK*QgD9Qe9(vN#)vqswoPM#&&)z5uqX zeza7lt?C(0mmZPsvL}5>(nZeW;i(E;qTB^eD4(PwE389YY<~Rn(QcSXq;=5A{hAD) zfWe)d6D$Bn!G8L8;w}Vq-!q(@JZ){7*sXGqRl1dL$3T?ZjGgWzwX=>yb6ClgQX+j z;@)thPzv1G8ocdOCa)n@BT0TyB){*Al_V+3_50-Mb^weTMwh( z>P#@eD>v3TmN&cLNz--v$WtgU$WITG{%YT=`^|NbXaBe_sL#J9i)tX-Z`Y#*q(Ts~yucy&^Zqc)+ujz_s9mwN}-dgTA*wd!!d8F7f7sr_Q?` z9PMe@#jl}9kUq10MX0&#!rwG@W6S&meD5iJa~lF)h`n|^vD%d~_w3jr@bR@zvV4nO znfR-3L*Zs<8f;+?8hLlTmkV7Fe-5k~L1*$MUq#kB@b~19wB$uziouDD=vhJaZThid zN=RbJEw2_5zyR zf!B{YP~}mD$=vQE3`sAXs|%1?{30eGDcr5-GNm@FOu{u=eE-zUW;nN^P&mfcbD+CS zZ1P%85cSc`lUKNyJU~epu{RL6rxD_Yie-jtS?Rqp2Bqbw8?s3Z>bbeg+v&PY}%3RDXSNi~WyfUvg z177|-7XU#>?*7JunbR2|Wokz&NOp?Nh*ZXV0@loUaI55XC0(-aq%pdJz#Q)To9y&1 zU5eqN@MVVSWJRd$4&`4sChk9V9@*=X+(fDvi!faxLdO1rT$Oh(&4392;0$-9175)A z@5B6hA~=m{z5?1uAFKAiPnJ}h#C@C6o5{?bIvnug$@lKk$gT9zrb^V_?2H}hm)nxL z60#@_HYti&tz@k!r5@)zqrZ=wAd#$p*++UvezRQz)Ac3KqLUQ}-Ec;$D5bBzO8;2H zw0Gr?D{cItX{``o^!H&-5w$@s!D*u(mg|@GV;To_GlK^?)qJ^7yFVBz`Aft9#4Cue zzVp?wK*%E&ypi~^lk^5p_BH^w5kb%L-@!*B6x%0NVAeY>S%zFNkfETpP`_DvQJrlZ z)F`@pIVa>P>VVMpi;5eeSueDVFrtCyS?nX#f%0|@hM97DZVn1eouYt_1sFRxI8-Y< z>Fo{pFjN2^fkuq5Kl;AS)-^h&Mo@=SqpTIRxd{9rRWsquEvZwe!D!h!`UQI16?UE@ zq9^qsA$$Jwnb0nJyR8U8U?t!OTel6nz9qt(Z%A>ximwd9?|>Yo_R3dasi%-GZ<_EA zh&YV06fn4?sM8|W&nfGBp}DmsS$TB1{f+oa`ewqKgT_Jp=V?$go^<3l_XsgHZ||T> zwaSmLVVGqHi@)W%mKxG`N7t=pou||z{_)^GX7qqHh{xM1B5-#KTb~mUFL;LJ-JD@0 zgrW4XgE4lvVn^Oq4dtd5W5WeJ{Kw?=`%_cwi0oeIxWF&C17c7bh+(2uqi&hdBQVP_ z|5OhZ6SLywsnF-~f8DWGYb3HcA$!;C!tKqB8%_JLo0Jt2D7@y1>^lQrt`BGEMct8KaDKAGm(GuwDoTYf#f+dE00X}n;vj%2g ziFw0q@B84_V#H!Ba;zm}`BrOOa>dfcQdCLsU{YiHOF6I@P<6aOj$Z5f{*f!U)oFoR zd8b|QxYnXKle$92#Ky|ax^++8@m^7$-M*ZJ-yGLV$+f%3N{LzWxVT3NlB$oRx5c&* zPipTkyxgjUka2tWP|+kB)Sgck#Tw#YG)%_Nfg!bVk!N!|jxzLPf3-YnSv%0!Bw$e({`dp3 zqajo^QwO@bARlJT=JmQ!iqk$Wd;wj#rxIDuQjr#kp4Q*owQ(ky_J_JmK4)?cQHR zfQPttzLMjAlAagM0}0m`6hi?;451d_J;Jxv(vgc|b!2{8Mb=Yo$rLgyUxM{FzuKbR)7_LbxlwYgh#5 zHHQ;A{DEveq+3o#dyGWLmGnAC@ETjDZZu67GYOc%L@bj1W@i>y{ zI^)Y^bu%3M#Hj+MRWU;&5mnMlPkeQFPIeYXIAf&|BAlM~T!|lvMHnaQGCdm3^vZ)( zrqLrS%WJnRzu|VkuI1|wP`ePI?7!k~xs}X*f*x#Xp~AzPF(j9!YxC(3q{GRIl=m0tOB-OtbN`E(I(&OdCWrB`@ zWl9y)=FltrNhrxYrt|%$u!{0Z6Y;{CyE=Cpbo^fn9wVTLPXQNU0(d-(7J)Q*teqcRQB^ z$sNPc#tFSz-7`TQtB`os&?9nYy@*PSh`7ktVPxK}F(rZl*ial~c@bjc@;R(>@BVkFA8w|Pmv726A z9c$glRA_i!gR*-l+MJG@R4>~toqPjXc#ONFJjh!2!TCnpKl=Ih*gv;K_C~*oKPWJ| z^^+r3V%glfhQk6=vE~;#RAb^aTE%2x_WrWiC;qDrU_3uh_$HHB=!RsPbCeX7Q)cE) zcu+WG)h$?MisrUQ84?#2*_-m48|9gQwr7Sx$;4GP(bjJZ++eO5RUWwM_xm8krrGP= z561NuxuXMtV<2}P$$jGybhig<#nQSlz!)BzR{dV3`S#QaUE9#u^NiKfi=^m>(C^VS zqhn)W+*`BP&fI8gyx7w3E-#bE^dnZBo#at$LS#Ofr$bL{#K zbFn-F;-jWv`a$Wk7Oe;5CKfI2`^BM@ET2DH6HU%lOXbK9g?Kp+60fHE+FFzNK{&Ba ztzP|yfjC+cSxgfLMW8HEg{XY9)9?`ho86l&nnQ=j91tzdz5GkVE7!St);ONRErVQ% z+5`S+Lu2%7bZk;`XG_P|vG;+Tt{JfYg1PU}+$RcP#!zC#O}H})FCVtk5-jxa_OSGWK^5dI+MzPq>=qCfnubEWI>$!x39rIjHw1$ zt)^@oWerpsV6s1DwLMeh<0HtZ`MQ^0@Mi1TmhvXS2X}D;2xy*S6x=W5VtM*c< zw+KPPVAV!kWQ-b-k0WNskC%^6S63I@n2rUIk4?P12x@9VFwoxX5&X;&lrgeA@R#`} zWtcrP#a+jJvbf(3t~^bGyCKt7q%>|Y)l+t7Ajy#E4Qla3JXrpd)4xmDtu*O0`8@|Z zL1B7E9YYnn?;L&JkH`u-SFn#?RFLOx+Oh>KfdaF8hrqB1(kP&CbmygK#_cv%$`-Ur zO&U^H#ni>pfLj>Pv87waBQxeIWM=;pw?W9MukgbfT?e*^#*&KL(N&3kq=Nq=65YHr zTw~raFCaYuom!QzPWc~1v)^jR;XX!%O1|au5ezD6*5OKb1;P)`?e$^3D}NTTcE6M$ zmq#RFt-71u-A8z*t_O(6nv0=hT*$0bbzn6km3H&KttU(VA=SP}1L#}eRUe#ph*DsT z5mY4l%k?DMb=?fs{V>J^>h%Jf@GP)!^Jw+~!$PDq6URN)kc)I=IidRZv*TctrImml z>YDcljHur}XOgng@EfI42h%Pn5xAd#Ms|EV{f)Kn{7(4kdYHKDRTLnQgb+ZF6Z3n_ z7$wsJIg*D`Ao~cpU~}rw2>HU2%s@-kv+*}f*TwOBPvPeQ-G?aJJATcZGhFBQ!HV#w zXk%P1c7jiKPHQK71Fof~jmlNmnx1N|JaUF}!s9Z#Akw}| zt03&U_x?Qpw=`nEC%UZcGu2|_vCw+Cp(1+PuhK9?+Sv(A`Z^z+QURd`eq`YW-8upo zo&Km=($^Uh=ZZ64Ylpnvvn-t7!^{avR2Qb&(hITA$Y^(EAb0%09rvXfIyKNvMdG}2 zg@nlLOD{r4BjVm4;W_0bGNe9UPM2#!Gj!xJcvy(W%5pm^lp|i#oD;6E_F8OmSm*kG zLafu6cqxq?{&i(U^BB9r+0wLdLR={E32CGg%G9OW4~R!vDCG+KyN;)NS#qwOD92{;0*| zq2h}a7nus9@M2Fwo^@W0Vv=WV7+|)mxoabPRoelHeLw=AfPs0>&2$Y>h!=Hv%v0=Y zi^-+~H+b4_jE<&Fj8gr7UHwmjZQ>+%iuH_Dc_y1ff#kyI8L(oNmi z@;g(%bt;PJ$S_5zmJl}V9Pp^85#MhQIiKBXq9Q}Kagk5wTY&5g$6H%1JZFF=yB{U~ zA6qt_msfY?Z-|8h^Hw3Ijv+hN8IJ7=*3e}~2gvu#_mu+te8GR=^$)OV`iBVF6$`gh zBV<$>Jr4xdKBYSx*zyGC$o${bcKQg|Jz^t4#Q=Nav@!hXg6dvUvi0Vq?ANQ4)xrSc zZQ_9ou&{#k^pX4r>h7nsWA?_VHS|L_eUp#m-JBRsj56e2p`eR0Sr#T#|!+FgAXPm^`bbkZ2d_OtS8Ro}7 zZp9v-1(QfBICR_>TU>kn10z6+1PTi4hQ8#FXm_dc%{`5~s>{E5wU-m^tR$!_z%VjZ z-+dqG+M)j%={m8S;q<#AL?OD*OWXA-yWQDX%`*+?}-l*c)OH)t8Bt z)R%OK)|=tT9|A-ARPg$Ah$cGOsJDmW)E76t+mHA+SP)UyP*qd2nf=(ey;`RswM^Ep zWaJc#0K*qqNu+vk>QkP-@xE=1?%N#QxdD}9%$XiuwQjOH9pYczJn&S}P~){pj`9o=^D<@+#D^t{Q;<`P%KLG6H&)^= z^M#tH&6_w^%DTR{;Z4>P9Y^M$jRn<5+zaSV9pzZ(1bnjeS=RpFYqI=AN^18;(q*1K zW`>xm>*q!{)?wceUhgMtvB$LeZSQk?nsIl4>&NI7S^su@Phrff&FiJm75+(du?tTO zxRz7(+nGPl{d2`bNjD=L-I-PDX2l}`W0O?3=l&$xnTaOea(!-!7L2+=bW&x;c(0SdcC+10PG6MEH#}E=l12vH5($ZtZC+?a3|4ZFf5eN|Cxs z{c-FaW#i?!F_PMJuS<5Alt?(@i5#abrM?IBj^D zmH9J*YtpM86lGx~&<-4^CnM-{A!**{=vB8B{mk{{%nkpl+?hnsCxNAF1YWRe5>e)F zlzTbSkmXUvq0F^^vPO`O8wkzZ|5@T1I!HRHH}BYG<;;1?%phH~zG9C+`F3#kmA=Bz zD+DqMGsaOiJtyHolU#rijRp8O#0q#6c(tF_f3G|18e_IKNz{?Fxjsc3fcm}+adXm7|y49VUO@ z;^3lg!*rv%zM;@qiG566{Mt`&;(0r^Dmc13F>%3o1Qr(S*{fGdnYpHQon2|iPd3I- zYiW938iJYh-!-s5`0IM>?7->TnY-Zb^5LBM&0O30q&B$0xoqOU&2uJIFvcx1L;;N~ zk4{6sOo92`nL?zZeRDRTcPHiorw1*~CK`U|BAJ{+EOZ zLvO~OhI(`kwk`^<0T)$eIlO79CRx8>{HT$dGsgqSQks5bFW$Hv=eZ5w1m4B|@0gmI zi5n5B5Z%Nd_ArQ9eV^s60Inp|`;R%(4SLaeVtN~0zVj(xJAL|8yh^swK8}l1QSYm1 z(hVIxovfU`-WI+;EX+=(bhiSHeBl!FPd5$h86t%QTJENU%cIqKLOF25Xiu`?ErPzb zB+{qYazoo%swuPK-e-C?fBqOv#+6X%v_=BK09n{SlseWIu`2&Q6j5=$70wWmSa{ zN&(2fMVsdA-7in#D}>G966oibw2wQVKI&z0;=!-Oz?ww<)wEE_JFd$n*dfw-R@mz= zr{oINkx35r!cCz@G+#MjXZC>eZ|_MIGYaI(;%Wc}7JcbO#?#sxS-K{99Youwsu&QP zFf~-=kR&kS3PUj_JSj@z8Ds2KbsZl=R4MR5?R)JeZ@*qwkvJ>f2#>IN`T(BnzVBOk zTi@}<0(*Zpll4n>LXaGiOZSlN2gp%mB({1J-TW{UG&tZUKBBJ>3y7c#eE9PDX!MCF z_B5e#`=Rnq!*yYqedi9I-5UME#mo_Qeo~3Y`~F3r{ON0S!P&1~NuX|)D>jE!J_QX9 z$eC%Je?Sz~HSt7eq$!Edyp*lbHlTFD$oh-BU|@rYJx8<&TK=jcaKm3swC_Z{+8 zS3W-D%B=9*q7X0)6cB%+92CAiK$G!&-T!RC+8yV=8`ki--}_eo`O0=3FESulu zT}yO?NG19<8vW=p*-B-tN^)>z&X~N}n*PkxRHawR&7&wOa{emR#G%aDYWiI&L((76 zEi4y{k~ZrRW68Pl1A-|MpOR353sCB&8Spi%!i ziKHX>6mvH0GE<|YD+zV^j+a>_jk;#eL4KH5zmL_jRf zgXqbuDfbYsS0E8^>whPoi>_|q>{G}S8fM`LQ(j}rW>H`)=CqCLhQ^@p`T&xJ-Q^{b zZpaDSZu~QeZr!Vk?61YuE~e*r+PfL(>gfa>k|X>a1|qBDTpT|9_`}8NR~uKk4X96% z5BNBDRF)WlCo+^XXY=M0PqGp=XngRZ)OZ9drHT`eFNwpEBJ8%z_-l7wH42w@+KF4)cw~kGC&mcR5*AOs$k@cM|3_FzKv5xhG9xhZjCL>5#Z#? z$QeKDym`JW=j0rT*Y}pG-|3plDzIHfW2mz^8lxaEhqA)pH5j%Xx?YBQjt6ttJZ3_G zf%84*j*?zk5V>6^ZdsV=94zoE*$U8y5i?Bz0C*#$kNWUJsb9TV-9oi2|eA|K2e_BdA zMHh_Y8nMsk^loCN!cvH4P|imml%$R#d-B>HV|%;r_I@)$`ur>QF6S$=A5eJ9?2?7* zR?{FYrxasV!1_Z5K4F*xHdJ$fV*}axK7KlS!^+%`tDy6q*z4|+*diw_Pv%;2A%ZN# ztpD9>eNRlaDK_9p`7~bjyy(oBR6)0n0N)IU{#=%WXXZ*TsmMqag6xgG@TKqrj@0Kw ztjHJWB~~6GqghWf{?7 zk#Q4{1e(T!*znkxChCR3(P>{vIGf?$b&X8#cL^us5;t@w6Kvrnt~=}WnA||-$Heh& zW`%Lf{{E1vCaXD8@XD2&8<)VzwZ+l|6#@8I3xeGcw0n=OKu!-iuLBJ?i=B{fFGazqU)91FbhF`&1tB z5oj8=ru%i3zMR*5$`y1*7=$PE7>Y6lyzF@fVr7={M@cLW2tYG^#t&xEAB>uma@U&3 zYA{PZAgzn{F%xdeoP!=Na%~A(Sc;fe>6{4v|LzC=&l4XHxGA{sbz5<^3K2j%%00&K z@?Mpk*Gnm@A&lQApShgiUpD-BzJ0Q3Z-iwh&=(-QFZLl%>Bxi8F>cUn_KjoC4K@ry zQ`5jJD4qj>^zz6CGcb*F!GG_I83#QjfQ|6(J+|NzHYI>q<6jm8 zBd05JWBm6ORlE!&H-nW5p}d^zgM?R*^R-H$@yH$VE7~X0e%;}HGi1!187m9NmJZ#N zp!+Q=Z5K5&QKcClcY<5d;I748N^vPJ#ogWA-QC@_xI4w& zVfbgQ|6%T(JS9(gI%|JtpDoI=9c`d|IXO`Bnu0%3+8C6KQ?h}^_2ZLS%3J2Qdjj>H zh3^6qj6>fl;BOqDs6WXG3l|&`fE-eG2^kK|zrrbyk*QT+*Q$GP&;!vSP31My;yZ!c z6ohATMxb(c+f?r}BzSDb-N7^zCh!37W->d6+}M|=AY1SnvL-YN4L?AO12$RUnT%2H zVJl~`H>YpQ&GsD9=EU^X%*KQ03Le9o$Yw$P_Xk?k13d{2d&kk= z&(rkNo+8F%xI9IKeKcbbNc7qWd5CIH5V$=k*{TEy!vRL}S?QNF<`+^}G|58^)#3i? z^|84#ll2NO*YUE>cm1i|U8)O0ym*tP)yE-A{L_LMolr*q8%N#s9qDP!U>*nTPaUI# zg#k6crMg@X^JY;-a0q{j-u`x0br>S=6=>tWj)t=KMxyt8d2y90zA<;9y@i1VFXEFbC@Cq~OMjr?ceAukNlh`FC-!uRl3fL_usP{v z-Cjyn>G8sMtybnj&uPn3e!-2MY#T{l>c>Y^uaZCz78_cmu-ai;LU%1di%jE0{F6|@ zhf)>Fl}2PT*p;}^4c@hCT#Sk5|F&raO_zv^iT0V@EgPCw$(9X*uOFl+0vQm92oPB) z582Y&dxT3w-*O7ohx@Vwv-f2`j-&puUFRYaOnaCujney(&+SETPLs$UIF7J@YdBqR zJ;)|*wkk98-x#L+iD6n{=oAC2rTLlSDge_ltWQ=&IsN9I=};Tp91qQIE$S#eZ}DX2 zU zi0j4`l#IB1^7Nn0yn>IjJ|L!oFbF^**qr>&%apOdka>?O1xszaHBV^Ht6mzrKfX|IGSO9I9Ub-_xWGy1t?1W_ALqyyQzua zqChbM;r?Ifo1&-rN>UKwn>sW`Hf?vELiMK-s~f@7KcclO`t#L4>!PJQ;L^DNY`D)5jC z`62pC_II>ea%A)ExlfuF48L`ZD$>A#2O1p5zTqHr3f;w**0-0lt68Rn<+it%lNY0u z{-{uiP&im&3A-AN8~#Dy`QuwLt*Bykb#?b=NRfks!)IlSQH6=ADJA#DsQoq1BzI}4 zFxcgO+01TIHZ!mCq#}cq^Yv?TQkht1&-Sy@Y8M6*RcoiZ{B=atonclKyOX_TxB!!d zRV@blOWoWtGr|4H|8Sk4L46tf8Y`R#rTET_r^wZ|H>Q&7YmeA3*mFH;gN&3aX{X z7O$%zEvcVJ>FV1qAX9Ldt~lg-ap@lnO2}9#`)jyeG^F)& zOeL)YHKd30btwAYK_u-GZjX^Unz$u40qwjluZU{1n8Pd%dKD=}5rpIbdI^VOym{!{ zMCf?+L;AZyZkKJ~VJM{V-p}G?rfMcN<2&~Iiw*H07`ZpQiMJ2ezy&NddP1K+z6rOQ zw9p_ht&EKyDlh$d=9PS>ZMw2IpzD$8BRU*;ZwW@&&L^P=SVmyj4?0N6Z9Bz1ExD5G zDFT`8&AH->eGwslOto;GSjkA!b~BAAE4LGHzCwMlea&jedXN00?N=wQ{kj#z#iCtA zhNuEmnTa(IoknqyF)jW_x}a&uxb&G$dGGy>pv^T^*LAJM_ni3^w2A~5RU379Z)q4N zJAXEGrubTSNWD%kGLi;D=V_2c+xj!K&C}-URo@dw2jfgnus!KsMT%do&)AzJ5K8=| zLllO!cWfQSqlT1rGOZ51-Z{Z^=jC`hZsq1yU^g0hf+CaG zWnx&(7So!Wj4CN~{yE$Gu9||m<{?sU*U`0^5yAvi6x4>PHBBQvk+~8o?Ev*2iB^Wt z9V7d%hsz5ldPep*Me@86+Zve#50O21B9S?Xf4*k2%<4yJ>>hL)jH) zKv|8f{0}QRVl_t?mgawdtTlDXH#CAFod~7?i+8u39^nq{G#p-3XhN#^UuLs0wp~v; zQ6a;^!nh7EH$GE4G@*{h@_@*Q-#n%yqgAsijGw0{l5H6yd|3pwq6+@w-J~F2UF(8PHKfyCS^-s zY=XDh$FB-Bn+wy*v7r)$aZZM=LoGvYc7zBycv!L&RT7_A%;aMnTK?5AmoE#HgAzzX zYqjV~C)ni(SKu;yOS?i6dEl?)W*W`Y^4xM~$iZxHu@0oD|5C#==OUyQ#jlS*cqy4^ z*h_uKR9WJ?pzyt9O+}3E@T5F27&&Lz3paZiqBRu%tWQp8g8kL%@G?l3C0SnFAym&ndE8t;{+K`L1hnjyR`n5}^uf`?VUnS+&{u zYZ~$W;{-B-9&0U1!qrSRMiSGc(vXCz`}jE0iEB?!361rKjThd=Bdpx(xV!_r%fT?@ z)a1C~9a50+;H`F$u-HfhmAScp1dZBaK7vI%2+3;lsdJz6eGg=vQSvwmchG$362$Hu zGC4|nw+6L#|9oM{>>0n$JT%Pvxkj>OoNY>luXk()^WSF-h*L!7T__U3)`W(D7!*OF z5*gP3avAJL>d>B|-I>U^o4LD@pG%D{!}{SnhW%l1Oc4MEE;94*pZy*Yi{hFm#@_j( zkf4&X4ZLNJLfW?pet*YFZXY14aY|n+IVO&1P=unSH?y${%@^j$opKRYzeIDNNhj9& zVf7N5S<(4=oVqHU*nZbCtq?@?rgt@qj=%qnOx~VL8n>!`Qe=ti%nz+`Tf8k5DU$Wx zqG&#P7E>1yI^m1r$<_`P8(WUZ|KqF`RYWyP=aLi8LnDP2%R>VS>n!@C;&Glt(~sds zh<(=hh2%X}v1-jMYvW*r!Gb%l;-1c7*GJJq^10^bG+KGvP*JBOGeZL=E*7WAa4W1F%s^9%&Q`+mMR6XFEljC4z9xB6E7ODif(%{u83AkU{%xo!~F!jfeQQimsb7QK*95o)%Xt)qWF z$1=NiqB8;(9~ng?P}+W^9kuRDVe$5(&~u8>*$#`tkpB97#Bb2Z*2Yit$6rD4u)k>_ z+c+|BDi5Y-=}$L@D69_&el*Xfm=<7A_wwOz!tvERr)ntID2cWk7Xy9)Ir=d>n6^T| z0a9)Kr(Aco8HmLEV@(3akC~jE8LPx@_-`#Q&9TJB3Uo7ff{4Oc0Mpl*uG%ZfT+0$C zgkRQ^mP>ZTFJbUqda|Lyb#$?|-)sm@fMRn`5c=i%(R+=U)e{gD2s6~^j)sbAjk!h2 zGM>BO#QC~3FDi5ed;e@f8OGD>RA}uq-7;~^muh6(y-CN z>Qq1gBaVz>G!_idH%j=JtgqBmz3^y@zUfolk*zQo4Ge1f(P7gy=(XRPm{@i7%)8No zEjbh}q3MLFEYF8d^|I3V(*EDar79TSu+9>aOFB1rk(-+`ECwpz$s$+Vi($+phR}oP z#bN7<-oK8BE_p*ix6IGOE)wh~a-}=OF)rs)Uv4NTQVb@CT=EJCOg%rltrW=~p3>Pp zcWSp^PxMFB6mJ5=*PUe8y6;}pF~bKX4Gb)AJ<4SIQ4%D&IZ)~Vcvn!>;yfgh@!`0> z*!`Ah$Mh_kUBZl>U^77^S{k{Pus``+7u1sBA|!}362HeZa408^ZATZ z2j3BWu~w15z82uxp8+e~R^EqzsE!vS%ktjdb~3!El?n%v)L`%&*wJr=R&)ne9_e@= zl4vg2O(r63{xjRP%}=yg48galw)!YLO(!e?gW5F5xqOBU#wtCvQ zr8l)sOqgS;zI_fFVJ(gjNedv7Xgi~r=M_WMg=RCVThZ)n!1 z$_f`332G2Gl&|lrwDt4s{SU5A>xe72j3YWAlUvAA%g{qB8g+|WllW#|-R;TVWm&}; zEd!_$CR-|@yDIbKYi}lbu7$j6e6ZbJRGTjmQoY(>B|s@TaYMi0JC8>um9d8V4D6;K zqaL$If8oRS?@F~=Et$Jd%Q$;^a4Wi)T+I=~Pug0v!%q{QB5wwhQ+I|C6P9)Q?x2Q? zwNuaFp_)ix7G*|T?Ho9fO%@#)0d| z_Y+0kP(u-#|@U!PWBL?CPltKs2b&7BMdN4K943{Y`^>nhS*?=`wI&KOmPwj+Ea zf+{PQ<&zQVbGS<9Cu?U#gcvp;KqK5ZB@fk4If`8>Z>E4$3PvXVmNts8qr_Cb(fnp^ zH!ALbwE(NTDLpxu0Ma^tY84O(S|C5VCyA7%t?JNK!$sh41p~S>!!_hKo%D>%e@bdt zCIA<#=Z2zKv}o*B%fw@C`$|Eg4A5`*u!D!H%))a@X~RJ-7bCT&bo~cOtDQKj51T)mP8a<` z{O$uEo+G?2YC_-=21~3ZGg|EX!W)ZwvWK|_e<02D&qu9rY50}ceot!6z{e>sHIhiO zv_^Bdk{q|i;v~dVZT}x0u%$g!nuHNGWnV6I?RSmP=ty%Ag!0@tF<0+OomqC5 zWFuEvq@+yfKK1}L_-^9Ks(MhU7%wklXz0(_oD&>yVK1C^s2KVRtL?zwrGZ>3;??`K z!?l`xQRnc5Tbfbz_rvP?!~KR*6Zu#yL;F}Ph3h9NF^G=~>nqND(1VMQI|X55Xu9#| zo1yx5YD%Ig=2e$1pD*qNnVjWb!}|Cdx)jp26b*@L7cc7<6%#ZHbnl znAcUDo*mXf1KGDv?d`<#G!FkIbDU=z0pJ-XOwukW6&z18gNi75O0goD?xf!b#@&Y2 zm1@6{xVZe=Kmm5qap$Oa)q7%Uhoi9lqXBvYpMiKwJtx{;{>HHfTI?@4NDT1fnCJa$=x^44C6~j6L(4@xZ$@ z@iV^Sx;!H}s>{}KTMMGRRhdrSf46ZDQv4~(zdfS^_eTTD_3}JRQ*1q18a^IN zqB~D6yh~j>PofNr3NKowzA{Ob_*^?DZxOzq@<0FDpbq_1x{yo$Y+B7Xf6gz@U}}7O zJ98uLMJtztner6svgr#)I5f`cw4L3~7v!4e5JoF!v{F60-$2vA0Vo&L2rEm3$Qh+0 zd`lY*nmRwGyc&j%p$DBQ_vdlP`Ywfr`u_%iN%k#CvN{~qxBKoNr9x;iDIkMH-9sGm z=$R5NH*ql73BDVk_QJiWZo@jw_m*6Kn<9=RZ_$!w)ceBh?R3Ica%VrxRv0V1O&|~Y|&(hEDH`t$-@ugZr8X+T|PUXQ=rjg z68LwI+=Wo~{M7KZ+VaPrUN)%Wo8&3y1R&{R?U@TjvExyjE`jGI6?Aj_g%EvyqtHS3 zmPm| ze?+R6lko4`M{R>PqtDb=WdQr$%7z*S$e9I{luYzTxz#(m=vV{^VnvWury`pb{nxm|Ik(uA0N_+Z56R=T z?oM4G8t_v@9y)!lSHM2=aw?*Rk>#8EBOCruoxDF=HgHPb^;qxz|JQ7-jqNh{S8aPi zQvV8*KlQ9&yM}Q3@ zMU(Epq`q?>5U4Ls>leBp?H?zB!}5Co6$DUmqw=ZuS&Q?08Osz#-=-`0MWO*+AfsRx zCgEaflOpl0+ZQ2}50I6kU7d)sFzscFf>*t8Djqk_uOHAS&CbGnEx)56-f%@3 zsmosa^Tz0F!h1feb5kjCs|)(vhR1vp8n_E73;T>=;e_3UQ5-&AkJ4D&gN>7alJbq> zD<$l-7qVfWAW?^@w(xAi=3o2~{Vne;cy}oC=Q=^>USF#> zg|b7`J?J(wI939S+&DizpM@$WG2RzbdIz~CP(srXS@X7P^-dI-p>>q`#{$qZB$pgJ zlTC>&7w`kOoW{A{^aeF3A*PZF_c{iE&{+BC6C* z0WJZkYA?FL+j~~UKb~}o{{#yku<3wj?1`-rQS{ZO%;V?|O%5Rnl_*Czi}VtoF|1QW ztm3}nO1K-&`#9-wnD`CNJnt%ggOi1&*T(a)ul-8aru3`ff7VUz#ty*Hm8jH6H?PV$KcL2LZWvSk{D)k$#V$1$@FaB?cg-X z9fXNTQ6{5I6+=oLQ%eu`PnQ&PA&`Ev^I8oclv*f36OtRuChONx27Ar3-` zOZu%S7gtPK^Gp9b8y-kBh72r|k0I7D*tppHBvhP)PwFSE_6x|?%fp63N-!JPzB&92 zT?$WA>HeA)kw+*Id8JIJ{e-231_m?W3j;ajR5xC_1GyxWh2MAkQlLy@-~uBxprLm( z+vBe;+CF*)9c8Yf1dMGWeeEBzM${BR(;yB+aRK@SH2Cn}30E|<6u>TIR~+i7hmZ)+c3*x~kT}sS!1V3)a)YfU+QHmD=rFBc z+BTb00>sruaC%mu!ys}li-q`WXMJLR_imFN1rxP!{3OIo=wwrm%P|VDi;RrkqgK-} z@(%|1jQ8+JT2qV`QfK`^b}FX4mOy5S1>jJ^t7E$Hp{TWQ_(iH;!zjBq&is<*av`wN z5xq=uAz(pR47^8(=#~;8b(1g;K@R|-kg@|qqrsTpgP4KZY6u57@~pF;anAVtK**S# z-@f7G{MWlCf6xAG6^=u>#}#)M9<@a10jX*fDe_22BY}1k|3)hi^M+ck-K- zE$RXfDuL`5Fbi(&$59&gm&=}1f&4S8C%=#G-15!C9Rk(O>!YF4oCAs@V+6UPu&;B& z;?aE&b_vn7OzaTZngJRm#}PGL2%0qYc)lvoxlIXfcr|3Ik!pLAKs^mXk@8+W22RFN z8|_?ZbQp7JWaN@S@@qCUHh=xvgz5R%VL$ss2^aK&X(?ale5qJkNs*uRC}BznRpbE4 z_`zazvIgOTRJI67JiPn?<8L*7pcIypwD4ePE11e^2`0&1Tsq?he|MjEFuum8#%nhX z@1sKJy@Yg9BVS4Vo8@D`eSZx}D72JoJDozV{YEjD6H_l+kWyfQSi~W#shQcb^IuhC z*U1RZjmP-Si@@^N|88++6g@IK@q7M9x&Mt^*o#%wB1_-4C!z^mq~*|9JfN&}x17$! zVEEtM$d_Yke}ZTfPo-Jzp!is>NXfbQh6eV}Vmv9DSaQT4LT`S_R$G@j#2@9NGOa%NMj(Iq@u|PxvyB$m_Ntq znQ=Y=iLNI%ebX`npS>{41${>^i3-@lIJTv3$ec?-X?9G?KOVCe7C7TRiyN;e`iv4X zHoZ?!nQk;sT#yg}D$G#}l$fwY<=cwis`?f!`Q5q;ePHFbk%Qcvd+GW`!}f^9roJeHK2Qa6u8 zMmD65`UxSLC0aHkMj>?4j38?`x9_)wl8IB9`4nuUTH%-3+E z-yLaS!^*-|@eIxwkK*#s%iUr=3>a7bw*V9Y)L-N1MD$|ynLFQE*e-KY0&Jh?(o_g^ z$IafS(OR$Kk2~xO3It;RoY@=?7y1BjA`#7ZUDz<^<5zv7w`pAERUUyK)e^$-e}Khr z1rU-Z4@9jYzaIks=~P-r;xR$2ea8Pd>|GiVx$dD^x14eCzobm@9X~X#TJc{h3#bzJ z97E%;gB~l$x%NuEm z$iX_D{>L&vw=R3JwqGa0IhN&Koi7HlaZWLIHby8S&dDIvI|_wbwdLCn+qD9DWl!3uD!dq-$e z>&Sa>Fo@;M6KwFvvBCyq((;kLaC?LI@$(pcPn(5<3Jc!k@!8j5TtoE3u7&4cWouDY5D$XodE|m$8{ls7i(f zg28|j`q@kiPw!)WuD-WpnvgDdf4^U`k^(o~UtN!Bv99yTXoBN`N{|#JrSWZY0ZlJH z1#Z<=mAM{4wZ~B3PWPuvL96i-L^%CX*F44;Ue`C@8NLdmreW<5d=8-*VMJIS3oK{;WHaq-`v30vhdpR zB#>{54-t=&Q3!=zw!)y|W+5_Qzu3wknf*hT;~Crc@{xLV3fP@x2K_r~H295Hs1?+* zUut7y#y_$?#1d|<&qqIAQDfzVKe2$&Q40~5YvL~jads5Ut{L}@bKQv{V!<3+P0s$` zJUreH8J6$tku-;{ds~|`DnIP^C$)0Y3%_wHj_bFHt0$}HWnhzk#$l5-nG6U0RsaWL z93zbFQhaSQdVSev659PDVc%>*JdR8B+^b0Ri=y2)$Hx&3Q)hk$eSZ&{P0QF-tZcLw zODcfggpkFzj_W`HsF9fxh=1R6P6(0S@}SF4Ano<~S=qtMKRNs>>bP0o>47a3Ht2$- z{kGzB&wZhi^kpY1z*LXA1vRD#FB=~-d+agj?XaPQ6+!SBJ-$>4%Cak@O&Oxm*NBDW z4FDz*U`_swVED;lO{&+&^aCj-v5uw2josr3iyEurzBSf`q{z$lt{SEmu{+TYS%#2m znwVa2M4k$CgNyu#%njP1u%59k7#4W)F{$~CbYt$N#BP9((OEo`KMw&~K6F2DXz~jr zv?RV-K)Mwe&g}taLgH}$A{?i0kU>ja^hg5nuRX+-h32(H+<%6mfWFsH*cwZ42VUbb z!6>PRJGxLsFYFEkz;EK9Jgrjcl$|A7`%OD{OyL|ZO9pve9$ysUM3S`J3oWlEJ?sc7 zD3-mITS$^)#z2<{rA!|_(k2MDUj9h_bwj6Gl@0u(gDd^UEOZ*gf^R(ha>wYA2o?UY zg%FJ<>{<@vmsd@6BBF5VCVVmIBdEs5w6NXL4Ua$H#=kdU_`Ub#SFfxBJnypeLNU-N ztN&3cu1lV{RLRK#PRT7Ewdc36OFl+0X=kTc1P)$h+q+v~Vc}yhPG|S*4$w?4>mX6f zX8$u)|IzJ(ltSQrcGIxA zilA{J*5sROrZOgssN&}-dk{AqG*y;6hZr|qG6^aO&IMH5ZQ1DEop>ZcYU5!3IIm0H8eIq~_78k3YBdyJ_FNL~@9UC-(Y0Ai2a-^$R1)-4rdC- zScRrAyhPXr4(I%hSoSasw;);_ohYi@)ma;Lc3@>P#OcU|5^%&lM-L}j6?RaC%5>SZ zmct?RSPem+ynepxAH5S>bS?Xn7xd~^y-O3@O_uLY&y(|*wmfPalLZ*tkKKn|z zlgcVBQ?b9N(Q7Eq%(`M2?hEh{G-O+v9zoy!tlI?(r82RcA0$T@%w`(ESrs0kwGfo} z;S0^seVIl{B?4YR(%iB=!!do=<^Onzad@DM?%e9wTGsC?M?&m{L2p)i3H?SWXK+jCXd)khTG*UGV>AJR}`|BH0657gE%aV@o*@?gbM6=s`OXlWyIhJH71-hv0_uus zL*IZ-S+5DIm6Zg=ae-$XS?T?UAriscQ@jsP2DA4e!&?SvhnitfgvG$ZIjYGX`lBq=O&vg;pRBbz!vOZnp+z~nSl3pFp~#yS zfyb_vtHXDOs`hhJqNglxD2p+5BkEhg%n@bcVdR|cHx3)W-%GjRTb}-9paUF{v84y% zYE?_Zo1S~Hr5DV!jCJ5TlRMT|A|4@kJAuWsbTJ$&v0T_j#1dQs!#OS%M#)q(o)A>w z=tedkjs2AqC)SYD@UF}aQN+%QNA(cy6R9KG>cq%*!bxt^RjkK@fZpx)d2L(GP^FP+{q zAsgV|ZASOlPlrDHk%fJvn4$6p!Zfk8dKEceQPOC1e{AZ4;DXPJzuJKeQ+bvtUK>}m zi^s}!88&EX@dt;?uq?w`hd;+V)EJ6#&HZB6`T1|vr z_oruXgFfgGVM!?BBnt^AT9>eJNDQ>ToM3~X57E2Ds<>7~lZSF>zbQ1vc6qmGT6#@k zl{Z;(a>!XyNUoX47M3vep;FCO01tT=3zmHt1go{0}4OY~u)$xDAFZmH4N%(g!&;AVva zY!v@orAIXwJ+xpwX;GBjqaql@hdtUT&)ADK!|Rs4{(#dA(!Cp9iHX%F!}GXi&siJ- zVV7{w=NQhO+#NZ!VTuY74CR|^?mr%=-rLj~;MXr4dTuu1G4<1L^0%&^XIF&g3Icj= zZ`s@*&PAmr{_W7t!j-9hjb}+eh+ze6Q|IT;!;%>RO_J@iea@k}hFF3{IAvN7Osx^vmC|!Cr+`A! zT`yv_GezeZBzO9Olr}1IRP&9$iFxwd2STOh@>Jt-FxVU$`^UGL)N-Sr5d+PRA-ZPB zQ3G0jjo%xs!j{-r21|^1HMnQ?>9XAaEP4%%32h9$8U|%(c?E+S2&p=Sd8dZ2Q6yOg zRl~0r2C?s*lei~YelW|9`81;BXWw#{)sFr6(TSp5*X@+t1;-KL^RGt@ez6Ohzk#^W zxraSX-ww@NWv33ky4nQK`IUU-pkHYVJPq%ZMgynCu;ffZ@Et)~`f~I~j}Msw&rj#= zv8==WDi0VvUhbhHBA584i?-N7+|xD_VsD2-s*x4Wyg?NbMt{K{9Z^i|lRckt9vZs6 z6>E>Itgj0}{JjslPkH&{B-HBrAhB;o5p(eX0#-+^5tcBS+7wB=d|fit@EZ;ZJTh@3 z?gQF;TV(f;>2#AXB9Q|%VV>RCY~ojd!LK$x$BZ)8BKb67;_@slF9<9Ad)2guAqwEu z;~1FU|J4Eru`=Omo%NO|$7j6}pjqKvynvDk%+5F8ze}rDEkWG>KA`5|{u&Wg-MqHF zQa1Qa+PyqJlR%KR9S1;T9&M*;xQL3eOh0FB)XCR0F**&XD0vrXju&+`l(78|V zFENHFRuOOfkX8YbKA6P+1!bX!CFPekvT;@H$u8TUc%LQgzh=B>Dgz*u@EVjeJv^ze zTeiYG9Z27LD?cb|pS7cs5!`5zXy9}QS(({+UFkTeU&FL8r6RI9bdQYu5s1n(g%+5dBdw-_&-ku zd4v0Z5Mw)WlrHYWrbb}`6thmTa7xibN%4hnqy{<>?ml0om()zXJhar_Su~kaJ)K$G z#VVp4Ut_Wi?EEY@`GwY)@b+EhV#y_F%-QfDZr#48JAh+ymn~_AQnXXS9F3X00yTi^U(#Ezo`eis^IVCFe)xfWeizIOtSg6dQPN*g#>lCzL&%$TCoWAmpO!HhewjL4xyX48oD`dnA|ulV~GN_RVA0E2x?o zT%pj%X5L2sTH=F=5J0xOKXok#8I9M1%-9*<-`pb33qLq)h^Y^i9r^qogK*S__ZjCdtl%sCjek|uxUyW6@zxWoMV#b| zbdB7zAzhjISIwZan%NlcBP@M9`Sz$m&F8vCe^eKZ7B`8YdjvLWGLXNAQ4|vRDlYv| z%sIwr4~jC<{Gh8Ex+t0*0Tj~0*&&?3BJ_CmKv6Nk6(lqM z$vFq=5%XcY*=h$xd3zsY9KAUmHAz+h=Yw2*kk2@wFZ`}G0X?68U!i7knOadF+Uwq( zts~ke5kyswQ9u=nDFvTQNE*d6PV5#OQ$cq5x9aNg-Mtx|3u>v#D}vmLM4r!AKYc%e z!%Q=^*Li7qw7Ky(=8Sb5hm2knyREr5SzFL9Ue>7YsM2VET!B007%39~Iz>0u!W4(cqc_VHmchugxpegu zBd?n77Nl*5_jls=@Rm5MN>|0vOgihW$gW3dvlWIF*`6Zj!^=b({`Z>A-K~x~ZFeVx zLjo~(7L&)p4MvZo0H)0`J%MLtFrkYUe&tV}jnRoFPXU{DtHcKTh)up5n2mRbi$kce zs_x%SH_Aiuwz>3A6W;e6_l`+ux70ODzyp=M9szJ@m-j1#jq6PsZdUppKFn*^SeZUz zcg@qDIreAa%Hhwjp)iz}hl`<#+si9!mew`rDWl*R8ZmKJJ}YoJvv8i}$hP<@Ir-^l z1_a95Ez#r3#acfpk%2#2(>y*G0k?+pAv_0=wUaXB4HzJVq z20h7ydd_qRd!z>jRSDQG>>7m`Yg*cJrCPPuKN94!Wt+s=d4f&!ewz`#gcOQF;JpRl z)qUfa%RIJs`4F*mUuIk98o(g4Oh(F6j(B+EuaOT%c;@M@rT>H`uwwu0EV?4zb3fmd zNaqu4dOs^4{Nb9#`?6qiHijZ*PL__gcK*yy+vi)2!J#1<*_NCxyp77vh*u12P7>cM zCxxw1<^%YCw@nSS&Nq0$O5koitQIWG4^;n}+|7Npz4V3zpn6c(h8oy>U_k8v6KV`a zxrDc@h3O|DK+gH)f%j4Z$exjJV5(hS^Vlsnm*q=m&x! zMT~hkN8q?-xx?eHSC)HVN2qI_cu47v4!F&elK z0hHJcmhffAHlx=SE{EQDa%gnUxcuEP;Sh01`gxsf`S-8vDMIf}buyj5W4l3q(+=+9 z^|NP$1tFoYTx8Zv6t(bz>D|Cu+^~ zuLjsnn+ie?n-9-TgtS((7x8|F<(RgA`Is*GaQo{db<@)FDK>s|u!HMBCQtmTwL0SVz-9wBOETZrTt zqmVi(0iHhS7;IWb_3MfUwQ=eE4#^B!&ee_c`#$c(hYg$WIOa9A+rvgnF^W!lo(x5DS-xa& zq_R1~PnTKV1SkZ5esm!@T^uaFuYUAZija{%bft%LcwcAnkLtCzg4rU0vqbB&%sd<+ z$C5iObjQ_UANONfZf9mq$q#wErgPj5{+9UI| z_lGcL=Cda5+THTo5l0Yzdezt_*50Ce$f7`->%GS{!Af{4E8YDx8EY(VkIXTs;h!eS zLjR-=e=X}rIqZuMUPJxs=kG_R{f|HB39~?T7C7r-QD|q&eCQz4G)EZ>g9X-6GV{+% z;&y)sqn-flfLT}n*Y$kdn#7hMfvHHXjjwq>L~3MQPa(+m9AUWD!L$+asn#0`s9?hQRmCnvWQ<@i^!5FBP!&csm&lCdsR$r=Y zJNwO#Rw-6#+ZLrCO-*RFxy+Q1vT1);70+h?r)&C7kkbo;2ohg7rV;$Qr{|dyd!>ei zHyL`|Ee)!34ofHn?i!9P$2}nOlSn6p5ZKVEC}QqN2rBWm6TZG^@1}exa6NdOnTc3@ zp`AWL(t|jxwAp|5{2}}K7U|qc{Ctayr?7hLp6Cf&G~BP?>AmmZwCp#oehQ;v`hr|H z<=@F!>+1M!xBOl=f&{ex?;fwM2J`9MLAliChuPbPKS)A^=UEyWE3TNT7}H@q+n(6A zZFW4dZOp{BI<}L}#I|j9aPppgch$M~?E9gsy1zVCUA3NP>A!vpA&AAJck?{$#t-?@ zC65(||8nz#{hh{932=x=W%QY8Ku|!o8R?D{;oYkKX%1iHNU(M~y}j)PU- z{qu!g``fTdd^tua^{y$U?r%Yl z)}G(KAY(Qefu|_`e3UtG<({8yZsSkGo3Y*^_*H7+jzH<;WJ5@rF2?1#DrOQATMo!& zThS>OuOL(LGyEiIC@7fKmCX@-Pi>rHavckO$u@;%z0=&4+<4zz^8-61%D>TD2rv&#JRy*+{=q*MMo^LMd4ob+FI=`| zS(z!M9Xd$Oc)%fu4N0Q1?&UO0_$|vkh413?u-(10)lY?M5=6H=b?JML&gcA?6Rls@ zgBXTS^itv}1aXOXf_Xziv+|x^D|a zd#ip=n6B6giMj8hK3(Csow372Ibl_+RvrYuaANr%U~UT->Zz%}hoF#8?sX9TQ)WIo z)viM2$w3-QmX(($Eh=2M56iyQ4_tWB(Yt6{MzOQjiiIC+j;^HDODY0(G-_~ zFsKl#O>SmTJU3(|5W(leifTYA60(xp?jvTR8!WxTi|Z62&F(3y4b%_YwayuSA{JHm zTUY2)+iNMm9G+^=^Uil0;I?R{gl=NPUZ}Q4)%liK%a1LHaY3p zyF{wtm-|BM$n?Ct!+(-Qowia2CI}XwT!MjW-wJE9&GH8U$E_YSQFqbwiTdW|&zxN7 zR|NAxqQj{GY-?lVfJq$xLq`P6Yl%?FdM^&E<>h!FWb`i1=NVJk+jWveqLMH5mNqsF zpGQ*2sU(sE>0hqjJEbe;y$R>!ZFEnj6)T%qC$<2?h&s}@9n?hSzjrK zeozQ#>ca&NlPI2=R^D=X8HqgV2HlC&_%|pYcs2hO9XP$JEH|oe5p1t?cwD1$DWG04 zq&m+g8)vC(!VqW1sqB0tmqt6wqJwDt@G(GK>rNPNe-;ww>(Dn~e$_>OIwagIk$KfG z&3OSK6D?YxkA0olhSVfc)Zd<$VE6tkKhVpJvGi-j*+!F6QA&AqC*O=La(g~ts zImaZ-{j-#>a|6>K&rzzUlC{yna;%Ew4nFC|lOrDCXdd^7MdcnD6`XW1k+7h)vrZ;J zgZft8dp&G}02hH1LA5MM{r_DB@9tT zW>jl2J^MF&eNHyQfVV_~&^6tN$w9-&y{}e3zjxirP19{V2#Ob&pd`CW9{jWu?xVi= z6M`x??26*_=|ubXiFw2@DxH4FMbT7Km`6t=ExtKisjv!;f7}xZ1{U>qgKGpu_+SO5 z3{{d~hmM#f$^1~YC8TgixbXm%G{qSZ^8Hlizz^1s9z-8r$4o{&{mF4DT;crVX|q_h zR%;iZ%Q6`Q?`&`7jZ$bONYr!ly{Ali!kxFho1 zW%~Gz&(m9seQxaPo@(6o`-jaArtKz=Xris8X4nmu9sH2o#4) zxJ)@N8)boqL!!g$2BO0@jgD{|5BqHzR6vaQLiTGpThORI&J}6~RS~HWnq~?dL3Wod;d-h4ig=|$qwwk9K)B6kjzJc*%tnleb05-(>7MU!Yn4( zwPin-=demF7OtV_NlFp^sa^@YgHV#5EV|T*LtbBe9?J>&xeOZ3{9gTE4R8ICtBqOv zmgf+ICn$lpV+G{(Cq2T!-HMv7OapL}0bXmR-q?Vq;6*vTjD7c;`{(DgB)9iCHEYZ6 z^#R@lO-xJ(={nJ%o0ut~4Kv5_y}%GX^*~cc?$n>G7AC)r)x3`VsbVrqHsda3{dm9p z5cu4bg~!NCx6}!EygBWDKizJ_LUV%skdMg^uc!ZP()nEdCc?jhNgL;v$t?cgKjx0X z_d_yn{@_On>BOJh+*+Hh3!d^$MgR*A@3M+_Su&>YUw;SPXV&}}3vW=fpfAt72yLrv z+!CLD=N5u5ys{)huw^pUabn)N8tr;_WfUo`OyDSW=tnf&>}#Z#nPH=dHL3r^V|jo% zH+<_k{Ql(hVTecs;)C`-i^vSVCm6&2(v$ z{il`hkB7@$(P~B>z6oQ@Q6U-={RVC_dSe=cPBE2qAq59iI0h9Y|6eatcB8tMFe~7M zO!J^FGlTRQ^HlD1=i@Y;CY}~t214#n8t%5 zf5ZgE*e4=?f20@kL8eu^ze~<=k@y?}{PkPs_a}mm@+IktS+PtEDkHdILPU!Ov$j!; zBo1L-1yHgWk1^$K$I@U2d>FC_S;#eNt1(rye6RLYstWwwROLU-NmQ)YJyInA zT$Chh(73T`V*GxpvX?43&E1dK0*vTcW9-l%v_Tj^>n(Wu3$$VnB(LyW7#dv&~wNczDHjCqnRgdnL z)Jk2_sb_%?t^_SDx6_T){$=k7Y~S{J78X`{iEJ*ala5Vr*A&B-R4OJ%9J(PTt=x%g z6z-qJw}4m3h#3sSE3+3ki%-rA+{cYz??$)@_a9*6V9Y7! z(z*PRZK%~Bv_W0zgJ^fWwgRSq9q;37Z|es8Z$w~755L2-=N)XnobD%w*Drz}AMa>P zdIDQqg8c;TL33pJ(9UVSh8$UXKWUzD=b3sQ9yoY;0nrj<%D-%6z%4xLQwVj)K)cn{ z?At{KCf_2X$*f;vxsI$*8c<5gSZ$`RDa36d12lzw=z>vN2xTCzUXijqhcb=95;Nx~#Z+z4S7k!s@>m|NLewcx{mk z*E;}P9(+blw*bOsoI~_60p{IMft+WC?Rtv!TJj<4Anv0zmEI$l+G35&kT39twK<%)yM6jg^g<$VU#3vk(BN{A-hp1{TnN~W z;e5*Szjbi_cz^RqsRs{Y8|)?Jy^?>5gN7Gv4un|@bq!(gxH1RGp_##X2nX_g}!6i$N*1F$n4;%k|;YzX7o z%}M=Em#E)4}H?K~M)6gRM1DA}BC=jjM0DL4vq zW~I?IVTw!+{Bj<@_uyy!+{3r1l8i<~+5`qf z-TT-Qylr@Bk0%u!BI6I!QBSkoE?F^`>eB1QPlE1~UtstB7~Rznfu)Y;wb@gj#@3== z>T1pU!E&>i*m%88z8s=0>yFkB%Is`vyV?BRd~*BM)ITauJ&2haMiqLsdz30eFk==^ zq)bi`A3OdZ9<8r-wYL+AKfQ(Izh`ctgIul}{CgUx7>tl6^?QaR8Hx2+c04H2g5m=? z14_Oe218*YQcVCy3AzRl^*6ggK~R(VCRzMg_{L@8Y8fExqNRQ^ReA2$SZAToS!*(Skl|96dNsM|x_R3eRm(|3oIA zmrE7@gA&gVNkO>w)l!Lz?(MbiTbb7@>y+|k^!(;rTqnh~4G zN8{pQN!&ar_Z(byLwI11z74#}iS028_^y49N}LXV*)5la4^rhIfI3Dz$GcJ7pfXw*j9ZbcW>)W9`(i%f&_v#%}18f0ZV^Kv_X zw&ms|3suBinwY5~x?BI#^|W9*n1(19VF)aYHMVr{sOmhwTfIh3syUE&&#L>&Y=e7jss+;1nHt%T|TLS_B6;?E`5HYw`YtVo(a(8_H*pR1)=J!Up3)OV@h#c0)MM#P#8H-DHDOD zqES~VTlB6^o1i$XTbD2DW}{n)B>C9AV$FPGaLH7y*Ft0mN?)>8;0O$io(<)-&1vze z0)rF7jwP_8i4i&4BTu51e4w)&gxiAMc}sCFGNxD$in{HK20GhiG$C7^BfyIaIO0X} zA>nXr{|xDo{#y&c$J#ky$-Ps{YTtSN{nZB32Nd?)V(`NGtkjiLaUNbWBhW_wmQr1$ z+)B%S39KInt#|b^Aa-cN8fm>>$uEy?T;DBVk!6>d3_=UM4nO;M-TnC3dK7^FcvR?* z(cx=KCp%AGL6_0qDHX{;mxf_?iGFtKtKo@a8y+at?J*Cw`|Eohj}9E2q9Yny>UDZ= z$a^vpc=8p8qWNoL6=rF{rk_S~)gGLbXQxFtxoi^DI3$9#ceZ9%EZgNj3hj5nyA4lf z|1rO5F~N^vlm}bmn3K0xlCD8u;PcFbyc6V&KRU}GuSjcs^20fE+f7Wd-eTa}V=;sG z^Czj$G_0a#eM^CeigNAC)~(=MTmsSO-@dGQUA*eW24X|p{w%h_a|LT*onvzW9|O)y z@`fuIin$xeS&1$kUA$xVFIrRxy2s95+?tUNZAa}kJP`W`@!fTN%y@P_SEt-If}{n6 zheQzmqO{^J5&JDudpp&+HJL>x6kAD+dhgK8xDk+a+&h?Z*r~Nu>!4fY=Heq?4S*J? zFo?8z*3y}HVtu7!W}@lJ6^&L@Q0R2O$)V_m%()@QEFWGHeD8P` z#8Bs$tgurO5=n63{i7VdmD2Q3oXAykvG4uhyX6D@U%vh8xBth<|L2P*U>Egas)vWD zW$B}e<;#80{ZVCov*#484OE=1?WV4rYXZANM|~nzNvZGoX=3q{<_LG9N0O(0LPyBn z1s(N1+wI~+x_k*e7QAt^s+#y}^J#z=>h{x9I?k^4o4OjN+-z-2i=^J7>$=wJK}ywa zx%c_Q`KoM*%0UCSdGki|*j-imN!ASadnx2?!G=d}$9w1!Z9$xL!Vd;Gfd7L0EmN5iqxvsw4KK{k>WrQ76}ofFzul=*RLBHn`&l>B^XD52U!+* zUf{&gI&&zm9cp4VLe{I%D~p|;zk9mwW&iu-=mNp6wls)q(k$jC4GpP8+Q(-hhFK{5 zh88%^))m%7HbLtQuf~X}qMz1`r^ixWEY5!PJyy%E>g)uB0w`NY zgR%DyyM| zpzfc?IIrtxY%TW;3*=Z&f0p;Ft@OtUZFhxOW_E3zd|}IWD4jZnMN;;_%vyG1)E8q| zHS4c3u%;4Cr=DCx-M&O`>&R%h%w9Yulc-d~EtZ*INaE|2rT;Xgz5qj`UG7%CRTJ2w z=kGR&B1|-z{fJv$&-|I|%6E_4Mey!&_+HUHTG26ed8H-raaJ)Qu*H|2BZO&*=p0QS zVCQ~42r-oKXRPuZXEDh*ZMBCV^&+~(OCopY7%xn>%|B#(ZTGkTp?`3kKYp%n=pqF( ze56N0zcyg5Ijn3^AhsIOddv&_u?q8oA zQsIull&sr%!D`m${onp1t~-TH$*4Z~z~164Rg<}446q(`m?pUl348HBX69(~)`ZT< z?aWaRl-ZVA6%nD>i9($Tl?Ev0UY7Z;>HJWWVAl+y;ODOVRceFP&^*AlwESf!jZ!=12?v&shF6)geywpV=;Bu; zm2wnfy&0K~1fZDHjlil-tff4RoGPxtW2q7F-EnGJs3PUzag#1sWxu-JguLF=_II#d zBemNs%UAJ;)nPYvwdg zY1;riFIegw?r}BM?2|A-x)*&ItR4$6UX!)7ARt)?H=9F`ugz9c$&R%QD%791Wew&| z_)J%L0<)vzgHcFM>+e3k6h~@|oz?ELASPs9Qxi9y#Yz^YAB)h4IdRUYOTOh#%UTzA zd!*S2K7E}QZKEZVhAp0BOUG^KjLoU&LGD{80`zFK_G0Jx#a#Rv9`)(9tT1o0RYIIl zIS8iEu|=N=YD1(~Ql+b8*Ujc~HXlcCw$x+`1YP#bTNoIx<{o|n3Bv2Jb1IXnAtu7> zSh#&z?>}X}h2{j_+yS&Ae?!jk@IfNk25|y{J8hx`ANY8wE)QEi_Di0JKX%;w-eiXQ z49roRwNSLYqe^6n6IYZQcg*qNX4K3pFv7m0mVa)6K9AD>g=B9Lk-Wmmery{Hi!Im; zZvZymblBmNpOWApGua3F$&YcPOR`5*n{}`s9OSHq)9TS~Zq{#SC$3d=R7Tkz6ItiM zGg_R-tw&zgYt_x_B?d^bS)7CtF^<@UUCJ-z=^8IjMQj|NJwVz~JB^2n9C_VWmK0u| z#A`Xl>E{7+(a)&5SgO23ivt_S9^}lX6lol4_k%_~#ikgBJz~5d2!z99n;8DKT)}uM zRl{rUcRFhl(-`kRF{$*a^i>GKu#-qwBf8qV>Ze<&QG~}MCVG^p4>%}Qe)5yS0|)r; zr3>RjZ@uQKzxTSnOn`S_Q6Y6e#}?rL;_v+DQC#`rqj-?CZnSPe*l3!Cm&5;H38Qw$ zZcsS_yjn>J|C1^Izq~2V&#m*=sPi076MW96^!Nus?!q^d zw8D9JD^c}UoGn$b-#m8AzZZ<)!potO3^jzE^N}d3&5J&_WOj z6Zdopo7K|sF09^k=V>PJTH6CITOoJ3hZ{@bxG7YLWf+GUV4Gw>2!UuYSn@99;xL3i znFa=$VR@si`oeXFU2gP$10k3!*+bDGv?2fp>EY4Sc^BT-84dG ziQUCDR-a?-&8{5WoYNbBPTn}cD-9n!0i5&Gp@=GUa4q1R^*-?qyLPt(Lr?SRR27AN zALyzAUR*haorxo*-);d-kZPth7YMWvE!1QaoiMTH8rf`7t?G>!U6rMzNyxZp8A!!} z-IaL7Nz9T>J*|JMB|WDWlL;|nNB2ZTTbf1bO|t14 zmx0$1Gr%kqUUHO)g`STm<=ubYG^q|H90WN9!ZtR5EdfZxjIBJ?`g0E*>@G!w>!S z5qH0KqRmRsXna?4_KF+_?u;u=T1W{Gm6fUshBxW>F=Xn1aye~+HBN41MHMbbZ@wxd zfGWZFpaQP1RIUHqLUBzw#e}89Me?JQ3fcq!n~CQ;2$%mK8~!h=?l?#3&cqgs@N)w` z-8)M_xiQ9FtU(-kvCn&{o$S{8FlmRs73^&boZPB+*PNvg&2OZj9XY|5#_9g_gN6bK zy4tJrlfs*N9X7p8s22Q z+}J@zMA zOIMt4pP2b-m#z#f(7#`t)@o`96R~gSPK{!#JdX&JrL>~d{v$s$pTz9pFtOGCxScp1 z5-c4i69(O@%M2URaiv1EOsN*EYD7(#eI)O$2w#h!x=_2y7Trww+S}`UQ$)a5XiP;H zqUfq5HpZQ)o?&7qjHW61Z;dyR7zI9o8Y1&bdWdjh6o=*8=+`&~?jPJRS{M{NbZF@! zEaJ2<-;I+S=K@SiubPY#zE}G^{aEzB#%w*e?JhCz&`StPn6vz+JTVjJRB<$!ff^KVh1z7idoICNFgD~)HAnMDhYY4pqgXUm*%ReO z^4mDMFMdkKDZp~zC=Q4# zEu$AvLCTN&sy;LpVZ#1kf3Q%~kl&s8Tu!6|w@s(Ytf=Lo{j-_Jqa>$x6Z;hLBsLRO z>?j8J*Vh<3Q=TlcueQs%RsalfwfJ8fN{>YUXSVadYnz|e-hqeOjY@QqRgr)vI3^m_ z@jReaVFrr(Sd+s$j2c-^+27u67L4fHXyi=IHC&z8oa7d~;m2-rXxdDvKX7^&y@V`^ ziK-gyi<+AEN_@p@n#S*-5`B4)LZwKIdO$cgv$u|nK$}ox+6%Gj%Qr!Dg071W5t)nN zLi?7nQLjCWPq$i+v6?UqW6uy%! za^?wPmaVCqY<&YUm`+um8r4whbd)tq)z0 zDC%!ik9)siPJ$vxnN22Wto}wa4tr`Qk|)3qiaDbopYqMg78g^B(fnG&giR$54e%_! z$I9eR6LgGVO4>&JQvsu1-$8)^@H_>_$&j3~#M3_(@`$?~78zua)AukV!dp`krcb2O zTStmF;27gxMj@$}I+fcVl|sajM|Aozr3uhy(2LmUu<@p8`R$|3pz{2(;dK!6cH^K)W=}`QLEHTQ@&BRaP>3v>(wk#8R8hJ+$H%#H8+eZfP)`huu`RvYT zJ+b@=SLk}&t~;4*)?*&gw@nA!JWhO~$m2Co#lB%djAkd9KGhe<5rEryr7QsuSUhxM z&KNM0{fr%SPOsi;bZJsbZ!5=ar-#KGl73-reGM~|REN30)rM7uCScvTC~!fH`0{Zufc%FvcA`Ogr|d9q37GSbRC-`k!~} z>Z@M0>v$riWkOv^^nzs#&o^lY-ElDfk{(E@GmOc|Nzv2oQo=2RvsHf6L*j|TnergO z=+~X`Xg2e87N~M+Uttx}4)?)1Eh=sUO~q(CjXWYk^;>638fias63!U8 zn}e%OA+f#k{uY;Nn3j#R?*(a%l3;T3L`M^AG5@ygGd*x*fzIn^)e$eU*nfgS;Sr{l zGM*?DG=$)G_0-KDM%{5z%eqCgEk4WP@UfK;6wZb}5(* zu2e0f4MqTtO}Ha1d;5urLUkj*a!ZkHudK?oi!x$0_5BjhylJnT%B>ww#hsa)xjq|`ui9RX!LhP}(#%#wb zlf8H`(aNUmK15bdS+I^aJ{Z}hG-5|`uJNzeM$(>_wJJp<@txgD^ce8s%fS+uGdltH zmes}?PnIt82Sp-iNCElP7#~+fP+aFF>&d+4hgD#yQjMVr*wHX_@zE)yNi*XI98vpT z-~gvP`T5nX-C!#*iKT4p#RV$gi%W@*FViT~?~r9x#;_bYEMs0wyIOhsGMmUgv)Q`f zERI1i_tahE=FmxFO;$f?8vc3jve*A;{DNJ~zYI7u61hzlk9>>G>atb;l={@KXv2a> zK%D_UJEbuI4E7n1EZoKZogtD||S+#|xy+ zYSj53=Y@`{6v29{E7mHbV)YP-FNX*}gET@ckFeLG_8BeF3f0(Tl>T_g>zfH4>d%)& z&?gjeL(hu3dpss=g=3m!N6r{^`j%nC>;EDXr#YeRYf}`7WP`5@U@f+OK$)a(`_^o% z10#f5NTpCQ?)E1sn7h7<*P`#IItdugO(HJhkyGZI>!!0tr5 zZjwWq!H%v}&$W=$a1xNLyMgWQ(UT3`K+#YY${^E8$bnH`-p!~T-0bpWR-bvPVm&A= zC~*n};z9(8AORh&NeT7xeCAxf?#0y3;D@(9!-2CdL4i?ps!=hv-~;WxE}vaf#6+Qq zjmHEQ`qQY%lfp1v%W9(1YLd~41$K=l4KK&5we%H&&`+|vnKAX0{+!6&DbEAyI#wMt zdJ|PhUQAYVZnYT+PBy9&&9fXgtdcL{WBx3*(`&vNSW#W%@FxapV8 znEdaYV?fzN<_Pl9!pYNVmb-F2tvE@)znRQB`gFeYAgocJiqTEU^N;+ztil>T^K9>i zb4IPz2%nR0U6ejDUxjJm98gtLq^S3@;q9!Cl@E{|$g6dON>CptSJ~V|WmN{En>8-K z|D}4=N(!V?c9P4ihS_` zc>w(-5)`H3868cqZN!=)o$q)I7;2-B%E$^@5jt`PKI;-gX`|tVqthjj}jaDM)p@e7xjd zij$|P2i2u${xvgpNOwJE=6F1Hu|2J%w=Ar01#XcLermP%#qbQJgY^L5v^6u3^@ zhfAPO4sn|_YpKThrG6wr>lIN&suz+C(-vU+wIRQ&Dfcc|b~+eP{4KS|CQQ=jX(eia zmIR&&nEAIQAytY)6+TwmPe74{zGdPVjr_ z5_wa81dH&^b7Qfv;rvUsXl`yjo3f!|-2hl+DQTlQi*yt#+7M{{5lz=IuW0E+vhSRA zEKHJx(Noam(r0jtbsT~rONP7AgA`X*TK&%2xG6ePgvW0C7%3&*4pX-Wi#O=p?otAe zR1isb#(KzM0sx|{;AND_qwZw{SaaulRkvCx*?QoHms*YLxEU!y$t#<)IV=|!pi_lJ zR-JXK)T6TfrpZLBV-WxD)_~Y~(mW-R6#1*G0_sudMrw{Z$*{0rM~D)3pmO?9+2T4M zE;&GJfX}e(Xr+O=%DhrLRbXYcZy`5<)f$XgpW1=Mrmr=>cyD@QOM!U;I@ zn%TWAyj*F1vLWui;r4(&Km5CwkskG;(vU_9k@B7m)0?6W(U5MXW8~ht_v=*m2R!fJ zuX!qu3#al-fAq}c9JoRbV@57n!+gxZvNZZ5o%^f{hfwh3m`JMw+Z`sEf8bF>#43b1 zBomeHHyzAw8G#xXGgZU0Y6!It*Dz&V6DINwuouCK$#23WcelZ#I{x;2L~6CiH-F0w z_53G~LLQ~)`Z!vvz*&|gW?*u+`c#}i$6~>np@Njv9tq~}c#k|-3nriS%p73$>bvk! zdql8G2^!+JQ{Ml(N@Ccvifh2B6(hLAy=e{j%WJN$G16jjYAzU}wji2jb@AD?H^{X=Z?5Cqemq#19YnpF8*}JKW!f zP(+N|nn4qPsdIIOl+Y3a5-~EfTh|zuq~R&UTv|OQn)<&%Q1SVH(7F)S;ml72)t5$- z4=yZJ9vSckf*Ya-8BSi}rx}kCRIL>YZeoWHqi>R7R5u`( zmy9DgE#j2eN=N8-zaF8M4|{Tnxgw`f?EG!MK=sdEFYl%ye-bu0c<&Ho9`v7e*%q<~dQ{P4 zJY+RdIOo@3C}YbM?{`gWv7GuP5mh5?NTrCik1bkvl19+sC{d?_}+5pE-~XKxSu2ocxqN6+`*Mc7PG*kJD*= zbbgn!NI5Uc*0fvG*d0rVgf%+1s2P6r^s|e4&0NRB+I`c^^mBE-&h`*aL^3OqNw{Y^ z@oT!~w)dBu@3qs191e-y*RICRYC{hG5jqa{9SCGd#qdbj8CIx%D$pS~R|`kFOBvBJ zT#i$FYeolq;>GAMbbRO-)`-D4#E`Te&OxTN6R-(Ft|e$v5bG~!bSLgkzT;C472v>I zUoo}u=9t5JzL$5)`OToTj*T&z!kU+r=Uy?GQ|^>u?VmN6XWMtynA{X$i>b4|g7IBX z105i8PJgbS-v3jK^3{P(SL!8GM~j-CE|hvue)=V3YMRbhR{bHk1U|O-&q@*uZ3v%| zB)FidYd!*+NQ@*s)&sr{2V(b<5;qNDRW}zVoOpM}eJ=2#l&)NJfG( z>Cn^kJ5dRv-^?kY-|j&WFdGa@60Fi!(2}1#e~sZaLfibY@487>gkBQ0+*c-|AyNk+ z|K_EiSD^o_s)ji{Ocf5JruNC)M=Z>aigcd!xZ6HZiL)u5r6CoGPN+Uz$g{D_M?$@1 zk7`ACtfw46P$J7$RYO!24>|8EvY%=yK!2LS27 zh!RP`3m(^l!ABak;sHaG^_&kyxSMQxrecsRKxNbMB0vv=2&L8-dy z>w{^JqZ`|VrHw&HgS7nL6DO|Ua0T>ee90~%sZ~?Z5DMWam|Rqubr^AzaQQhUhHB@; z%!l0ZQL9Ls{-`OGwqq}^hUFbReQxZ_DEQV~|MND#$CX9++X8Jqsx=B4=Fgc-vvx6x zX_DYJ(nE@aG3j|nV+OxtPT4BIUXi}z_sl0ArGFH^nPNvjxj&JG7}CzM zEWmi1VBN`JhnDMFBu^uag{hTy_aDa>004kbKu~?_yPkVie#HeoyanY=uJ|tHKIaej zMp1M}ZFO2yJ(bD%kLg!`i;=Z}Hy>7k5V=sU+iJWKIxg#Y;AMNIA2*t!puE* zI>XTsQ4PnOa3+B+co9` zMK?I(S5#Ah?@gF${8k%!I)M%sLjV=XQM}n2OuSFsQpdU7)np_^_Z`-%u{b+{UMVJN zq%C!>i{N4CY+1|Z{_?x!sqD7%2fBLLPRF{dKiGs0x9%Rd=PCaG$5Y}PG|YH3Nwn6Z zHzMXvQc!Mmi1m^S~Yew79x2AGfmLeV9w9!^?IcEV=Cd}v)ubUT2r zrD+c!@QOgR)-7UJ<9z7hm(kD3llx(kw>2|`8LKR5-?Fs2N);@$=%(3TSoW>JJ8bam zyQMiduaUzcT*EVen`vK5X|DsB7SE3Y7&ITF9(c8Bt*8 zY@I;>DwU7`n0%i_P+*_P%Cc;cvozA@Zg~yRS!J*#=#A~Ui1weyzuHj&UH|Hud>;+Z zDVlCo1R8%`Nggpjb7Qz%U*1pac8&UtRWHUjM~^R$VXNw5!gmn$@2UUCyQ2ldGM6O; zQwT%mLP9f{_ZPK}^7y)$Vv`>aO4g*SVph}Tq~$>xdxOCe?pAFCGp7ou87Ld+KY4?W zn3z|1^2=GyT_wI$%9t`tq*{f&Uo)(LnhM*g&Wd1x+Qzvg-$me})7Y~iJ-5zSjPeMo zH5f564_m4S63+?egP5^_j8Vdq6W8 zcxhZ+I8|y~C?^yCha_1f)lXK(V78(hmmA<)6Ddi^&e(y;I;P;VqOm;nyyGQK$p6T9 z48Y8?6uxF%17<#EEPU!1+x}L#W0<%@;)H}t7Bt+v&ivYV>&q$QrfN1+rsGXvo{^Ok zWuJ=9-*xLB_0eb9BM>1XX3#z<Y>z&Sx)^N(F9<9PK?D&@b(^ho5 zUF)~m%wbRsSj^$k4y6en{rt3~uizz(yZUAtG=I7ot=Z!7mkDc5`+!C4>BWrhe~`<3 zHu!V`;iV12>U%yY1q(g+7~=L-1CBEO1<09H_&-C_cqa-QbztD{xUOMRQwFGto_wAl2q)M;)gR^^N{axn_f=Ty-W&NFwpYiqMQ^YHRzZn?aXY&Hyr_wjpW_Wc;x)|xJ4TKK$ zK?XJ@y7@Jdq?+jlTnc={KdhD^G69DxgZBdqO>bzjtretK9YHa0RCga8G<1ij|5%r> zxcEdL8@HMos)sO@1pE4sl8Ch?BdZMi(7IYVs4MykgTaKhn)yK7FNx`DWjMwElBg?h z{ZTJ}HM33+mxNI>5q8HEvn}4T>)Vas#1ccP1Jn+?c)6I(&x>S>VjagXuiusqX+gL2 zj~7Hvjcya$^UmuwrH;~_h%Q1CsIkisq@m>n|1y@*K!Fjk0GjK$ZP?3i`kv=>9fu3w zxU%aTIzfM-#v5nJmz)iH16jNqG!VbRr%{ow?_k zY*sf=nG~}aEn})RKa3qU=b(Nz=m&!&LJYHzVCZ)hMER@U8 zI;7`GZ~1weorKf|$((!eRt^&ykJ=%~;if0*zDB%!{KSwCiP__LKkHqi|Mh~~gf0=i zSCqU>QF@f)(s4p2_I#E5{#|w3*BjA{X171%-89xy`n{@9Xn*+txuS&ku&WxTc=Q&P1^gt9{{G3aOeOBw>3Jbofp}om+NZ}>dG(n zge|O)FThj@%el50frug74^-Ws z>>@|qqG$s-=`!v+J_3@)1NkggX>%S(Pe7s%fX^PfU{8bpYut6*M_BhD)yMA-n3q(d zFYt!QOa6|~{9afN*3Pc+0e{G&@Q>0tV^jG&)No2f-FF#xT?gRX9cdV!<_+F`m7)C) zLQ1ywAM4Kp3qY?dk2OTMePLa{@y=m)uT|*Vq0$Y_Ck`c+fMV#3%)H!&^=|={D(35W zjoVn<-Mvi}Obsop+Z%sxpFw?=V9JjdDud!`-sWn2*0yfZTx=WT`vA+qQnhsTs}*J+ zPwZx1bGKn*U~nAU6}JBu{dAEw*u~5Ku)L63X#CsVu#aFOL9g5oyAR1HE~YviH7Sn>`8z(M-YGeSc(e6GhElfm*I=++Zh`Rx;F(y3 z@M`nzNYFSf_G2&aojU0eH{T@)%Xn(SvZ%;QT9LHHf0vNSXHkaDOSoON`EXUYi&I!Y z!{tgtFe<4G_gYxL*hu!)dvNbQb8*8XE=h*LtI*Wx2P(`jc-yZr)G>61wm`?SN!=W( zT<+|fVf+4ZA;i}Tq7OmOhXquS?+Md&U)aWQXNAt1I1E1xWpyLt&*hT&%>7Z{p)>=- z(EJ%@d6fsd2nKuSU1Y!9oZkjTsXDJckN(MNNbXO^3f+A%J_Gq)nf<`+fB$$`^d>Uc zRy}zP=A0g04EO~J;})UF4~OG#O(w-xiR51We9yc<*r~R$0P|3k1$zW@2?V%j)nmZF z)<^Ok4PWtE?p_k43l0Ips3zBy1FkE#o24vH{ZKSiK_Ld5pm9?+nX}%QBTg z=_V;;D{)nn;)AQJm=>5~3S`)0epRm)c)v8*dr*?maOvk@>A8X4fK65YGDj;n+au|Z z&;7LF=r49z!8N+m>*}DKk7MU@NWa&&tcM`$-WRDblBxf>879a$b;lob3pFN^|Cy>N zC>s~&daBVx9rljv%>TMri(KPX5Xi&@$|%_071U!A*@@G?bqoA%dCYg$L!GEN&$a@I zFR5Y}G%|Te-dHVMMk+3;E_M+(<#qtW_xMGFDyrgc`|~L9aMKMs+bn^)`Q>}Ml@i0d z%-j}j)df~RQg5*|O5lr_G9-nA~3k`Lo z10{}tl;@qVlpdvwuwe%8EWF#ROB-NfP6wX|>yDn*@g|EcK=%jJCtLeMaDP?ch2H-F zAULEU03f(j9_?2zkQsO0R%qECg6IO%wBmCE^;m0kTHRrY#%eLQOD=n*wn7-veK67k z{lD9eY79Mk`FD&xd5VaO5jeXymox7sT&+kwD|4C=(rRxtC|`pVQbRDko_&8VhiTaN zxsH8+HUN_2&g*Vnd7U0=Zals_lUf>D>Ql`@G1-kheUM=msi;FHhK2|@=zQscy$%t;hR#dCZ@P7%p4}crsNQkzm=^^LcBcWcI^+#K% zkwhFYG-{@Eecij{z(<*K)}(cANQ8qd(NC?v*ge%G%ksX0;JUBs93_BU;@`cj)cz8J zMp7&!fY@W%|2rm`m3kB*nB_DvX9Nm92vV%;io*1Kd3c)b4K=GyXL|DNleumX<|UBw)}EJ;~d5V7T2YbE(&HW)>w|L$%$f_{=?WrmX2YT~6dY z`SNP)f^qrxqQdnY~{1gfQ@^ zF-#%?I?nl@XxlU4en{L3c9!MZa(91ZL_xX|rcf$?>>f~DA(xgJaeS0OQkYiO^D8vH ztmM<$ZNcmEz-y{q7oR0hfE{NP7V?J&KjFiB<1>QAP4nA9zBOas3bqPQAe>FpvT)p; z=n3E0RfprEf{;}1lAtIcw?@K?3co@)qzhPc1}Us9={?SpD>RM#Qz*DA*&-p4@Zvj| z$otXX@px9A%mv2tI)LPPbp4$ritF9N#YZBMKrWvr6pHvi4I8O`+BM_{tR<6AP{s z{tooZLHBh3sy$JftaH7$Rzr~0D;G(T#NsF=?4=6jzTyyuov@`h;-wh_5SX3J zv3C$eR{qHuzRlahWFI8^e44iG$~xcNW`F*!i>!$ zz@25t?;1Z6jJGt6;>c~ufvEtcJkAb>Ugr2WqX# z4Hg+aCM!LJDlmcGZ)3jmlDg~+SEJ4+%Z4rT_c`Nv;s$Z>aJFAEmQ&x<^U5FJqHS?a z;0iYB481G}U+pwkZ_hCn$5N?YR;B&`q&eNkift9Dd~R#LI~P2{$vkfvGJ6$PJ6QLm zrRAHv;X>(X&7w)<9>AzK;_8-^2u4-TVqOZIR02ST;)%pe`n_!Y{wTi6u@q*A9-`($ zi(oV`phIh5>$DoYGaGPA^mVo1B2fd~0&$QcQfLAEuma~XO>uPis3Os#pTn)Xa8Fd$ zS;-LTMGPZI`*I?N%(&rC@pHfFRH`5H?$A-fx+4Idwc53eN)0ig{aqt?Wf5>(-gJ37 z#9U}FJe)A3x(^rgiD%sGrQRxZy9<+yXLXc{gpQx1XMx z@00PqUEORY|L+v=ZCz70r-}v?Tc?yuXx{2=6zG=Nhnk;?KnA8=!os-Uidc@eE zAjARl8bkRTCpYZ(<&;)3vAAv7coFlV-!LgV&(FnaFrLuO=H&QOdybkczJboivE{yT z9ZT_jK6~CZwj~+A`@8oNU+!Rc5fX8+~V2lp^A;mYKn?;LgLg4q)DU$n;D#-vleJAm6dl zTuW<{%j>dsbc&W$Reni*KV*}Pd)O79XV$ORb2fUX5k}U89HAPHVMgD2zimqh|~jaXZqIPV~rW#S1tsyypuG`-f5Ce zHU&u0M2i7x_=ti<=St~@FF>-2*AsJ9*1*Rr?=L_V8trLEX^N|M-&U6EmKY99mexJ$ z$(jA8)-B<;leV*|WHrx0U@Miuc10pvS8>Eewpl2k;dDvyU4#OK3a8D3pMEvQ&IXpT06e=A^6qlS7UdG@CdiN|hTkadRvy*D?u+cJP@hl)lZw=Mye zQfiZ>KE%Fd_T_2dFK_)AeBD>IF^1!x4nF4LvUCcx3Kldt2W|8y3z0)C4^_D|v6E2qibZ-QNec6i6`B}TN8+fJ#sC8ai(^gf>R zZ#pHV?~w@9`g4wH^;^Zn}ZTHO84^`7n9+<7m(@l|Q#us-?h&_{8TRPFxEkRg+YMP)S+J!SBIXzog^ZJYzZ2B?VRk;9Qycp2b~{Z!pSGV_IoWFd*1a>mo}R-1UCjELFY6N_in~2_3$<^i(4dkcF)=kp&t}DeAr(0N zF^_gT)bHv)jO!MndDWh+y~$dE31*Xv>9B~k)#GLtnAz^)@Y%_#-m?@8De7`D(*o9cBn1#K{;R-;Rw8Ev-aP-h#6+-qRT1OgH=5-9MV$8IhWf zXOMspWyth=M-P@VgjAd5WT}S&_P|`P>^}{x9C{M9^yB}&P-)Ek_%h2-SNa!mj_(at z+3bitT~QXA>nqWM{kz#4N#`E&BDuToW7#GskbO@%pFnWUtwTbrG+s$$WDb_Y27!dV z)uDmo-g1Q=HeIJrMA`5ti@|X~sNKNpfCPuoUO<`&^C^e$`I#IsH>^ zC10KtemGZ+>_asJIMJRTb(nHR5DRXqV+F4gwwtWswfz71WB?^*ixF! zwmnpK+fkY~XSc~@8p(aNMyLDWVV2vH`hQvs^+tD=cIT^uZ_m4UuCEotUmuIbJcHl& zU(ff7HeOWcOV!8q-#2htk8jKORW4oe)Z=}XMJzsVxp247Kh|TO=SiAlNXq|5NAi~#(82lj|NA~`8stmq$?0DfzgWL${`?e&w(sMUj+g!Aw!_RR*dl%CVqx+LW zzlDQKScD+Q1v)L2!B}41%Jlg(UafP8$_xDf2WT|lV>%BXn$>|RLi9CDM)Sz~ln_61 z?$BpaNSM##v?h$N^?4r{ymcFNlLiByd|V#5*q{iDUpjO2l2;U-ljaqPV5&Sw9vfVv z!(f|zQ0-hR;kja~sM(X$QKK?Lp|{?1><#H{T1Vt`P)Ro{*iN09_!t-&Mbd)qDb>R_ z{wWiTv)%fM%z(t=|BWhu%u4}*ZpVb!-^7?Y#JBJj4Qq`4vp;Ned^hhC>fwFua`Few z>n7jv9D)|L;tG*KXz+ESvrk;W$_Qq@{@tt%^f4A8@03&Dj16wXnUjwF9s7xEZg}EakGft4Px&V zMy+xIG7#tbV8s`ttUpJ;p)}KM`{!-1nQY(GXRLappY1-0+E=;R!ftV;hjRnGt<1OFlWK^gY<0A|$zq4h_fX{+0Fr&1aV z?E&$V15WhUC~n+lkg6?i{({;dY1PZ7gMPgLEcRa3w>?<(+p9~>F&S*F$0xE~nfmeP&n^bEF?+{nbn213iXEckPO8ne ztR|bdDWkL3BdBw>2P@~flldYg13L@Tw2sv1 z@J+kWFH2`vTpSJK1}486=@`xASQDwdcp(6eJ{Az!D3$9A=*js1&WCQ!m$P(xp;b zqwvhdhm$Zb_nU1B7x<lS8G`+3w4)z1i?yXM$Z{a)SZq7xk}^&mF^KE<D8I;<}6bz~R?agAH#e zmY$g$o?K0A+|;UQ_iYCB8U&O^-xQa(;416~|;*Jnx428-qnGCvWH9mOb1DD z*-Dm35r04wP%pVa*0FB`a}ar$nwnb9`sLiI0?#GV(VNJwW=mnC6w{{tW{2Q!lm27CFev_`wK0m5RneTi*@i5f8`1B zN>LtHuF&s_$^OO@B1RO3bu(K&F0f+QJP69|fSiZJv~;o4n0y8_UC47%vtiI#)M^|R zP6H_ZTreeo@4RSU^ zmRvIR`={;jIJH*qlA)jAm#Y~PO8n}w1t7;bGM=-)A_Q5*B_#3;&7yu;eFePl^tk9v zs{GWUONKXw$Nud|P3V9XKMKK3VOP8n>U2#h7T7^_sCs5A5uSyAfvYi_oK28Tmcf#= zfgX544pV-LGKWK0)_S{h;i(r50IP!0luN{Q=t>8ATsqiuU|V9rAeM;RlSIqql1wu}FE;6=9)9z_$Qr`fxMauhV8#Khq(;%YVg! zLHJy5)3lV7yIL{^Ss=LEpTwH0Vt%=jW3#y{Y%p6dS)T%!a0j3W}l?4JHK)F<%j+SyC#V8e3)W~4TlVuRgB_f zzg--+JTG0>lDRLwqD%)F1!a2-YFK|gG;X-w0QMvTzinSJuRfQOTi$z|Ds&eQ z$fm6G|Bc@M2LhFKKnW0lED)C+v7_B;VL6z2)C(b5Pf#d|G0Ec1%N>! zoH+Xz)<+@RVI!1>Z14{sxti)ez$tg>KGY->EFz8_Hqc3=5+8gAog3z)nBQ<5s&!$F z=lUBv$M#kr11f7IK&WgF#c$P^WzJ)mHf0Cp5;(RIc}Gf=C_e_tcz*L$s{Ds)2IsQ_ z(=EtB>hVzoS>icck?Ya5`GW)H)d%qv=<=69;1KckTPs?$=crR+g*oAU3bm@ciNHP+eV~{>r$Za>g*N${u9od6d%)xJ+Q^c0BzJ! z#m9#WC0WUl&FLO+g|BWAK``x*;XqAI{gY9};tFK_Lcqo2avDj+5$mYWss6pIw*s*` zcJAjm$t@3n{E({q4!t25+=&sL3!n3Gq76Tnbd&ESMY5C;Zm^5W1wyF?y?+PVtD$7= z^hp#n@S{Q6=lD=ZCAGJHDre<|_D0S<2wgg8Xnv7-r{ zAmCKaCaigV8y&2gN>UVIo$0Z6FmQ?6_e9yh(Z1kWZS+W^{*pjeV!Ijf`@PX3;(*?h z5aQ~{ng@wli8QhY;I2a62fdPA6|eqVe1)Cbgj{r@k0<3?vc8Mh6dR^O#y#fVf}*u| z{asPC*?6(-67y)$EVx9Fj3)kkc#+S{u#(B~OZDl2D~E_bgvBabBL z=Rl$1k--Q6#?$Pv11)c@{v=jh<+6ykQ#uqfx*Lz-0 zb3^ZL9#Rx3u8l^8z@e~XPkgWEP{0zb&IAeO(gy_Bi&Fh>*)n+DIyjJB%t5AHX(vvy zeFa zm+j?MwKbzaw~#w?6cn{Yo`jGB5(@cT zZG13el9jbKT0AO$C^TalNB85;@ue%ytv|zP6J|zP%+ID61f{$yNsQT0vz5{C0A-WQzrNwCiJ{<7{kbxjZ|);($^5X+OzO5fLP00y-TJMkPk z&g^59byD2Bcv`<6++Siv$70jfjfs>s&OwypioI0PV)oO8M@!zvKUdxF=^5Tf{O0%b zO2MQliqfca$flG^dFa=I2$CZo3H>_11O){F$71sh+a?bcS;_6d*q2@2P21ViAO2n= zcYoq>**EJ?u0NZ!^gpzq6q9Vm_0|{DO(2BIBaye{lvGdo>cDI~6G{j&@VC{bpBwHH$Ba!Exvl7F&ZZz{X!1)^=#X8UvfXUiq= zC_UJd^UFbS_sEU8>*Ber$!AjILJ)I&ymnBKtbxIvqsRfVV;gL?YG|T}uzt=qXLJ~0 z55i%X7HDQ5p2s+fSQansx;Omi%ah#4c_h-%LVR8~7|zrsOcZPL+HQbWXk zWVeogFMNdg{O{m1lh6oyw>R}LQ}5%;w-5f? zBqYZZ*_?QqnR%588HgG8#2f}e2}5a%N{+A|&oNovgk|dc18kpw?XSe|fVN{)?-Slm zC=Ch(;VCkDsToKa%6?pCt3vV2;Ueuak$jYfx(I7cGv;A47p6JusZ2PYNh}?2QeNjh zVi(VQ`83cn4$w=$WsCGh%XzuuzLRC^%i=^Tf|3Fm0|YG+Arj;tXi-v~^-Je&oUr|t zZ5?Cvpda!*E7eqU9QWNFYg&HA^XgP}may)OMZ3r4L(ZA1P*g_w8@Bk)jSodaMy}OG zs}VrDX62ejk)ne&W#k{5E6^521h@?Fp`Vjui298y++G-u1XaZB53y~1(sn7{S#gi} z3XPEc7`A!psW*z-QuQ_qYR$~Cf?mQu6n=DeD(3G9chd@2!xI$6?}sl0@n9dBzUs!BFPrNLb zd{)i>8g2g%#d_cwM3ltKcxJzq_jZ+L4jeF$^54^ z8AG#F>8DH@u-i}#6qXli)F25X%y4jQ-|QFL#Py|TV{2}q8EngR;9o39{z>e?r8A&3 zN=^to9@Hq;u?t6EF|w!1_+CsXv?iC(t~eE` ziGx(Kd0e%`{|HvCV>3@M z=1A!yZQA(yRkcAfq!HS-jIUoFt1iKN_syH5lkc#M+M5#zvpeTGC_|92!SlFO>`R)2 z@@m(s-8Q}@3Pc!;1z$VV8z-sX>47WmOnp~(b zMsOd9FiK#bx+sY(fEM?U^1iPl9$8JKsy$(H#o7eYEYDWEEztm+z+ms_`fe}n$0E>8 zgubOUc07Lp(p{DRhI}=d+BSb3taNz@8QgBOC4}@O)B8;Jm&eBlz1Euo;MQm+Z8Mm( zwM^%*u{e8Z^bvIb-YUVtb^nGGUPl8YZk|eZV`SBH4in$xO*~}3G7s=nwdAI)t@sgR=rA`;PXrn?p`Yoh6mn(4b@(~~|yu$!pey`>N z_8TG(R63!rM?f#pA5dutk3E0r!3rX3qV1kYARG|)l>$4`=f%ulm3(_xmNGEIC%R^whi8I>Ei@D>ye6_XHq3&*FZh*U5^&YwS#Vm)v9k$XAmIUiGv;8 z-e)aY--%0~yKMAJ6Y?}FQCT;JRnBRMch1ulWig*0j z9oHO4C|zI@KlY(IDS7$Ah<|WXAX9VAMQ}9rKw*2Rmk12xl`|ZFfD$ESlAtcDh{kXl z-4lsRa~uO2-A*ii*#$npxyNG@Hb zAp}bMp4tJl9IWUhxk@9nB)N+{&p9VFDKlsoA3gQ+`q6UX*gm-tD&!Db%e!1$s_BP? z7Bw6b)s1}=k@vXAAmPJqC~u*_h$P`m~ca$If{t8Jdd_$#VT5l>RlgFoFa{9d-WtWnLrcv_shmvzLGtL;X zVff8L@O6G(a?zr~yME*PZ}6_67#KD+&!_6d7JK&yQjGlPF$9vq2)w?x>2lUUtT6tc zZ3Z)ebqq@gI><}GzTZLR^|1sxikUlYj$u@`QVr%26Onbso)Nt060USkDP164wrm?q zLH^~dwlxBZ$}_MLDz4QG@Ysrh{@z;{_r*lCUM6Nj8g(ExuArq#@tuxl9l` zWDJYLH5j^2$(gm)JD8jyR$13GAuy%HIHv1;ODkhWdsF71HxF>6X?SkDDVH@lcRP+< zVr3k5*8@N1(tsEu4pDW5z!;<2w17|O(m40#oNpKPNP20Vi~?N8f=~CdeygcW52t;v zQhI40B>@;+uX{bOC3J`HURgR($>FWNV}GGU?l6$YfZw7X{@l@Gz(fc~3*xQ6Uov^uEwJZA3GA>s(?y#WbmncE&Ft_?MPo9KP zkMerg?yjnFKD(@gI#Pc^%jYPS+XEd7@AxP5weLDIjWH~is*FokiKiLo zmAAS1;)t<197CpcJ!rl!Kd+C=mbSkRYhVEQ``jOoT2|$M+mQS3WyIclkg4$76Sjv(Mov%Y#3py00JU@sKzVEK> z;B{<8h{suNmc-es$y-$ekV1)AGVI!OkZv*}_76_p^%?^c)4<56Ko;@=G{nTj1XdCL zc?+ykFqul-quM>+J%!~S->!6VRyKUeTsW?v+s6N$9LRh-i>3}zqMC2Yy(8eh8Ib(@ z@VzP1|IQkL|CHY^xp1`$vw_0?Pb4IJ*Wk7AfS%g&zcx2F?^}E0Yl&l@LMh!s5;bUx zz&m)i8P^D!5cQr@Jr>HmnY0+YazUM12FjR$yqJyL(2;fauEn7UIE25#ChaAFUd#|J zI>Qx1VoO6HTW9jH+D_bx;v*(YdX3d2pa%13SYH+xs(*o#A@U5~yGxp;%AlP+ z7JW}bU|p~{Jx=MoKwV~Q62DBKu(tv{Jwc>6>2`wg(4mHc%o$B>IWlxG-Y~W!{AVF6 z_5{3=c??p3966*cY)DKX-VV3>2%he}QkncZlw`QXt*%7CDttztEh;3?Nj6Tkc%&|& z1kIJ=A8a65?-BdPeibQph6RJ*5PW~hCs+z^)!@YdwFjKc?ZSh#cN`Ua;=bBrSN*O+ zaP>r7w8v2yjzS`l3Vh`sf+FNR=mCcFB^#q}#dpA{yLlt#dwbHXG!b$6(BG~DWLKZe z_peh2Pny-SDVp+>#l8wY9V-JCxkcAoM^5dCx)N$*8I1{}nMmZuf!z$#<%k^hVF6Xw zqa!kOFA~d5Tg*tPYLlY2$j(I$?a)z@-q(n*Kj$FfeH;X#K&?D0UC^l2#NqS;qx`!{%lY)}M(s`>DKqy6*8J(Q%dDj(BwAPR}#?(Y+R4vuH9jEW-sgmmHX8 zde2rVBA}9{ht79Y@cr&~Jke+%6<0{Yn_P*B6UwuaoM(l5#Ye`K!MEDwjPN0oT}FgX zj9|+Z%Ea-{5@$o;E-S+B^~$dW*U8#Oa#eOb@$EbB$x*No6P6aRlz%E~d(o`*ycvtz z71Pw5g#JMUk-!VxYp;{=2!8uuMqw#mR&)knL`=q6^7AikF0IFbJ1>$;iD*(`So@Ro z@bel~q2uK5WD?UZwnDm@M@%~W*j`FyAz*M7;B_BbsIVKp7u4q_WUu@+h zV(~tocYod!-stPi_T=yD>8}V)>n@Cc-Jj>(N2Xg}&fa&CHb%=+nH!$_kr^Ieub;2o zUyaqbP0ihzY@M%@o-h7*2f1K)M&Dgto-g@$hdn>stgGt}SWcI#gXpgvxR=xHSB$Nj zA~pt2&hbgMt&uA2_NX?i`uh3}pKY%Lx2}Q9;{PA*6LVVpw4BQeBrEA=75Xkh;p2vj z-pt`cV8;w{)-acWd7wx-JtZYYZ?ny5!JMUG=|{NT1Hcw&@q0dvZ0eBO(AoT8XWBNe z5S6W>(Q9d`5~`xOrbp`{xTfF7Po3+&YJZl&qlqW$EFmE3GhP~(XxaakiSE&Qz_|;d zs(^fY3>-atm+R&ExI@!2Yxh4x>Y!Ef}kLSE)1C^fNl&Rv@nCZF~IJ6va zXt7$6Jl3BGv>x@dP_F5}e>3Oy{uN8Y*p(V*n$hjWP_#m{1oYL&xz2Df9#^K^ox17YEI% zBu*yU(c@T~q%{x0rXMdjM#ff*QHTcyU&1$-D;;qYsYl2vmf1z9iB`afAhu;jkcWma zJ8~vTVD}3^&Cyz_1$SK&cpjBvN)w?Jt)XTZE~p1Vq;_(Ig+_p$3oe!3qpND|lOjVq zUT{6$I#n1mak~0ZYY)zd31m4FjLj~xRwczT1?T$Vj)q8yu!NpY6&f|IcZ%Rk_`OuWl#AQR4U;!bw?wKMa!=n2W&eYDX8Qfr`sV<;w9lmErOzh0sL}8R6zt3-C<;s^wwdsO- z@t1ZJ&#voHLb%Bp05EayeAxN38X?!$y zzdx?~vByA@-0i&SDEqlE_T05(xmp+4{qZt99{>NYwsaW?+KA~|vg9uWcu>MGr#hLI|& zX|x&p$4F4*?QND1;`x_RlCygdmoWrUkDoYlC}Ayr_1M-FKxfAjvy(Dx;LSY0A_`yT zAU5-!RP^1P=O{arFB({TXSwJ5-uJ@VnK+{&5R@vNICChKD@VY(xwSU>-h>b~z>b?k z!!U3$)(zyT50`akOQLj1qIAn6)2$}s_HKCa#=Tj|)h-c5X4V6aZ+X=G!d#Dz(cmG7 z>(IjM{m{Z+`2PHW5BDIF@|KPzx45Gk;%QztHBZ00v`|jM|H@GB_21(Cji_-T?@}-1|xN7GH{>~V?!59F~`o-}z zSU`-G%@)XvqobOThAx>ZMF=`E5{kAIF`HS;t`X*qCI)lCt)?5)l=cs>!gqDay%z~y zc(`XNPHm3dpgSHP&)kx8fTn9ENWfS7=S}(DF|3hS%mEHV8bv@W6gz`~1q(s;Ezaa5 z-7>f*%27G~?r25H(?|F&_?9wVFp6jk>?y^DLu)v;1SbmIWt1V_WJ!Tj4{1RSsSs?% zhLGALP=Y7{Z|$HIu!?3t7RY89G>E?ExiPZmM&Juj_|IY%>h*_Ov_96R-<}b2u$#pL z$4x@AX!pzI3dFZ!gyS_H7=#j@>WXe1 zF*q4jpl_%^M(S)_wqR!HLlS=WU4pT(``1OTHw#TL}5wOLgEr* zd2(GdKqDkWhX}&51pw}HB9>g(pa%=3ZX>ctA#~I-**eYOKBsO`T&O^RUo;EF8a`G&z82|?W9Os2)hxR)k9mm-^g1vw5O#>Xtd>;9paHD|sRPOjfiJ@h5r^NXMrEc> z;5M4lacX!Z68_Lf54YmsU%!iN?K+VsON^QDB6`Fe`SlIZa!H7s5GP%#?%Oo*E&w3! zm89m_;+>$4mRW{!K`)(PQJ-Ud)R!6YIOBI9Ln&EHz*}` z_+{Zc4PDu}f!J{^J0CJ1#3 zhvngqnj8q-2|8l~jlR{=!xOcu_39X9>H*RD3IFmi1Y>0tf$zuapK@QWjbBNRq*jlk zSxusrud@s#6qfgd#$&>sI-lBTt#*)cQC+n8F1d1;_L_{zJ7}!W5Q_CtYbFwr}wif!;Id@2R{PiVb&3ig? zBN0`*++x`UlB>kNZ5+W*aJX(B@0s{Q9@DIr!YA>HD=EXnlTzzEgaTJ zR_dMXOiE~nIR$f#lpb<*k75TS_RcPQ0vO8QhNv-`+6CPDYcW4A7Nvq0&KW%}Rf?!H zV3gd4*rlKoP_|-52xXv)IHiOfO1m8s@R^aqJk~|5s0Eau_+c)1jOkAfZOcu`n}O?E zEp%F47o=emifuN8SZes|g4KqGS}PBlQzU z5o($K?4;e#cN>2kd)76iNS;`9fpx5^1RbG6!|zCH^7{B=6)h!0T%!9Zb4W}~&Ypv@VH zZNqhsU#WuQ4Vk_kP6celaUc*{xwqUl64LS);TE|QE~5U5eE{oT{m6`vz{5(4KY3&2 zytLOL_J%Vy@1~)lRi=~|Wq*(vqmdE+h@muU+#Nf(5E6Y*0vjgMY6kWYlV5Q9707ov zmX^17C{gpZpm3;b4SZ=R#Vq5hcDx{T0J@n63&d(mwtqnd6e~TTp?9p1N@^d_gZ;V) z?b4SkgAWW$FzgpRLACW-@Dhb!D-;QcSKJRpHHX6D?*Ewe5BLO8oyyuxQq9i05EcQ;0y3Pv= ziJt7h@K+2E*~=gx3}}-Vjjvmb?+4x&*Iz2AurP!PAqvZlVCmEr_$j;z^QrqtJYLCn?6 zt|kia_s?n)iopMhyZ;e@yVW3136^1Ef)K=eu&kBTAib1^!ePXJwd*`d50TD_9ahc3+LrIIaGdP*eA=}ci3wS!@9mtem6d-0w4`3|pI<59*3C8!j`v*052y2L z7N^he7wgT@f&T9)sj0c!*YoF(;Jwk)K5+oyrlUVLWI<#O0c6QG+sm%4^2qfh{%S%) zt>gPv5!M7z_gpqZi^dfxQfGle2#@YwW?+xamBnd{B+VJ!DKzi8nwnTh=juuNT6HV1 z1UsF>YVG@Pq~~RwU6W1tnkb7ZA!{qn%}ILyD#q4$&dU58gm_S~ltfrv^ zd@O`2xXQ8(potHEG5c2XTZW)I#hnJj4NcyDIeEs?Z{UwhBKuR-30=jD+0+WCv?PGA zD@f(E~>=NzA6pay7*GFOXxu}RF)|&NVT22ki3Z69AjY=~|e0I}*|HhCnu+pdD*k8^uvIl`2(XWu&uteRL(YQHONyN}kv8gK06x>M% zF9{8R+v=gZ7-dOL^9<75W~QLaIl-|1(Ce{6N<)?qr2_O6Va+Wsk8#9^;}$Ylep^8O zFm1zClUwgs2$}w{F8zx$RJgJ+86`n*lZUR74+bSz?6%x8WTo8F+UD_Y?sBx~cF#Xt zCR4F7()AHEa8BNKaj+{XGvBb0%wPKw$=J3Yj*1&w7a<5E5lai0D_cXNO1nrXW`On_ zfR@a24?!@cR#fLt((I^??^7XB=fo23=tY9hf56lA*XznLdsl9>D_mm zQ*U+kfBbv>e^Im!wA|JY+!_oI>ZH%P1h7bRZt+xz{E9#ns1HmD< zGeB@BxJ!V+Ew~1k;1=8^=m0^3dw}3RxJ!V+g1fs6Zi8Iz{p$Vdse7OEYuEXC>h#{d zdiPqrJq$k;mK@50!y6Jkz=JTA>LH!Eh?Y)zW)?T(zvF6X>TcT)@rlEc*B+dbj8u}2 z)GeqL$c0?Ns9iI-51AL$uF?jOF@2&C>Hqf-b5b8XC`(o}$n$|gPD&Dd z+ZWYnRRN(3VN?@QPsWcxD?W62WchUgSHQo(no#AQC|>+BG6ytBLYzNQRHL?ClBe!u zN&%TrTVm441aS>vVE>`}DI4k)I@!mG*pfez{H=#HR3;uriU&I+(LixV?o5M34Ii@N z7dBgOZNk&7GJ$PQojHr#Ktb)2ZGvu_nOtD29?%-~6UI}U?-8|v{G~S8F4UMcHE4Lrxcm6+A z@eOQGV}0(Y*`5LOMG4837SK76{@`49<%hz{OHF#V!(}sm-~A5F&M}hpbK>QRK-fh^ z<69zOs-+inh;V$og|p?DRB>$%Ngv1<9g>nlP|kGwOuYW>+S|Q z6Ihsru4pr{Ok4h038k~`jxnQ^DpDJZ00scD6n|AYn_PTkH~3xlwmDD!wD%#4Id4i< zQUd;?MVx%;8Z=KFBqRekxuJ_taOG69yX{}2uKeY*{1?_4O}m@Fz(!cH#MtQolH&n> zkW1Rt^9qioa`X@Nb4eH>RxmI9(Qm87LAHcl$J5kYtad+#Qe4}jt(8R_l8ir%7*oAI zfu7s0#H)}#nJRNgh!Cpi^Zh*!vxSy)EN-m*o-MU5FHm0n8&o8xJ2FwQm{TAOShHZl zIs7w2+1sd&<1Y3E$L@kEF{%fl$0QM6r2eGq0YQi2Z6^BMFct+V_=1?mU2n6#*f8=i zE7A03;Ye$1j}{v*NvP2*IwjWKo>fo)xh{F8%?zFy&YFDAs$V~9d}EgXp`+4YOg@{H z=V-f9^mdfa6I@+4-=DEM*FvEOQwQ%O9mo9DJzQ3)N%zCFXAm_$dsy6STQ77{*~tz< zlaOq+Rx%UTqE1&lWtbtLV}j1d4NrU~Z;U-$%ktyaE|(pVK*X)3-$Ij0WioRu;?T|H zM6)aX{0Hgg@a1nkhBYD;t_($~hlq7b@?G9INRc5=4rGI?I6W_vL}&0QqP$RQ_VL?D z37>ZNPARc%81@gfQl|3Hda^RXJDBJED5p;Z)4)n_QZ2{f3-6~S-`Ib++e~0VlrZcI z1?q(Xd$qUbw*Pt@A-5%Vj?mk*S)K=0oUba}){RlO&>=H$`x}pMm@C4c$%sK^P&y4$ zpf}^c$!GWnzi8QPw9)BZicpq&7&M;j+%ysPEuW^(_Sd@CmL=}%2_egqbR~a>yTBFUZF@IO^Sg#pXqm~Gb|8@W zl$AfP@ZYT_k?=mMalz<i^{?+IzWt6mLL_w2z#=>IkYBAbzmxoUp56a zRJ11#RIR$d~9q3_!I{qV?NS_!CT;bw1(%mH5xel$OXtg z-gYOzqY*<&Y_V7OCELzOic?ZSL#4*2$~@RsH!8!`vrH)jP}2h*dh{D{ap7$FM~^BPwl}57Dv${HpWJ^ z$8D)aA^cj%{{}y25vibVG8E!k6H<-DN`b)cJ%egltchc*lUJ-tgE_EVg!Enc%&RXN zj~4qR^=vz{?6za-&Z+-)`Iqt=AsI*awH)k9ywdnEEd6=e&n5VyLC%jQ-HWBUPJ^Vc zKGn`%3Vze#iz|sFR0GG%?x30QDC=NQ{jhZ2WmFh1shW6iOJpqx=6eg^{17aI8Oc>0 z;j?NOE4KxTEqtk}r0*;nRULK64&P0OsRjW+awJhX4*t)xfgMK&K*Lu?Og;Zz=wr(O z8H$*?t%>HW=Gu1QhO|-L?1iy)11;3iiSF>B*-f5fcrSpV>eaE3xPY-Ncyd8RwMnyW z$N{Gb+NAN~@m~;i&W7b#NYJ!D=*Zx?jIo*wn18Bb8dWDf9>E5mXY^|~A_?2a|-H(ka{yW2=@Pj{$*Z!qy$6L&lX!YlBTr!rwHQNA_X=Xj(AllyPklm;? zmxd=8vdWvV>oV=|b- zPRbY|7NOszl%!7KO}O;e+LNI}=0{rjF6fMAIdjyviu|7 zr;wu-V?swRA4xoGF;tGDrYIlZ@*eib_#WQS-B75$e`L2F@&E_*pQnmr{dAeofy$Q zkRKqO1Y5ScFCztFlu^WdiIikz`t?g7@QD^O?q<4^KOb5VRI!o%g3o_rl@?QzH=;@M zcb1_}ax2X(8V&LC(4 zm4h#&zqVK9N3yRy9Cev|ecPartiWf9p57&%Di2o8ddMU)8ZrL0Oxzb*MVm$>^B)KA z=k|Em_e*j7ctAda&jW}Sg(1J`K+Mu#>p%Id45E1Y#Db##{Nvgcogrxq;V$wUcPTmj zXlp)gkK+Q82^Lt|*ytp|;2qb*SLY(HPT-~mQ z`Y|CCWf_m3)%B|&g2{{BeZ_Y8e$j_T2V1woF<YDbS^0GGqc+^Ti z%EfNnsnoU3Fc^6kVDDgvk0`BXQu({e?hRD)$DI89Lp7v9Y9Qr(b22W^ilDh7E51P! z&M@Nh&Ov=ywH+@gm@%AxLNK9+O|@2Z6fB*mfTm`_J@1)SULMvwW~2`;bE%YPhHA?X zdWk!DxUD>m7hkrCexM|UeY4T*GI-HD`r<(Ki$7%vJI5+9i^JJMN=k*Zt1))7BI2>+v69 zZ)GdNvpK;pGQ{5fw7$#4G%DnnQkwBtQZvl5DkriBE{Ar`SI4Fgg7;&TeqsA9{Q%Dm z5>s#9hxuD>SL=gSLFqq4IONnB_HMIt2n><898?LwCA?G_9l>E7%-YSArKSNKLt0-4mC#)dYKuR{ALd+=O3>T~p;e>=w>;<-mk_XLy{|qg7rE-w^4etO z7C}UTRg;_YLAk#~FcqVA_V1)(C+YKW|G@x$uCoABP_r8AZFL7r0sVvD9e4QkKZND9zF2 zuIVg55MGF5N2Wtk5ibyMf&$JG81{Ga!PA)br|`XI(bO7fw42w}*Eg$C3k}|Z{{#Xl zhSk6ggecFAG$Ntos~wUta@lH?5$hU}743@#=O8Wv;dSkXGgTQdab!_&dQ7D!Mf!MX zf6ELcT~@N714B(vF`fPE(j$S*?caHsqGmz$)`*JqlK6~LA2X~H6Hii=mtVxsbm2`J zT>#(2wkgoGS3@xz>(897&uWC5$_g@NqT#ZBDCKed0sIRq(j*$55>1$irp~$8;j>BJ zkWeStX5~b4M@c3{Et{bRCUaZ>D7vuPHSzFySIJ!dZ!z_MUu&#yEu>sKY$1}>d0yQq z)2xi$G}-@>u}P?X#A%lgO_2Fb&O|SGRUQNBH1kj$){=b1`uYHZHFnYMD-^HxC#j*a~wiBeHnxmm~5KozB|q@Y-6Qb-q> z&nmkkJ@`#CA&PE-t5{nE%>H%rEs>}jTL29d^z#1Bb-s36=kzsX4?It!84R=M$>!`*5>q!-W^yYGGZ z;J&xTgn1UoGItv!STTz8(N-x?Ij&aPMNNR%N`Mdiu8`^+m7)x>4gd+5u z^`a3$Bzv7lHzdbctQMUi^O2S~)Sv)AzS9Ma80yvX0fKqYv!NkINTWKN*EY>COaXUc zR^#nl@oT-cBY?Q~zQfKqM=nXf&P?r~eE1!K7!Z_{te2^CZM}b3-(BDJF7O)Ncn_fJ z62gCOMX|%;ml7h#nreyfhiXg!Ii8DJ#4fQh3nAs6%GE`)o@DA9`Iep0JqFn2KnLu- z^K?Z=6rH;#eL*(aTwm+CCP(~@`NtKDJB};42*Xs0CmKgW8l`36+7*)(QhWRR6F2N- z6k=?!Ti*3740_pc1H2O%IcBeh6V&nPr8AbA;F2um#Mg_9`nikPs0~6{VC_q1nwvM? z=+75axnVv!5nQ_(2fM(`K96*ncuAA^-%Ou~zt9tF>b8Bh+$*JtbO}Q#D6ZY_3=p>g zS0hyORFe(C5MvwtM_G`eqBhE#m1^afgWu@z-6?ZpsZ3%$H$Fhwm%>*8t-n8U(a(!t# zb;{+BrTxi4mD{rNWz~FmI%ZcCHDF2KtaSTZuW-W>MS`3EKk zt;{efV}5aDE`v1n>=Y?!_J;A+YSCrz2xPtalgzZFogJ*o9rxBza|zKx`7fzCWiX|GDGKntJ%;iX;`=rx>3HF~*&Ye#fG3GZmhw|AstG3%W`z6LHvNlKl z5p;fuYc^r!HyEn8yLO9->?seCxeN%m?I%V_v0kSdRWllpmNB#-q1)~d_m56bI{$&i zuEwD#kxKy^PVcSxn{r8ATS82h^zTb1OjE=*nK6~?s)B>MWa#elMoy8U&=36XgUgCP7v`#1-p3>!{EXTqP@pXUwJg zGqU4QmtWU!Jsrd?E6G{zJT(^1=A61_pvDuo{Jj=kogMKHR#G+QzBk{MrbW=k{W+OtLZLYPm7Vi`-teg8VWywJd8r~>iEHzgbZq%M+3tl}de8cfXJzezj?$3%shIrw0s&+D_ zTG3oE>nM28RyaQ@Zf#c^%@{aplf6x>%TN;7mJXK!kmjg_e;B)_8*5Pz8U9lYZsf?5C)fS zX~Odk3NUDV8ad~w(RgzW>qYfE4!mVHJRARlW7sOk$%~#I5);Wh)oNjU%Hl&$9nk&F zA*#X?zJ32ZbFJsi&MAdS?A6zCeoXmFttx_r?%#aX`Cb`H@_|M?7jEm_W>`*flnOLf#F~DasvFKgwOoQ$VNZ8o(&AO98RuAdR2`6InFRj z<(*qs`2JZgx(|Xb>dJ`m<#WKN_Im_?Fv9Wsw2biiP8_jolIBCk6;I(T-^7Fb$p&ce zZhu~BJrmXpG6scTimPA5@i{|onCBWYmN*7yo$Cv{4#f)^Z0#1aD%(3@!vBT`-1Xu} zc!|MnNb`|+KT?}Gg-#8(_G~n0rlwmWXP47xjLiEAYvM|=>wNSn6j>|{g%+O38|01o zg>y{kSFKh!aS~TrW@7;@{B$X{c?JXr4(r4`j)KH^54FnqLp-wUhBn|6E$)#WEUhIl zbm|K*6SXI%m;0N9>Vr}{w+~+kfs)I4$Abcj#i5Ovb$OD_)W#nJ6gvSou+4Yf7q?% zn(s&*;I3mCmg96JHUE34O6hty^Y%WZnr8N`2G}Nj_sm){pW91}EI~4WD}Ihq?w;jN z{3|w>Jb0CR-58Vk!?qAMXQ|zafW42({OMIi_EY0%Oz1mX9#KkAk94SuiS!VyHBW3t z@dvh1Dj@F{x94N~+0m{F2ty-6}+ku^ilSEW44x9y63bO2m z#|S%&psly#%r05OZC}%2>a}!*u4E5O`pswFn4O}j>oREkAAY|pM3QY?ledHdZ_Y}~ z36qZ6QxS49Gq=A&eTcZ9Nqnl1%Ya%TVaWuQ(SzZd;Bb5cz?7PDu_Tnmcz26?zvYf0 zAPlyCDb(yk5O7Ud5781iPgi|m(#e65j+P%oQV0Sc4PF!W&-@7Xt&2Gaf2yjgk@i@U zaCg`co^Z*QeR9*du5bV?G<%RV16kv^^o>nLyQ9D_zz6z9>*_{($SfYkSQ z(EZNb3T7GAEyb3LvU7y z32srA+Pa%!Yk%FcEW;`C{9;wlj}DPdx24%%+hld0oS;@C$}}h`ANpO|;urE_$L!!_ z<6J0o{btEpo?)Fy6R%HQTWgdLYLDGQ9Pii@X7(6dAS5vvku0u9trpB~k)z#~x@v}D z6_}cIGXqpA)w6yV^+etiq1Bs;xjvwP8xag50sludaK|3p9J}b)<&TmJbSIfUk)9b{ z1hbF*k!qQd#iBD!mA@a;b{rnV%F3FQbXyYiJ?kbq)F`iAn{vO~E>s3O!DdpM32TKf zr(c;Tb7I{7Pb&<@KEQw8oQE{FvVOTVxMwgZzgnRAwOjX(;eZ@KYm8gy<|dspGMwD9 z_F1r*$ge|iw0ulso)7w!r08=$_pK)L915=rjgxxtLDnWA#kTsHKdrxpmo zK5IJx?TwB=OI4V?DK}rik0=8pG7rWehSNVcWFKF7$5{E)I8f+qsRMZR4pnhGaT)Mi z>BlnMmhkgYralAJ5I=3;_$5Kfc<9}~XF1PKIzf2gk7-Gv~jZ z;*cl>9rXBC`Z#-r^q%M1q^eDjcn27QIioh{gt31_G z{_DKJep*frh4r2abL{e!&2Vt4{bI~@W4Z*rOcMjQ7ejU6Cne@d4~qLff>0 zZ<2HEoEdFG#R5o6f+mjvfgsQvXt zB1$$NioYztyI)Fje$6zsiK=!CQ@GzPs07nVyP`&8(Tp6&3^Zx7g>e(KVZeG%Sn}X%CcZnwc z2!17FACiKMv2W0QHLt`mU?AHnm4tla91$BzN$KjI=M{hH!K!h(r8g1?%uwqX+>IIa zI|09{a`6v6ZMm)ZPh{RhN?zU{DJ4D`qrceujEg4p!`h~GBi&%6# z1YzI|FK_EybUN&V*Y;hHLBOrASDYKfC7G9^M891IS|`o1@U519hT9+Rkw|iAc2x^gedeyAmvOh ze}_@X4BRc$8g;>Qp8R|c>lC9O0z24 zht_x)K(2Y5M&YI79P2Ogup$i^qS$_hiiV^T=?cL(!0o4jGR1r8W!eIsrcsBw(<}&_ zf+=?bfI$*?gW1gGlt#9e%>4&}*Y@m4Q&3Mt&5d^*`bFz@I=45*Zi>Ui+A{cgmiBPj zD$N+0ejeNJg&W_`wg}ZrovJ6fa^nVwdxRNP%L!C%UB^lG;LA#~N;cY9^e0H_r9J51&VP1o*=-QYyv^nzSD zO2Rv3zEgoqPuP`B$ocAWulMq(Vp|o@?KoGy%qzVn*v33I|4`@M6whL*Xk~MZ9dh(Q z!ysdS@jF{;BesM{r&Uxr?TPi1+ok_b$;nR?9tWdvUOhzAzC+zVXF%&5mX${pY@RY1 zA{YvJn76Df1k+GtN@wx5wU@^(#0n+oRwnBnezWF^Oq_PbpMGa>^<0MbZ8|Fe1zl^W*AEkP4pNfI9W3~peW_~!>UxE0r9c%%Hfb|e@` z7G}YdCs;*uGe5PWw2AN0p!mbA?7&+RMc`uK7DAtF?(f(9_{&A(m-Uv{)%7u&z)KiL zkU`Mn5w6t6QI7$mD!aP!?mhKTqFTJn4q86IG_)i!!_Fg`g)B}O{Xo`h;ywS>qN@1# zGBh+(wIh393}ygn--U~wtv`WM(tDDKP8U{$BgoH}7pIGu5HRG4MwH~0+1c|^=aPSc zRC9Q}@QkOvwS=cB>QHRfe(DQdN0;hIihp^@<!gd&!rT_B0_q)&W7&#gV%d6$~C_6!rSGg4I<<- zD$;ry&PEGA`is5H=$$9P0#2aZq1*9dSJIP!Ih}`_z^m$q8@ErrZ2a8rSCxL7Iv`@A zk7ql&*cHurK1}8Rj=)R}7^Zmwq?!`XT9AJ_SNBQuHa`&Iz+(mjx6HcR0&PN(*Af8|c*M@T7g#fQc zR!ehlr)pr-p?>-vpNvSKh#=*C%j*wI)U3yAo%<{CN8CWDuUNM)v^CVOv)_{BriOlk zOUa@10!Wk=LnO%S1InT!#G=?j4*ZVE7oI#DsfT`K_3)&@Vt){6@cn(kd1C~nsi1N1 zGDRqbXAF6N)_aY@V}kz@d7kn?17Vy--kT@;f0;XWhDN+Ez$TEK&&cFoYdv8Xs?0W)$7BDr_|E0`|$&+ zJuPaM`<4jVT#Nr1>9kmA(m*2-9p8x2IySVEGbA1llcC8s_w>KoS}59*I`Il~sBN&_ z5+RMPT5vP$cH%>Ne)fAX1ts%LZ4H&Z)NPW)`{DXa|2pf*D zP14HC8uZR(TrHLE4Vf4beYLaBhqC6dJp3(5R932|2j^}LsZrNr5U60vbT*NsN4m#~ z-amvQ7D^;j6Nq+}9xp4PvBdTrui#64*NDTI*OH&K+ZvT-`yvUQ5kz)LA#7oE!#iPL04j_L=dxM#v z`bZD6>&D?cg}Zq`kK)My%k}o0+J)J=gJQEEr(7Uyk{FkHF}b|-!~uX;k$l9(+TmP z)skCmqcxk3G~pD$kik7n&&vL>pi5E?U#9tu%OkZ}J|xbZ4nvZbXWxvBW&0wmA^fj$ z6>VmEw^h49!eUYwl)o}A)6k4`_c1Lkwv96IGJBKyy%Yg2k$I>#Hmb8Sum}XU z0@weuBL5%$-WglVa%h)L7cM|Sj797ES6<4esjsxnf#F+OZC;d%YZ6utc zx^`KAIJONJfwVfNUAdv{!Di|=@}wA-Bo3wRA-2PXQfbc=W+%(Kp{&nnY`_{~I6GPr z#BllcSiDHp!SRP@#By%`8RqorQhRkXEu(XkEgEKyWHDNSy=|J_ zRSqr8&GdEI(dE+UJ`8KeeSH_)MvX9L6Nj~A<1$s8nAlVkQQVT6V_89gXXYFO7(VWN z^UYuX9hdO(n@FM@!Ljsu%01t}dpHH?eWURUp0+j?jiovQX_VKmk=a2bDF}+LL}jo3 zhg?6LGe6PxQ)0g-HD~y@lIAd}#)l(e~5Gmeq5 zc`6Bvx~vw5MwJEDvtGsV_9l!O80%El6MhNv7ar_aJSBo-cjx4OKZf)yg0*A}%jZdU z6TXrC@JTW~;*3JL%hB!gfquOC*6(1L51+SVJKcHqkWaZ~{<dz2H)r=Ee!C{JRCiJZg*^rM=DI=KpdF-bWvvDpij{Mdr8G!z^n|);6(5T@ zgmiULdM*`0NC;6eStU+>C~plkuwr<0H`OGEQ6+rzz(ApTJ3^?Wafu^Y8-a@7%lFHw zF0?u}*L=s%p@yfT=H^lsa`o0=;wwpXw9pa1Cu(QxBCu^>3%|$?Wedb_OVWr(~8R zt_^9)W2GjleJSra{hU$TuLR(FsI1c8Da$Cp)wdfKQ4{ zRb;gy`<^jp&Z#xYleE${?dOnx<3>wt%DT~FNOD&<7QP&fPXLnziySTsKoBr2iVPowR#m6epkbjOt zWCFe?a<@6idlKhXD;!NmnIep5m^p_r6*&;E!RnqCf#LaMHE^`0iX1MljahF&y!>u@ zAmGjE^b0C2%g*k&o{-@?`!^<V}7 zoh|(be`)AM)9y2u{0YCUf4xIj>B-SC9UT2P63uwdtt?q}NoP$KJHxdl)2E7(tNE8H ztUjrDw?pHOALl)uTr@0e<1SgMxDSlNhWcNvhge8yRFaoK9}{R5_L6BDHBS(>SDMbz zyI!!@uXFp1{m+;^JDkaoPwWx?v3b5JDaL~r<`bLx?un;)&8_31_t^tyM#oc{2^qZf z$ExOXX|| zd6^22#!mB{TjvJNCZ*H0?h*rhW$67TjKl26vKAKyk>!dTf>`{q3Uo0dcYHWkd*Td% z)#N=K%=Gr>90}xc=R7YPU7^VLv=rO4IVlG3YnP}9CiLbNPdtwGAUHB{drCVbuiN{z zSC0|t&Z*Yt>dj==<_Sz1>7tAdm8WT^FCu`anSuc?CApV_jl<;L+TTYk7MRa9?`ZbX8$jnoT+X`isI zGoa@v_h0qi6|2l(-Gm!_gn~Ay;zfLF0ec);nGEyo($}_flp}yvuDnBTLepyYPr5ds zQ*GPYU8|Nv;*H0WeBBbinI_Uy^q~(ktmzn<)GiuBOKSJl(cQ zyKxswkDTchLu<1Y^Vvby%-9*;BnJ?WxH8EKKx7{iL^8&tsL1;qx5lKDwAe)Jh%GVr z2Zk<_Y$U&bNQ5Qq?9ThbzXZhqlK+*~zfDMgrD?fX!iCzA5mIPzzcrN)AoY28V-lth7>e#}bsTULZ zZ)OC7I;0(6@3X_m5O@OZ6*lVk4ZJMzCK~eEX-djU0=n7vYQ@r`f2(jQ7WnK(Ew2cF zRSokIcsQwM5QEMd8u?S`WXeTi7Rl)M2y)q_ zwJvj8YWbmd^BGI%Z_hjuxthLj*EC%9!6$cc+h2VpiT5{)<$vi%_Ik=PaYZMTjT|j| z)NA{p3ExoaRX22Twi8QJA8i+ploVmJ4U1} zoomfeZ9kGWgjdjwAN8Mrehe`VtC>0#LvE0rIiDaL5SQ&EWMT9D6DF8@3)->kbP1Y> zsJuljC8HIjwM={wI$~s=CT^}1+J}6Vjb0CWN3>xMc1|=G$+e#TxnMdz&Mp2l_fm|X#e@0cO@d>+0QZ1P(6lhcMxqb$AjVGL2`}JIH%&^r6s;-D|t>Cw-@mp1& zpt>t=MYKD-K&5=={9#wCawZ-sHc{)hj1a}-<%(o(E6$dm)%=%@Sr46I^?kWf5maj* z>pLdOSMOFXu|f}`GkuwXmfqi4P^XjGvPR=kYDK)^eh67!1pb?8Q!6@a(NVYKj;QFD zd>nzFcKEEcGmPnR}OhE5~8c0W}?m&=dk{u z{CuSreHF>wN21w+PE{ll1^n)*j%tzU)g3gU)&7=7u)$mH@9^p^mV4Fxe0LT2dQ|PY zp8In6MdJTOB_b@b^LQxkU0dib6P-Gl4I8zo+N^;lE6Ng!9mWNFdE8Gib9QUkUVEoP zvi4OT*aV2vU@+00&XKKh#R-h${Gv6hjMYvlBgxL}K{Wq$#UlZ9S|Q#BSd-p`ZgC1x zYiqd}RgZ!R60(TO6sCC;M_P7WQ+gf!sU)lAu^ocU=Ell}!x*{r^r%xLw zsmuxCL~EXJM>h@a=XL7}@7NX9N33L~8!GNevlz_oZGWUjyD4{9&uVg6JRb zZzJ$a1?jueJ0_+Xa1tc;nbFH84gqZ>6-9HLU7y*<#a@`^9K}bz@$Ba#Ph7S+b^H?d z=I?(v)y%S3V%+K$q-t`Lao2u?r~ME~5}x?Q&=rtf>3nJy5_NTUVpw7~ zVcX-VP*f;}q_;E$%hwu66wCFkV z@QEIklhO!Il02nfKnw25dX0v}FO0tf+^MGLkuE*E_vtf=H)R8NWG`Pe=H?$h8Naw1 z-Mtl2#{uWaEzU1b{|$Pv?Ooh)@OQGQ~uB@S(5%#E@yIxTx#8o z9aqt1=}wP*J(mFUh5{1Hp!)f>`{u@Jjv4d zYrM`AtSLDy1i(@(UD8=#-z82#)2S8m1aendRYJW<>IPhdqO~`m!4Oq8 zP7?Kb-S24vN*eUMXu*uyai{fjTK=((QG9XVGE%cE*~YViCLxp9dhQ(csg(=3*zIm| z(HqqC2|-&)R&~@&@|SO{m8XX@nq}sN=W48fDuqTs1#kZj-VTK!vQi3&S__B3kW-8* zuur7K6!I#~>;@uJV<}b!Ck+68t@kYD^<#gQN(&oVSJs9}dLh476 z(hCA_M(zH|38_vn(>X(sYcf&Ipw3H7Aj+ran6X(-Hgi6fp$cse^%(lXDp5jx!!A!a z+;Ks8f?9p+z4-k4WnKTx`R)fr5uewtedE``T<7&vSI!*MGi?;m#SN+OmEfM+oO@zZ zsZ2f%fWVQ^`YBQlJp{>hN-rAOw~5aQjQASIp4f7GdH#OJ(vyk=)AUP=&EZCNm< zK3+FA2TMg&8a=~EG#kg4b**aXE*-C;Wcr*Zg2$HBU)#)kjjK0Ywq7NNG&6qtB*vID zU(_ZB|Ho|)JO3v8G%z48{_At{l8%B(YxE}2rA&ak;mHcOFpzNIjF8Y{G}Axt%0lRp zwwXDXu>gJw<+Fi3ni$Upf2BU>nzaS)< zSPNb;{3-_@Uj9Qhrkb>dc1jEiVbBJO@Rv$??UX1J6`bKPNnE*awcKZsC_U6+GwLm_ z&%zV8<8*t%nE>&0#RUj_r$d5}B~l*tvpy^Pnx%e8+jmB&|EQelt*Nr2R@^U$iKj|c}6B8lDLb%F~)@x5Nj&3tWt zE$YT^Jx0s4pWSm5JnH`39JSddGx$O@w#pn`w-#j=Ei%zru$+&^i8unCwpfW;ydIh3 zvjiu2my_H(TI=$(&A*eUfk|J4>Y zD0k+BS|!eBme}ae{CfFlRr~!?`aN^bU$mPeCUz$yQ}VbLyr$Z4)I|R0Ei{xf z1i9$*JxV?~$kVRKlfFQ5+(Ai<%=r3AAGb}*sy`W8-BGfT-4rt#pRXCW?tjZ}?S$Oj z+V0@qwsNfT+2xN6p1?3W%3=pCi}!3d8=yZytF5d}i(TEmRxx*{E`r}S`tCC%{Scm~ zCG|>BZXA)~d*}O?x{nQ~>MJ8)e;C+p`4oJmA^x)cEF}KF$a<@wINB~;G!P(Ia1XA* z-7UDgySuwfu;3cp9R_!I_W(f$w;|ZzE@!?vwJ-Mm`?jn4rn}d>)_Ux^Sa|Y3cly9{ zMyK67;g_ZyUN=h{lD?;JeFMb_0)t)wa}WA$AAN7@D+{fRb>4^cK2P*U6V@DiW)E9a zA6I4EE{BuYpWYvg-Yo)8#)5LR`i?j^e1Q(HsM{|+_6`nTap+E z!U!T~;IYe?v783EWtEZPNc#bT2^fEsJ6& zx%`q5Y+YnyIil#UW8s&$huJ79d*%zAA8P%V27U-+UGz$_KAZFU8J0T-dh<-VOQnML znvd4eSlikf<^9E6veuZ~Mh~jx^S*lYLpYUi-6zdn3U!S|g^b%%PVFDr0`I0zbxtXf zMjr^bW`cz~Wb4v7k?`pp!xdR^Xc2O`8s-#=ZEg<7d#Y*=TBTY@ve~70DuL!lfm` z#T$oPD*TheWI`){@nUSeJ#70mfY}!sWpHicd%u(bE%aS#LMHt+e5}4Ad`0gtDu5jHRdeN7KN=4 z8O!5h9zK=M%qr*+q3q+&Ry~2=(%>-ZK^(<3mJP)@fT2P@QCc03#8d^Fg2tH0v5OBS zD>0&&ry7DVd{38hmlJxTKe5s*znVh&tX)fxK9QC?9!-)YecXWP7&nef%OBMIm8NjC zmm6m6YtC-~r82IaZ^VObXLCfRAuh*F%4%d-s1yMY+r3@3)3NQ_ zo=9W;u9RW6vy`<8ew+=cRH#5vYF7m`CktqW))2|)^CpJG?ZYpUbkKqH;!fl-MwszC zzqx)aN|uqKtBKC2RW1;Czf1$nB`CK)OueUCI;AzUFEIKx3nd!GTFdku$*Esq5zs7-DFF7F+wbaq@OyfL zq-P?5=5FQ_{7a0$eIM^&P?Q_UIx9je@ODlR3vKRc)m;doZ z@)|1eq>&1SSU?|9ki4^iUm&TSkjpyff3`b8s%OlnuF;E#V8P-RnS80!oMO>R0G*yS z&UMpEN`^I~%hR=mE>f7zls%W36`uuHw#6QgWELBxJvC*tU^Bi71$D^Kq5gCT4gYE& zMWYwE^TnYnW4B9skLif$7h2;8qYlyQs#*GrL+81MTaOPIBEI$pzswQg=V(~*vSaFK zJ~5@)3A43GVf@La=zM6AW9pbv@_d1?L%QymSCTmLXNB&8z_dP&rAa zNQ(G260wrf2&_trtr7@;%-$Q61RBpU=u8d{%rFDL6Q+G#234(imVEYFE%ZuWKc*|# zx$59FJiVfkz2Qv60S9%y$uQ=%h;UTD}@oFpD(%R={M`XJmv!j9kAAFPD)zy#0|xS9NO_|Yff2aZy8XPMg3<2 z;bJ~P3Ofxw!cPjqWH${@^`B0%>azJmr&ohPi>%UMq8MUBmMedyYBGREV;?~jPq=ol zic4hml2AK9(+}b>k*)=IQQw92=aeCo=2ow|SZRfRNB3ZT@RG6CShEy2oh8^|V2feb z)+0;OSkO59^GO6_g1mSV^XO}PEi*>R6VE~@p5s2gq)s!oVB0Ed883P+%s)v-k#J* zAE*jx^YtV&CA`jU2wZmS9o)RgzGLy9!c6{bz=jjfH>|kO{*`<$nPfG=e1$%Q+sCv zRKL*&pl+$)CaslKkLiH3xn9i{u%t z?=_~6hvR=5-JK?A$g(Hkq8dnr6UX-5A*pPQ%3Ok~iljlpaJLs?%iL=*r3JexV%+uu%Z zch+XgQ$s|G4ULV1*6QrrnU=!iBdz1GumyC>fB;~LI2#3ak-k)Mb;iZ-0W9*y*vo8p zz^-UL09)>2v$2Y{Xe5uvW95g+aH++Vjr*>)Z6?pfxRR_Rdop&F`JtCk{Cw+AMZrkg zLIoaNIYqORCM%uh0m~K1ZkBLCgj7Z*Bo*-Wci&brFKO2wnofQY_1Lr}J9P@DYIf6i zY%0p37jzCc?a;U<&b@VnQODGC9coP#s#5tA-l)vg7{n8o329U9*b2HEE)0v|wHRYx zdM>{(x*2pCeH+gL*8*&feb+5Y-Z3pR(PWEKtI257Ch==VRycn^W^DW}{hWY3#sUNA zE_z2le6L=a(i~a@npL71(CAw|o?oT>_ei&TAa@F*X{>HAeG_4yrXXG(h;L}?UqJ?c z1g##`+I6AU3doDVsrgZay|=QcEBejsV3*g;5YP+wW_IyDyHWVZ`%Sb#(;#@ zdaZfvXpZ1Fe{l_K1a-v+1Fg}% z%s>u>4(a2tdyB>Ot%m1n@UH=j&S;-3Oa?YrPKU)1+?>uF8$*WC6#Sp?wiOo1^I8anB(y)8{1jz_~k!Y_0ljlS}Ftea`Ql_FoVgiI_DxNbH<`B!1-lU`_S0DKM zm|oHbsg-$Qm^LmncP;k$k#=yIbC`bMlN+TSx@=mbzHo!M#`DJYZ;ZALSER*%zbBp% zH8kd18H?vD@?YI37&>vztTqD^->$aaed|nHUoHydw;gpfH0&MiRaQ6^FrORS&Iv(j zG|y*NeccZkF?F`eyaS?>vhM5vSSrU^l-V~gI{X%B-p_g%;lu|l@3k@pMCDYPyyg5> zdM0}H-tk$fMRdG&t*THH0MAr|y*Bv)Q6&6xO0Ul`bt{4?_XE>ejYEI+uqiU-J&t8*%E>JAkDIVG_($3Pj%s6+q*lhK-qQG~x?q|sH|1YO!=Ht!=BGig zJu5vZw{PP(Rozr@2kkJaKhrws0Xqtx7>2);GzE{c5vtM>u_;-3jpZwh1fvpB~ zb44dL6c{)Y5m(;bkd?b-Pp&om&k6Gd5;=_*d1KP5!tCm!)4xlbMp_XPcbBG_orea! z_3hp9ZcNPF5`WXGD{;@8x^C{<4Fy}J{}8GR%fTp;#U;WV-D_cjsa!ja*Bn3YGx7ar z4--w}vapRlsU~D_0wZBZ_gNJ%T^*|*M%)S4pHO%PY)B(ExM*9wubR(})MVMj<%sL} zFfz}sQpc*v%W#ZVnrobG5cyk28Hsb6OIXG@$Wz7SZGh5L*d`O%oK>>>A(TqRqSri< z&FW#R#y0V8(G*2o&~D9zB1zT$u?RWjTP7H6v0qUw8_-X{Sj;Nk#kz|###_}a{ef%u{JN~Q8u>E?piT!$ z9rXA=TmbRUNFC?h)^+k&-&5eoGtd~>Y3KW?5}w4Ta3a`DMT;bISPXyZj5`=3Fi?u$ z+!0M3d`icX$*T^Sb%eDIKdv@r=gRSZcBxIo7DvY&B zyA=XGqiu>TQX>?WC(@cxP>&GsFuo?6PpxQo`x|H~^WBBv*&u{Zr!>|Elb8^SNmZ5n zgZ1}ITB{xb5adg8kOj+jD6-pBB)^c7CCfW~$GP1CXEy{E+iwpoZ#unwa|pWhS^+&W z)!-I501Y<-GX(EaF1%2D%J`;QZx+y7a!I=n67^&SGEFmXBlf8FJM#IPVbZlmu|?;- z0y0xU(NE#MmQS23+q<@Z(0gw`B*K||isGe3S(deIhp}7g=oGKrdZqw|2o}&u;v7d@ zDl&f+D|?dHgKZkDSGqqabxH|G&@H>d87(gARDah$qI4sYf`flDa(C%V&r|NIB(b}Llbn$7pI@Z-_%=MaY)Ce zkXm?>aWM@3N@g}++t{Vv1wTOgdC!4hBwVK3d=kG~m5c6Errzg6=02N+2Z@J`A)~iz zW>Apt=4l#@TjXW#_MO4&yWci2rQPAFZ*uPaR_R7rV zK@3b3)g|@TB2CGZoGR#Y+%h+FKE62OAxyMk-wNIf4w3>yn^zr{*;Jf%&g~jB!fb+= zwSg%$TQAk7jCYBurfiw|J%$Ya zid`J{H475QH*x665N)&ggKZ$)ZnQfj-c^VTThFkA#VdzUY*k3qCJ08~QZzuY*?Ht8}izOL# zn7B=@Myhq6ei0}{NADD4%+8q{?F=KbSgGmRm&kLI?;kh%E+eE;7k$T~atJSX&!$>B=nEm(%cUsc`+;*NmS?S zGBLw><}+!V9m1@k6;WY-Sf&h=c(st$wDo2VW!Qyqhj6IxDI4CISm>8mlb<_J@>?v` zB{h-cGV4{TYbe>)>cX|T<^@C~OWIWvPZ<$pJoDp**$_xQGAEvNuTJo*#_%IKh7+xe zc5^U<7%x2Q-H9)8af>@ICf3f+9Uuv=KR=`(ee7#n5D0up-*+pg&l41A)05t}hfT;I zn3Mk;m4Dm^+}irjhXuF$GW_$u{~;SaB87fS?)4MiM!ur&48n1EIN4z8Xsd`gM?12i z1$nZ{ahEnXzxA$)!JU<#Y${bQGoq5++HOJm=NU^uG9*YVJ;KJ6ywbIn2*G#CuMH?= z@0XRV68L~yA~7wE552;k4=YLIep8z%;}f_N3yvrax8l}k33Y&sn8WVow!7O|Mssm$ zaR}o`KX7I&IcGW13da;IZN0W?$L+pj$>5&XXB{STt9%cXKCtm7Cl zq$MEYn8(A--lv9Ezn7hT20=xa^H2E>nYE<#fmRmtW^D!bBqVhK1I5@nGz|(qNPrzL^Q^ii#rVm zW1RBP02kfi8}tA_m!_t5S-eMC$wg;dq|M}0w`GAUwOE+yQSjo1VjAhNIF?9mQIWT8 zNOcn%@5HQFei2vXE|#gNL0smnXf3;kwaQD`U-YidAJ8O_N|(A-Xxw0QZV!HFvfA?7 z25&n6e*!nGUqX9HM{<>n$%UdE5`p~Br?kV8MEQSMqViJ?y-E)KVnKBFXdc|~aFV!; zEgG4v%6(N5hY~@9bqN;xl|vL$Stnf_4bzKTIi>Xio5WCrQOjo`D>8C{7v4E2V*%ou zBEO4WDx+(v*O>el-cLd<+X4QY-2R{EdQO>$eJ@1}-#Lwj+%CFP5;pyqKh?d(gLej> zZeHg}-pL?1>?g=fsF*7>!`*kH@mdGjeaD_;sX)|5kgfIA>BrIbr4i(Yy?)2wXHw`pwjGvK@XRW|*S1l+^Uw41bHfh)O!+kU)%c9_N#L4>m*?0g3gL^W-I|&js)hD8 zBkC8IcrC5;lai_?MJgOKHv=8qxtS^)4@c^G92v8Dd(PaY)F`}|b4#bW9BrbS1N|-a zYad2afX?m#3=))@Sc*m6pXrApivYQB^VaI$3{XP>24{3_532xK^SYjcKp3#e6en#Y z7SfF3zjOrqhOkIgpF)SvWbi0tVdLoKIqP|DQ%4%!x9GEPugt8^4Cy|Tc7t{Yw?N}k`2YMhpW{H_et^*Q0~6DF`XE`e z{rJX(p)JV3k5tJW4eYF%#6Z?yfkEh18~b#*jCDeg717}pd#OH4I_r{r-VQsZGf*}{ zfO~{U9WDNAC#itz-9YfL}a$rV;j!itIO_VBOOn#Khf09Y6PFh;D-z`Pj~SxKaK3wtM{9frOH1Bx!xX4r+Iwb0VKy zx1+A}AvNC$>X~T6^CMenQ3kb#2@F%(6d&3;(yqczpBKRwH}0LQgU&-*qo6PLZPJr+ zN%3W3>n6;%%8~@l-%TKc8naae0>;!Gf7_71#}=)B924LZ@(AyMe%uXjm%b_48!g>AmUhYC8Exe!T@^B;58xOS%1G2y zN^BBHn zeCnJ@sYvh(@*{(&!OAPM@V(h52yQf+Cpgvj`jiiP1N)JDB6%B^@&@W{Poj2Tc$ED9 zFXD`G>&35cMYzrI8QTb|U-%>3==kBOujeXm!xQN6*JEb;ZGhyguMZ+e*uKf#o&a~> zobq0M25~)Wfymg;yzblBr%a!E0 z#RC9oa5WDjQ08^##h(lX0v~*w0xvq;KotN$o7C3Y8WfN6KVVY7h6Y60 zw;J=_7GU+r{L@5-X$^6hv(#c$;+k|-(T(Uiyq~7!+W%dfOiO^_c&ge8(V0ZCz`QRLfM2EB(1^_Q)T`2=sW)w>rFI~Fd}f#KcJdq zAHnEqIQptt77v({ni0KLGn7LHg?riSH9Rp0V;+ET|gF#o_9DJktbbNsAZufxVTJHDwffd zF_lB!JUZXW)fIBA+O@+=0qCod>{~+q$+U(hS4@UM>qIWL7AY#cpha~Z|L%2=UPYNy<#A{|%uP!&vP3|Nl#p|?LO)L9OXCdZr5|j<@(-yMh)|#~NaC+dCjEo}G zOGG9sEaLs#f!0TD4$IzU4h|H*42B9)xx8=diEHaSci`3sYi++;2Hwp$ZF#NP^&aY> zY+R%VUE!kY-_Js#PrZ8I&R>}P&Z~?BIcEP~cF0Z>VvtZ~uOGwj2MqVz&W8ed{Yrf& z-1VA1Y5T3j+ruM`-WP|JR0EAlKy+>{QTH5gspT@g4=crp^g26yZ7rSnC1Jr_*V*{4 zqD8CLdG;Kt=BQcs1H{x3vSgyCrx!Fi%P|umW_D=OvhlxNZ7@h)S<8DhSY2O-v)8dX zqon7Qkf{`50J>Lww;hpeTMY%+3I}h4puM7gQ>CdSn`=1Z|HVOPKq$&I!qi}pY2{Ja zY-EDHn>c(jlsb9=>jfR+HJ>j{Ph-x3k~P>ja2G+B z#qDP0PxmB`sb5LkXK5ZB${ zG2zdP_OOlLoy!}5S#KA`8tKUStgl0NgWBAsJ;9(bOa2w7f=CNER%OM;`RE~0q zx>b0#Ia+;?ocGgne#mh7`F+HE!icP$Cg?&DX<*H2K+S$)Krb(h1K(#@b+#`eFBoSn zz$tC%j66iMwU=)vFkSMxGYcBcy3@?g%b|bV z&wo9@^I$@>%l23?pvyWuZyV(6#0YX?HcCMnz70w7*IF`o;}31PNbUvrY-^-HF?0kp z%1Lc$(FJ(RlG3J4Xg(#kQ8hFW|9C~o{NEE70#N(c_LH<;PS6G5e%XDPlGcCiwgzvI zC8ky9^AF=S8JsDgOp{155k@G^L%{0V)Ats7B_qpw8uF~Ne-8P$8qNl5QpNKg(QO8) zIgJes4dQ<Zw%Iphvw9e)XmA1s*VhpN z5J1Om%}~>vcb~ftqO@YV(Te6`&Oej^wLyYlA-i+N;Hj-~t$TdPCFR1%adg*ciwg21*ik`myJ$A8r4l|vkFa4a$ zk{|Pfn0b06jK|cb;#2bJVS6Xy)P#|9Qpm52E*uC+id2_0|D3x9fF+awfuX)HstDlcVVjmfew! zP!G&|Hw@vc{u351@#E){+?Vzx!LVgxMty&H zYN^?q&24|&2cw)zIk1paMqCC2=|NO0RQQ>Jv4tQPyB~-ew@|nFo#d@RD5&rKX>s%2 zI29b%W2-jl2)AjTqqqyScoACam69tjP6IQhV===`IMZ5cyqabfn}%y6D<+zPAqY5W zL*3i8$jo0Id}hHa{`czwzNACYvq_70F<&woo6bMkfC}?LEm&+)3o0kwM38KQnPPAi zkpo+iiYq9_B8bg2?4N(0jJC_un(p}aURqqq2He7uk(O5Ozpy!T+h&1XQ7k$d%2>1l z#ma-eMIe>eU6%P8F|c_`i)n>5Gd8vKe)TQIwT?dX;GVbj8;wO#aKEg^bD_}O#`7<2 zRY=vO&%{a?Vd5K($722>|0!vfc|f^{^6bZ+*Z(CE`ahzfe5BR<+qlh7N6`3PKLqYW zd%wgYKg@T3(e@!WUjs6?iMp5dWct+3nF}D7aknOHy}T8D_0Wie5X2&RvZz@ys~cKc zmYi0Af=7&#eO+UOPetY^=#*-4ins@A6VElzM42YE7*RZTZx6Y?o|VMD3p(`~8p5;; z`9`EHDgSykH|0PKRLmMR2c6XF0!0yvh(@%jBq|94TT2z8saJHfNU0>O1X{6Dn3DU^ zodo;c&SwW#d65?kwN>kPz?G$piOGzrZ`s~po!siCmVh`cisJdmc9z5~`bgYU?cbfX zelg1sF?efR8*jif$A2W%_WgfzCv)r`(Q+=<$~gqAt(4^)v}_pZ;nj-{tt3Gi6LP)q zhVMp~3+2Ko!f#0=d+^S1k34R(sxIc|l;v6dHClC7tN+;bU6m_Cxl}9nk};|WR_Ld7 zGf4dp(*uaDNIKKKgrK)C8S|z5E(}NcN%cTJk6T}Sj$(R4*Oqt_0$&q4_T`io9)UI% zjP#q6Eo4bKg7o~Wk1k9`-jT(p56X301N#Z@v>uz}tpjcs!MHt-*su9czTcR=Cuj}d zTbOrOhm+9r1VhO^~D#?vTO~Gz#2Kja<##{|C_f_JtK1?gHD%h>3X^r zvytVNA4TAe)bPx7I`g(FU1bvB;vol+&CCwQLFe8(dK-OsxeMD!GN}Y0UaAZ*2H#yJ z<4$GzpmwG2z`|KV`=4=~ZNohwU%swd-gFf{VE1<4z}3=wE%L#-wa)yQs+g>T0fk44 zG{={gNM*m|?h8&?*n_{+M$p6$?qT>p5og#9RT<%IZ?|SQfn<-qHdE;~;7EupyN01z z^M=BOa;8=5_6xiUK>JxY9Rs&U;3@iRB*~TSC%`2%7`8OMDHqKZ+K5(X7isitN=r(IyCnWIyxe&+YjsFNtWiNchavWSqT+PP1m6&!X|*Flvja|oEa$r3FX`7T zzWm*dKCson4B}_>O|iQBH=5|q)ffq=w(BAq^NUzOo2O0sz}_Bt zjb_YdmzNROT@66n?y0Nqg`YU^(PXl5nAb}tzo{jyk)h*Z%P%uC6aW3F*Pd9Pe=OH) zOC}GLo#p zlt0QlHaIwFp*BY@ng`nOSTQ(TZ7@@-t)07TsJfWze(1h$sk4AMG|bG{g<3hDZ5%`U z18^^zden&ecBqXK@}+9>YCZx1+_*{_9^G5dr#jk7fmSnji^bMoX+N~SO4`S!XjFt? zOoq5Bo5=r+bRK1{)!XhV`l9KQY|_ZLziM0~1`}Om4s5M~IJh~qZH~$rJuf`w%8xh3 zs=fhy@wdkyA+K~5aZxbC*Vk;Q0+*ji9{az1_k$h9b3LuE;bH@prFvzsGP2RzZ*s*P zBn>;_n^;XXc!RZer!nj|5#^@Z-(Gl{&pnCxUuciUS9?A_g>LfmbTyCXjVZEQeb#Yo z@R9s3=(AjOhI<<@AkS~6eDAVn9b@HJK16{!SWXhgekk}lY*&nUv1)a3000KT=RMF} z*9nMwAJ88xkqJ&ml@{2h)%&8Ci z8CC2e7@F7zy7rymyV4asP4Dzf7w)PFdt)srdxW~$fbRd{0ssIRg+xuR>=mLCc`dxv zKl^+jrb&CB>bh)&Ngl_gc2DdIRzh=uJK@a14?*yrV6%5BX3%ZrLxUJ$*-Gj6XKgzK znSXT_KUoWelyhAU&WdINU2*E0FR{M=)Z1=MxbF?spNuuG~2MM zm7}G*XL|1-cZD(DZT3>I17N4=K+m9ApLuQu-d7n8r~2V~pJ{!Nq+NWF>m}s(gSQoU z+rmdof8dM0CKX513XW=5Ktl7RMz;(xoS=^V&{!PgShGwOzuS|2gyS}*0+=9cR%x) zE`qnfpzsARo`7=d;=9579%A{)HqN4?*Wbqsq!Wl+C7XVGFxVV)mrecA`o|f1Ro)as zU$oM)4r(S=yeBQgIj?>%BB(U*sruKxMzC5+%PQUXkT>p0r6-BoEpKbU6R?QXOS=X~ z)*^B;+Uxn`*!`wHL_Tj1MZ@wHQXI#_crr1kxEQtdIDkg$Vv+$hQw5a$W6wmZi%E$h zSvGrsf)`pd`(oPKNYWG`DT(EyK=^`MfQYLu{R2! zK=7nJzx9C7w0?;##8GvgGN9GeHx0OB{DB*53b~ys#d|y4NQ1{}(Ce3FE0W z#@7YrH;lKyk48Q)#LMdAI^OH@v+(6-JhKIHkQ@o5Jmo)S=I;V~&w)(Yowa~y)WFNo z?zeL%lFkzYl(4o)7GdEz{_Q8l+K!{FsR(#=4ah+ilt%J4Pa+}C6l14HDI^uJn7uVj z@;X4G-%PRQh9D;=_qv+!hUXM;s>hri#lVU1NZ)r&-+gAm++|Pg5r)=&v*~r6BK(vx zBt0#cdrG68!Z2T8Jsv%@rJ4vklnbR}^^*}`BjvhYP7w1rYK_A*@3r@5-Tr$bn z)Zez!7`w)_);SHkLbPiW|6N&)$k??Dz^I@bv2qW*ThN`l+8=w`010tZ3N}M0AlI<4 zJJlnGgCz!e<_Z|BQv(dyF8%lSRJLBSKbTQpkHEV&E{x?JE^{Jj@q&|WK|t<-Dx;xv zp?7qYpvPkWIbdLzR9#QRuf|x0gRsHHIyiHOu}ZTs8-B4R;h_-W(bviZXW;2pe;)T{ zbWJCN&{KNYp2=Vu(EC+Y% zho}v=PoHJw-u+C)HJ^Y{A}Sk%fq`K=-^Simu1Wk9RT@SE|9KoTHSp9co?o zj${X9WuejSru=}7={W!H7ks$#ITI^nY$#?Gk&QdS5bvV^$*!*HJNIB>BUltDs-%j& zxr@W5jTr~wXW^Ui9-||*px5+`z$GZ(^BlwSxG({}FIZFnVl(8PqJC{L9iL8(iRm;! z`>uDCR>!{7k%XR5d{k!Nc_i-@gZu-egaNraq2ZY?p7k>iJoF)_( z)qw1le?KI?dExUB%Twr<-;34DHgu((e^|QuaW@5?9r=?>YjqO3cNs(%;i-L+!q5yE z;0cB6s|@s6w~M4KWJObl&-(jZB&KJDF0vq`0Yf#Z0z2{;tbnPLY{-QXCqwoPkJgU@ zyH`%bEa{gXGyn9=mXzz zIFtU|ktt)qpCAYk*F7ZpTf}a7{vh7(HdAc0_7_GkXr1l7GwzY3vd8O)kBm3WmKk}B zo+y!Z$Wob*p87V*kQ87bU?V7e^}xM%6>7@?;D5pp8}CkIYdCTTf9M+r-3FV)Q>ix zL~P;8sY=>m*278qq}cxRLn3R0px?do<<7uVS?yFKAz*Mem;V>*Q8IPlSddeTF5~^h z<`l%5kNF!UQ+y6`@1JMa(0F%DCeOQl-Kp=IZ41QOYq$UB=k)I607B4gZZUuk5_=(` zqTl%DZ7{d2`(GmP=-?pq7Zk#RC0hd=4+9NspqITB3m)=_LHc!zLClJHm}6Vlo?)p- zs1>wh&ri#mm2aE+`e!p^>;VA@AD^=BFNLJFQ#0*iqdX_+BcnLugNg{5em~}_w<%8b z>NBgku}^m1Eu*&d(NM45NWNGNkW*V4F9&^_iY~<~H5&cN8%F10AAL0;)EEYFl81!K z0O-0O=;I+qcmQ#>y40_NwH&uwn4$%X|5*6>znxnmp&DLJym!hbbbS$D;GSc%cl?(Q zi}P#7ir3?w=QH2*ycvlB*4VCp-kMmK_l(!pz{~qS^VQcij2t-!aNt3!+?M_fHP#@T$F+SR^v!4>_fE46Z-fNM0VSshEu)~k!{H-!s7 zRiBBKjoF(z?Va49>r(;!?tF=^Ph5!z##l78bsYg&L|R0k_@HaL_k)1Gp?%bV)Ngrx zF?xockwd@2t5CZ`f^LGkk<(jvbOMuZHv2ywTe%nYbo*CPgy4Hj@iG0I1;0XdE89*q zGCp1BVZNT8lZ4YdfzlxUF#hFXZu#LgKlp#SCAgUK76hH*;Sd*}fs$x*p}e0+9St>v4F! zBMHnJp-7y=15}gJn>m(ctQw9;Asrc~I=6<=>=MQ>1m3XaY7NA<_2pOyjUlt2nSAlO zMvr$*gY{$`L-t#n>0lI0(}gumMPd9a**c-Kio>Ay60kld%itWsCHQzP@))(zti&E|IT8WD)L{%GAl zWXOA@ltS4KrJFVqoT~gO76MAc)kgx|J5$@2Qp7`j_D4dLZOzCm#C8g(S(@@)81oI7 z>?LxoecX(;|xTD|FvKVPxIo<6c$y0;Je6wim*scgNJZ-7=2`v{pWTx(9 z5Vv(JIlj|u093&IU?E7?nCAN-5v68Rgn|9p5PS4*-q4kl0y)zRqF&dJW`hXnqFNtf zvPzwvkks96#j}dY*lK-fk)q;IZ8o{}GF4Zc;|NCcatCoi!r7kH!DmCG+xbk%CEcIZ}r&>R|;ezgm8 z=m>^#J@o%K*ZnCNDE(~UV?-n>&5D`+<%!>&M%OIlm`ZE&uBocTz2_{ei_StPo;u%< z8nGdZqkTgelPaB!mSZh_$s>Sw?REt+>;M1}VaKH#2}>X^-etFdt(F*2>DJb%b+-#~ z38aW%WVd?tZm_|O%4}ynVjJ`kifhri<{_kl4;0>;_iLS?xr-6=T6?J%$b>4Et#@sT z_z*q=e*OqXtKcBD{X@qDrB5$445`dyCRlU3kikBw8e6FiSh{jbbyr|oQ>a`187m5> z`3|)c064z${gHEL-JotEfktNB@M9{Y-3fC7up`*BMQUk*XHoDIz&>ZN+kl~Zxnso0JXP9oOIu{L}?_(3+Pqkrc(GrE;? zdTtI~adXb!@N!3tX3g)E`^xD3n3?ygvhPr@?3&?%DCxi_xYJGnpIZb&*D0H$R^mcVuixptuYJ2-?~C~hjs{~>+xG;-g4Zgw-6r&h zd$j9~=^gi)o{qf13uQ*B=1hRLF)K!_vgl#(1Y&j( z?)#$|Xtz~w=ZOAk@Z-tu^_BwIe*dbd>xg1Rn~CRa?5fQ~AA9cX{}6}+exw$9J!HP# zr6CCx_yz1^YUI;vy?iElg)&^(8r^>gz~+62ae6;;I=DY1)>4PH&{0jL$~2#cZe@YT zFN*jgg!|Y+@`~)_Gj_`R=#ljO>22k%J%O1;DkkA${#VDTnb+bscOAI*I+Evr>9)XB z+Y1&S3uh>CK*=6A3@a84O5W;7%*O#5|JtPA#hc!=)JObjM>73dxLJhG{dL*L`Aq$v z5R&YDD51%@SBT*E{yxO9Tx#G`6;6n9CWaYwXZP@yRD$#M_A486(0<$HiPjc0XjZxB z4wt9HpILCnj3j^=Rrt|jmeFg?^Bybc71%cdLOBCDTOk$3c2x8nN_0PHr|f60pQ33OhPh@f7Z><5@awT_&R9&RJt#K1Wfb4X!1Wo2BJd}CS52R z>eOMDg4IH83(7b(IM-X~+p)yI$?Ulo(^BXeaZ=D9d%wfUH*=<8$i*Zii zQ_?2Qvwk~VMG+9fD6#-x#y!n#DOs|knnklh9f>;+I zU%9y58fF^NgXc=BxQq9H1t!qjuXNEbw13?<^O;!X5%#$`_$o%e84e*LTI_KH6o3oj z?p3kymh;~Ji+MA$+Jf`;s+Hds9&)^^v15m?#5jKhi{LwxtIP}MxGR&`?cZ%c8X(9n zNuZ6yI5@&PL2rA7fc13aR^NBd>EuggdZ)s{0l4xCB%Cg1p!6Qt^_!$%rLT$R^vM+f zo(iX|oNK^oGuLSq{TI+tsOf1miAPd(V)y2HIyE-;rrI-mdULat@O%^T;Bbj-CRPeQ z*jAGI(tPziXFs(qUk2t_SouzGnOA)hGfKPx&@n3Q%A7T>xuZ#N6C43ss;{M-+9jjH z`cL00goz~vhnZK!$`FPsyhwYd*;W8pD80>iBg9`%lxZ_8@U;zGFx9YNHyv?-lVy2x zJo8whcyuVIYc*sr0Knh@%08n68eoT20;;eGOJa=J-R@F`Ro7K^cc6Rb;#xOWC{`+S ztv5XI(C0BAXetvmAP1%Xd|m6$Wt|V1w6`mF?lR#u?_#J6PW}&uF?GF%by~DkxMKeI=a^Koa0D*bI6)1E(gUI)NdpqsoV zjivJOBl&x36HmS9SPPlmXPWkuU%OQgu0wZqd+$o`oZTSI%Nk~=57^Z&IaS7$Bl5>+ z&v(rLNMk$GHr8zgoS)k^5WO}>6h0nNYJCn@oL9C3B46$L z@+c(od(OFlG0^PC?BBn5U%8O~L@ZQa2l5r9v9Rd7jG#d0?-Y75-Ml*G?k<9PXMXw6 z7>#8==>?`^@@yngrD>N8U;W8scDvZmFV5kQUJOQ}~lNHo{!e8N!?cyVfvu0Q2DDR6LYOdMBZSQc63n^L?Zbc0S1 zfc`kfzD*FAcu7yVysPUBRSLLex_DUt@xGNZH@a;v9UJ$5&hO3c%IBG!SgXOCU_s0j zm650y?Pmv0;@^_&AHNed!{T5WzD;I#+)#i)`ENVIAjFk@`urDU?q2JkhwnCn(+r{a z0w)VCr$n>bqQ?|;>Ras7p}C@~@kU>#;rlMM zh(q$p~XN8?&@gEVjehAXACxT|C4#>csIq#+f_3_`BDq%aRH8uJ^bl z8b9uTjHrBcw$@)9v-tk)Z_CI?d}Bbf*9O6>k?1w) zlooic?y$%GvNVqC8}8#dI_1a0ChEnM|K6T(g;WdGVP~FJa!M_GhNuX~t9z~R?U$q) z9AlMS+2H9t-up&G-Nie_#rvSg_2zp-z!#rIC|UB31VFy<_+5@fzHel|5b*DbEzS#gJ7u|6z zZ^lvPIWm|5z7xgG(YpwDHGJneD{jmL&aot(C=)J5$zb(k@-tD(E~pt9$lz2C!}CK8 z#cA9(&RCcI)HcW90$$x5FGvfyYw-!*MGSc@)M6K2w|5{el37on;-3%p@dcph2X1Dg znx<`Ve0(mZ_-aE^UF^a{@Ymk*sI*BeIBtQcqAXXlC~yQ2T9(o5QmT zmBPTS@6B!hK;>vdG7Xb~WNS1>E`?n+U=FaTQJkQv^>3@pf8o6UKq>#~O8x6YIvj5< zTmZvw-evkZ?GSP-h}{oX4fGq0kqu`kbt&M4sHkD_Gk zScssBJ%;32aQi`3Ymc|`sJi*KsUVSea81+TX*NJ{!!LF>;$r`{f_2rM++u1CN;aN+ zH(}!qmh8AM*_-B|B>I?DvunWJHUtgVn6VBp44LQoiqP{M<5B;h*ALimLgwo^yyMXK z++w#9gTFVD#jBN#F-$3;#BeGs(obu$Q^p}s80+R%9rXKsr{4wQnF=8Z-I3Q39ZNDp z*X}^GHgh)3UEp>8MMuyJYXuGE^e(7f9ADN%_4ab-ve!IVnmh6LfQtu0q2^`o$NS0CU~5kd z+v|12W4`~TvCDYX_L}_C5LpTtnIr@W&Gs=3V~--iWBD;pG+z`9It|gU7g0Zez>vUu z9@{k@DD0#?T;)nS?J$I^EgQIp>kFT7Ee_MKxfvid_)b<*Wn)=0QVxS*T|cR&7KHh# zn5_>wQ1ZPV4v2n@A>WPLd=UFpc+h(-&^OBJr|gXFMD{pfmSFC4z`x4IkVAtntC^zn z`w|8YBvB(PG2~*&zn-}ZYP7Fi+7bAEV>Ef5O*76(Cgx4#T5D44#xr3cF19Jj(?~pq zgb%YisT$PMc>ChlrPu=(5fbj&f8xhg3rlPnE0*f-%ym(7m+Rl7qMPQKZ?{=q*M@n- zv`v*TN-g1JCsd^4+m$968NG?2ijBCU@`Ua}uO8-|?1C8rj5n87MDPDHFcmD37Hb`jA@l z7P=x8t7denvd@fwIr6l+gz1X4d|UXmk)iH+9ccS=x1)eUvLjHq@7C{6qNAKv+2=l4JUn&*?D@SJ7$y6s|r#a|jp z)F_)%3d8l4JOa#HT)5E~yH8cBo$de2H~>iNRaP-tYN-lmY*u6H}rcw|(nLcy>^b}oo4ZDCysqyu`IO;L16015+Wpvyn z&=n11%q5V&R~tH*NYU?Vqg~!P)Y#vR243kUlYc(ar2w#FTvmpq>>DcR2x%R0tgQDq~2AL>U(}d!L_-`kjxMb8ZfAKV-Xw}3iW)2^> z2$mFt_=k_7b&`+EIOeWur9m_l>qFOAQ57f99Yq%Tr$(~k=yFNuNJM(k{rF&8@hMy! zA8%ooQ<#KHe(lBx$y00c&h2#Tt)QD*&z#RDnUM2erku3C2sUv*f59lHR@RzU#rQc; zkmC{VyQv%v<_i#YLbrZ@#kLdcLD3g7&?lpT#>?Cn|0@6j4rc0ZSCgtn_1`I6PB+3r zS7~_K!D=zVarPffF+KFWK;E}@bZws)P1-O1p7wccMENtFw>)~k8jwQM`g!WyL{*B| zq_`jitE;XWR;LK}YN=UlnJ>k%y^<~alzhnk^5hPHd_O8`hqb$!V}&jPI=k|x|GVK? z%>fPx)y>YFGMYQxbgeU#TaQwpKJ; z#W_afHVohre-ukb!KT{e$BIr$MtAnmdk2^wm|G%nEp|+QD5X-8*uqe}73??e?p;=c zzr5o&@AlP{0DVX;v3s}FF@nMoSM|abfhYSv7aNp@`3YNv?ylwcwY8kN&c4T{K4es? ztm@j~opb})FBOa_%i&RW8gQ|9{)IOF=fV9?Xt-SK*O=|(s)+yhEPw}#x=T0w-IV*( zTbYY*)gKVH<&9lmSb1>%mAUSA9AWrxMcdWGZC6V!>X2~VJ}Qo67t0uGu%@Mt|4@b$ zL`YI#xQ4Y^cywEvfcRw+MiTo(-X97SDTK`4>>Tkj$&JkYDCKPTylqK=iNZC-r!4Aj zrf+JqMd_lfhJ%QPTZs3jadAH#5IiqN?U1~4+~e=u?ZY47;0Pz}C95DsR+w8`)!iN> zTI{Kzun8-+Xd6316jL~wkjFLW-Jip(wV8IMeSmw&+BrL7zLz3k)|+5+KmMLvN$XWR zfz94fjff&oRLLDcmqE(sbLd>870s=#yuA_Q?)2f-sVmgYhs`S%wgB80gGt=(AFmU- zdb$&}n)rxVLWNm&t9Wl_fv#zsIp!~v!#!^U56;JskKGqf7y-_k7t`&I#0UH#;)po~ zI|v4D;fW6jQULv3zm?hqm`*8JLkH3?mf|hVTUX{P*Tb*4i;emCPM==df`Ou!@(M_J z8T(lQR|=jS%;$o?z2=H7T@}d33-b`zuY+)rlGTh{QGxGA0g#TueV;xyJKHb1^ZU>g zymjKYJ#nV6u{;fg4`NlLqtaT<*o(f`U{RX{n`vMGJ)LhS+&ehG00Z(iU#h0Af1Lb% z9L;~kZ16=saEqVIJ>f4SO_N4|;zeL3&EkVpO4Vi};X7vIOYRY>SywV*Q<3GJ^7iW8 z9dN5rT^M+*fPoQOuX?EP2!w%NAg12Gk4Dgf(vm!tgiwD6OiN)EWk75MeL~@~0U+-d zj?G1sPtQYWQ9WhbWouGcIPCqRh^F)Bd;EMUQIVH58yB?~RoH}uPZ_J!0(DZ{?PA~Q z2)L_2(xPq=r;-Gq?1^&rNzz=ZVv-=*k$#GnmvXlMX*!hC9`Um=Uf&>LDB)_<`tDLS zdHST+;nHYuaFuji5Ywf~Q;Xbk>O!7(sGEyo$bECYxVTpkSZlS`W z>=AMIe-Bmt?>u(OvReK*UaTBg<7dj_C76kfENm|tl&o8qO~X<~hMi64Pq$dVAcK3- zn0UEfJ$MtAw$0^I9feXWzn&FJh{fTSTO)WchglwfT=#BgDdg5n;Vlu`d*1a2dx*W8zRsy?d44;_(0$o-BM= zzNo0-;IE06_Ig{^eqS<*s2L}{Z*Hl-Jrwu91KHaV)35qWvyyDUbg?kRsmf85Czg3b z4Qd8^aIEsnQG0;f(a*5(U*HEhjax0+_Z17~7)Sh~=H${K%Udf-{v1yuA%<6~b2_6$ zLmhBdK5^k#CK$49^y-V$xe|RV8=XMc4a&44ZlC>FSpi_rW02_v07hSrs+X{ zpKMq&?%T)1PI1RQaWa8%B!MAFbRFuwZuybhdS*6tw^-jJwsp?7_PaCSBbP*9^f$$4 zHf%h70b3R?OLn93V3l}e4(+v4PEFzRxSw$d<23?fV@`hzMxWaCuZ|A^GNUBp469mE zjCT})__0!M*39<0nS32Vxz|>r`Dyu`c;Z6#*(Z0a$*bC^OhXOZZiG-Fy(XFgjWhT8 zNQyY8X2Ow5Ei-uBF-ASXRJ=wPEo5BDp?^@ZTr(s4^}Tt!+Mk>9Q^66$* zlH|r!9}JItnr-%`R%-&s zHD5JHK<~5X7UNj8n+-w=76D>x80P@qpZ`^c{X5Y+U@iRtN_{pEI)8Ag#E;h=m5qn{J3WwJxZ*HWk+-%NGETA;OI5@NDzWM7(StVoT*l-ja zkz3~6vAsb}E1s!&P074%4V5opfQT;}2W+$U0e>%%jHRaLeC6xx%oRtoFQ3GE-cSuU zn}y$ndAL*4Z2SR!t0ir`3hU!zEcr5U5)d)XH^JQ7yL;2MwP!amtEq}gpY$DxNcD;U zJ2iNN2@g^;HlZmFN;9SBhyJ1G;6wUyw?>_6${w#I&sH22(OJkKvaJkaZY3mciB=>r zu$+ax=7&j|?(AHfR!k;oJT&X{`iu1IJsF6=1VJvT<%@%Xx;#F#xNnB%)od(Ft7 z5rT|>>2?MEf6jzcPwzDsF(~iEAeo}S_7V-6))ndO+?7bVdMOdMJB7ArQF3pmL*Ypi`$9Gd?{{6|Hn z%)5Izqp5r82`olJ+BxDBtC<`hJLIPqIQEIvoEDDR{EuV>N;#F6BeBoH|6l_DHb!vO zF`kikBt)}luP1ZfNU9>eF9b4DdR~Arlv{m_&=^-<7D=egcZUE7o#p)6AgDwJ%3At(7W4cqXv*P`8M5O5r)K#V8on>e;F)` zNDv%nr>&ab)G_n3tyYs5hXa>uNEJ10bd{9*WUCR+a)t((Mo)9^Na2zQcPXh(ONvG7 zY&!d1V!kUGSf(VJk%lU2Pc_`+Y+d}enAy9lu$i^xHo5ILczu1%IE!zVSruMZlh8y| zR~ZRI5*`}}ZGa(#o9zM!;jHdY)Tm{x(9$$xWs|`GP-3Gf)G7KqQcXPR+FTv*Ve&GmNWbT z<=w>=b0aCUYSG;1;Y-fbD>THT(v$QQL6pu%V6||vO;e4=F+Ix1yY$X3O&NPUVzU;H zQ2x+#gOW{5U+^P(Rx;cy_kSPQ|2DD%)&#lB4O{iam$KSZbTBL4oMoV?EktFq{?v=h} zSnPTHyfJz763wWgV~&YWkz{E(24*{wXTnFZ{Tw12q8eqE{G)!-8IR&?Z$zL4WX^EJ zuL8YNP8yb73_6=5OyNq}iaLOy83Y?xwZWV|&8LkyVbNx%JJ&VEGD?fAWI*nhT%f8r zjST{U8aL*C7Ijo*aHY6XSXLlSak5YoIek+>vwgTF14AVwzZsZ$1XHS)KmmKy?7)Ef zysLmdHEtj#J!RhZM|Um9qcEnQ7Gh?x2K_h|qJ)(mzorz8?lzLR`aKUMCb>L`+V?Kt zr~UG0q_RFmYgViwOT`6c}<_aE-igpbBppC-@E@iJ!w?&GA?%H(+Au%sCMdzYmPWuaQt+zo$AK9{N3uOdzk}4r`jNCz6$4#H% zI5lm2KImPi01LwbgA+WAHC~5y9;=zhx%idW?bmk5u%IkGvS1@Ay|A=el6-hS%BcL{ zr+TC-`X9_4bgRpHewS9Kxn-E3;QbMj#SZEdr~)tEDILnD z8wkogKiX;kipD?|LzZ!@!(rJ8(^=x@yLQ@MW@T5nsf=W-$hMQ&`%N;&k;=+sTm0>&r=%_M1RO zh+75$knkC;e9Xeq5mmotu)?}seN5ro|1XyHy5a+VfOZwe^}-Ocr|$fCw<^fysO1gv zKfI-D^@i_xVYxQ4ytKedeqZ3PWjy;;sz_6elm9Zi^JkI*PQk`~jS~GGDPlgxI%UjPY)ucCb z^L$ElA(on(s!R_N0-KbI)(^*l%VolsvE&IR17_V(ct?~{Pz&%V!T8dKKf}8r9XUIC z)uY%E6bOY&9#ABHy?D|z=>^LR{27uhTGVq|NGhJNmN0rwUEU3nI%cf-2`T~0Zx5ZJ ztp?KSADXJgw(cugY}Agt)QoODW7Xmg2ofRvr0pH1N-e_z0dSwfVm}jG9xqg$@Vso? zC472RYgf{@%@|7uYH^OQ?05RZR*U)d>d{L!)ul5}f3qYgw%Pyo9rW*G?mt73a4SdZ zt((K`J^!-M(+2+#c^7dz|DeWFpvFdIV8#R>=hdg%UV6}^34v#5tGjI8mV=9{|7lSA zTG&{;TKd}FQovvY`tX~A)$(U&UL(+td)lw}f<_+6dpk|u)gSkxWP(_Q#g?iZT_)Qqc^}*}w1m~IQW7})su>*#EnG;_ z%oYoeS}}xD89tUScV4dev(~rA#NP^e-68!<-@WKK(IUA@Q<&jmjyD)ho{$&^7)@!& zmr4nd$%q$I6Uscr-}$Gwb7|MN)x^CePUU{wQb`6{tB4aF5k^RzE?aM(EYyU8;7dhN z7f;L{sbH?I_ZN{ro_0*u?DWn%2s_TB3oD5(Axen0bv#F)aLpS=p(o9>@rGav*zoql zjhA}n^P`i+w-dd5pyh>ue$KExJtdBXZg_K=5pZ~+Mqj}FROgg@wiz3kULSkP4QW~a z6ZE+Zk%yv&*HTkr|Jy!`9xvULYlEt(vks6VkFik$>u~!Blc3ys>&xVmXsTRSyt)_$ zZf7DSN(zY$WG19_XqrwAQ4U;#KkixaqM%IAJ8DpCV(62`0AL}Z>N_9N7FMtRsu23- z+)O+Bd!~GT=FDnQ^6uW!JDpK%zOvs&L+^HtF7G$vQa$T8C5-93kz^Hpq9Xdu!`qUD zaC~BJflSp`iQ`Gyi-?K6H#POJ)p96cB^JI(Oo(#-Gp}db4l0;U%fs)%D-FP(I96UW`7Q1U{bv{2`{x}|f>mqjC3wYE1h$inoxc6zk!B}Nws;7$sC}2*TCO-YJki1CkPItFnfGve z|7$hrOoXU`Ein1lIgH{_wGgC*GkoT;(pa^pZT9`~0ZhgdzWi%a01qFZ5Cu*p`?!_1 z2+-hda3vHMnLoiwCU)T52gteY$k^qgOf5^$8sP~usG7+^64iyOQmYcwbL?LS~m~2B`%m8X{7giyr^4UbHfjuoXQzJ1MWZ>A-f8N0ow^D z9=CHRjotW>9#y`RZE6&XtkBh!w05l;_#Cb%ZY`-^uR(0pT||U1TfyNG_GO5TP#ZTg z-pvceuPb9q)Jb=oC5xS0T^L2`3Z^LeiG|*d>eASJW}zCc4&R6 z78+t6_k0oB=slV%d%81z19M>FIkxSh8QrWbULOQJmnqTk{=b=F9v0E82Wl*~)9&7y z-p>^=oP}|R^}`EmG%F=sj=JDTjv-YX4#2#2G#sJOWI4`)1v<%Q)s$QF%5>DHsa2de znuI6wf7LUaN_%IIk)HSn$5qC$^hYE)*-YVFC=i7`{5) z!G2~u8BQ6fDHBtlX;9ElAGcPcN=~kwhxf?H>XGV+vE$nFs&i1!lz?9Y_;*e!PR_;- z(AC?UMo=MbHQU~ZH=F{;cd`KrINkKuxgU@m{Ut676k1Np;ll@$B_}ilO6;dAdC3x` zxZDglEuWE4?R}InXpki#G;^MlkQ;F_x}XWhtmRk})x!H$?@;zP1ng8P9+ahFmte+h z`32%~09x(pI7mNvgJ>w|-1m>5a`fsLb0E&w&&IsfhCAveGPUSOJ||#*NjLkkgQ30z zpJWxRE)Z=8t7kbaXHp}c=%2w7NeE|zA(Nt?)r9R-4OM?)u7oEAi#1u#4}n0a&Yr>2 z#IrGY(uWk1bCV&VXx!$G(Q$LY>xU=g$M<8i_3TD>%%+2^yd}X5l{JtA7A!_yJc_k? zxn>gRB7;t(2W^L|g+Q<`pjG(Uf?eJJ#~0Jw{;Z&23F1H+WE<#P2z;!pwU7?@g9gK6 z2Ktui-g>gy7!0q1&z&xnL+zo(2}2JU0fw-qd_;Zw?%Q~?^vp8xhWo8?>2ZGHdT1tD zr*jKPj>C-s;jY3{?{k$sguSiuTL}jXp*J{bKew2N{qrQ-RA^3zGAK@ACw=xl6{hrU z`o7-?xi|dv5I%S2KUj0UIsy8SE_BiRz2W!J)2U#xXM6ce{;c9Cec)~<*O2Qxr&3;^}Mlq+_YL`JXM9`-@HE zp{`icfnL#C~9qsemRE8YBos*E);NXoxjSkf{E@r9#vpzQb2G>)4R z{Y3pjNlG7~ktaIQ5~K+MaJfJ%`Pv#7)B^LhMM)@vJ+2=uVuSkRdV>nVi=eZ^6-TW{ z+H|pbDop>cQ~V^IF1bu*uIrDWoE(w($Z2hn9=6mXR}6(zSeHS12=bMcc2?Y~`kOx& zU!OC;f;!+ENKACSw{+T+lZjc{PWlG{aRbflmg z8Q1Ak7=87?79zOV!r$yt+qL8^^hjU-&cXUB8|~Kul<;17rdy3J!|(%AeRPqbMsFd<8g}guw{%1i!izY06$7@zLk=reaK=o=9&WgHEO&39)ErDN5c1Nr zyjFIz*feYji!_k2H2 z$loDVJa@3K_R54|(M4`CM4f)~Jif5`A>x1hLf_H^`tw901iS{JLqPbS;{tzGfjPCV zJowfEFZ^edFH_1yaUI{@Hix?(He&L9uVSv&RlKpZw6!kN!D2F^51CUC5Uf2rNI8D@ z%WWU;FIT(ihT$p!&vTE-4?W~6-q*=jJLw=C>s&wHbI=Lv>(#vWZknSnGz55u>XHjg z!s&VZ;EPV?dnvy5eK)Sg9%0i9J z=nA|(L;A4hiVm^0%GQCv_EM4GS4{S1v*vNp{Wyp2k74|>`9TbE`Dw}<&;PYyyv}!s z@L&Hs7kmD+=KON@b(IAnnBu>$zVpvHAeKMt>3RU0nsH&EP>`-cj{TF5ikp~V^@k#* zJeCe`(v22RIEMqkLz?8ewq$F_P*>IA9eH{K?`<^rbI&Q{Bqa&d6 zx##y4aZ61M2(skQpX(DSr}eYWq^p@w8t7l2mtp++RTWI@DQ;QBgA#q*7}}&wv9(39 zaUjR4P{a5D#B_s#vYD{l-x6J-B)=9L9GW8I-!Bod>*B09l6N_xuxk!(L|exrv6XkM zRj=>|C6Ba6M{(moXC>D|FMgX)T?m6llPnNsgwDdE&*$Q6W_b37u*W)(u(D3(LQ)-K ziNlZ24D1uUqp63`mna-LIJKZwfDSK2g_Nsr;SE(sOwp_bL7)(l4=p2FjWN=XgL(hs zt;oIgx#Ym<4$L58Eah$5J*D|)22^NdON5~ZbdLT$f#|5N-3*@Nzqc)yV`opkGmO*9 ztEEaN;7t`J5?Xc5nMGqRX*Cmm5*h4IJN7M;q6*Q5Cax_I`a0$&rUgsCpya6NYP3Yz zfN<*ShmcFwEO=d>z%GjFZC0L!&q?r(-u>M(Y)pNQhI@Ax<6S+Bj1w`Vln-_z()vyr zU6`b;`@Hr|J*j3c%b~oi%&t0&T%r!nt87?|pQo`3x7_ptpNtlg4#IY74~_Bt`OW&C~wmTvTWfP~1q zO(`?+vqvR=Ih1w25qtjxdMk>#i~)L~zHiky4vKxuiEWRncp<$5!KusZalrc&zyB-$ z`yAUV6dIXuWNX)v5`8q3*i|2X%fiQkzC*9y!+M0VPe1Wxg^E9xaohQC==Gd`&jJXN z2>7-cY`QU*;22#uq;DHu_|l#CeE4_W?z0U~bzP@=?w%NKxv|?(>J?MC_nmUQ3Lc6JMQmh`or*Xo#JP@X+EFRdj{dDYhLNM z=&&#{@3(<40<`TP`Xs~3)JRZFsXHoZmf$;m^Ct&iUU^_SEK}2ICekq_zYW3jw&!5E zRBXhIcC2GvfT5t@DvVQ!27^J^J4$dm$523g#jd$+ejj49Ai{WcfnR}@^j?4Hv%$!z zVd~ia-+57VmJ#n^29-kusl7f~KpBV4{kgh3p`T&t*9)^)tP^$B2L4C)enE01-FBzB zXl!H03zF}IVVEcdCA;i8h&(TA{diI+HR_An)#5+J*&�N)k)W8OGW@`~tqw$#CRA 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

Q$1ZT9&?( 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 aEA%f~ZcFl{NwE`yx^VXLnWR%%5C0cF9G40J literal 0 HcmV?d00001 diff --git a/postinstall.sh b/postinstall.sh index 1bb1f0b..731ed4f 100644 --- a/postinstall.sh +++ b/postinstall.sh @@ -11,4 +11,28 @@ install_package() { install_package "smbus" install_package "requests" -install_package "python-logstash-async" \ No newline at end of file +install_package "python-logstash-async" + +echo "Setting up opencv4" +pkg-config --modversion opencv4 + +echo "Setting up nginx rtmp server" +sudo /etc/init.d/nginx start + +sudo tee /etc/nginx/nginx.conf > /dev/null < Date: Sat, 23 Jan 2021 02:41:19 +0100 Subject: [PATCH 027/246] vision daemon now streams with a resolution of 1280x720 fixed package install --- build_deb.sh | 3 ++- compLib/VisionDaemon.py | 2 +- postinstall.sh | 34 +++++++++++++++++----------------- 3 files changed, 20 insertions(+), 19 deletions(-) diff --git a/build_deb.sh b/build_deb.sh index c1961ed..a07e519 100644 --- a/build_deb.sh +++ b/build_deb.sh @@ -27,7 +27,8 @@ fpm -s python --python-bin python3 --python-pip pip3 --python-package-name-prefi -d "opencv-main" \ -d "opencv-python" \ -d "opencv-scripts" \ - -v 0.0.3-3 -t deb setup.py + -d "libatlas-base-dev" \ + -v 0.0.3-4 -t deb setup.py # --deb-changelog changelog \ # --deb-upstream-changelog changelog \ diff --git a/compLib/VisionDaemon.py b/compLib/VisionDaemon.py index c08aa1e..e000127 100644 --- a/compLib/VisionDaemon.py +++ b/compLib/VisionDaemon.py @@ -5,7 +5,7 @@ import LogstashLogging from LogstashLogging import logstash_logger import logging -__run = """raspivid -t 0 -b 10000000 -w 1920 -h 1080 -fps 30 -n -o - | gst-launch-1.0 fdsrc ! video/x-h264,width=1280,height=720,framerate=30/1,noise-reduction=1,profile=high,stream-format=byte-stream ! h264parse ! queue ! flvmux streamable=true ! rtmpsink location=\"rtmp://localhost/live/stream\"""" +__run = """raspivid -t 0 -b 5000000 -w 1280 -h 720 -fps 30 -n -o - | gst-launch-1.0 fdsrc ! video/x-h264,width=1280,height=720,framerate=30/1,noise-reduction=1,profile=high,stream-format=byte-stream ! h264parse ! queue ! flvmux streamable=true ! rtmpsink location=\"rtmp://localhost/live/stream\"""" if __name__ == '__main__': diff --git a/postinstall.sh b/postinstall.sh index 731ed4f..4341230 100644 --- a/postinstall.sh +++ b/postinstall.sh @@ -11,6 +11,7 @@ install_package() { install_package "smbus" install_package "requests" +install_package "flask" install_package "python-logstash-async" echo "Setting up opencv4" @@ -19,20 +20,19 @@ pkg-config --modversion opencv4 echo "Setting up nginx rtmp server" sudo /etc/init.d/nginx start -sudo tee /etc/nginx/nginx.conf > /dev/null <> /etc/nginx/nginx.conf From a544133e927985a55a903d5ab66e651962f6c9e2 Mon Sep 17 00:00:00 2001 From: Konstantin Lampalzer Date: Sat, 23 Jan 2021 11:55:56 +0000 Subject: [PATCH 028/246] Change IR Sensor, fix motor direction --- compLib/IRSensor.py | 33 +++++++++++++++++++++++++-------- compLib/Motor.py | 6 +++--- 2 files changed, 28 insertions(+), 11 deletions(-) diff --git a/compLib/IRSensor.py b/compLib/IRSensor.py index 0477c7d..b6fe55d 100644 --- a/compLib/IRSensor.py +++ b/compLib/IRSensor.py @@ -1,4 +1,4 @@ -import RPi.GPIO as GPIO +import pigpio from compLib.ADC import ADC from compLib.LogstashLogging import Logging @@ -15,12 +15,26 @@ BOTTOM_RIGHT_PIN = 23 adc = ADC() -GPIO.setmode(GPIO.BCM) +# GPIO.setmode(GPIO.BCM) -GPIO.setup(BOTTOM_LEFT_PIN, GPIO.IN) -GPIO.setup(BOTTOM_MIDDLE_PIN, GPIO.IN) -GPIO.setup(BOTTOM_RIGHT_PIN, GPIO.IN) +GPIO = pigpio.pi() +GPIO.set_mode(BOTTOM_LEFT_PIN, pigpio.INPUT) +GPIO.set_mode(BOTTOM_MIDDLE_PIN, pigpio.INPUT) +GPIO.set_mode(BOTTOM_RIGHT_PIN, pigpio.INPUT) + +states = { + str(BOTTOM_LEFT_PIN): 0, + str(BOTTOM_MIDDLE_PIN): 0, + str(BOTTOM_RIGHT_PIN): 0} + +def gpio_callback(gpio, level, tick): + states[str(gpio)] = level +# print(gpio, level, tick) + +GPIO.callback(BOTTOM_LEFT_PIN, pigpio.EITHER_EDGE, gpio_callback) +GPIO.callback(BOTTOM_MIDDLE_PIN, pigpio.EITHER_EDGE, gpio_callback) +GPIO.callback(BOTTOM_RIGHT_PIN, pigpio.EITHER_EDGE, gpio_callback) class IRSensor(object): """Access the different IR Sensors at top / bottom of the robot @@ -53,7 +67,8 @@ class IRSensor(object): :return: True, if sensor detects IR signals :rtype: bool """ - return GPIO.input(BOTTOM_LEFT_PIN) + return states[str(BOTTOM_LEFT_PIN)] + # return GPIO.read(BOTTOM_LEFT_PIN) @staticmethod def bottom_middle() -> bool: @@ -62,7 +77,8 @@ class IRSensor(object): :return: True, if sensor detects IR signals :rtype: bool """ - return GPIO.input(BOTTOM_MIDDLE_PIN) + return states[str(BOTTOM_MIDDLE_PIN)] + # return GPIO.read(BOTTOM_MIDDLE_PIN) @staticmethod def bottom_right() -> bool: @@ -71,4 +87,5 @@ class IRSensor(object): :return: True, if sensor detects IR signals :rtype: bool """ - return GPIO.input(BOTTOM_RIGHT_PIN) + return states[str(BOTTOM_RIGHT_PIN)] + # return GPIO.read(BOTTOM_RIGHT_PIN) diff --git a/compLib/Motor.py b/compLib/Motor.py index 73fd1b3..8c2556e 100644 --- a/compLib/Motor.py +++ b/compLib/Motor.py @@ -39,11 +39,11 @@ class Motor(object): adjusted_speed = int(min(max(0, percent), 100) * MOTOR_PERCENTAGE_MULT) if forward: - pwm.setMotorPwm(port * 2, 0) - pwm.setMotorPwm(port * 2 + 1, adjusted_speed) - else: pwm.setMotorPwm(port * 2, adjusted_speed) pwm.setMotorPwm(port * 2 + 1, 0) + else: + pwm.setMotorPwm(port * 2, 0) + pwm.setMotorPwm(port * 2 + 1, adjusted_speed) @staticmethod def all_off(): From 4a5f630d405fed3d316a077c0eff7527012bff2d Mon Sep 17 00:00:00 2001 From: Konstantin Lampalzer Date: Sat, 23 Jan 2021 13:37:40 +0100 Subject: [PATCH 029/246] Logging, more documentation --- compLib/LogstashLogging.py | 13 +++++++++++++ compLib/Motor.py | 10 +++++++--- docs/source/conf.py | 2 +- docs/source/lib/Api.rst | 10 +++++----- docs/source/lib/Battery.rst | 8 ++++---- docs/source/lib/Buzzer.rst | 8 ++++---- docs/source/lib/IRSensor.rst | 2 +- docs/source/lib/Logging.rst | 22 ++++++++++++++++++++++ docs/source/lib/Motor.rst | 8 ++++---- docs/source/lib/Servo.rst | 2 +- docs/source/lib/Vision.rst | 8 ++++---- 11 files changed, 66 insertions(+), 27 deletions(-) create mode 100644 docs/source/lib/Logging.rst diff --git a/compLib/LogstashLogging.py b/compLib/LogstashLogging.py index 8ff02e3..61418c4 100644 --- a/compLib/LogstashLogging.py +++ b/compLib/LogstashLogging.py @@ -26,6 +26,7 @@ asynchronousLogstashHandler = AsynchronousLogstashHandler( database_path='logs.db' ) + class StreamToLogger(object): """ Fake file-like stream object that redirects writes to a logger instance. @@ -53,6 +54,7 @@ class StreamToLogger(object): self.linebuf = '' asynchronousLogstashHandler.flush() + try: r = requests.head(f"http://{host}:{port}") if r.status_code == 400: @@ -67,12 +69,23 @@ except requests.exceptions.ConnectionError as identifier: print(f"Could not connect to {host}!") pass + class Logging(object): + """Can be used to manually use the logger or turn up the logging level used for debugging this library. + """ @staticmethod def get_logger() -> logging.Logger: + """Get the logger object used to communicate with logstash + + :return: Python logger + :rtype: logging.Logger + """ return logstash_logger @staticmethod def set_debug(): + """Turns up the logging level of the library to debug. Should be used, when debugging with the + Competition organizers + """ logstash_logger.setLevel(logging.DEBUG) diff --git a/compLib/Motor.py b/compLib/Motor.py index 8c2556e..664acf9 100644 --- a/compLib/Motor.py +++ b/compLib/Motor.py @@ -16,16 +16,20 @@ class Motor(object): """ @staticmethod - def power(port: int, percent: int): + def power(port: int, percent: float): """Set specified motor to percentage power :param port: Port, which the motor is connected to. 0-3, 0 -> top left, 3 -> top right :param percent: Percentage of max speed. between -100 and 100 + :raises: IndexError """ Logging.get_logger().debug(f"Motor.power {port} {percent}") if port < 0 or port >= MOTOR_COUNT: - raise IndexError("Invalid Motor port specified!") + raise IndexError("Invalid Motor port specified!") + + if percent < -100 or percent > 100: + raise IndexError("Invalid Motor speed specified! Speed is between -100 and 100 percent!") forward = True if percent < 0: @@ -36,7 +40,7 @@ class Motor(object): if port == 1: forward = not forward - adjusted_speed = int(min(max(0, percent), 100) * MOTOR_PERCENTAGE_MULT) + adjusted_speed = int(min(max(0.0, percent), 100.0) * MOTOR_PERCENTAGE_MULT) if forward: pwm.setMotorPwm(port * 2, adjusted_speed) diff --git a/docs/source/conf.py b/docs/source/conf.py index dd8f84a..a455a50 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -35,7 +35,7 @@ extensions = [ 'sphinx_rtd_theme' ] -autodoc_mock_imports = ["smbus", "compLib.PCA9685", "RPi"] +autodoc_mock_imports = ["smbus", "compLib.PCA9685", "RPi", "pigpio", "flask"] # Add any paths that contain templates here, relative to this directory. templates_path = ['_templates'] diff --git a/docs/source/lib/Api.rst b/docs/source/lib/Api.rst index 44b2a43..7517d76 100644 --- a/docs/source/lib/Api.rst +++ b/docs/source/lib/Api.rst @@ -1,29 +1,29 @@ .. _lib_api: Api -===== +**** Seeding -******** +======== .. autoclass:: compLib.Api.Seeding :members: Double Elimination -******************* +=================== .. autoclass:: compLib.Api.DoubleElim :members: Position -********* +======== .. autoclass:: compLib.Api.Position :members: Examples -********* +======== Calling Seeding API --------------------- diff --git a/docs/source/lib/Battery.rst b/docs/source/lib/Battery.rst index 3a1d26c..c7d1fb1 100644 --- a/docs/source/lib/Battery.rst +++ b/docs/source/lib/Battery.rst @@ -1,20 +1,20 @@ .. _lib_battery: Battery -######## +******** Class Documentation -******************** +==================== .. autoclass:: compLib.Battery.Battery :members: Examples -********* +========= Printing percentage -==================== +-------------------- .. code-block:: python diff --git a/docs/source/lib/Buzzer.rst b/docs/source/lib/Buzzer.rst index 9ce4584..56a81c4 100644 --- a/docs/source/lib/Buzzer.rst +++ b/docs/source/lib/Buzzer.rst @@ -1,19 +1,19 @@ .. _lib_buzzer: Buzzer -####### +******* Class Documentation -******************** +==================== .. autoclass:: compLib.Buzzer.Buzzer :members: Examples -********* +========= Turning buzzer on and off -========================== +-------------------------- .. code-block:: python diff --git a/docs/source/lib/IRSensor.rst b/docs/source/lib/IRSensor.rst index f955b0a..72e60f9 100644 --- a/docs/source/lib/IRSensor.rst +++ b/docs/source/lib/IRSensor.rst @@ -1,7 +1,7 @@ .. _lib_irsensor: Infrared Sensor -================ +**************** .. autoclass:: compLib.IRSensor.IRSensor :members: \ No newline at end of file diff --git a/docs/source/lib/Logging.rst b/docs/source/lib/Logging.rst new file mode 100644 index 0000000..5fe6d41 --- /dev/null +++ b/docs/source/lib/Logging.rst @@ -0,0 +1,22 @@ +.. _lib_logging: + +Logging +******* + +Class Documentation +==================== + +.. autoclass:: compLib.LogstashLogging.Logging + :members: + +Examples +========= + +Turn up the logging +-------------------- + +.. code-block:: python + + from compLib.LogstashLogging import Logging + + Logging.set_debug() \ No newline at end of file diff --git a/docs/source/lib/Motor.rst b/docs/source/lib/Motor.rst index a8be270..5febcfe 100644 --- a/docs/source/lib/Motor.rst +++ b/docs/source/lib/Motor.rst @@ -1,19 +1,19 @@ .. _lib_motor: Motor -###### +****** Class Documentation -******************** +==================== .. autoclass:: compLib.Motor.Motor :members: Examples -********* +========= Driving straight (maybe) -========================= +------------------------- .. code-block:: python diff --git a/docs/source/lib/Servo.rst b/docs/source/lib/Servo.rst index 5f1c65a..d991b73 100644 --- a/docs/source/lib/Servo.rst +++ b/docs/source/lib/Servo.rst @@ -1,7 +1,7 @@ .. _lib_servo: Servo -===== +****** .. autoclass:: compLib.Servo.Servo :members: \ No newline at end of file diff --git a/docs/source/lib/Vision.rst b/docs/source/lib/Vision.rst index 8793ad4..736cc60 100644 --- a/docs/source/lib/Vision.rst +++ b/docs/source/lib/Vision.rst @@ -1,7 +1,7 @@ .. _lib_vision: Vision -===== +******* This module provides an interface for grabbing an rtmp stream and using the images to do some processing in opencv. @@ -13,7 +13,7 @@ How do I use this module? 4. You can view the http stream of your processed images in a web browser Opencv Stream -************* +============== Because of the rtmp stream needing to buffer some frames and waiting for P-Frames, importing this module might take up to 5 Seconds. @@ -22,10 +22,10 @@ to 5 Seconds. :members: Examples -********* +========= Using the Vision Module ---------------------- +------------------------- .. code-block:: python From 1bd7f09e48dae77101972a11316fed0bb1ee7eaf Mon Sep 17 00:00:00 2001 From: itssme Date: Sat, 23 Jan 2021 18:43:41 +0100 Subject: [PATCH 030/246] Update issue templates --- .github/ISSUE_TEMPLATE/bug_report.md | 32 +++++++++++++++++++++++ .github/ISSUE_TEMPLATE/feature_request.md | 20 ++++++++++++++ 2 files changed, 52 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/bug_report.md create mode 100644 .github/ISSUE_TEMPLATE/feature_request.md diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000..7f2c6e8 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,32 @@ +--- +name: Bug report +about: Create a report to help us improve +title: '' +labels: '' +assignees: HerrNamenlos123, itssme, Kola50011 + +--- + +**Describe the bug** +A clear and concise description of what the bug is. + +**To Reproduce** +Steps to reproduce the behaviour: + +1. import compLib '...' +2. run this code '....' +3. See error + +**Expected behaviour** +A clear and concise description of what you expected to happen. + +**Screenshots** +If applicable, add screenshots to help explain your problem. + +**Device** + - Raspberry Pie: [e.g. 3b+] + - OS: [e.g. debian buster] + - Version [e.g. 0.0.3] + +**Additional context** +Add any other context about the problem here. diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 0000000..ee85565 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,20 @@ +--- +name: Feature request +about: Suggest an idea for this project +title: '' +labels: enhancement +assignees: HerrNamenlos123, itssme, Kola50011 + +--- + +**Is your feature request related to a problem? Please describe.** +A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] + +**Describe the solution you'd like** +A clear and concise description of what you want to happen. + +**Describe alternatives you've considered** +A clear and concise description of any alternative solutions or features you've considered. + +**Additional context** +Add any other context or screenshots about the feature request here. From 65d253a7b9d8ac43d9d403d1d8775f0dc028154b Mon Sep 17 00:00:00 2001 From: Joel Date: Sat, 23 Jan 2021 18:47:33 +0100 Subject: [PATCH 031/246] added more dependencies --- build_deb.sh | 5 ++++- postinstall.sh | 5 +++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/build_deb.sh b/build_deb.sh index a07e519..2c8a7c9 100644 --- a/build_deb.sh +++ b/build_deb.sh @@ -28,7 +28,10 @@ fpm -s python --python-bin python3 --python-pip pip3 --python-package-name-prefi -d "opencv-python" \ -d "opencv-scripts" \ -d "libatlas-base-dev" \ - -v 0.0.3-4 -t deb setup.py + -d "pigpio" \ + -d "python-pigpio" \ + -d "python3-pigpio" \ + -v 0.0.3-5 -t deb setup.py # --deb-changelog changelog \ # --deb-upstream-changelog changelog \ diff --git a/postinstall.sh b/postinstall.sh index 4341230..a01cfda 100644 --- a/postinstall.sh +++ b/postinstall.sh @@ -36,3 +36,8 @@ sudo /etc/init.d/nginx start echo ' }' echo '}' } >> /etc/nginx/nginx.conf + +echo "Starting pigpiod daemon" + +sudo systemctl start pigpiod +sudo systemctl enable pigpiod From 4e1f22fa84b7375a57ff62d5568864ecacc5e403 Mon Sep 17 00:00:00 2001 From: Joel Date: Sat, 23 Jan 2021 19:05:02 +0100 Subject: [PATCH 032/246] now overwriting nginx conf if it already exists --- postinstall.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/postinstall.sh b/postinstall.sh index a01cfda..e7547c7 100644 --- a/postinstall.sh +++ b/postinstall.sh @@ -35,7 +35,7 @@ sudo /etc/init.d/nginx start echo ' }' echo ' }' echo '}' -} >> /etc/nginx/nginx.conf +} >| /etc/nginx/nginx.conf echo "Starting pigpiod daemon" From dfb66d5383cc73c50c9729c609a6cc3392119ac9 Mon Sep 17 00:00:00 2001 From: Joel Date: Sat, 23 Jan 2021 21:57:28 +0100 Subject: [PATCH 033/246] added missing dependency in .deb package --- build_deb.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/build_deb.sh b/build_deb.sh index 2c8a7c9..e76975d 100644 --- a/build_deb.sh +++ b/build_deb.sh @@ -31,7 +31,8 @@ fpm -s python --python-bin python3 --python-pip pip3 --python-package-name-prefi -d "pigpio" \ -d "python-pigpio" \ -d "python3-pigpio" \ - -v 0.0.3-5 -t deb setup.py + -d "python3-numpy" \ + -v 0.0.3-6 -t deb setup.py # --deb-changelog changelog \ # --deb-upstream-changelog changelog \ From 455826979500be9594a4b0c82f25519cccd7effd Mon Sep 17 00:00:00 2001 From: Konstantin Lampalzer Date: Sun, 24 Jan 2021 20:44:37 +0100 Subject: [PATCH 034/246] logs errors to kibana --- compLib/LogstashLogging.py | 21 ++++++++++----------- test.py | 2 +- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/compLib/LogstashLogging.py b/compLib/LogstashLogging.py index 61418c4..e8f3957 100644 --- a/compLib/LogstashLogging.py +++ b/compLib/LogstashLogging.py @@ -31,27 +31,23 @@ class StreamToLogger(object): """ Fake file-like stream object that redirects writes to a logger instance. """ - def __init__(self, log_level=logging.INFO): + def __init__(self, textio, log_level=logging.INFO): self.logger = logging.getLogger('logstash') - self.console = sys.stdout + self.console = textio self.log_level = log_level self.linebuf = '' def write(self, buf): self.console.write(buf) temp_linebuf = self.linebuf + buf - self.linebuf = '' - for line in temp_linebuf.splitlines(True): - if line[-1] == '\n': - self.logger.log(self.log_level, line.rstrip()) - else: - self.linebuf += line + for line in buf.splitlines(True): + self.linebuf += line def flush(self): - self.console.flush() if self.linebuf != '': self.logger.log(self.log_level, self.linebuf.rstrip()) self.linebuf = '' + self.console.flush() asynchronousLogstashHandler.flush() @@ -60,8 +56,11 @@ try: if r.status_code == 400: logstash_logger.addHandler(asynchronousLogstashHandler) - sl = StreamToLogger(logging.INFO) - sys.stdout = sl + so = StreamToLogger(sys.stdout, logging.INFO) + sys.stdout = so + + se = StreamToLogger(sys.stderr, logging.ERROR) + sys.stderr = se else: print(f"Could not connect to {host} -> {r.status_code}!") diff --git a/test.py b/test.py index a5de56b..56a223e 100644 --- a/test.py +++ b/test.py @@ -17,9 +17,9 @@ except ImportError: from multiprocessing import Process +from compLib import LogstashLogging from compLib import Api - class MyTestCase(unittest.TestCase): def test_get_park(self): ret = Api.Seeding.get_park() From c70edd41663a4cbdb30c289d75ab67ebcdc3cff8 Mon Sep 17 00:00:00 2001 From: Joel Date: Tue, 26 Jan 2021 20:36:40 +0100 Subject: [PATCH 035/246] fixed vision documentation --- docs/source/lib/Vision.rst | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/docs/source/lib/Vision.rst b/docs/source/lib/Vision.rst index 736cc60..5c030d9 100644 --- a/docs/source/lib/Vision.rst +++ b/docs/source/lib/Vision.rst @@ -32,13 +32,14 @@ Using the Vision Module import cv2 from compLib import Vision - # get newest opencv frame from camera - frame = Vision.Streaming.get_frame() + while True: + # get newest opencv frame from camera + frame = Vision.Streaming.get_frame() - # do some processing with the frame..... + # do some processing with the frame..... - # publish frame to streaming server - Vision.Streaming.publish_frame(frame) + # publish frame to streaming server + Vision.Streaming.publish_frame(frame) Connect the raspberry pi to your internet and view the stream at: "http://your_raspi_ip:9898/". This should display your raspberry pi camera. Note: the stream will lag a little bit BUT the processing of the image will be done in @@ -68,22 +69,23 @@ For testing you can point it at this image: import cv2 from compLib import Vision - # get newest opencv frame from camera - frame = Vision.Streaming.get_frame() + while True: + # get newest opencv frame from camera + frame = Vision.Streaming.get_frame() - criteria = (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 30, 0.001) + criteria = (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 30, 0.001) - # convert image to grayscale image - gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) + # convert image to grayscale image + gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) - # find the chessboard corners - ret, corners = cv2.findChessboardCorners(gray, (6, 9), None) + # find the chessboard corners + ret, corners = cv2.findChessboardCorners(gray, (6, 9), None) - # draw detected chessboard position onto the image - cv2.drawChessboardCorners(frame, (6, 9), corners, ret) + # draw detected chessboard position onto the image + cv2.drawChessboardCorners(frame, (6, 9), corners, ret) - # publish frame to streaming server - Vision.Streaming.publish_frame(frame) + # publish frame to streaming server + Vision.Streaming.publish_frame(frame) Connect the raspberry pi to your internet and view the stream at: "http://your_raspi_ip:9898/". From e02b42060bc7b71b225d4aaef8c7253656ff0218 Mon Sep 17 00:00:00 2001 From: Joel Date: Tue, 26 Jan 2021 21:18:32 +0100 Subject: [PATCH 036/246] fixed error in logger causing rpi to think logging server is down --- build_deb.sh | 2 +- compLib/LogstashLogging.py | 10 ++++++---- compLib/Vision.py | 3 ++- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/build_deb.sh b/build_deb.sh index e76975d..70a7d21 100644 --- a/build_deb.sh +++ b/build_deb.sh @@ -32,7 +32,7 @@ fpm -s python --python-bin python3 --python-pip pip3 --python-package-name-prefi -d "python-pigpio" \ -d "python3-pigpio" \ -d "python3-numpy" \ - -v 0.0.3-6 -t deb setup.py + -v 0.0.3-7 -t deb setup.py # --deb-changelog changelog \ # --deb-upstream-changelog changelog \ diff --git a/compLib/LogstashLogging.py b/compLib/LogstashLogging.py index e8f3957..a57d90f 100644 --- a/compLib/LogstashLogging.py +++ b/compLib/LogstashLogging.py @@ -31,6 +31,7 @@ class StreamToLogger(object): """ Fake file-like stream object that redirects writes to a logger instance. """ + def __init__(self, textio, log_level=logging.INFO): self.logger = logging.getLogger('logstash') self.console = textio @@ -52,8 +53,8 @@ class StreamToLogger(object): try: - r = requests.head(f"http://{host}:{port}") - if r.status_code == 400: + r = requests.get(f"https://{host}:{port}") + if r.status_code == 401: logstash_logger.addHandler(asynchronousLogstashHandler) so = StreamToLogger(sys.stdout, logging.INFO) @@ -62,10 +63,11 @@ try: se = StreamToLogger(sys.stderr, logging.ERROR) sys.stderr = se else: - print(f"Could not connect to {host} -> {r.status_code}!") + print(f"Could not connect to {host} -> ERROR CODE: {r.status_code}!") except requests.exceptions.ConnectionError as identifier: print(f"Could not connect to {host}!") + print(f"Error loading logger was -> {identifier}") pass @@ -81,7 +83,7 @@ class Logging(object): :rtype: logging.Logger """ return logstash_logger - + @staticmethod def set_debug(): """Turns up the logging level of the library to debug. Should be used, when debugging with the diff --git a/compLib/Vision.py b/compLib/Vision.py index f567e6a..491d186 100644 --- a/compLib/Vision.py +++ b/compLib/Vision.py @@ -67,7 +67,8 @@ class __Streaming: :return: None """ with self.__lock: - self.__newest_frame = image.copy() + if image is not None: + self.__newest_frame = image.copy() def _newest_frame_generator(self): """ From acc91cdd74728820d7fb5f36e9cd7c4ac7bd6617 Mon Sep 17 00:00:00 2001 From: Joel Date: Thu, 28 Jan 2021 14:21:30 +0100 Subject: [PATCH 037/246] added option to disable logging --- build_deb.sh | 2 +- compLib/LogstashLogging.py | 38 ++++++++++++++++++++++++-------------- compLib/Vision.py | 9 +++++++-- 3 files changed, 32 insertions(+), 17 deletions(-) diff --git a/build_deb.sh b/build_deb.sh index 70a7d21..f1b9aa8 100644 --- a/build_deb.sh +++ b/build_deb.sh @@ -32,7 +32,7 @@ fpm -s python --python-bin python3 --python-pip pip3 --python-package-name-prefi -d "python-pigpio" \ -d "python3-pigpio" \ -d "python3-numpy" \ - -v 0.0.3-7 -t deb setup.py + -v 0.0.3-8 -t deb setup.py # --deb-changelog changelog \ # --deb-upstream-changelog changelog \ diff --git a/compLib/LogstashLogging.py b/compLib/LogstashLogging.py index a57d90f..c766f74 100644 --- a/compLib/LogstashLogging.py +++ b/compLib/LogstashLogging.py @@ -1,10 +1,18 @@ import logging +import os import sys import requests from logstash_async.transport import HttpTransport from logstash_async.handler import AsynchronousLogstashHandler +EXTENSIVE_LOGGING = os.getenv("EXTENSIVE_LOGGING", "True") + +if EXTENSIVE_LOGGING == "True": + EXTENSIVE_LOGGING = True +else: + EXTENSIVE_LOGGING = False + host = 'logstash.robo4you.at' port = 443 @@ -52,23 +60,25 @@ class StreamToLogger(object): asynchronousLogstashHandler.flush() -try: - r = requests.get(f"https://{host}:{port}") - if r.status_code == 401: - logstash_logger.addHandler(asynchronousLogstashHandler) +if EXTENSIVE_LOGGING: + try: + r = requests.get(f"https://{host}:{port}") + if r.status_code == 401: + logstash_logger.addHandler(asynchronousLogstashHandler) - so = StreamToLogger(sys.stdout, logging.INFO) - sys.stdout = so + so = StreamToLogger(sys.stdout, logging.INFO) + sys.stdout = so - se = StreamToLogger(sys.stderr, logging.ERROR) - sys.stderr = se - else: - print(f"Could not connect to {host} -> ERROR CODE: {r.status_code}!") + se = StreamToLogger(sys.stderr, logging.ERROR) + sys.stderr = se + else: + print(f"Could not connect to {host} -> ERROR CODE: {r.status_code}!") -except requests.exceptions.ConnectionError as identifier: - print(f"Could not connect to {host}!") - print(f"Error loading logger was -> {identifier}") - pass + except requests.exceptions.ConnectionError as identifier: + print(f"Could not connect to {host}!") + print(f"Error loading logger was -> {identifier}") +else: + print("Extensive logging is disabled! No logs will be sent over network...") class Logging(object): diff --git a/compLib/Vision.py b/compLib/Vision.py index 491d186..8978cdf 100644 --- a/compLib/Vision.py +++ b/compLib/Vision.py @@ -1,7 +1,9 @@ import os -import threading - import cv2 +import logging +import threading +import LogstashLogging + from flask import Flask, Response RTMP_SERVER = os.getenv("RTMP_SERVER", "rtmp://localhost/live/stream") @@ -49,6 +51,7 @@ class __Streaming: # self.__camera_stream = cv2.VideoCapture(0) self.__newest_frame = None self.__lock = threading.Lock() + logging.info("Initialized vision") def get_frame(self): """ @@ -101,6 +104,7 @@ Streaming = None if BUILDING_DOCS == "false": # instantiate private class __Streaming Streaming = __Streaming() + logging.info("created instance of streaming class") @app.route("/live") @@ -130,6 +134,7 @@ def __start_flask(): :return: """ + logging.info("starting flask server") app.run(host="0.0.0.0", port=9898, debug=True, threaded=True, use_reloader=False) From 7ec6854ac6d1121a345fb511a4bca9ba5eac8c47 Mon Sep 17 00:00:00 2001 From: koka Date: Thu, 28 Jan 2021 22:12:33 +0000 Subject: [PATCH 038/246] Add servos --- compLib/PCA9685.py | 5 ++--- compLib/Servo.py | 26 ++++++++++++++++---------- 2 files changed, 18 insertions(+), 13 deletions(-) diff --git a/compLib/PCA9685.py b/compLib/PCA9685.py index b2b3513..1389e55 100644 --- a/compLib/PCA9685.py +++ b/compLib/PCA9685.py @@ -47,12 +47,11 @@ class PCA9685: prescaleval /= 4096.0 # 12-bit prescaleval /= float(freq) prescaleval -= 1.0 - prescale = math.floor(prescaleval + 0.5) oldmode = self.read(self.__MODE1) newmode = (oldmode & 0x7F) | 0x10 # sleep self.write(self.__MODE1, newmode) # go to sleep - self.write(self.__PRESCALE, int(math.floor(prescale))) + self.write(self.__PRESCALE, int(round(prescaleval))) self.write(self.__MODE1, oldmode) time.sleep(0.005) self.write(self.__MODE1, oldmode | 0x80) @@ -69,7 +68,7 @@ class PCA9685: def setServoPulse(self, channel, pulse): "Sets the Servo Pulse,The PWM frequency must be 50HZ" - pulse = pulse * 4096 / 20000 # PWM frequency is 50HZ,the period is 20000us + pulse = float(pulse) * (4096.0 / 20000.0) # PWM frequency is 50HZ,the period is 20000us self.setPWM(channel, 0, int(pulse)) diff --git a/compLib/Servo.py b/compLib/Servo.py index d4a0d58..b341d15 100644 --- a/compLib/Servo.py +++ b/compLib/Servo.py @@ -1,30 +1,36 @@ -from compLib.PCA9685 import PCA9685 +from PCA9685 import PCA9685 + +SERVO_COUNT = 10 pwm = PCA9685(0x40, debug=True) pwm.setPWMFreq(50) +MIN_ANGLE = -90.0 +MAX_ANGLE = 90.0 + class Servo: """Control the servo ports on the robot """ @staticmethod - def set_position(channel: int, angle: int): + def set_position(channel: int, angle: int, offset: float =90): """Set position of servo connected to port :param channel: channel between 0 and 7 :param angle: Angle of servo """ - angle = abs(angle) - - if channel == 0: - pwm.setServoPulse(8 + channel, 2500 - int(angle / 0.09)) - elif channel < 8: - pwm.setServoPulse(8 + channel, 500 - int(angle / 0.09)) + if channel < 0 or channel >= SERVO_COUNT: + raise IndexError("Invalid Servo channel specified!") + + angle = max(min(angle, MAX_ANGLE), MIN_ANGLE) + + pwm.setServoPulse(channel + 8, 500+int((angle+offset)/0.09)) @staticmethod def setup_position(): """Set position of servos to the position used during the setup process """ - pwm.setServoPulse(8, 1500) - pwm.setServoPulse(9, 1500) + + Servo.set_position(0, 0) + Servo.set_position(1, 0) From efd03d71a1700c2b8344edfa3907fb9bb93c7af3 Mon Sep 17 00:00:00 2001 From: Joel Date: Thu, 28 Jan 2021 23:15:21 +0100 Subject: [PATCH 039/246] buzzer is now starting to issue a warning if battery is under 15% --- build_deb.sh | 2 +- compLib/VisionDaemon.py | 17 ++++++++++++++++- compLib/__init__.py | 2 +- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/build_deb.sh b/build_deb.sh index f1b9aa8..4d49971 100644 --- a/build_deb.sh +++ b/build_deb.sh @@ -32,7 +32,7 @@ fpm -s python --python-bin python3 --python-pip pip3 --python-package-name-prefi -d "python-pigpio" \ -d "python3-pigpio" \ -d "python3-numpy" \ - -v 0.0.3-8 -t deb setup.py + -v 0.0.4-2 -t deb setup.py # --deb-changelog changelog \ # --deb-upstream-changelog changelog \ diff --git a/compLib/VisionDaemon.py b/compLib/VisionDaemon.py index e000127..36a2cde 100644 --- a/compLib/VisionDaemon.py +++ b/compLib/VisionDaemon.py @@ -1,13 +1,28 @@ import os +import time import systemd.daemon import LogstashLogging from LogstashLogging import logstash_logger +from threading import Thread import logging +from Battery import Battery +from Buzzer import Buzzer __run = """raspivid -t 0 -b 5000000 -w 1280 -h 720 -fps 30 -n -o - | gst-launch-1.0 fdsrc ! video/x-h264,width=1280,height=720,framerate=30/1,noise-reduction=1,profile=high,stream-format=byte-stream ! h264parse ! queue ! flvmux streamable=true ! rtmpsink location=\"rtmp://localhost/live/stream\"""" +def check_battery(): + while True: + time.sleep(2) + battery = Battery.percent() + if battery <= 15: + logstash_logger.warning(f"LOW BATTERY DETECTED: '{battery}'") + Buzzer.set(True) + time.sleep(1) + Buzzer.set(False) + + if __name__ == '__main__': try: systemd.daemon.notify(systemd.daemon.Notification.READY) @@ -15,6 +30,6 @@ if __name__ == '__main__': logstash_logger.warning("Warning, old systemd version detected") systemd.daemon.notify('READY=1') - logging.info("starting gstreamer background process") + logstash_logger.info("starting gstreamer background process") os.system(__run) logstash_logger.error("gstreamer stopped...") diff --git a/compLib/__init__.py b/compLib/__init__.py index 29c6d95..a5afb15 100644 --- a/compLib/__init__.py +++ b/compLib/__init__.py @@ -1,4 +1,4 @@ -__version__ = "0.0.3" +__version__ = "0.0.4" import compLib.LogstashLogging import logging From af3f83275853564973889c4d353cf58151de5056 Mon Sep 17 00:00:00 2001 From: Joel Date: Fri, 29 Jan 2021 14:21:03 +0100 Subject: [PATCH 040/246] fixed buzzer thread fixed logging fixed postinstall.sh --- build_deb.sh | 2 +- compLib/VisionDaemon.py | 15 ++++++++++++++- compLib/__init__.py | 2 +- postinstall.sh | 8 ++++++++ setup.py | 2 +- 5 files changed, 25 insertions(+), 4 deletions(-) diff --git a/build_deb.sh b/build_deb.sh index 4d49971..e0ba84a 100644 --- a/build_deb.sh +++ b/build_deb.sh @@ -32,7 +32,7 @@ fpm -s python --python-bin python3 --python-pip pip3 --python-package-name-prefi -d "python-pigpio" \ -d "python3-pigpio" \ -d "python3-numpy" \ - -v 0.0.4-2 -t deb setup.py + -v 0.0.4-6 -t deb setup.py # --deb-changelog changelog \ # --deb-upstream-changelog changelog \ diff --git a/compLib/VisionDaemon.py b/compLib/VisionDaemon.py index 36a2cde..c9b8d97 100644 --- a/compLib/VisionDaemon.py +++ b/compLib/VisionDaemon.py @@ -1,4 +1,5 @@ import os +import threading import time import systemd.daemon @@ -15,7 +16,11 @@ __run = """raspivid -t 0 -b 5000000 -w 1280 -h 720 -fps 30 -n -o - | gst-launch- def check_battery(): while True: time.sleep(2) - battery = Battery.percent() + battery = 0 + try: + battery = Battery.percent() + except Exception as e: + logstash_logger.error(f"could not check battery -> {str(e)}") if battery <= 15: logstash_logger.warning(f"LOW BATTERY DETECTED: '{battery}'") Buzzer.set(True) @@ -30,6 +35,14 @@ if __name__ == '__main__': logstash_logger.warning("Warning, old systemd version detected") systemd.daemon.notify('READY=1') + logstash_logger.info("starting battery checker") + try: + battery_checker = threading.Thread(target=check_battery) + battery_checker.start() + logstash_logger.info("starting battery checker - DONE") + except Exception as e: + logstash_logger.error(f"could not start battery checker -> {str(e)}") + logstash_logger.info("starting gstreamer background process") os.system(__run) logstash_logger.error("gstreamer stopped...") diff --git a/compLib/__init__.py b/compLib/__init__.py index a5afb15..f0b933e 100644 --- a/compLib/__init__.py +++ b/compLib/__init__.py @@ -1,4 +1,4 @@ -__version__ = "0.0.4" +__version__ = "0.0.4-6" import compLib.LogstashLogging import logging diff --git a/postinstall.sh b/postinstall.sh index e7547c7..2122420 100644 --- a/postinstall.sh +++ b/postinstall.sh @@ -13,6 +13,7 @@ install_package "smbus" install_package "requests" install_package "flask" install_package "python-logstash-async" +install_package "RPi.GPIO" echo "Setting up opencv4" pkg-config --modversion opencv4 @@ -41,3 +42,10 @@ echo "Starting pigpiod daemon" sudo systemctl start pigpiod sudo systemctl enable pigpiod + +echo "Enabling camera via raspi-conf" +raspi-config nonint do_camera 1 + +RED='\033[0;31m' +NC='\033[0m' +echo -e "${RED}IF THIS IS THE FIRST INSTALL REBOOT YOUR PIE NOW!${NC}" diff --git a/setup.py b/setup.py index 2c53186..896299d 100644 --- a/setup.py +++ b/setup.py @@ -12,7 +12,7 @@ else: setuptools.setup( name="complib", - version="0.0.2", + version="0.0.4-6", author="F-WuTs", author_email="--", description="", From 76a01e4cd9425013b817ba6f88a8c7194f8c816b Mon Sep 17 00:00:00 2001 From: Konstantin Lampalzer Date: Fri, 29 Jan 2021 17:45:22 +0100 Subject: [PATCH 041/246] Fix servo imports --- compLib/Servo.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/compLib/Servo.py b/compLib/Servo.py index b341d15..183986b 100644 --- a/compLib/Servo.py +++ b/compLib/Servo.py @@ -1,4 +1,4 @@ -from PCA9685 import PCA9685 +from compLib.PCA9685 import PCA9685 SERVO_COUNT = 10 From 6c579bb5fba9c11116751d38f971ff0d1c34f8ae Mon Sep 17 00:00:00 2001 From: Joel Date: Sat, 30 Jan 2021 01:53:25 +0100 Subject: [PATCH 042/246] small changes and fixes --- build_deb.sh | 4 +++- compLib/Vision.py | 8 ++++---- compLib/VisionDaemon.py | 10 +++++++--- compLib/__init__.py | 2 +- postinstall.sh | 11 +++++------ setup.py | 2 +- 6 files changed, 21 insertions(+), 16 deletions(-) diff --git a/build_deb.sh b/build_deb.sh index e0ba84a..9326730 100644 --- a/build_deb.sh +++ b/build_deb.sh @@ -7,6 +7,7 @@ fpm -s python --python-bin python3 --python-pip pip3 --python-package-name-prefi --license 'proprietary' \ --description 'Library for robot used in the competition' \ --after-install postinstall.sh \ + --after-upgrade postinstall.sh \ --deb-generate-changes \ --deb-priority "optional" \ --deb-systemd "complib.service" \ @@ -32,7 +33,8 @@ fpm -s python --python-bin python3 --python-pip pip3 --python-package-name-prefi -d "python-pigpio" \ -d "python3-pigpio" \ -d "python3-numpy" \ - -v 0.0.4-6 -t deb setup.py + -d "ffmpeg" \ + -v 0.0.4-16 -t deb setup.py # --deb-changelog changelog \ # --deb-upstream-changelog changelog \ diff --git a/compLib/Vision.py b/compLib/Vision.py index 8978cdf..88937bf 100644 --- a/compLib/Vision.py +++ b/compLib/Vision.py @@ -2,7 +2,7 @@ import os import cv2 import logging import threading -import LogstashLogging +from compLib.LogstashLogging import Logging from flask import Flask, Response @@ -51,7 +51,7 @@ class __Streaming: # self.__camera_stream = cv2.VideoCapture(0) self.__newest_frame = None self.__lock = threading.Lock() - logging.info("Initialized vision") + Logging.get_logger().info("Initialized vision") def get_frame(self): """ @@ -104,7 +104,7 @@ Streaming = None if BUILDING_DOCS == "false": # instantiate private class __Streaming Streaming = __Streaming() - logging.info("created instance of streaming class") + Logging.get_logger().info("created instance of streaming class") @app.route("/live") @@ -134,7 +134,7 @@ def __start_flask(): :return: """ - logging.info("starting flask server") + Logging.get_logger().info("starting flask server") app.run(host="0.0.0.0", port=9898, debug=True, threaded=True, use_reloader=False) diff --git a/compLib/VisionDaemon.py b/compLib/VisionDaemon.py index c9b8d97..880ecad 100644 --- a/compLib/VisionDaemon.py +++ b/compLib/VisionDaemon.py @@ -7,8 +7,12 @@ import LogstashLogging from LogstashLogging import logstash_logger from threading import Thread import logging -from Battery import Battery -from Buzzer import Buzzer + +try: + from Battery import Battery + from Buzzer import Buzzer +except Exception as e: + logstash_logger.error("unable to import battery or buzzer in daemon") __run = """raspivid -t 0 -b 5000000 -w 1280 -h 720 -fps 30 -n -o - | gst-launch-1.0 fdsrc ! video/x-h264,width=1280,height=720,framerate=30/1,noise-reduction=1,profile=high,stream-format=byte-stream ! h264parse ! queue ! flvmux streamable=true ! rtmpsink location=\"rtmp://localhost/live/stream\"""" @@ -21,7 +25,7 @@ def check_battery(): battery = Battery.percent() except Exception as e: logstash_logger.error(f"could not check battery -> {str(e)}") - if battery <= 15: + if -100 <= battery <= 15: logstash_logger.warning(f"LOW BATTERY DETECTED: '{battery}'") Buzzer.set(True) time.sleep(1) diff --git a/compLib/__init__.py b/compLib/__init__.py index f0b933e..93dfcc1 100644 --- a/compLib/__init__.py +++ b/compLib/__init__.py @@ -1,4 +1,4 @@ -__version__ = "0.0.4-6" +__version__ = "0.0.4-16" import compLib.LogstashLogging import logging diff --git a/postinstall.sh b/postinstall.sh index 2122420..1d67a3a 100644 --- a/postinstall.sh +++ b/postinstall.sh @@ -43,9 +43,8 @@ echo "Starting pigpiod daemon" sudo systemctl start pigpiod sudo systemctl enable pigpiod -echo "Enabling camera via raspi-conf" -raspi-config nonint do_camera 1 - -RED='\033[0;31m' -NC='\033[0m' -echo -e "${RED}IF THIS IS THE FIRST INSTALL REBOOT YOUR PIE NOW!${NC}" +base64 -d << UPD +CiBfX19fX18gICAgIF9fX19fXyAgICAgX18gICAgX18gICAgIF9fX19fXyAgIF9fICAgICAgICAgX18gICAgIF9fX19fXyAgICAgICAgICAgICAgICAgIAovXCAgX19fXCAgIC9cICBfXyBcICAgL1wgIi0uLyAgXCAgIC9cICA9PSBcIC9cIFwgICAgICAgL1wgXCAgIC9cICA9PSBcICAgICAgICAgICAgICAgICAKXCBcIFxfX19fICBcIFwgXC9cIFwgIFwgXCBcLS4vXCBcICBcIFwgIF8tLyBcIFwgXF9fX18gIFwgXCBcICBcIFwgIF9fPCAgICAgICAgICAgICAgICAgCiBcIFxfX19fX1wgIFwgXF9fX19fXCAgXCBcX1wgXCBcX1wgIFwgXF9cICAgIFwgXF9fX19fXCAgXCBcX1wgIFwgXF9fX19fXCAgICAgICAgICAgICAgIAogIFwvX19fX18vICAgXC9fX19fXy8gICBcL18vICBcL18vICAgXC9fLyAgICAgXC9fX19fXy8gICBcL18vICAgXC9fX19fXy8gICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiBfXyAgX18gICAgIF9fX19fXyAgICAgIF9fX19fXyAgIF9fX19fXyAgICAgICAgX19fX18gICAgIF9fX19fXyAgICAgX19fX19fICAgX19fX19fICAgIAovXCBcL1wgXCAgIC9cICA9PSBcICAgIC9cX18gIF9cIC9cICBfXyBcICAgICAgL1wgIF9fLS4gIC9cICBfXyBcICAgL1xfXyAgX1wgL1wgIF9fX1wgICAKXCBcIFxfXCBcICBcIFwgIF8tLyAgICBcL18vXCBcLyBcIFwgXC9cIFwgICAgIFwgXCBcL1wgXCBcIFwgIF9fIFwgIFwvXy9cIFwvIFwgXCAgX19cICAgCiBcIFxfX19fX1wgIFwgXF9cICAgICAgICAgXCBcX1wgIFwgXF9fX19fXCAgICAgXCBcX19fXy0gIFwgXF9cIFxfXCAgICBcIFxfXCAgXCBcX19fX19cIAogIFwvX19fX18vICAgXC9fLyAgICAgICAgICBcL18vICAgXC9fX19fXy8gICAgICBcL19fX18vICAgXC9fL1wvXy8gICAgIFwvXy8gICBcL19fX19fLyA= +UPD +echo "" +echo "" diff --git a/setup.py b/setup.py index 896299d..b78ea6a 100644 --- a/setup.py +++ b/setup.py @@ -12,7 +12,7 @@ else: setuptools.setup( name="complib", - version="0.0.4-6", + version="0.0.4-16", author="F-WuTs", author_email="--", description="", From d4b577046eeb054867146c641cac7ef5c0e83db9 Mon Sep 17 00:00:00 2001 From: Joel Date: Thu, 4 Feb 2021 16:02:45 +0100 Subject: [PATCH 043/246] vision module is not using rtmp stream anymore jpeg webstream now runs with nearly zerolatency (currently limited to 640x480px) --- build_deb.sh | 2 +- compLib/Vision.py | 5 +++-- compLib/VisionDaemon.py | 17 ++++++++++++++--- compLib/__init__.py | 2 +- setup.py | 2 +- 5 files changed, 20 insertions(+), 8 deletions(-) diff --git a/build_deb.sh b/build_deb.sh index 9326730..2daeffb 100644 --- a/build_deb.sh +++ b/build_deb.sh @@ -34,7 +34,7 @@ fpm -s python --python-bin python3 --python-pip pip3 --python-package-name-prefi -d "python3-pigpio" \ -d "python3-numpy" \ -d "ffmpeg" \ - -v 0.0.4-16 -t deb setup.py + -v 0.0.4-17 -t deb setup.py # --deb-changelog changelog \ # --deb-upstream-changelog changelog \ diff --git a/compLib/Vision.py b/compLib/Vision.py index 88937bf..5693198 100644 --- a/compLib/Vision.py +++ b/compLib/Vision.py @@ -47,8 +47,9 @@ class __Streaming: This is done implicitly when importing the vision module and will only fail if you would create an object of this class. (There can (SHOULD!) only be one VideCapture) """ - self.__camera_stream = cv2.VideoCapture(RTMP_SERVER) - # self.__camera_stream = cv2.VideoCapture(0) + Logging.get_logger().info("capturing rtmp stream is disabled in this version") + #self.__camera_stream = cv2.VideoCapture(RTMP_SERVER) + self.__camera_stream = cv2.VideoCapture(0) self.__newest_frame = None self.__lock = threading.Lock() Logging.get_logger().info("Initialized vision") diff --git a/compLib/VisionDaemon.py b/compLib/VisionDaemon.py index 880ecad..f46bf78 100644 --- a/compLib/VisionDaemon.py +++ b/compLib/VisionDaemon.py @@ -16,6 +16,8 @@ except Exception as e: __run = """raspivid -t 0 -b 5000000 -w 1280 -h 720 -fps 30 -n -o - | gst-launch-1.0 fdsrc ! video/x-h264,width=1280,height=720,framerate=30/1,noise-reduction=1,profile=high,stream-format=byte-stream ! h264parse ! queue ! flvmux streamable=true ! rtmpsink location=\"rtmp://localhost/live/stream\"""" +STREAM_RASPI = False if os.getenv("STREAM_RASPI", "false") == "false" else True + def check_battery(): while True: @@ -40,6 +42,7 @@ if __name__ == '__main__': systemd.daemon.notify('READY=1') logstash_logger.info("starting battery checker") + battery_checker = None try: battery_checker = threading.Thread(target=check_battery) battery_checker.start() @@ -47,6 +50,14 @@ if __name__ == '__main__': except Exception as e: logstash_logger.error(f"could not start battery checker -> {str(e)}") - logstash_logger.info("starting gstreamer background process") - os.system(__run) - logstash_logger.error("gstreamer stopped...") + if STREAM_RASPI: + logstash_logger.info("starting gstreamer background process") + os.system(__run) + logstash_logger.error("gstreamer stopped...") + else: + logstash_logger.info("not starting gstreamer background process and only checking for battery") + if battery_checker is not None: + battery_checker.join() + else: + logstash_logger.info("battery checker failed to initialize.. sleeping for a day") + time.sleep(60*60*24) diff --git a/compLib/__init__.py b/compLib/__init__.py index 93dfcc1..8a479bd 100644 --- a/compLib/__init__.py +++ b/compLib/__init__.py @@ -1,4 +1,4 @@ -__version__ = "0.0.4-16" +__version__ = "0.0.4-17" import compLib.LogstashLogging import logging diff --git a/setup.py b/setup.py index b78ea6a..34585a6 100644 --- a/setup.py +++ b/setup.py @@ -12,7 +12,7 @@ else: setuptools.setup( name="complib", - version="0.0.4-16", + version="0.0.4-17", author="F-WuTs", author_email="--", description="", From 90e3dd6f007c03bfab2f4fc9c9b265037442178d Mon Sep 17 00:00:00 2001 From: Joel Date: Sat, 6 Feb 2021 02:43:20 +0100 Subject: [PATCH 044/246] added streaming commands --- README.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/README.md b/README.md index f7db811..c4e6787 100644 --- a/README.md +++ b/README.md @@ -26,3 +26,15 @@ pip install sphinx-rtd-theme ``` sudo raspivid -t 0 -b 10000000 -w 1920 -h 1080 -fps 30 -n -o - | gst-launch-1.0 fdsrc ! video/x-h264,width=1280,height=720,framerate=30/1,noise-reduction=1,profile=high,stream-format=byte-stream ! h264parse ! queue ! flvmux streamable=true ! rtmpsink location=\"rtmp://10.1.1.68/live/stream\"``` ``` + +# Stream video from generic USB camera + +with gst, very cpu heavy +``` +gst-launch-1.0 v4l2src ! image/jpeg,width=640,height=480,framerate=30/1 ! jpegdec ! x264enc ! flvmux streamable=true ! rtmpsink location="rtmp://10.20.86.88/live/stream" +``` + +with ffmpeg, cpu friendly +``` +ffmpeg -f v4l2 -framerate 30 -video_size 640x480 -i /dev/video0 -b:v 2M -f flv rtmp://10.20.86.88/live/stream +``` From ce6b06544a011a8074b4a8462b7be2c5e65430de Mon Sep 17 00:00:00 2001 From: Joel Date: Sat, 6 Feb 2021 23:51:24 +0100 Subject: [PATCH 045/246] when importing complib a version check is now performed and the user is notified if he is using an outdated version --- build_deb.sh | 2 +- compLib/__init__.py | 14 ++++++++++++-- postinstall.sh | 6 ++++++ setup.py | 2 +- 4 files changed, 20 insertions(+), 4 deletions(-) diff --git a/build_deb.sh b/build_deb.sh index 2daeffb..d39b392 100644 --- a/build_deb.sh +++ b/build_deb.sh @@ -34,7 +34,7 @@ fpm -s python --python-bin python3 --python-pip pip3 --python-package-name-prefi -d "python3-pigpio" \ -d "python3-numpy" \ -d "ffmpeg" \ - -v 0.0.4-17 -t deb setup.py + -v 0.0.4-19 -t deb setup.py # --deb-changelog changelog \ # --deb-upstream-changelog changelog \ diff --git a/compLib/__init__.py b/compLib/__init__.py index 8a479bd..e89df10 100644 --- a/compLib/__init__.py +++ b/compLib/__init__.py @@ -1,6 +1,16 @@ -__version__ = "0.0.4-17" +__version__ = "0.0.4-19" import compLib.LogstashLogging import logging +import apt -print(f"Starting compLib! Version: {__version__} ...") \ No newline at end of file +try: + __versions = apt.Cache()["python3-complib"].versions + if len(__versions) != 1: + print(f"Starting compLib! \033[91mVersion: {__version__} is outdated\033[0m\n" + f"\033[92m[!] run the command 'apt update && apt install python3-complib' to install the newest version\033[0m") + else: + print(f"Starting compLib! \033[92mVersion: {__version__} is up to date\033[0m") +except Exception as e: + compLib.LogstashLogging.Logging.get_logger().error(f"error during checking apt package version -> {str(e)}") + print(f"\033[91merror during checking apt package version -> {str(e)}\033[0m\n") diff --git a/postinstall.sh b/postinstall.sh index 1d67a3a..1d26bbe 100644 --- a/postinstall.sh +++ b/postinstall.sh @@ -1,3 +1,9 @@ +grep -qxF "apt update" /etc/rc.local +if [ $? -ne 0 ]; then + echo "adding apt update to rc.local" + sed -i "2s/^/apt update\n/" /etc/rc.local +fi + install_package() { echo "Installing package '$1' via pip3" pip3 install "$1" diff --git a/setup.py b/setup.py index 34585a6..cbfcd56 100644 --- a/setup.py +++ b/setup.py @@ -12,7 +12,7 @@ else: setuptools.setup( name="complib", - version="0.0.4-17", + version="0.0.4-19", author="F-WuTs", author_email="--", description="", From 5e46e8068a867dba2aafc99ba40a806308d5a983 Mon Sep 17 00:00:00 2001 From: Joel Date: Wed, 10 Feb 2021 03:22:55 +0100 Subject: [PATCH 046/246] changed api client according to specification bug fixes in VisionDaemon --- build_deb.sh | 2 +- compLib/Api.py | 36 +++++----- compLib/VisionDaemon.py | 19 +++--- compLib/__init__.py | 2 +- setup.py | 2 +- test.py | 145 ++++++++++++++++++++++++++++++---------- 6 files changed, 143 insertions(+), 63 deletions(-) diff --git a/build_deb.sh b/build_deb.sh index d39b392..72aa52f 100644 --- a/build_deb.sh +++ b/build_deb.sh @@ -34,7 +34,7 @@ fpm -s python --python-bin python3 --python-pip pip3 --python-package-name-prefi -d "python3-pigpio" \ -d "python3-numpy" \ -d "ffmpeg" \ - -v 0.0.4-19 -t deb setup.py + -v 0.0.4-20 -t deb setup.py # --deb-changelog changelog \ # --deb-upstream-changelog changelog \ diff --git a/compLib/Api.py b/compLib/Api.py index 794d86d..8c614a4 100644 --- a/compLib/Api.py +++ b/compLib/Api.py @@ -1,3 +1,5 @@ +from typing import Dict, Tuple + import requests import json import os @@ -19,37 +21,39 @@ class Seeding: """ @staticmethod - def get_park() -> int: + def get_park() -> Tuple[Dict, int]: """Get a parkingsapce from the api. - :return: An int between 0 and 3 - :rtype: int + :return: Json Object and status code as returned by the api. + :rtype: Tuple[Dict, int] """ - result = json.loads(requests.get(API_URL_GET_PARK).content)["id"] - Logging.get_logger().debug(f"Seeding.get_park = {result}") - return result + res = requests.get(API_URL_GET_PARK) + result = json.loads(res.content) + Logging.get_logger().debug(f"Seeding.get_park = {result}, status code = {res.status_code}") + return result, res.status_code @staticmethod - def pay_park() -> bool: + def pay_park() -> int: """Pay for parking. - :return: True if successful, False if not successful - :rtype: bool + :return: Status code as returned by the api. + :rtype: int """ - result = requests.get(API_URL_PAY_PARK).status_code == 200 + result = requests.get(API_URL_PAY_PARK).status_code Logging.get_logger().debug(f"Seeding.pay_park = {result}") return result @staticmethod - def simon_says() -> int: + def simon_says() -> Tuple[Dict, int]: """Get next simon says zone from the api. - :return: An int between 0 and 3 or -1 after making this request 5 times. - :rtype: int + :return: Json Object and status code as returned by the api. + :rtype: Tuple[Dict, int] """ - result = json.loads(requests.get(API_URL_SIMON_SAYS).content)["id"] - Logging.get_logger().debug(f"Seeding.simon_says = {result}") - return result + res = requests.get(API_URL_SIMON_SAYS) + result = json.loads(res.content) + Logging.get_logger().debug(f"Seeding.simon_says = {result}, status code = {res.status_code}") + return result, res.status_code class Position: diff --git a/compLib/VisionDaemon.py b/compLib/VisionDaemon.py index f46bf78..81dee7d 100644 --- a/compLib/VisionDaemon.py +++ b/compLib/VisionDaemon.py @@ -8,11 +8,13 @@ from LogstashLogging import logstash_logger from threading import Thread import logging +RUN_CHECK = False try: from Battery import Battery from Buzzer import Buzzer + RUN_CHECK = True except Exception as e: - logstash_logger.error("unable to import battery or buzzer in daemon") + logstash_logger.error(f"unable to import battery or buzzer in daemon -> {str(e)}") __run = """raspivid -t 0 -b 5000000 -w 1280 -h 720 -fps 30 -n -o - | gst-launch-1.0 fdsrc ! video/x-h264,width=1280,height=720,framerate=30/1,noise-reduction=1,profile=high,stream-format=byte-stream ! h264parse ! queue ! flvmux streamable=true ! rtmpsink location=\"rtmp://localhost/live/stream\"""" @@ -43,12 +45,13 @@ if __name__ == '__main__': logstash_logger.info("starting battery checker") battery_checker = None - try: - battery_checker = threading.Thread(target=check_battery) - battery_checker.start() - logstash_logger.info("starting battery checker - DONE") - except Exception as e: - logstash_logger.error(f"could not start battery checker -> {str(e)}") + if RUN_CHECK: + try: + battery_checker = threading.Thread(target=check_battery) + battery_checker.start() + logstash_logger.info("starting battery checker - DONE") + except Exception as e: + logstash_logger.error(f"could not start battery checker -> {str(e)}") if STREAM_RASPI: logstash_logger.info("starting gstreamer background process") @@ -59,5 +62,5 @@ if __name__ == '__main__': if battery_checker is not None: battery_checker.join() else: - logstash_logger.info("battery checker failed to initialize.. sleeping for a day") + logstash_logger.info("battery checker failed to initialize.. sleeping for a day, good night") time.sleep(60*60*24) diff --git a/compLib/__init__.py b/compLib/__init__.py index e89df10..90b556e 100644 --- a/compLib/__init__.py +++ b/compLib/__init__.py @@ -1,4 +1,4 @@ -__version__ = "0.0.4-19" +__version__ = "0.0.4-20" import compLib.LogstashLogging import logging diff --git a/setup.py b/setup.py index cbfcd56..303818a 100644 --- a/setup.py +++ b/setup.py @@ -12,7 +12,7 @@ else: setuptools.setup( name="complib", - version="0.0.4-19", + version="0.0.4-20", author="F-WuTs", author_email="--", description="", diff --git a/test.py b/test.py index 56a223e..228e8b7 100644 --- a/test.py +++ b/test.py @@ -20,68 +20,141 @@ from multiprocessing import Process from compLib import LogstashLogging from compLib import Api -class MyTestCase(unittest.TestCase): - def test_get_park(self): - ret = Api.Seeding.get_park() - assert type(ret) is int - got = [] - while len(got) != 4: - ret = Api.Seeding.get_park() - assert 0 <= ret < 4 - if ret not in got: - got.append(ret) - assert True +def change_api_state(park_id: int = 0, in_get_park: bool = False, was_in_park: bool = False, + simon_says_ids: list = [0, 0, 0, 0, 0], + in_simon_zone: bool = False): + data = { + "parkId": park_id, + "inGetPark": in_get_park, + "wasInPark": was_in_park, + "simonSaysIDs": simon_says_ids, + "inSimonZone": in_simon_zone + } + + requests.post("http://localhost:5000/api/api/updateState", json=data) + + +class TestApiServer(unittest.TestCase): + def test_get_park(self): + ret, code = Api.Seeding.get_park() + id = ret["id"] + assert type(ret) is dict + assert type(id) is int + assert id == -1 + assert type(code) is int + assert code == 403 + + change_api_state(in_get_park=True) + + ret, code = Api.Seeding.get_park() + id = ret["id"] + assert type(ret) is dict + assert type(id) is int + assert 0 <= id < 4 + assert type(code) is int + assert code == 200 def test_pay_park(self): ret = Api.Seeding.pay_park() - assert type(ret) is bool + assert type(ret) is int + assert ret == 402 + + change_api_state(was_in_park=True) + + ret = Api.Seeding.pay_park() + assert type(ret) is int + assert ret == 402 + + change_api_state(was_in_park=True, in_get_park=True) + + ret = Api.Seeding.pay_park() + assert type(ret) is int + assert ret == 201 def test_simon_says(self): - ret = Api.Seeding.simon_says() - assert type(ret) is int - got = [] - while len(got) != 4: - ret = Api.Seeding.simon_says() - if ret != -1: - assert 0 <= ret < 4 - if ret not in got: - got.append(ret) - else: - self.resetApi() + change_api_state(in_simon_zone=False) + ret, code = Api.Seeding.simon_says() + id = ret["id"] + assert type(ret) is dict + assert type(id) is int + assert type(code) is int + assert code == 403 + assert id == -1 - assert True + got = [] + while len(got) != 5: + change_api_state(in_simon_zone=True) + ret, code = Api.Seeding.simon_says() + id = ret["id"] + assert type(ret) is dict + assert type(id) is int + assert type(code) is int + assert code == 200 + assert id <= 0 < 4 + got.append(ret) + print(got) + + change_api_state(in_simon_zone=True) + ret, code = Api.Seeding.simon_says() + id = ret["id"] + assert type(ret) is dict + assert type(id) is int + assert type(code) is int + assert code == 200 + assert id == -1 + + change_api_state(in_simon_zone=False) + ret, code = Api.Seeding.simon_says() + id = ret["id"] + assert type(ret) is dict + assert type(id) is int + assert type(code) is int + assert code == 403 + assert id == -1 def test_simon_says_iterations(self): - for i in range(0, 4): - ret = Api.Seeding.simon_says() - assert type(ret) is int - assert 0 <= ret < 4 + for i in range(0, 5): + change_api_state(in_simon_zone=True) + ret, status = Api.Seeding.simon_says() + assert type(ret) is dict + assert type(status) is int + assert type(ret["id"]) is int + assert 0 <= ret["id"] < 4 # after 4 iterations the api should only return -1 from now for i in range(0, 10): - assert Api.Seeding.simon_says() == -1 + assert Api.Seeding.simon_says()[0]["id"] == -1 # after api reset this test should work again self.resetApi() for i in range(0, 4): - ret = Api.Seeding.simon_says() - assert type(ret) is int - assert 0 <= ret < 4 + change_api_state(in_simon_zone=True) + ret, status = Api.Seeding.simon_says() + assert type(ret) is dict + assert type(status) is int + assert type(ret["id"]) is int + assert 0 <= ret["id"] < 4 for i in range(0, 10): - assert Api.Seeding.simon_says() == -1 + assert Api.Seeding.simon_says()[0]["id"] == -1 - def test_simon_says_non_reapet(self): + def test_simon_says_non_repeat(self): """ + Note: this test will fail if testing against the local api as the + configuration is to return zeros if not otherwise specified. + Checks if simons says does not send the robot to the same position again. """ - last_pos = Api.Seeding.simon_says() + last_pos, status = Api.Seeding.simon_says() + last_pos = last_pos["id"] for i in range(0, 100): - next_pos = Api.Seeding.simon_says() + change_api_state(in_simon_zone=True) + next_pos, status = Api.Seeding.simon_says() + next_pos = next_pos["id"] if next_pos == -1: last_pos = -1 # state is reset, so reset here as well self.resetApi() From d46873204033addacb9fd65e8a184afd3f608511 Mon Sep 17 00:00:00 2001 From: Joel Date: Wed, 10 Feb 2021 22:41:23 +0100 Subject: [PATCH 047/246] changed api according to specification --- build_deb.sh | 2 +- compLib/Api.py | 50 +++++++++++--------- compLib/__init__.py | 2 +- docs/source/lib/Api.rst | 51 +++++++++++--------- setup.py | 2 +- test.py | 101 ++++++++++++++++++++++++++++++++++++---- 6 files changed, 150 insertions(+), 58 deletions(-) diff --git a/build_deb.sh b/build_deb.sh index 72aa52f..6197626 100644 --- a/build_deb.sh +++ b/build_deb.sh @@ -34,7 +34,7 @@ fpm -s python --python-bin python3 --python-pip pip3 --python-package-name-prefi -d "python3-pigpio" \ -d "python3-numpy" \ -d "ffmpeg" \ - -v 0.0.4-20 -t deb setup.py + -v 0.1.0-0 -t deb setup.py # --deb-changelog changelog \ # --deb-upstream-changelog changelog \ diff --git a/compLib/Api.py b/compLib/Api.py index 8c614a4..9c6e0a6 100644 --- a/compLib/Api.py +++ b/compLib/Api.py @@ -1,4 +1,4 @@ -from typing import Dict, Tuple +from typing import Dict, Tuple, List import requests import json @@ -59,6 +59,7 @@ class Seeding: class Position: """Datastructure for holding a position """ + def __init__(self, x, y, degrees): self.x = x self.y = y @@ -68,46 +69,51 @@ class Position: class DoubleElim: """Class used for communicating with double elimination api """ + @staticmethod - def get_position() -> Position: + def get_position() -> Tuple[Position, int]: """Get position of the robot :return: A Position object with robot position - :rtype: Position + :rtype: Tuple[Position, int] """ - response = json.loads(requests.get(API_URL_GET_POS).content) - Logging.get_logger().debug(f"DoubleElim.get_position = {response}") - return Position(response["x"], response["y"], response["degrees"]) + res = requests.get(API_URL_GET_POS) + response = json.loads(res.content) + Logging.get_logger().debug(f"DoubleElim.get_position = {response}, status code = {res.status_code}") + return Position(response["x"], response["y"], response["degrees"]), res.status_code @staticmethod - def get_opponent() -> Position: + def get_opponent() -> Tuple[Position, int]: """Get position of the opponents robot :return: A Position object with opponents robot position - :rtype: Position + :rtype: Tuple[Position, int] """ - response = json.loads(requests.get(API_URL_GET_OP).content) - Logging.get_logger().debug(f"DoubleElim.get_opponent = x:{response}") - return Position(response["x"], response["y"], response["degrees"]) + res = requests.get(API_URL_GET_OP) + response = json.loads(res.content) + Logging.get_logger().debug(f"DoubleElim.get_opponent = x:{response}, status code = {res.status_code}") + return Position(response["x"], response["y"], response["degrees"]), res.status_code @staticmethod - def get_goal() -> Position: + def get_goal() -> Tuple[Position, int]: """Get position of the goal :return: A Position object with x and y coordinates of the goal, rotation is always -1 - :rtype: Position + :rtype: Tuple[Position, int] """ - response = json.loads(requests.get(API_URL_GET_GOAL).content) - Logging.get_logger().debug(f"DoubleElim.get_goal = x:{response}") - return Position(response["x"], response["y"], -1) + res = requests.get(API_URL_GET_GOAL) + response = json.loads(res.content) + Logging.get_logger().debug(f"DoubleElim.get_goal = {response}, status code = {res.status_code}") + return Position(response["x"], response["y"], -1), res.status_code @staticmethod - def get_items() -> list: + def get_items() -> Tuple[List[Dict], int]: """Get a list with all current items - :return: A list will all items currently on the game field. Items are dictionaries that look like: {"id": 0} - :rtype: list + :return: A list will all items currently on the game field. Items are dictionaries that look like: {"id": 0, "x": 0, "y": 0} + :rtype: Tuple[List[Dict], int] """ - result = json.loads(requests.get(API_URL_GET_ITEMS).content) - Logging.get_logger().debug(f"DoubleElim.get_items = {result}") - return result + res = requests.get(API_URL_GET_ITEMS) + response = json.loads(res.content) + Logging.get_logger().debug(f"DoubleElim.get_items = {response}, status code = {res.status_code}") + return response, res.status_code diff --git a/compLib/__init__.py b/compLib/__init__.py index 90b556e..28d1de1 100644 --- a/compLib/__init__.py +++ b/compLib/__init__.py @@ -1,4 +1,4 @@ -__version__ = "0.0.4-20" +__version__ = "0.1.0-0" import compLib.LogstashLogging import logging diff --git a/docs/source/lib/Api.rst b/docs/source/lib/Api.rst index 7517d76..18605ae 100644 --- a/docs/source/lib/Api.rst +++ b/docs/source/lib/Api.rst @@ -32,26 +32,31 @@ Calling Seeding API from compLib.Api import Seeding - park = Seeding.get_park() - print(f"I should move to parking position: {park}") - - if park == 0: - print(f"I can't move to this position yet :(") - elif park == 1: - print(f"Moving to position 1!") - # drive to parking position using Motors module... - print(f"Now hopefully at position 1") - # drive back using Motors module... - elif park == 2: - # do something similar to park == 1.. - elif park == 3: - # do something similar to park == 1.. - - success = Seeding.pay_park() - if success: - print(f"We scored some points!") + park, code = Seeding.get_park() + if code == 403: + print(f"I am not in the correct zone to make that request!") else: - print(f"We failed :(") + park = park["id"] + print(f"I should move to parking position: {park}") + + if park == 0: + print(f"I can't move to this position yet :(") + elif park == 1: + print(f"Moving to position 1!") + # drive to parking position using Motors module... + print(f"Now hopefully at position 1") + # drive back using Motors module... + elif park == 2: + # do something similar to park == 1.. + elif park == 3: + # do something similar to park == 1.. + + success = Seeding.pay_park() + # check which code the api returned + if success == 204: + print(f"We scored some points!") + else: + print(f"We failed :(") Calling Double Elimination API ---------------------------------- @@ -60,8 +65,8 @@ Calling Double Elimination API from compLib.Api import DoubleElim - position = DoubleElim.get_position() - print(f"Position of my robot is: x={position.x}, y={position.y} and rotation is: {position.degrees}") + position, status = DoubleElim.get_position() + print(f"Position of my robot is: x={position.x}, y={position.y} and rotation is: {position.degrees}, the server responded with status code: {status}") - goal = DoubleElim.get_goal() - print(f"Goal is at: x={goal.x}, y={goal.y}") + goal, status = DoubleElim.get_goal() + print(f"Goal is at: x={goal.x}, y={goal.y}, the server responded with status code: {status}") diff --git a/setup.py b/setup.py index 303818a..10aef70 100644 --- a/setup.py +++ b/setup.py @@ -12,7 +12,7 @@ else: setuptools.setup( name="complib", - version="0.0.4-20", + version="0.1.0-0", author="F-WuTs", author_email="--", description="", diff --git a/test.py b/test.py index 228e8b7..3438843 100644 --- a/test.py +++ b/test.py @@ -35,6 +35,19 @@ def change_api_state(park_id: int = 0, in_get_park: bool = False, was_in_park: b requests.post("http://localhost:5000/api/api/updateState", json=data) +def change_double_elim_api_state(started: bool = False, goal: list = [0, 0], position: list = [0, 0, 0], + op_position: list = [0, 0, 0], items: list = []): + data = { + "started": started, + "goal": goal, + "position": position, + "opPosition": op_position, + "items": items + } + + requests.post("http://localhost:5000/api/api/updateDoubleElimState", json=data) + + class TestApiServer(unittest.TestCase): def test_get_park(self): ret, code = Api.Seeding.get_park() @@ -70,7 +83,7 @@ class TestApiServer(unittest.TestCase): ret = Api.Seeding.pay_park() assert type(ret) is int - assert ret == 201 + assert ret == 204 def test_simon_says(self): change_api_state(in_simon_zone=False) @@ -163,26 +176,94 @@ class TestApiServer(unittest.TestCase): last_pos = next_pos def test_get_position(self): - response = Api.DoubleElim.get_position() + response, status = Api.DoubleElim.get_position() + assert type(status) is int + assert status == 503 assert type(response) == Api.Position - assert 0 <= response.x - assert 0 <= response.y - assert 0 <= response.degrees <= 360 + assert 0 == response.x + assert 0 == response.y + assert 0 == response.degrees + + change_double_elim_api_state(started=True, position=[50, 75, 90]) + + response, status = Api.DoubleElim.get_position() + assert type(status) is int + assert status == 200 + assert type(response) == Api.Position + assert 50 == response.x + assert 75 == response.y + assert 90 == response.degrees def test_get_opponent(self): - response = Api.DoubleElim.get_opponent() + response, status = Api.DoubleElim.get_opponent() + assert type(status) is int + assert status == 503 assert type(response) == Api.Position + assert 0 == response.x + assert 0 == response.y + assert 0 == response.degrees + + change_double_elim_api_state(started=True, op_position=[50, 75, 90]) + + response, status = Api.DoubleElim.get_opponent() + assert type(status) is int + assert status == 200 + assert type(response) == Api.Position + assert 50 == response.x + assert 75 == response.y + assert 90 == response.degrees def test_get_goal(self): - response = Api.DoubleElim.get_goal() + response, status = Api.DoubleElim.get_goal() + assert type(status) is int + assert status == 503 assert type(response) == Api.Position - assert 0 <= response.x - assert 0 <= response.y + assert 0 == response.x + assert 0 == response.y + assert response.degrees == -1 + + change_double_elim_api_state(started=True, goal=[50, 75]) + + response, status = Api.DoubleElim.get_goal() + assert type(status) is int + assert status == 200 + assert type(response) == Api.Position + assert 50 == response.x + assert 75 == response.y assert response.degrees == -1 def test_get_items(self): - response = Api.DoubleElim.get_items() + response, status = Api.DoubleElim.get_items() + assert type(status) is int + assert status == 503 assert type(response) == list + assert response == [] + + change_double_elim_api_state(started=True) + + response, status = Api.DoubleElim.get_items() + assert type(status) is int + assert status == 200 + assert type(response) == list + assert response == [] + + change_double_elim_api_state(started=True, items=[{"id": 0, "x": 50, "y": 75}]) + + response, status = Api.DoubleElim.get_items() + assert type(status) is int + assert status == 200 + assert type(response) == list + assert len(response) == 1 + assert response == [{"id": 0, "x": 50, "y": 75}] + + change_double_elim_api_state(started=True, items=[{"id": 0, "x": 50, "y": 75}, {"id": 2, "x": -50, "y": -75}]) + + response, status = Api.DoubleElim.get_items() + assert type(status) is int + assert status == 200 + assert type(response) == list + assert len(response) == 2 + assert response == [{"id": 0, "x": 50, "y": 75}, {"id": 2, "x": -50, "y": -75}] def setUp(self) -> None: if START_SERVER: From 08675bdc5cbaeeb068998b9d0d00fa889ced6d2d Mon Sep 17 00:00:00 2001 From: Konstantin Lampalzer Date: Fri, 12 Feb 2021 17:43:10 +0100 Subject: [PATCH 048/246] Fix IR initial state --- compLib/IRSensor.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/compLib/IRSensor.py b/compLib/IRSensor.py index b6fe55d..dfd8e6b 100644 --- a/compLib/IRSensor.py +++ b/compLib/IRSensor.py @@ -24,9 +24,9 @@ GPIO.set_mode(BOTTOM_MIDDLE_PIN, pigpio.INPUT) GPIO.set_mode(BOTTOM_RIGHT_PIN, pigpio.INPUT) states = { - str(BOTTOM_LEFT_PIN): 0, - str(BOTTOM_MIDDLE_PIN): 0, - str(BOTTOM_RIGHT_PIN): 0} + str(BOTTOM_LEFT_PIN): GPIO.read(BOTTOM_LEFT_PIN), + str(BOTTOM_MIDDLE_PIN): GPIO.read(BOTTOM_MIDDLE_PIN), + str(BOTTOM_RIGHT_PIN): GPIO.read(BOTTOM_RIGHT_PIN)} def gpio_callback(gpio, level, tick): states[str(gpio)] = level From a7d1fca14abdfad3b96f0e7c6007b8a2a5c1b308 Mon Sep 17 00:00:00 2001 From: Joel Date: Thu, 4 Mar 2021 21:48:54 +0100 Subject: [PATCH 049/246] api position objects now implements __str__ and __repr__ --- build_deb.sh | 2 +- compLib/Api.py | 6 ++++++ compLib/__init__.py | 4 ++-- setup.py | 2 +- 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/build_deb.sh b/build_deb.sh index 6197626..567adfe 100644 --- a/build_deb.sh +++ b/build_deb.sh @@ -34,7 +34,7 @@ fpm -s python --python-bin python3 --python-pip pip3 --python-package-name-prefi -d "python3-pigpio" \ -d "python3-numpy" \ -d "ffmpeg" \ - -v 0.1.0-0 -t deb setup.py + -v 0.1.0-3 -t deb setup.py # --deb-changelog changelog \ # --deb-upstream-changelog changelog \ diff --git a/compLib/Api.py b/compLib/Api.py index 9c6e0a6..4b4ffdc 100644 --- a/compLib/Api.py +++ b/compLib/Api.py @@ -65,6 +65,12 @@ class Position: self.y = y self.degrees = degrees + def __repr__(self): + return f"Position(x={self.x}, y={self.y}, degrees={self.degrees})" + + def __str__(self): + return f"Position(x={round(self.x, 5)}, y={round(self.y, 5)}, degrees={round(self.degrees, 5)})" + class DoubleElim: """Class used for communicating with double elimination api diff --git a/compLib/__init__.py b/compLib/__init__.py index 28d1de1..bcbe0d7 100644 --- a/compLib/__init__.py +++ b/compLib/__init__.py @@ -1,4 +1,4 @@ -__version__ = "0.1.0-0" +__version__ = "0.1.0-3" import compLib.LogstashLogging import logging @@ -8,7 +8,7 @@ try: __versions = apt.Cache()["python3-complib"].versions if len(__versions) != 1: print(f"Starting compLib! \033[91mVersion: {__version__} is outdated\033[0m\n" - f"\033[92m[!] run the command 'apt update && apt install python3-complib' to install the newest version\033[0m") + f"\033[92m[!] run the command 'sudo apt update && sudo apt install python3-complib' to install the newest version\033[0m") else: print(f"Starting compLib! \033[92mVersion: {__version__} is up to date\033[0m") except Exception as e: diff --git a/setup.py b/setup.py index 10aef70..0588203 100644 --- a/setup.py +++ b/setup.py @@ -12,7 +12,7 @@ else: setuptools.setup( name="complib", - version="0.1.0-0", + version="0.1.0-3", author="F-WuTs", author_email="--", description="", From ee9432317aaa9d7ea1b29f5cb4557cc017257563 Mon Sep 17 00:00:00 2001 From: Joel Date: Fri, 5 Mar 2021 15:45:34 +0100 Subject: [PATCH 050/246] /getScores is now implemented in api --- build_deb.sh | 2 +- compLib/Api.py | 13 +++++++++++++ compLib/__init__.py | 2 +- setup.py | 2 +- 4 files changed, 16 insertions(+), 3 deletions(-) diff --git a/build_deb.sh b/build_deb.sh index 567adfe..a710b7b 100644 --- a/build_deb.sh +++ b/build_deb.sh @@ -34,7 +34,7 @@ fpm -s python --python-bin python3 --python-pip pip3 --python-package-name-prefi -d "python3-pigpio" \ -d "python3-numpy" \ -d "ffmpeg" \ - -v 0.1.0-3 -t deb setup.py + -v 0.1.1-0 -t deb setup.py # --deb-changelog changelog \ # --deb-upstream-changelog changelog \ diff --git a/compLib/Api.py b/compLib/Api.py index 4b4ffdc..230c563 100644 --- a/compLib/Api.py +++ b/compLib/Api.py @@ -14,6 +14,7 @@ API_URL_GET_ITEMS = API_URL + "getItems" API_URL_GET_PARK = API_URL + "getPark" API_URL_PAY_PARK = API_URL + "payPark" API_URL_SIMON_SAYS = API_URL + "simonSays" +API_URL_GET_SCORES = API_URL + "getScores" class Seeding: @@ -123,3 +124,15 @@ class DoubleElim: response = json.loads(res.content) Logging.get_logger().debug(f"DoubleElim.get_items = {response}, status code = {res.status_code}") return response, res.status_code + + @staticmethod + def get_scores() -> Tuple[Dict, int]: + """Get the current scores + + :return: A dictionary with all scores included like: {"self":2,"opponent":0} + :rtype: Tuple[Dict, int] + """ + res = requests.get(API_URL_GET_SCORES) + response = json.loads(res.content) + Logging.get_logger().debug(f"DoubleElim.get_scores = {response}, status code = {res.status_code}") + return response, res.status_code diff --git a/compLib/__init__.py b/compLib/__init__.py index bcbe0d7..fe11fc3 100644 --- a/compLib/__init__.py +++ b/compLib/__init__.py @@ -1,4 +1,4 @@ -__version__ = "0.1.0-3" +__version__ = "0.1.1-0" import compLib.LogstashLogging import logging diff --git a/setup.py b/setup.py index 0588203..a547066 100644 --- a/setup.py +++ b/setup.py @@ -12,7 +12,7 @@ else: setuptools.setup( name="complib", - version="0.1.0-3", + version="0.1.1-0", author="F-WuTs", author_email="--", description="", From 0ddc8e6c74e7ce4c6e1614f080aeb6dc17268ee7 Mon Sep 17 00:00:00 2001 From: HerrNamenlos123 Date: Fri, 19 Mar 2021 15:09:21 +0100 Subject: [PATCH 051/246] Added support for new analog IR sensors --- compLib/IRSensor.py | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/compLib/IRSensor.py b/compLib/IRSensor.py index dfd8e6b..d98b6dd 100644 --- a/compLib/IRSensor.py +++ b/compLib/IRSensor.py @@ -2,6 +2,7 @@ import pigpio from compLib.ADC import ADC from compLib.LogstashLogging import Logging +import spidev TOP_LEFT_CHANNEL = 0 TOP_RIGHT_CHANNEL = 1 @@ -14,6 +15,9 @@ BOTTOM_MIDDLE_PIN = 15 BOTTOM_RIGHT_PIN = 23 adc = ADC() +spi = spidev.SpiDev() +spi.open(0, 0) +spi.max_speed_hz = 1000000 # GPIO.setmode(GPIO.BCM) @@ -89,3 +93,39 @@ class IRSensor(object): """ return states[str(BOTTOM_RIGHT_PIN)] # return GPIO.read(BOTTOM_RIGHT_PIN) + + @staticmethod + def bottom_left_analog() -> int: + """Get bottom left infrared sensor value: ranges from 0 to 1023 + + :return: 10-bit brightness value + :rtype: int + """ + channel = 2 + spi.writebytes([channel << 3, 0]) + bytes = spi.readbytes(2) + return (bytes[0] * 256 + bytes[1]) >> 2 + + @staticmethod + def bottom_middle_analog() -> int: + """Get bottom middle infrared sensor value: ranges from 0 to 1023 + + :return: 10-bit brightness value + :rtype: int + """ + channel = 1 + spi.writebytes([channel << 3, 0]) + bytes = spi.readbytes(2) + return (bytes[0] * 256 + bytes[1]) >> 2 + + @staticmethod + def bottom_right_analog() -> int: + """Get bottom right infrared sensor value: ranges from 0 to 1023 + + :return: 10-bit brightness value + :rtype: int + """ + channel = 0 + spi.writebytes([channel << 3, 0]) + bytes = spi.readbytes(2) + return (bytes[0] * 256 + bytes[1]) >> 2 \ No newline at end of file From 3101e5625216a79862067718359df21f81995b6a Mon Sep 17 00:00:00 2001 From: HerrNamenlos123 Date: Fri, 19 Mar 2021 15:16:16 +0100 Subject: [PATCH 052/246] Lowered minimal battery voltage and added ir sensor example --- compLib/Battery.py | 2 +- docs/source/lib/IRSensor.rst | 17 ++++++++++++++++- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/compLib/Battery.py b/compLib/Battery.py index 2fc0eb1..38f43a8 100644 --- a/compLib/Battery.py +++ b/compLib/Battery.py @@ -4,7 +4,7 @@ from compLib.LogstashLogging import Logging BATTERY_CHANNEL = 2 BATTERY_COUNT = 2 BATTERY_MULTIPLIER = 3 -BATTERY_MIN_VOLTAGE = 3.6 +BATTERY_MIN_VOLTAGE = 3.4 BATTERY_MAX_VOLTAGE = 4.2 adc = ADC() diff --git a/docs/source/lib/IRSensor.rst b/docs/source/lib/IRSensor.rst index 72e60f9..26332b9 100644 --- a/docs/source/lib/IRSensor.rst +++ b/docs/source/lib/IRSensor.rst @@ -4,4 +4,19 @@ Infrared Sensor **************** .. autoclass:: compLib.IRSensor.IRSensor - :members: \ No newline at end of file + :members: + +Examples +========= + +Testing analog sensors +------------------------- + +.. code-block:: python + + from compLib import IRSensor + + ir = IRSensor.IRSensor() + + while True: + print ("left: {} middle: {} right: {}".format(ir.bottom_left_analog(), ir.bottom_middle_analog(), ir.bottom_right_analog())) \ No newline at end of file From 4d5b5a506392c5a34a51d5a8a8117554d656bee1 Mon Sep 17 00:00:00 2001 From: Joel Date: Fri, 19 Mar 2021 15:24:46 +0100 Subject: [PATCH 053/246] update package included missing dependency --- build_deb.sh | 2 +- compLib/__init__.py | 2 +- postinstall.sh | 1 + setup.py | 2 +- 4 files changed, 4 insertions(+), 3 deletions(-) diff --git a/build_deb.sh b/build_deb.sh index a710b7b..00d3a38 100644 --- a/build_deb.sh +++ b/build_deb.sh @@ -34,7 +34,7 @@ fpm -s python --python-bin python3 --python-pip pip3 --python-package-name-prefi -d "python3-pigpio" \ -d "python3-numpy" \ -d "ffmpeg" \ - -v 0.1.1-0 -t deb setup.py + -v 0.1.2-0 -t deb setup.py # --deb-changelog changelog \ # --deb-upstream-changelog changelog \ diff --git a/compLib/__init__.py b/compLib/__init__.py index fe11fc3..d2db128 100644 --- a/compLib/__init__.py +++ b/compLib/__init__.py @@ -1,4 +1,4 @@ -__version__ = "0.1.1-0" +__version__ = "0.1.2-0" import compLib.LogstashLogging import logging diff --git a/postinstall.sh b/postinstall.sh index 1d26bbe..2da6340 100644 --- a/postinstall.sh +++ b/postinstall.sh @@ -20,6 +20,7 @@ install_package "requests" install_package "flask" install_package "python-logstash-async" install_package "RPi.GPIO" +install_package "spidev" echo "Setting up opencv4" pkg-config --modversion opencv4 diff --git a/setup.py b/setup.py index a547066..77aad49 100644 --- a/setup.py +++ b/setup.py @@ -12,7 +12,7 @@ else: setuptools.setup( name="complib", - version="0.1.1-0", + version="0.1.2-0", author="F-WuTs", author_email="--", description="", From e94d735e24277b47c3ea37e1f10376a1b3d78891 Mon Sep 17 00:00:00 2001 From: Konstantin Lampalzer Date: Sun, 28 Mar 2021 16:39:54 +0200 Subject: [PATCH 054/246] Add IRWrapper and change IRSensor logic --- compLib/IRSensor.py | 58 +++++++++++++++------ compLib/IRWrapper.py | 81 +++++++++++++++++++++++++++++ docs/source/conf.py | 2 +- docs/source/lib/IRWrapper.rst | 22 ++++++++ docs/source/lib/Linefollower.rst | 89 ++++++++++++++++++++++++++++++++ 5 files changed, 235 insertions(+), 17 deletions(-) create mode 100644 compLib/IRWrapper.py create mode 100644 docs/source/lib/IRWrapper.rst create mode 100644 docs/source/lib/Linefollower.rst diff --git a/compLib/IRSensor.py b/compLib/IRSensor.py index d98b6dd..69463fa 100644 --- a/compLib/IRSensor.py +++ b/compLib/IRSensor.py @@ -3,6 +3,8 @@ import pigpio from compLib.ADC import ADC from compLib.LogstashLogging import Logging import spidev +import threading +import time TOP_LEFT_CHANNEL = 0 TOP_RIGHT_CHANNEL = 1 @@ -14,6 +16,10 @@ BOTTOM_LEFT_PIN = 14 BOTTOM_MIDDLE_PIN = 15 BOTTOM_RIGHT_PIN = 23 +BOTTOM_LEFT_CHANNEL = 2 +BOTTOM_MIDDLE_CHANNEL = 1 +BOTTOM_RIGHT_CHANNEL = 0 + adc = ADC() spi = spidev.SpiDev() spi.open(0, 0) @@ -28,18 +34,46 @@ GPIO.set_mode(BOTTOM_MIDDLE_PIN, pigpio.INPUT) GPIO.set_mode(BOTTOM_RIGHT_PIN, pigpio.INPUT) states = { - str(BOTTOM_LEFT_PIN): GPIO.read(BOTTOM_LEFT_PIN), - str(BOTTOM_MIDDLE_PIN): GPIO.read(BOTTOM_MIDDLE_PIN), - str(BOTTOM_RIGHT_PIN): GPIO.read(BOTTOM_RIGHT_PIN)} + str(BOTTOM_LEFT_PIN): GPIO.read(BOTTOM_LEFT_PIN), + str(BOTTOM_MIDDLE_PIN): GPIO.read(BOTTOM_MIDDLE_PIN), + str(BOTTOM_RIGHT_PIN): GPIO.read(BOTTOM_RIGHT_PIN)} + +analog_states = { + str(BOTTOM_LEFT_CHANNEL): 0, + str(BOTTOM_MIDDLE_CHANNEL): 0, + str(BOTTOM_RIGHT_CHANNEL): 0} + def gpio_callback(gpio, level, tick): states[str(gpio)] = level -# print(gpio, level, tick) + GPIO.callback(BOTTOM_LEFT_PIN, pigpio.EITHER_EDGE, gpio_callback) GPIO.callback(BOTTOM_MIDDLE_PIN, pigpio.EITHER_EDGE, gpio_callback) GPIO.callback(BOTTOM_RIGHT_PIN, pigpio.EITHER_EDGE, gpio_callback) + +def read_analog_channel(channel): + spi.writebytes([channel << 3, 0]) + + time.sleep(0.0033) # 300HZ + + bytes = spi.readbytes(2) + return (bytes[0] * 256 + bytes[1]) >> 2 + + +def sensor_thread(): + while True: + analog_states[str(BOTTOM_LEFT_CHANNEL)] = read_analog_channel(BOTTOM_LEFT_CHANNEL) + analog_states[str(BOTTOM_MIDDLE_CHANNEL)] = read_analog_channel(BOTTOM_MIDDLE_CHANNEL) + analog_states[str(BOTTOM_RIGHT_CHANNEL)] = read_analog_channel(BOTTOM_RIGHT_CHANNEL) + + +analog_thread = threading.Thread(target=sensor_thread, daemon=True) +analog_thread.start() +time.sleep(0.25) + + class IRSensor(object): """Access the different IR Sensors at top / bottom of the robot """ @@ -101,10 +135,7 @@ class IRSensor(object): :return: 10-bit brightness value :rtype: int """ - channel = 2 - spi.writebytes([channel << 3, 0]) - bytes = spi.readbytes(2) - return (bytes[0] * 256 + bytes[1]) >> 2 + return analog_states[str(BOTTOM_LEFT_CHANNEL)] @staticmethod def bottom_middle_analog() -> int: @@ -113,10 +144,7 @@ class IRSensor(object): :return: 10-bit brightness value :rtype: int """ - channel = 1 - spi.writebytes([channel << 3, 0]) - bytes = spi.readbytes(2) - return (bytes[0] * 256 + bytes[1]) >> 2 + return analog_states[str(BOTTOM_MIDDLE_CHANNEL)] @staticmethod def bottom_right_analog() -> int: @@ -125,7 +153,5 @@ class IRSensor(object): :return: 10-bit brightness value :rtype: int """ - channel = 0 - spi.writebytes([channel << 3, 0]) - bytes = spi.readbytes(2) - return (bytes[0] * 256 + bytes[1]) >> 2 \ No newline at end of file + return analog_states[str(BOTTOM_RIGHT_CHANNEL)] + diff --git a/compLib/IRWrapper.py b/compLib/IRWrapper.py new file mode 100644 index 0000000..dd18206 --- /dev/null +++ b/compLib/IRWrapper.py @@ -0,0 +1,81 @@ +from compLib.IRSensor import IRSensor + +import time + +ir = IRSensor() + +MIN_VALUE = 0.0 +MAX_VALUE = 0.0 +MOVING_AVERAGE_SIZE = 30.0 + + +def approximate_rolling_average(avg, value): + avg -= avg / MOVING_AVERAGE_SIZE + avg += value / MOVING_AVERAGE_SIZE + return avg + + +class IRWrapper(object): + """Wrapper around the IRSensor to enable calibration of the sensor + """ + + @staticmethod + def calibrate(): + """Calibrate the black and white values of the IRSensors + This is done by putting the bot on black line with the middle sensor + Afterwards, all sensors are read for 2 seconds and filtered. + The minimum value is used for white, maximum is black. + """ + global MIN_VALUE + global MAX_VALUE + + left_avg = ir.bottom_left_analog() + middle_avg = ir.bottom_middle_analog() + right_avg = ir.bottom_right_analog() + + start_time = time.time() + while time.time() - start_time < 2: + left_avg = approximate_rolling_average(left_avg, ir.bottom_left_analog()) + middle_avg = approximate_rolling_average(middle_avg, ir.bottom_middle_analog()) + right_avg = approximate_rolling_average(right_avg, ir.bottom_right_analog()) + time.sleep(0.01) + + MIN_VALUE = min([left_avg, middle_avg, right_avg]) + MAX_VALUE = max([left_avg, middle_avg, right_avg]) + + @staticmethod + def adjust_for_calibration(raw_value: float) -> float: + """Adjust a raw sensor value to 0 to 1000 + + :return: Value between 0 and 1000, White and Black + :rtype: float + """ + x = (raw_value - MIN_VALUE) * 1000.0 / (MAX_VALUE - MIN_VALUE) + return max(min(1000.0, x), 0.0) + + @staticmethod + def bottom_left_calibrated() -> float: + """Returns calibrated value of the bottom left analog sensor + + :return: Value between 0 and 1000, White and Black + :rtype: float + """ + return IRWrapper.adjust_for_calibration(ir.bottom_left_analog()) + + @staticmethod + def bottom_middle_calibrated() -> float: + """Returns calibrated value of the bottom middle analog sensor + + :return: Value between 0 and 1000, White and Black + :rtype: float + """ + return IRWrapper.adjust_for_calibration(ir.bottom_middle_analog()) + + @staticmethod + def bottom_right_calibrated() -> float: + """Returns calibrated value of the bottom right analog sensor + + :return: Value between 0 and 1000, White and Black + :rtype: float + """ + return IRWrapper.adjust_for_calibration(ir.bottom_right_analog()) diff --git a/docs/source/conf.py b/docs/source/conf.py index a455a50..5c77524 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -35,7 +35,7 @@ extensions = [ 'sphinx_rtd_theme' ] -autodoc_mock_imports = ["smbus", "compLib.PCA9685", "RPi", "pigpio", "flask"] +autodoc_mock_imports = ["smbus", "compLib.PCA9685", "RPi", "pigpio", "flask", "apt", "spidev"] # Add any paths that contain templates here, relative to this directory. templates_path = ['_templates'] diff --git a/docs/source/lib/IRWrapper.rst b/docs/source/lib/IRWrapper.rst new file mode 100644 index 0000000..15232a7 --- /dev/null +++ b/docs/source/lib/IRWrapper.rst @@ -0,0 +1,22 @@ +.. _lib_irwrapper: + +Infrared Wrapper +**************** + +.. autoclass:: compLib.IRWrapper.IRWrapper + :members: + +Examples +========= + +Calibrating analog sensors +-------------------------- + +.. code-block:: python + + from compLib import IRWrapper + + ir = IRWrapper.IRWrapper() + + ir.calibrate() + print("left {} middle {} right {}".format(ir.bottom_left_calibrated(), ir.bottom_middle_calibrated(), ir.bottom_right_calibrated())) diff --git a/docs/source/lib/Linefollower.rst b/docs/source/lib/Linefollower.rst new file mode 100644 index 0000000..407d349 --- /dev/null +++ b/docs/source/lib/Linefollower.rst @@ -0,0 +1,89 @@ +.. _lib_Linefollower: + +Linefollower Examples +********************* + +Simple Linefollower +------------------------- + +.. code-block:: python + + import time + + from IRWrapper import IRWrapper + from compLib.Motor import Motor + + STRAIGHT_SPEED = 40.0 + TURN_SPEED = 40.0 + + COLOR_BREAK = 500 + + + def drive(left, right, active_break=False, back_mult=0.0): + left = max(min(left, 100), -100) + right = max(min(right, 100), -100) + + print("left {} right {}".format(left, right)) + + Motor.power(0, left) + Motor.power(1, left * back_mult) + Motor.power(2, right * back_mult) + Motor.power(3, right) + + if active_break: + time.sleep(0.001) + + Motor.power(0, 10) + Motor.power(1, 10) + Motor.power(2, 10) + Motor.power(3, 10) + + time.sleep(0.001) + + + def follow_till_line(): + while True: + print("left: {:.2f} middle: {:.2f} right: {:.2f}".format(IRWrapper.bottom_left_calibrated(), + IRWrapper.bottom_middle_calibrated(), + IRWrapper.bottom_right_calibrated())) + + left = IRWrapper.bottom_left_calibrated() + right = IRWrapper.bottom_right_calibrated() + + if left > COLOR_BREAK: + drive(-TURN_SPEED, TURN_SPEED, back_mult=1.25) + while IRWrapper.bottom_middle_calibrated() < COLOR_BREAK and \ + IRWrapper.bottom_right_calibrated() < COLOR_BREAK: + pass + drive(0, 0) + elif right > COLOR_BREAK: + drive(TURN_SPEED, -TURN_SPEED, back_mult=1.25) + while IRWrapper.bottom_middle_calibrated() < COLOR_BREAK and \ + IRWrapper.bottom_left_calibrated() < COLOR_BREAK: + pass + drive(0, 0) + else: + drive(STRAIGHT_SPEED, STRAIGHT_SPEED, True) + + if IRWrapper.bottom_left_calibrated() > 750 and IRWrapper.bottom_right_calibrated() > 750: + break + + print("left: {} middle: {} right: {}".format(IRWrapper.bottom_left_calibrated(), + IRWrapper.bottom_middle_calibrated(), + IRWrapper.bottom_right_calibrated())) + + drive(0, 0) + + time.sleep(0.2) + + + if __name__ == "__main__": + # Put bot with middle sensor onto black line + IRWrapper.calibrate() + + # Initialize Motors, so the bot doesn't speed off instantly + drive(1, 1) + time.sleep(1) + + # Follow line, till the left and right sensor are on black + follow_till_line() From 8bae96c8a91ee52c2ee18f96da1a46c83b07d19a Mon Sep 17 00:00:00 2001 From: Konstantin Lampalzer Date: Sun, 28 Mar 2021 21:42:44 +0200 Subject: [PATCH 055/246] Fix linefollower example --- docs/source/lib/Linefollower.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/lib/Linefollower.rst b/docs/source/lib/Linefollower.rst index 407d349..8918554 100644 --- a/docs/source/lib/Linefollower.rst +++ b/docs/source/lib/Linefollower.rst @@ -10,7 +10,7 @@ Simple Linefollower import time - from IRWrapper import IRWrapper + from compLib.IRWrapper import IRWrapper from compLib.Motor import Motor STRAIGHT_SPEED = 40.0 From 0e43f88fda0a9197cc92ca844466b84dc4ece76d Mon Sep 17 00:00:00 2001 From: Joel Klimont Date: Thu, 1 Apr 2021 00:19:59 +0200 Subject: [PATCH 056/246] updated vision to dismiss buffered frames --- build_deb.sh | 2 +- compLib/__init__.py | 2 +- setup.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/build_deb.sh b/build_deb.sh index 00d3a38..5c9a07e 100644 --- a/build_deb.sh +++ b/build_deb.sh @@ -34,7 +34,7 @@ fpm -s python --python-bin python3 --python-pip pip3 --python-package-name-prefi -d "python3-pigpio" \ -d "python3-numpy" \ -d "ffmpeg" \ - -v 0.1.2-0 -t deb setup.py + -v 0.1.4-0 -t deb setup.py # --deb-changelog changelog \ # --deb-upstream-changelog changelog \ diff --git a/compLib/__init__.py b/compLib/__init__.py index d2db128..3de1f50 100644 --- a/compLib/__init__.py +++ b/compLib/__init__.py @@ -1,4 +1,4 @@ -__version__ = "0.1.2-0" +__version__ = "0.1.4-0" import compLib.LogstashLogging import logging diff --git a/setup.py b/setup.py index 77aad49..1017398 100644 --- a/setup.py +++ b/setup.py @@ -12,7 +12,7 @@ else: setuptools.setup( name="complib", - version="0.1.2-0", + version="0.1.4-0", author="F-WuTs", author_email="--", description="", From c1451d27b58c49c3436a18a7f6c8541c0a3704ff Mon Sep 17 00:00:00 2001 From: Joel Klimont Date: Fri, 2 Apr 2021 13:51:31 +0200 Subject: [PATCH 057/246] updated vision to dismiss buffered frames --- compLib/Vision.py | 36 ++++++++++++++++++++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) diff --git a/compLib/Vision.py b/compLib/Vision.py index 5693198..2bd3558 100644 --- a/compLib/Vision.py +++ b/compLib/Vision.py @@ -1,4 +1,7 @@ import os +import queue +from queue import Queue + import cv2 import logging import threading @@ -40,6 +43,31 @@ class __Streaming: grab frames -> do your own processing -> publish frame -> view on http server """ + class __NoBufferVideoCapture: + def __init__(self, cam): + self.cap = cv2.VideoCapture(cam) + self.cap.set(3, 640) + self.cap.set(4, 480) + self.q = queue.Queue(maxsize=5) + t = threading.Thread(target=self._reader) + t.daemon = True + t.start() + + def _reader(self): + while True: + ret, frame = self.cap.read() + if not ret: + break + if not self.q.empty(): + try: + self.q.get_nowait() + except queue.Empty: + pass + self.q.put(frame) + + def read(self): + return self.q.get() + def __init__(self): """ Create instance of __Streaming class @@ -49,7 +77,10 @@ class __Streaming: """ Logging.get_logger().info("capturing rtmp stream is disabled in this version") #self.__camera_stream = cv2.VideoCapture(RTMP_SERVER) - self.__camera_stream = cv2.VideoCapture(0) + #self.__camera_stream = cv2.VideoCapture(0) + #self.__camera_stream.set(3, 640) + #self.__camera_stream.set(4, 480) + self.__camera_stream = self.__NoBufferVideoCapture(0) self.__newest_frame = None self.__lock = threading.Lock() Logging.get_logger().info("Initialized vision") @@ -60,7 +91,8 @@ class __Streaming: :return: An opencv frame """ - ret, img16 = self.__camera_stream.read() + #ret, img16 = self.__camera_stream.read() + img16 = self.__camera_stream.read() return img16 def publish_frame(self, image): From d84a45f6019a8a71c550b1611cc1b98a6bc7c934 Mon Sep 17 00:00:00 2001 From: Joel Klimont Date: Fri, 2 Apr 2021 13:52:01 +0200 Subject: [PATCH 058/246] updated vision to dismiss buffered frames --- build_deb.sh | 2 +- compLib/__init__.py | 2 +- setup.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/build_deb.sh b/build_deb.sh index 5c9a07e..1342431 100644 --- a/build_deb.sh +++ b/build_deb.sh @@ -34,7 +34,7 @@ fpm -s python --python-bin python3 --python-pip pip3 --python-package-name-prefi -d "python3-pigpio" \ -d "python3-numpy" \ -d "ffmpeg" \ - -v 0.1.4-0 -t deb setup.py + -v 0.1.4-2 -t deb setup.py # --deb-changelog changelog \ # --deb-upstream-changelog changelog \ diff --git a/compLib/__init__.py b/compLib/__init__.py index 3de1f50..9e2f688 100644 --- a/compLib/__init__.py +++ b/compLib/__init__.py @@ -1,4 +1,4 @@ -__version__ = "0.1.4-0" +__version__ = "0.1.4-2" import compLib.LogstashLogging import logging diff --git a/setup.py b/setup.py index 1017398..1e401fa 100644 --- a/setup.py +++ b/setup.py @@ -12,7 +12,7 @@ else: setuptools.setup( name="complib", - version="0.1.4-0", + version="0.1.4-2", author="F-WuTs", author_email="--", description="", From bd2000f77498d5455fc5141de43128af73be3bcb Mon Sep 17 00:00:00 2001 From: Joel Klimont Date: Fri, 2 Apr 2021 18:46:14 +0200 Subject: [PATCH 059/246] small changes in build script --- build_deb.sh | 6 +++--- compLib/__init__.py | 2 +- setup.py | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) mode change 100644 => 100755 build_deb.sh diff --git a/build_deb.sh b/build_deb.sh old mode 100644 new mode 100755 index 1342431..9b8dc6b --- a/build_deb.sh +++ b/build_deb.sh @@ -1,8 +1,8 @@ -#!/usr/bin/zsh +#!/usr/bin/bash export PYTHONDONTWRITEBYTECODE=1 # be sure to change version if needed! -fpm -s python --python-bin python3 --python-pip pip3 --python-package-name-prefix python3 \ +fpm -s python --python-bin python3.7 --python-pip pip3.7 --python-package-name-prefix python3 \ -m '"Joel Klimont" ' \ --license 'proprietary' \ --description 'Library for robot used in the competition' \ @@ -34,7 +34,7 @@ fpm -s python --python-bin python3 --python-pip pip3 --python-package-name-prefi -d "python3-pigpio" \ -d "python3-numpy" \ -d "ffmpeg" \ - -v 0.1.4-2 -t deb setup.py + -v 0.1.5-0 -t deb setup.py # --deb-changelog changelog \ # --deb-upstream-changelog changelog \ diff --git a/compLib/__init__.py b/compLib/__init__.py index 9e2f688..67a8de8 100644 --- a/compLib/__init__.py +++ b/compLib/__init__.py @@ -1,4 +1,4 @@ -__version__ = "0.1.4-2" +__version__ = "0.1.5-0" import compLib.LogstashLogging import logging diff --git a/setup.py b/setup.py index 1e401fa..9390db0 100644 --- a/setup.py +++ b/setup.py @@ -12,7 +12,7 @@ else: setuptools.setup( name="complib", - version="0.1.4-2", + version="0.1.5-0", author="F-WuTs", author_email="--", description="", From c86d4a350fccc22d77b6cde1b3e35864ff17f076 Mon Sep 17 00:00:00 2001 From: HerrNamenlos123 Date: Mon, 5 Apr 2021 20:55:07 +0100 Subject: [PATCH 060/246] Added ArUco example --- docs/source/lib/Aruco.rst | 83 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 docs/source/lib/Aruco.rst diff --git a/docs/source/lib/Aruco.rst b/docs/source/lib/Aruco.rst new file mode 100644 index 0000000..51059ae --- /dev/null +++ b/docs/source/lib/Aruco.rst @@ -0,0 +1,83 @@ +.. _lib_vision: + +Aruco +******* + +Examples +========= + +Recognizing ArUco tags +------------------------- + +.. code-block:: python + + import time + import cv2 + from cv2 import aruco + from compLib import Vision + + ARUCO_DICT = cv2.aruco.Dictionary_get(aruco.DICT_6X6_250) + ARUCO_PARAMETERS = aruco.DetectorParameters_create() + + def getTagCenterFromFrame(id, frame): + gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) + + corners, ids, rejectedImgPoints = aruco.detectMarkers(gray, ARUCO_DICT, parameters = ARUCO_PARAMETERS) + frame = aruco.drawDetectedMarkers(frame.copy(), corners, ids) + + if ids is None: + return frame, None, None + + for tag_id, corner in zip(ids, corners): + if (tag_id[0] == id): + + x, y = 0, 0 + for i in range(4): + x += corner[0][i][0] * 0.25 + y += corner[0][i][1] * 0.25 + + return frame, x, y + return frame, None, None + + # Get the center from the aruco tag with the specified id + # in pixel coordinates (0-640, 0-480) + def getTagPosition(id): + frame = Vision.Streaming.get_frame() + frame, x, y = getTagCenterFromFrame(id, frame) + Vision.Streaming.publish_frame(frame) + return x, y + + # Get the normalized center coordinates from the aruco tag + # with the specified id + # left is -1, right +1 + # bottom is -1, top +1 + def getNormalizedTagPosition(id): + frame = Vision.Streaming.get_frame() + frame, x, y = getTagCenterFromFrame(id, frame) + Vision.Streaming.publish_frame(frame) + + if x is None or y is None: + return None, None + + height, width = frame.shape[:2] + x = x / width * 2.0 - 1.0 + y = -(y / height * 2.0 - 1.0) + return x, y + + if __name__ == '__main__': + + desiredID = 11 + + while True: + x, y = getNormalizedTagPosition(desiredID) + + if x is not None: + print("X Coordinate: ", x) + else: + print("Tag not found") + + +This example shows how to recognize ArUco tags based on their id and position. +You can specify an ID of the tag you want to use and if it's found, the coordinates of the center are returned. +With the normalized function this is very easy: The x-coordinate is -1 on the left, 1 on the right and 0 in the center of the screen, same for y. +This way it is quite simple to act on the position of the tag. From fca29a7bffdae645cbcfbc9c5f02464103a31761 Mon Sep 17 00:00:00 2001 From: Konstantin Lampalzer Date: Fri, 23 Apr 2021 19:32:38 +0200 Subject: [PATCH 061/246] Hopefully fix timeouts --- compLib/Api.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/compLib/Api.py b/compLib/Api.py index 230c563..fbcb1b1 100644 --- a/compLib/Api.py +++ b/compLib/Api.py @@ -85,6 +85,10 @@ class DoubleElim: :rtype: Tuple[Position, int] """ res = requests.get(API_URL_GET_POS) + if res.status_code == 408: + Logging.get_logger().error(f"DoubleElim.get_position timeout!") + return get_position() + response = json.loads(res.content) Logging.get_logger().debug(f"DoubleElim.get_position = {response}, status code = {res.status_code}") return Position(response["x"], response["y"], response["degrees"]), res.status_code @@ -97,6 +101,10 @@ class DoubleElim: :rtype: Tuple[Position, int] """ res = requests.get(API_URL_GET_OP) + if res.status_code == 408: + Logging.get_logger().error(f"DoubleElim.get_opponent timeout!") + return get_opponent() + response = json.loads(res.content) Logging.get_logger().debug(f"DoubleElim.get_opponent = x:{response}, status code = {res.status_code}") return Position(response["x"], response["y"], response["degrees"]), res.status_code @@ -109,6 +117,10 @@ class DoubleElim: :rtype: Tuple[Position, int] """ res = requests.get(API_URL_GET_GOAL) + if res.status_code == 408: + Logging.get_logger().error(f"DoubleElim.get_goal timeout!") + return get_goal() + response = json.loads(res.content) Logging.get_logger().debug(f"DoubleElim.get_goal = {response}, status code = {res.status_code}") return Position(response["x"], response["y"], -1), res.status_code @@ -121,6 +133,10 @@ class DoubleElim: :rtype: Tuple[List[Dict], int] """ res = requests.get(API_URL_GET_ITEMS) + if res.status_code == 408: + Logging.get_logger().error(f"DoubleElim.get_items timeout!") + return get_items() + response = json.loads(res.content) Logging.get_logger().debug(f"DoubleElim.get_items = {response}, status code = {res.status_code}") return response, res.status_code @@ -133,6 +149,10 @@ class DoubleElim: :rtype: Tuple[Dict, int] """ res = requests.get(API_URL_GET_SCORES) + if res.status_code == 408: + Logging.get_logger().error(f"DoubleElim.get_scores timeout!") + return get_scores() + response = json.loads(res.content) Logging.get_logger().debug(f"DoubleElim.get_scores = {response}, status code = {res.status_code}") return response, res.status_code From 7431f4480470f8f698efc8413426add4fa66e1e8 Mon Sep 17 00:00:00 2001 From: Konstantin Lampalzer Date: Fri, 23 Apr 2021 19:36:44 +0200 Subject: [PATCH 062/246] Add sleep --- compLib/Api.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/compLib/Api.py b/compLib/Api.py index fbcb1b1..25f3e33 100644 --- a/compLib/Api.py +++ b/compLib/Api.py @@ -3,6 +3,7 @@ from typing import Dict, Tuple, List import requests import json import os +import time from compLib.LogstashLogging import Logging @@ -87,6 +88,7 @@ class DoubleElim: res = requests.get(API_URL_GET_POS) if res.status_code == 408: Logging.get_logger().error(f"DoubleElim.get_position timeout!") + time.sleep(0.01) return get_position() response = json.loads(res.content) @@ -103,6 +105,7 @@ class DoubleElim: res = requests.get(API_URL_GET_OP) if res.status_code == 408: Logging.get_logger().error(f"DoubleElim.get_opponent timeout!") + time.sleep(0.01) return get_opponent() response = json.loads(res.content) @@ -119,6 +122,7 @@ class DoubleElim: res = requests.get(API_URL_GET_GOAL) if res.status_code == 408: Logging.get_logger().error(f"DoubleElim.get_goal timeout!") + time.sleep(0.01) return get_goal() response = json.loads(res.content) @@ -135,6 +139,7 @@ class DoubleElim: res = requests.get(API_URL_GET_ITEMS) if res.status_code == 408: Logging.get_logger().error(f"DoubleElim.get_items timeout!") + time.sleep(0.01) return get_items() response = json.loads(res.content) @@ -151,6 +156,7 @@ class DoubleElim: res = requests.get(API_URL_GET_SCORES) if res.status_code == 408: Logging.get_logger().error(f"DoubleElim.get_scores timeout!") + time.sleep(0.01) return get_scores() response = json.loads(res.content) From 4bf031a6c7a4a9d31dc06ef7105018a40ba43c2e Mon Sep 17 00:00:00 2001 From: Joel Date: Fri, 23 Apr 2021 19:42:45 +0200 Subject: [PATCH 063/246] small fixes in api requests for double elimination --- build_deb.sh | 6 +++--- compLib/Api.py | 10 +++++----- compLib/__init__.py | 2 +- setup.py | 2 +- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/build_deb.sh b/build_deb.sh index 9b8dc6b..7bd753b 100755 --- a/build_deb.sh +++ b/build_deb.sh @@ -1,8 +1,8 @@ -#!/usr/bin/bash +##!/usr/bin/zsh export PYTHONDONTWRITEBYTECODE=1 # be sure to change version if needed! -fpm -s python --python-bin python3.7 --python-pip pip3.7 --python-package-name-prefix python3 \ +fpm -s python --python-bin python3 --python-pip pip3 --python-package-name-prefix python3 \ -m '"Joel Klimont" ' \ --license 'proprietary' \ --description 'Library for robot used in the competition' \ @@ -34,7 +34,7 @@ fpm -s python --python-bin python3.7 --python-pip pip3.7 --python-package-name-p -d "python3-pigpio" \ -d "python3-numpy" \ -d "ffmpeg" \ - -v 0.1.5-0 -t deb setup.py + -v 0.1.5-1 -t deb setup.py # --deb-changelog changelog \ # --deb-upstream-changelog changelog \ diff --git a/compLib/Api.py b/compLib/Api.py index 25f3e33..f7aaf34 100644 --- a/compLib/Api.py +++ b/compLib/Api.py @@ -89,7 +89,7 @@ class DoubleElim: if res.status_code == 408: Logging.get_logger().error(f"DoubleElim.get_position timeout!") time.sleep(0.01) - return get_position() + return DoubleElim.get_position() response = json.loads(res.content) Logging.get_logger().debug(f"DoubleElim.get_position = {response}, status code = {res.status_code}") @@ -106,7 +106,7 @@ class DoubleElim: if res.status_code == 408: Logging.get_logger().error(f"DoubleElim.get_opponent timeout!") time.sleep(0.01) - return get_opponent() + return DoubleElim.get_opponent() response = json.loads(res.content) Logging.get_logger().debug(f"DoubleElim.get_opponent = x:{response}, status code = {res.status_code}") @@ -123,7 +123,7 @@ class DoubleElim: if res.status_code == 408: Logging.get_logger().error(f"DoubleElim.get_goal timeout!") time.sleep(0.01) - return get_goal() + return DoubleElim.get_goal() response = json.loads(res.content) Logging.get_logger().debug(f"DoubleElim.get_goal = {response}, status code = {res.status_code}") @@ -140,7 +140,7 @@ class DoubleElim: if res.status_code == 408: Logging.get_logger().error(f"DoubleElim.get_items timeout!") time.sleep(0.01) - return get_items() + return DoubleElim.get_items() response = json.loads(res.content) Logging.get_logger().debug(f"DoubleElim.get_items = {response}, status code = {res.status_code}") @@ -157,7 +157,7 @@ class DoubleElim: if res.status_code == 408: Logging.get_logger().error(f"DoubleElim.get_scores timeout!") time.sleep(0.01) - return get_scores() + return DoubleElim.get_scores() response = json.loads(res.content) Logging.get_logger().debug(f"DoubleElim.get_scores = {response}, status code = {res.status_code}") diff --git a/compLib/__init__.py b/compLib/__init__.py index 67a8de8..649f355 100644 --- a/compLib/__init__.py +++ b/compLib/__init__.py @@ -1,4 +1,4 @@ -__version__ = "0.1.5-0" +__version__ = "0.1.5-1" import compLib.LogstashLogging import logging diff --git a/setup.py b/setup.py index 9390db0..a3ab080 100644 --- a/setup.py +++ b/setup.py @@ -12,7 +12,7 @@ else: setuptools.setup( name="complib", - version="0.1.5-0", + version="0.1.5-1", author="F-WuTs", author_email="--", description="", From 530ddd8be75bdd509084bd883a6f74e9ca89f1df Mon Sep 17 00:00:00 2001 From: Konstantin Lampalzer Date: Sun, 22 Aug 2021 13:07:37 +0200 Subject: [PATCH 064/246] Add spi --- compLib/ADC.py | 38 --------------- compLib/Battery.py | 27 ----------- compLib/Buzzer.py | 31 ------------ compLib/Motor.py | 4 -- compLib/PCA9685.py | 76 ------------------------------ compLib/Spi.py | 62 ++++++++++++++++++++++++ compLib/Ultrasonic.py | 107 ------------------------------------------ 7 files changed, 62 insertions(+), 283 deletions(-) delete mode 100644 compLib/ADC.py delete mode 100644 compLib/Battery.py delete mode 100644 compLib/Buzzer.py delete mode 100644 compLib/PCA9685.py create mode 100644 compLib/Spi.py delete mode 100644 compLib/Ultrasonic.py diff --git a/compLib/ADC.py b/compLib/ADC.py deleted file mode 100644 index b4297ab..0000000 --- a/compLib/ADC.py +++ /dev/null @@ -1,38 +0,0 @@ -import smbus - -from compLib.LogstashLogging import Logging - -SINGLE_ENDED = 0x84 -ADDRESS = 0x48 - -bus = smbus.SMBus(1) - - -class ADC: - - @staticmethod - def read(channel) -> float: - """ - Read from adc channel - 0 -> Left IR Sensor - 1 -> Right IR Sensor - 2 -> Battery voltage / 3 - :param channel: Channel between 0 and 2 - :return: voltage - """ - - """Select the Command data from the given provided value above""" - command = SINGLE_ENDED | ((((channel << 2) | (channel >> 1)) & 0x07) << 4) - bus.write_byte(ADDRESS, command) - - while "Koka is great": - value1 = bus.read_byte(ADDRESS) - value2 = bus.read_byte(ADDRESS) - if value1 == value2: - break - - voltage = value1 / 255.0 * 3.3 # calculate the voltage value - voltage = round(voltage, 2) - - Logging.get_logger().debug(f"ADC.read {channel} = {voltage}") - return voltage diff --git a/compLib/Battery.py b/compLib/Battery.py deleted file mode 100644 index 38f43a8..0000000 --- a/compLib/Battery.py +++ /dev/null @@ -1,27 +0,0 @@ -from compLib.ADC import ADC -from compLib.LogstashLogging import Logging - -BATTERY_CHANNEL = 2 -BATTERY_COUNT = 2 -BATTERY_MULTIPLIER = 3 -BATTERY_MIN_VOLTAGE = 3.4 -BATTERY_MAX_VOLTAGE = 4.2 - -adc = ADC() - - -class Battery(object): - """Used to interact with the battery - """ - - @staticmethod - def percent() -> int: - """Get battery percentage - - :return: Percentage between 0 and 100 - :rtype: int - """ - voltage = adc.read(BATTERY_CHANNEL) * BATTERY_MULTIPLIER - result = int(((voltage / BATTERY_COUNT) - BATTERY_MIN_VOLTAGE) / (BATTERY_MAX_VOLTAGE - BATTERY_MIN_VOLTAGE) * 100) - Logging.get_logger().debug(f"Battery.percent = {result}") - return result diff --git a/compLib/Buzzer.py b/compLib/Buzzer.py deleted file mode 100644 index 4b1329d..0000000 --- a/compLib/Buzzer.py +++ /dev/null @@ -1,31 +0,0 @@ -import atexit -import RPi.GPIO as GPIO - -from compLib.LogstashLogging import Logging - -GPIO.setwarnings(False) -Buzzer_Pin = 17 -GPIO.setmode(GPIO.BCM) -GPIO.setup(Buzzer_Pin, GPIO.OUT) - - -class Buzzer: - """Used to interact with the buzzer - """ - - @staticmethod - def set(on: bool): - """Turn the buzzer on / off - - :param on: True if on, False if off - """ - Logging.get_logger().debug(f"Buzzer.set {on}") - - GPIO.output(Buzzer_Pin, on) - - @staticmethod - def exit(): - Buzzer.set(False) - - -atexit.register(Buzzer.exit) diff --git a/compLib/Motor.py b/compLib/Motor.py index 664acf9..f604936 100644 --- a/compLib/Motor.py +++ b/compLib/Motor.py @@ -1,11 +1,7 @@ import atexit -from compLib.PCA9685 import PCA9685 from compLib.LogstashLogging import Logging -pwm = PCA9685(0x40, debug=True) -pwm.setPWMFreq(50) - MOTOR_COUNT = 4 MAX_MOTOR_SPEED = 4095.0 MOTOR_PERCENTAGE_MULT = MAX_MOTOR_SPEED / 100.0 diff --git a/compLib/PCA9685.py b/compLib/PCA9685.py deleted file mode 100644 index 1389e55..0000000 --- a/compLib/PCA9685.py +++ /dev/null @@ -1,76 +0,0 @@ -#!/usr/bin/python - -import math -import time - -import smbus - - -# ============================================================================ -# Raspi PCA9685 16-Channel PWM Servo Driver -# ============================================================================ - -class PCA9685: - # Registers/etc. - __SUBADR1 = 0x02 - __SUBADR2 = 0x03 - __SUBADR3 = 0x04 - __MODE1 = 0x00 - __PRESCALE = 0xFE - __LED0_ON_L = 0x06 - __LED0_ON_H = 0x07 - __LED0_OFF_L = 0x08 - __LED0_OFF_H = 0x09 - __ALLLED_ON_L = 0xFA - __ALLLED_ON_H = 0xFB - __ALLLED_OFF_L = 0xFC - __ALLLED_OFF_H = 0xFD - - def __init__(self, address=0x40, debug=False): - self.bus = smbus.SMBus(1) - self.address = address - self.debug = debug - self.write(self.__MODE1, 0x00) - - def write(self, reg, value): - "Writes an 8-bit value to the specified register/address" - self.bus.write_byte_data(self.address, reg, value) - - def read(self, reg): - "Read an unsigned byte from the I2C device" - result = self.bus.read_byte_data(self.address, reg) - return result - - def setPWMFreq(self, freq): - "Sets the PWM frequency" - prescaleval = 25000000.0 # 25MHz - prescaleval /= 4096.0 # 12-bit - prescaleval /= float(freq) - prescaleval -= 1.0 - - oldmode = self.read(self.__MODE1) - newmode = (oldmode & 0x7F) | 0x10 # sleep - self.write(self.__MODE1, newmode) # go to sleep - self.write(self.__PRESCALE, int(round(prescaleval))) - self.write(self.__MODE1, oldmode) - time.sleep(0.005) - self.write(self.__MODE1, oldmode | 0x80) - - def setPWM(self, channel, on, off): - "Sets a single PWM channel" - self.write(self.__LED0_ON_L + 4 * channel, on & 0xFF) - self.write(self.__LED0_ON_H + 4 * channel, on >> 8) - self.write(self.__LED0_OFF_L + 4 * channel, off & 0xFF) - self.write(self.__LED0_OFF_H + 4 * channel, off >> 8) - - def setMotorPwm(self, channel, duty): - self.setPWM(channel, 0, duty) - - def setServoPulse(self, channel, pulse): - "Sets the Servo Pulse,The PWM frequency must be 50HZ" - pulse = float(pulse) * (4096.0 / 20000.0) # PWM frequency is 50HZ,the period is 20000us - self.setPWM(channel, 0, int(pulse)) - - -if __name__ == '__main__': - pass diff --git a/compLib/Spi.py b/compLib/Spi.py new file mode 100644 index 0000000..227d198 --- /dev/null +++ b/compLib/Spi.py @@ -0,0 +1,62 @@ +import spidev +from threading import Thread, Lock +from enum import Enum + +# from LogstashLogging import logstash_logger + +SPI_BUS = 1 +SPI_DEVICE = 2 +SPI_SPEED = 1000000 +SPI_BUFFER_SIZE = 32 + +spi = spidev.SpiDev() +spi.open(SPI_BUS, SPI_DEVICE) +spi.max_speed_hz = SPI_SPEED +spi.mode = 0 +spi.bits_per_word = 8 + +spi_mutex = Lock() + + +class Spi(object): + + @staticmethod + def transfer(tx_buffer: list): + write_reg = tx_buffer[1] + print(tx_buffer) + spi.xfer(tx_buffer) + + rx_buffer = spi.xfer([0] * 32) + + if rx_buffer[1] != write_reg: + # logstash_logger.error(f"SPI error during write to register {tx_buffer[0]}!") + print(f"SPI error during write to register {write_reg}!") + + return rx_buffer + + @staticmethod + def read(reg: int, length: int): + tx_buf = [0] * SPI_BUFFER_SIZE + + tx_buf[0] = 0 + tx_buf[1] = reg + tx_buf[2] = length + + rx_buf = Spi.transfer(tx_buf) + return int.from_bytes(rx_buf[2:2 + length], byteorder='big', signed=False) + + @staticmethod + def write(reg: int, length: int, value: int): + tx_buf = [0] * SPI_BUFFER_SIZE + + tx_buf[0] = 1 + tx_buf[1] = reg + tx_buf[2] = length + + pos = 3 + for i in value.to_bytes(length, 'big'): + tx_buf[pos] = i + pos += 1 + + rx_buf = Spi.transfer(tx_buf) + return int.from_bytes(rx_buf[2:2 + length], byteorder='big', signed=False) \ No newline at end of file diff --git a/compLib/Ultrasonic.py b/compLib/Ultrasonic.py deleted file mode 100644 index 2ecbf60..0000000 --- a/compLib/Ultrasonic.py +++ /dev/null @@ -1,107 +0,0 @@ -import time -import RPi.GPIO as GPIO - -trigger_pin = 27 -echo_pin = 22 -speed_of_sound_mps = 340 # in m/s - -rising_found = False -rising_time = 0 -falling_found = False -falling_time = 0 - -class Ultrasonic: - - @staticmethod - def __send_trigger(): - GPIO.setup(trigger_pin, GPIO.OUT) - GPIO.output(trigger_pin, False) # Ensure a clean transition - time.sleep(0.000005) - GPIO.output(trigger_pin, True) # Trigger now - time.sleep(0.000010) - GPIO.output(trigger_pin, False) - - @staticmethod - def __signal_start_callback(channel): - global rising_found - global rising_time - rising_found = True - rising_time = time.process_time_ns() - - @staticmethod - def __signal_end_callback(channel): - global falling_found - global falling_time - falling_found = True - falling_time = time.process_time_ns() - - @staticmethod - def __measure_pulse(timeout = 1000000) -> int: - """ Measure the length of a pulse in us. When either the pulse doesn't start in [timeout] us - or the pulse is longer than [timeout] us, 0 is returned. - - :param timeout: Timeout in us - :return: The length of the pulse or 0 on timeout - :rtype: int - """ - - global rising_found - global rising_time - global falling_found - global falling_time - - # Setup pin - GPIO.setup(echo_pin, GPIO.IN) - - # Wait for the rising edge - rising_found = False - GPIO.add_event_detect(echo_pin, GPIO.RISING, callback = Ultrasonic.__signal_start_callback) - start = time.process_time_ns() - while (time.process_time_ns() < start + timeout * 1000 and not rising_found): - pass - - GPIO.remove_event_detect(echo_pin) - if (not rising_found): - return 0 - - # Wait for the falling edge - falling_found = False - GPIO.add_event_detect(echo_pin, GPIO.FALLING, callback = Ultrasonic.__signal_end_callback) - start = time.process_time_ns() - while (time.process_time_ns() < start + timeout * 1000 and not falling_found): - pass - - GPIO.remove_event_detect(echo_pin) - if (not falling_found): - return 0 - - # Finally, return the time difference - return int((falling_time - rising_time) / 1000) - - @staticmethod - def get_distance() -> float: - """ Get the distance from the Ultrasonic sensor in cm. - Returns 'NaN' when the result is invalid. - - :return: The distance in cm or 'NaN' - :rtype: float - """ - GPIO.setmode(GPIO.BCM) - - # Trigger the measurement - Ultrasonic.__send_trigger() - - # The pulse length in us - pulse = Ultrasonic.__measure_pulse() - - if (pulse == 0): - print("invalid") - return float('NaN') - - # Convert the speed of sound from m/s to cm/us for convenience - speed_of_sound_cmpus = speed_of_sound_mps / 10000 - - # Convert us time to cm distance - distance = (pulse / 2) * speed_of_sound_cmpus - - return distance From 63b8f868c9531b472ad404b2a3788baef702be40 Mon Sep 17 00:00:00 2001 From: Konstantin Lampalzer Date: Sun, 22 Aug 2021 18:37:20 +0200 Subject: [PATCH 065/246] Add IR, encoder, motor, display --- compLib/Display.py | 39 ++++++++++ compLib/Encoder.py | 37 ++++++++++ compLib/IRSensor.py | 171 +++++++------------------------------------ compLib/IRWrapper.py | 81 -------------------- compLib/Motor.py | 72 +++++++++++++----- compLib/Spi.py | 95 +++++++++++++++++++++++- 6 files changed, 248 insertions(+), 247 deletions(-) create mode 100644 compLib/Display.py create mode 100644 compLib/Encoder.py delete mode 100644 compLib/IRWrapper.py diff --git a/compLib/Display.py b/compLib/Display.py new file mode 100644 index 0000000..d27b49e --- /dev/null +++ b/compLib/Display.py @@ -0,0 +1,39 @@ +import string + +from compLib.LogstashLogging import logstash_logger +from compLib.Spi import Spi, Register + +LINE_COUNT = 4 +CHARS_PER_LINE = 16 + + +class Display(object): + """Access the different IR Sensors of the robot + """ + + @staticmethod + def write(line: int, text: string): + if len(text) > CHARS_PER_LINE: + logstash_logger.error(f"Too many characters specified!") + return + + if line <= 0 or line > LINE_COUNT: + raise IndexError("Invalid line number specified") + + to_write = [0] * CHARS_PER_LINE + for i in range(len(text)): + to_write[i] = ord(text[i]) + + if line == 1: + Spi.write(Register.DISPLAY_LINE_1_C0, CHARS_PER_LINE, to_write) + elif line == 2: + Spi.write(Register.DISPLAY_LINE_2_C0, CHARS_PER_LINE, to_write) + elif line == 3: + Spi.write(Register.DISPLAY_LINE_3_C0, CHARS_PER_LINE, to_write) + elif line == 4: + Spi.write(Register.DISPLAY_LINE_4_C0, CHARS_PER_LINE, to_write) + + @staticmethod + def clear(): + for i in range(1, LINE_COUNT + 1): + Display.write(i, "") diff --git a/compLib/Encoder.py b/compLib/Encoder.py new file mode 100644 index 0000000..ed61c99 --- /dev/null +++ b/compLib/Encoder.py @@ -0,0 +1,37 @@ +import atexit +from enum import Enum + +from compLib.LogstashLogging import Logging +from compLib.Spi import Spi, Register + +MOTOR_COUNT = 4 + + +class Encoder(object): + """Class used to read the encoders + """ + + @staticmethod + def read(port: int) -> int: + """Read encoder from a specified port + + :param port: Port, which the motor is connected to. 1-4 allowed + :raises: IndexError + :return: Current encoder position + """ + if port <= 0 or port > MOTOR_COUNT: + raise IndexError("Invalid encoder port specified!") + + if port == 1: + return Spi.read(Register.MOTOR_1_POS_B3, 4) + elif port == 2: + return Spi.read(Register.MOTOR_2_POS_B3, 4) + elif port == 3: + return Spi.read(Register.MOTOR_3_POS_B3, 4) + elif port == 4: + return Spi.read(Register.MOTOR_4_POS_B3, 4) + + @staticmethod + def reset(port: int): + # TODO implement registers and me + pass diff --git a/compLib/IRSensor.py b/compLib/IRSensor.py index 69463fa..c12e746 100644 --- a/compLib/IRSensor.py +++ b/compLib/IRSensor.py @@ -1,157 +1,40 @@ -import pigpio - -from compLib.ADC import ADC from compLib.LogstashLogging import Logging +from compLib.Spi import Spi, Register import spidev -import threading -import time -TOP_LEFT_CHANNEL = 0 -TOP_RIGHT_CHANNEL = 1 - -TOP_IR_MIN_VOLTAGE = 0.0 -TOP_IR_MAX_VOLTAGE = 3.3 - -BOTTOM_LEFT_PIN = 14 -BOTTOM_MIDDLE_PIN = 15 -BOTTOM_RIGHT_PIN = 23 - -BOTTOM_LEFT_CHANNEL = 2 -BOTTOM_MIDDLE_CHANNEL = 1 -BOTTOM_RIGHT_CHANNEL = 0 - -adc = ADC() -spi = spidev.SpiDev() -spi.open(0, 0) -spi.max_speed_hz = 1000000 - -# GPIO.setmode(GPIO.BCM) - -GPIO = pigpio.pi() - -GPIO.set_mode(BOTTOM_LEFT_PIN, pigpio.INPUT) -GPIO.set_mode(BOTTOM_MIDDLE_PIN, pigpio.INPUT) -GPIO.set_mode(BOTTOM_RIGHT_PIN, pigpio.INPUT) - -states = { - str(BOTTOM_LEFT_PIN): GPIO.read(BOTTOM_LEFT_PIN), - str(BOTTOM_MIDDLE_PIN): GPIO.read(BOTTOM_MIDDLE_PIN), - str(BOTTOM_RIGHT_PIN): GPIO.read(BOTTOM_RIGHT_PIN)} - -analog_states = { - str(BOTTOM_LEFT_CHANNEL): 0, - str(BOTTOM_MIDDLE_CHANNEL): 0, - str(BOTTOM_RIGHT_CHANNEL): 0} - - -def gpio_callback(gpio, level, tick): - states[str(gpio)] = level - - -GPIO.callback(BOTTOM_LEFT_PIN, pigpio.EITHER_EDGE, gpio_callback) -GPIO.callback(BOTTOM_MIDDLE_PIN, pigpio.EITHER_EDGE, gpio_callback) -GPIO.callback(BOTTOM_RIGHT_PIN, pigpio.EITHER_EDGE, gpio_callback) - - -def read_analog_channel(channel): - spi.writebytes([channel << 3, 0]) - - time.sleep(0.0033) # 300HZ - - bytes = spi.readbytes(2) - return (bytes[0] * 256 + bytes[1]) >> 2 - - -def sensor_thread(): - while True: - analog_states[str(BOTTOM_LEFT_CHANNEL)] = read_analog_channel(BOTTOM_LEFT_CHANNEL) - analog_states[str(BOTTOM_MIDDLE_CHANNEL)] = read_analog_channel(BOTTOM_MIDDLE_CHANNEL) - analog_states[str(BOTTOM_RIGHT_CHANNEL)] = read_analog_channel(BOTTOM_RIGHT_CHANNEL) - - -analog_thread = threading.Thread(target=sensor_thread, daemon=True) -analog_thread.start() -time.sleep(0.25) +SENSOR_COUNT = 5 class IRSensor(object): - """Access the different IR Sensors at top / bottom of the robot + """Access the different IR Sensors of the robot """ @staticmethod - def top_left_percent() -> int: - """Get top left infrared sensor percentage + def read(sensor: int) -> int: + if sensor <= 0 or sensor > SENSOR_COUNT: + raise IndexError("Invalid sensor specified!") - :return: Percentage between 0 and 100 - :rtype: int - """ - voltage = adc.read(TOP_LEFT_CHANNEL) - return int((voltage - TOP_IR_MIN_VOLTAGE) / TOP_IR_MAX_VOLTAGE * 100) + if sensor == 1: + return Spi.read(Register.IR_1_H, 2) + elif sensor == 2: + return Spi.read(Register.IR_2_H, 2) + elif sensor == 3: + return Spi.read(Register.IR_3_H, 2) + elif sensor == 4: + return Spi.read(Register.IR_4_H, 2) + + return 0 @staticmethod - def top_right_percent() -> int: - """Get top right infrared sensor percentage - - :return: Percentage between 0 and 100 - :rtype: int - """ - voltage = adc.read(TOP_RIGHT_CHANNEL) - return int((voltage - TOP_IR_MIN_VOLTAGE) / TOP_IR_MAX_VOLTAGE * 100) - - @staticmethod - def bottom_left() -> bool: - """Get bottom left infrared sensor status - - :return: True, if sensor detects IR signals - :rtype: bool - """ - return states[str(BOTTOM_LEFT_PIN)] - # return GPIO.read(BOTTOM_LEFT_PIN) - - @staticmethod - def bottom_middle() -> bool: - """Get bottom middle infrared sensor status - - :return: True, if sensor detects IR signals - :rtype: bool - """ - return states[str(BOTTOM_MIDDLE_PIN)] - # return GPIO.read(BOTTOM_MIDDLE_PIN) - - @staticmethod - def bottom_right() -> bool: - """Get bottom right infrared sensor status - - :return: True, if sensor detects IR signals - :rtype: bool - """ - return states[str(BOTTOM_RIGHT_PIN)] - # return GPIO.read(BOTTOM_RIGHT_PIN) - - @staticmethod - def bottom_left_analog() -> int: - """Get bottom left infrared sensor value: ranges from 0 to 1023 - - :return: 10-bit brightness value - :rtype: int - """ - return analog_states[str(BOTTOM_LEFT_CHANNEL)] - - @staticmethod - def bottom_middle_analog() -> int: - """Get bottom middle infrared sensor value: ranges from 0 to 1023 - - :return: 10-bit brightness value - :rtype: int - """ - return analog_states[str(BOTTOM_MIDDLE_CHANNEL)] - - @staticmethod - def bottom_right_analog() -> int: - """Get bottom right infrared sensor value: ranges from 0 to 1023 - - :return: 10-bit brightness value - :rtype: int - """ - return analog_states[str(BOTTOM_RIGHT_CHANNEL)] + def set(sensor: int, on: bool): + if sensor <= 0 or sensor > SENSOR_COUNT: + raise IndexError("Invalid sensor specified!") + if sensor == 1: + Spi.write(Register.IR_1_LED, on) + elif sensor == 2: + Spi.write(Register.IR_2_LED, on) + elif sensor == 3: + Spi.write(Register.IR_3_LED, on) + elif sensor == 4: + Spi.write(Register.IR_4_LED, on) diff --git a/compLib/IRWrapper.py b/compLib/IRWrapper.py deleted file mode 100644 index dd18206..0000000 --- a/compLib/IRWrapper.py +++ /dev/null @@ -1,81 +0,0 @@ -from compLib.IRSensor import IRSensor - -import time - -ir = IRSensor() - -MIN_VALUE = 0.0 -MAX_VALUE = 0.0 -MOVING_AVERAGE_SIZE = 30.0 - - -def approximate_rolling_average(avg, value): - avg -= avg / MOVING_AVERAGE_SIZE - avg += value / MOVING_AVERAGE_SIZE - return avg - - -class IRWrapper(object): - """Wrapper around the IRSensor to enable calibration of the sensor - """ - - @staticmethod - def calibrate(): - """Calibrate the black and white values of the IRSensors - This is done by putting the bot on black line with the middle sensor - Afterwards, all sensors are read for 2 seconds and filtered. - The minimum value is used for white, maximum is black. - """ - global MIN_VALUE - global MAX_VALUE - - left_avg = ir.bottom_left_analog() - middle_avg = ir.bottom_middle_analog() - right_avg = ir.bottom_right_analog() - - start_time = time.time() - while time.time() - start_time < 2: - left_avg = approximate_rolling_average(left_avg, ir.bottom_left_analog()) - middle_avg = approximate_rolling_average(middle_avg, ir.bottom_middle_analog()) - right_avg = approximate_rolling_average(right_avg, ir.bottom_right_analog()) - time.sleep(0.01) - - MIN_VALUE = min([left_avg, middle_avg, right_avg]) - MAX_VALUE = max([left_avg, middle_avg, right_avg]) - - @staticmethod - def adjust_for_calibration(raw_value: float) -> float: - """Adjust a raw sensor value to 0 to 1000 - - :return: Value between 0 and 1000, White and Black - :rtype: float - """ - x = (raw_value - MIN_VALUE) * 1000.0 / (MAX_VALUE - MIN_VALUE) - return max(min(1000.0, x), 0.0) - - @staticmethod - def bottom_left_calibrated() -> float: - """Returns calibrated value of the bottom left analog sensor - - :return: Value between 0 and 1000, White and Black - :rtype: float - """ - return IRWrapper.adjust_for_calibration(ir.bottom_left_analog()) - - @staticmethod - def bottom_middle_calibrated() -> float: - """Returns calibrated value of the bottom middle analog sensor - - :return: Value between 0 and 1000, White and Black - :rtype: float - """ - return IRWrapper.adjust_for_calibration(ir.bottom_middle_analog()) - - @staticmethod - def bottom_right_calibrated() -> float: - """Returns calibrated value of the bottom right analog sensor - - :return: Value between 0 and 1000, White and Black - :rtype: float - """ - return IRWrapper.adjust_for_calibration(ir.bottom_right_analog()) diff --git a/compLib/Motor.py b/compLib/Motor.py index f604936..45acc33 100644 --- a/compLib/Motor.py +++ b/compLib/Motor.py @@ -1,49 +1,76 @@ import atexit +from enum import Enum from compLib.LogstashLogging import Logging +from compLib.Spi import Spi, Register MOTOR_COUNT = 4 -MAX_MOTOR_SPEED = 4095.0 +MAX_MOTOR_SPEED = 65535 MOTOR_PERCENTAGE_MULT = MAX_MOTOR_SPEED / 100.0 +class MotorMode(Enum): + COAST = 0, + FORWARD = 1, + BACKWARD = 2, + BREAK = 3 + + class Motor(object): """Class used to control the motors """ + @staticmethod + def pwm(port: int, pwm: int, mode: MotorMode): + """Set specified motor to a specific pwm value and motor mode + + :param port: Port, which the motor is connected to. 1-4 allowed + :param pwm: Raw PWM value which the motor should be set to. From 0 to 2^16 - 1 + :param mode: Motor mode. See enum MotorMode for more info + :raises: IndexError + """ + if port <= 0 or port > MOTOR_COUNT: + raise IndexError("Invalid Motor port specified!") + + if port == 1: + Spi.write(Register.MOTOR_1_PWM_H, 2, pwm) + Spi.write(Register.MOTOR_1_CTRL, 1, mode) + elif port == 2: + Spi.write(Register.MOTOR_2_PWM_H, 2, pwm) + Spi.write(Register.MOTOR_2_CTRL, 1, mode) + elif port == 3: + Spi.write(Register.MOTOR_3_PWM_H, 2, pwm) + Spi.write(Register.MOTOR_3_CTRL, 1, mode) + elif port == 4: + Spi.write(Register.MOTOR_4_PWM_H, 2, pwm) + Spi.write(Register.MOTOR_4_CTRL, 1, mode) + @staticmethod def power(port: int, percent: float): """Set specified motor to percentage power - :param port: Port, which the motor is connected to. 0-3, 0 -> top left, 3 -> top right + :param port: Port, which the motor is connected to. 1-4 :param percent: Percentage of max speed. between -100 and 100 :raises: IndexError """ Logging.get_logger().debug(f"Motor.power {port} {percent}") - if port < 0 or port >= MOTOR_COUNT: + if port <= 0 or port > MOTOR_COUNT: raise IndexError("Invalid Motor port specified!") if percent < -100 or percent > 100: raise IndexError("Invalid Motor speed specified! Speed is between -100 and 100 percent!") - forward = True + mode = MotorMode.COAST if percent < 0: percent = abs(percent) - forward = False + mode = MotorMode.BACKWARD + elif percent > 0: + mode = MotorMode.FORWARD - # bottom left motor is inverted - REEEEEEEEEEEE - if port == 1: - forward = not forward + pwm = percent * MOTOR_PERCENTAGE_MULT - adjusted_speed = int(min(max(0.0, percent), 100.0) * MOTOR_PERCENTAGE_MULT) - - if forward: - pwm.setMotorPwm(port * 2, adjusted_speed) - pwm.setMotorPwm(port * 2 + 1, 0) - else: - pwm.setMotorPwm(port * 2, 0) - pwm.setMotorPwm(port * 2 + 1, adjusted_speed) + Motor.pwm(port, int(pwm), mode) @staticmethod def all_off(): @@ -52,8 +79,17 @@ class Motor(object): """ Logging.get_logger().debug(f"Motor.all_off") - for i in range(0, MOTOR_COUNT): - Motor.power(i, 0) + for i in range(1, MOTOR_COUNT + 1): + Motor.active_break(i) + + @staticmethod + def active_break(port: int): + """ + Actively break with a specific motor + + :param port: Port, which the motor is connected to. 1-4 + """ + Motor.pwm(port, 0, MotorMode.BREAK) atexit.register(Motor.all_off) diff --git a/compLib/Spi.py b/compLib/Spi.py index 227d198..a458e81 100644 --- a/compLib/Spi.py +++ b/compLib/Spi.py @@ -2,7 +2,7 @@ import spidev from threading import Thread, Lock from enum import Enum -# from LogstashLogging import logstash_logger +from LogstashLogging import logstash_logger SPI_BUS = 1 SPI_DEVICE = 2 @@ -29,8 +29,7 @@ class Spi(object): rx_buffer = spi.xfer([0] * 32) if rx_buffer[1] != write_reg: - # logstash_logger.error(f"SPI error during write to register {tx_buffer[0]}!") - print(f"SPI error during write to register {write_reg}!") + logstash_logger.error(f"SPI error during write to register {tx_buffer[0]}!") return rx_buffer @@ -59,4 +58,92 @@ class Spi(object): pos += 1 rx_buf = Spi.transfer(tx_buf) - return int.from_bytes(rx_buf[2:2 + length], byteorder='big', signed=False) \ No newline at end of file + return int.from_bytes(rx_buf[2:2 + length], byteorder='big', signed=False) + + @staticmethod + def write_array(reg: int, length: int, values: list[int]): + tx_buf = [0] * SPI_BUFFER_SIZE + + tx_buf[0] = 1 + tx_buf[1] = reg + tx_buf[2] = length + + pos = 3 + for i in values: + tx_buf[pos] = i + pos += 1 + + rx_buf = Spi.transfer(tx_buf) + return rx_buf + + +class Register(Enum): + IDENTIFICATION_MODEL_ID = 1, + IDENTIFICATION_MODEL_REV_MAJOR = 2, + IDENTIFICATION_MODEL_REV_MINOR = 3, + IDENTIFICATION_MODEL_REV_PATCH = 4, + + # Motor encoder positions + MOTOR_1_POS_B3 = 10, + MOTOR_1_POS_B2 = 11, + MOTOR_1_POS_B1 = 12, + MOTOR_1_POS_B0 = 13, + MOTOR_2_POS_B3 = 14, + MOTOR_2_POS_B2 = 15, + MOTOR_2_POS_B1 = 16, + MOTOR_2_POS_B0 = 17, + MOTOR_3_POS_B3 = 18, + MOTOR_3_POS_B2 = 19, + MOTOR_3_POS_B1 = 20, + MOTOR_3_POS_B0 = 21, + MOTOR_4_POS_B3 = 22, + MOTOR_4_POS_B2 = 23, + MOTOR_4_POS_B1 = 24, + MOTOR_4_POS_B0 = 25, + + # Motor pwm speed + MOTOR_1_PWM_H = 26, + MOTOR_1_PWM_L = 27, + MOTOR_1_CTRL = 28, + MOTOR_2_PWM_H = 29, + MOTOR_2_PWM_L = 30, + MOTOR_2_CTRL = 31, + MOTOR_3_PWM_H = 32, + MOTOR_3_PWM_L = 33, + MOTOR_3_CTRL = 34, + MOTOR_4_PWM_H = 35, + MOTOR_4_PWM_L = 36, + MOTOR_4_CTRL = 37, + + # Servo goal position + SERVO_1_PWM_H = 38, + SERVO_1_PWM_L = 39, + SERVO_2_PWM_H = 40, + SERVO_2_PWM_L = 41, + SERVO_3_PWM_H = 42, + SERVO_3_PWM_L = 43, + SERVO_4_PWM_H = 44, + SERVO_4_PWM_L = 45, + + # IR Sensor value + IR_1_H = 46, + IR_1_L = 47, + IR_2_H = 48, + IR_2_L = 49, + IR_3_H = 50, + IR_3_L = 51, + IR_4_H = 52, + IR_4_L = 53, + IR_5_H = 54, + IR_5_L = 55, + IR_1_LED = 56, + IR_2_LED = 57, + IR_3_LED = 58, + IR_4_LED = 59, + IR_5_LED = 60, + + # Display registers + DISPLAY_LINE_1_C0 = 63, + DISPLAY_LINE_2_C0 = 79, + DISPLAY_LINE_3_C0 = 95, + DISPLAY_LINE_4_C0 = 111 From 0f103cb34d296097a1c41542345db0e2633de331 Mon Sep 17 00:00:00 2001 From: Konstantin Lampalzer Date: Mon, 23 Aug 2021 22:13:01 +0100 Subject: [PATCH 066/246] Add encoder resetting, SPI health check --- compLib/Display.py | 8 +-- compLib/Encoder.py | 36 +++++++++-- compLib/IRSensor.py | 8 ++- compLib/Motor.py | 12 ++-- compLib/Spi.py | 151 ++++++++++++++++++++++++++------------------ compLib/__init__.py | 3 + 6 files changed, 138 insertions(+), 80 deletions(-) diff --git a/compLib/Display.py b/compLib/Display.py index d27b49e..3253f16 100644 --- a/compLib/Display.py +++ b/compLib/Display.py @@ -25,13 +25,13 @@ class Display(object): to_write[i] = ord(text[i]) if line == 1: - Spi.write(Register.DISPLAY_LINE_1_C0, CHARS_PER_LINE, to_write) + Spi.write_array(Register.DISPLAY_LINE_1_C0, CHARS_PER_LINE, to_write) elif line == 2: - Spi.write(Register.DISPLAY_LINE_2_C0, CHARS_PER_LINE, to_write) + Spi.write_array(Register.DISPLAY_LINE_2_C0, CHARS_PER_LINE, to_write) elif line == 3: - Spi.write(Register.DISPLAY_LINE_3_C0, CHARS_PER_LINE, to_write) + Spi.write_array(Register.DISPLAY_LINE_3_C0, CHARS_PER_LINE, to_write) elif line == 4: - Spi.write(Register.DISPLAY_LINE_4_C0, CHARS_PER_LINE, to_write) + Spi.write_array(Register.DISPLAY_LINE_4_C0, CHARS_PER_LINE, to_write) @staticmethod def clear(): diff --git a/compLib/Encoder.py b/compLib/Encoder.py index ed61c99..eddc77f 100644 --- a/compLib/Encoder.py +++ b/compLib/Encoder.py @@ -7,13 +7,15 @@ from compLib.Spi import Spi, Register MOTOR_COUNT = 4 +encoder_start_values = [0] * (MOTOR_COUNT + 1) + class Encoder(object): """Class used to read the encoders """ @staticmethod - def read(port: int) -> int: - """Read encoder from a specified port + def read_raw(port: int) -> int: + """Read raw encoder from a specified port. Will not be reset to 0 at start. :param port: Port, which the motor is connected to. 1-4 allowed :raises: IndexError @@ -30,8 +32,32 @@ class Encoder(object): return Spi.read(Register.MOTOR_3_POS_B3, 4) elif port == 4: return Spi.read(Register.MOTOR_4_POS_B3, 4) + + @staticmethod + def read(port: int) -> int: + """Read encoder from a specified port + + :param port: Port, which the motor is connected to. 1-4 allowed + :raises: IndexError + :return: Current encoder position + """ + if port <= 0 or port > MOTOR_COUNT: + raise IndexError("Invalid encoder port specified!") + + return Encoder.read_raw(port) - encoder_start_values[port] @staticmethod - def reset(port: int): - # TODO implement registers and me - pass + def clear(port: int): + """Reset encoder position to 0 + + :param port: Port, which the motor is connected to. 1-4 allowed + :raises: IndexError + """ + if port <= 0 or port > MOTOR_COUNT: + raise IndexError("Invalid encoder port specified!") + + encoder_start_values[port] = Encoder.read_raw(port) + + +for i in range(1, MOTOR_COUNT + 1): + encoder_start_values[i] = Encoder.read_raw(i) \ No newline at end of file diff --git a/compLib/IRSensor.py b/compLib/IRSensor.py index c12e746..01b3abe 100644 --- a/compLib/IRSensor.py +++ b/compLib/IRSensor.py @@ -22,8 +22,10 @@ class IRSensor(object): return Spi.read(Register.IR_3_H, 2) elif sensor == 4: return Spi.read(Register.IR_4_H, 2) - - return 0 + elif sensor == 5: + return Spi.read(Register.IR_5_H, 2) + else: + return 0 @staticmethod def set(sensor: int, on: bool): @@ -38,3 +40,5 @@ class IRSensor(object): Spi.write(Register.IR_3_LED, on) elif sensor == 4: Spi.write(Register.IR_4_LED, on) + elif sensor == 5: + Spi.write(Register.IR_5_LED, on) \ No newline at end of file diff --git a/compLib/Motor.py b/compLib/Motor.py index 45acc33..5eca21b 100644 --- a/compLib/Motor.py +++ b/compLib/Motor.py @@ -1,5 +1,5 @@ import atexit -from enum import Enum +from enum import IntEnum from compLib.LogstashLogging import Logging from compLib.Spi import Spi, Register @@ -9,7 +9,7 @@ MAX_MOTOR_SPEED = 65535 MOTOR_PERCENTAGE_MULT = MAX_MOTOR_SPEED / 100.0 -class MotorMode(Enum): +class MotorMode(IntEnum): COAST = 0, FORWARD = 1, BACKWARD = 2, @@ -34,16 +34,16 @@ class Motor(object): if port == 1: Spi.write(Register.MOTOR_1_PWM_H, 2, pwm) - Spi.write(Register.MOTOR_1_CTRL, 1, mode) + Spi.write(Register.MOTOR_1_CTRL, 1, int(mode)) elif port == 2: Spi.write(Register.MOTOR_2_PWM_H, 2, pwm) - Spi.write(Register.MOTOR_2_CTRL, 1, mode) + Spi.write(Register.MOTOR_2_CTRL, 1, int(mode)) elif port == 3: Spi.write(Register.MOTOR_3_PWM_H, 2, pwm) - Spi.write(Register.MOTOR_3_CTRL, 1, mode) + Spi.write(Register.MOTOR_3_CTRL, 1, int(mode)) elif port == 4: Spi.write(Register.MOTOR_4_PWM_H, 2, pwm) - Spi.write(Register.MOTOR_4_CTRL, 1, mode) + Spi.write(Register.MOTOR_4_CTRL, 1, int(mode)) @staticmethod def power(port: int, percent: float): diff --git a/compLib/Spi.py b/compLib/Spi.py index a458e81..0e53dd2 100644 --- a/compLib/Spi.py +++ b/compLib/Spi.py @@ -1,8 +1,9 @@ import spidev from threading import Thread, Lock -from enum import Enum +from enum import IntEnum +import time -from LogstashLogging import logstash_logger +from compLib.LogstashLogging import logstash_logger SPI_BUS = 1 SPI_DEVICE = 2 @@ -17,67 +18,7 @@ spi.bits_per_word = 8 spi_mutex = Lock() - -class Spi(object): - - @staticmethod - def transfer(tx_buffer: list): - write_reg = tx_buffer[1] - print(tx_buffer) - spi.xfer(tx_buffer) - - rx_buffer = spi.xfer([0] * 32) - - if rx_buffer[1] != write_reg: - logstash_logger.error(f"SPI error during write to register {tx_buffer[0]}!") - - return rx_buffer - - @staticmethod - def read(reg: int, length: int): - tx_buf = [0] * SPI_BUFFER_SIZE - - tx_buf[0] = 0 - tx_buf[1] = reg - tx_buf[2] = length - - rx_buf = Spi.transfer(tx_buf) - return int.from_bytes(rx_buf[2:2 + length], byteorder='big', signed=False) - - @staticmethod - def write(reg: int, length: int, value: int): - tx_buf = [0] * SPI_BUFFER_SIZE - - tx_buf[0] = 1 - tx_buf[1] = reg - tx_buf[2] = length - - pos = 3 - for i in value.to_bytes(length, 'big'): - tx_buf[pos] = i - pos += 1 - - rx_buf = Spi.transfer(tx_buf) - return int.from_bytes(rx_buf[2:2 + length], byteorder='big', signed=False) - - @staticmethod - def write_array(reg: int, length: int, values: list[int]): - tx_buf = [0] * SPI_BUFFER_SIZE - - tx_buf[0] = 1 - tx_buf[1] = reg - tx_buf[2] = length - - pos = 3 - for i in values: - tx_buf[pos] = i - pos += 1 - - rx_buf = Spi.transfer(tx_buf) - return rx_buf - - -class Register(Enum): +class Register(IntEnum): IDENTIFICATION_MODEL_ID = 1, IDENTIFICATION_MODEL_REV_MAJOR = 2, IDENTIFICATION_MODEL_REV_MINOR = 3, @@ -147,3 +88,87 @@ class Register(Enum): DISPLAY_LINE_2_C0 = 79, DISPLAY_LINE_3_C0 = 95, DISPLAY_LINE_4_C0 = 111 + + +class Spi(object): + + @staticmethod + def transfer(tx_buffer: list): + write_reg = tx_buffer[1] + + spi.xfer(tx_buffer) + rx_buffer = spi.xfer([0] * 32) + + if rx_buffer[1] != write_reg: + logstash_logger.error(f"SPI error during read/write of register {write_reg}!") + + return rx_buffer + + @staticmethod + def read(reg: int, length: int): + if not type(reg) is int: + reg = int(reg) + + tx_buf = [0] * SPI_BUFFER_SIZE + + tx_buf[0] = 0 + tx_buf[1] = reg + tx_buf[2] = length + + rx_buf = Spi.transfer(tx_buf) + return int.from_bytes(rx_buf[2:2 + length], byteorder='big', signed=False) + + @staticmethod + def write(reg: int, length: int, value: int): + if not type(reg) is int: + reg = int(reg) + + tx_buf = [0] * SPI_BUFFER_SIZE + + tx_buf[0] = 1 + tx_buf[1] = reg + tx_buf[2] = length + + pos = 3 + for i in value.to_bytes(length, 'big'): + tx_buf[pos] = i + pos += 1 + + rx_buf = Spi.transfer(tx_buf) + return int.from_bytes(rx_buf[2:2 + length], byteorder='big', signed=False) + + @staticmethod + def write_array(reg: int, length: int, values): + if not type(reg) is int: + reg = int(reg) + + tx_buf = [0] * SPI_BUFFER_SIZE + + tx_buf[0] = 1 + tx_buf[1] = reg + tx_buf[2] = length + + pos = 3 + for i in values: + tx_buf[pos] = i + pos += 1 + + rx_buf = Spi.transfer(tx_buf) + return rx_buf + + @staticmethod + def health_check(): + if Spi.read(Register.IDENTIFICATION_MODEL_ID, 1) != 3: + logstash_logger.error(f"Unable to read Version! Make sure the mainboard is connected!") + quit() + + @staticmethod + def health_check_loop(): + while True: + Spi.health_check() + time.sleep(0.5) + + +health_check_thread = Thread(target=Spi.health_check_loop) +health_check_thread.setDaemon(True) +health_check_thread.start() \ No newline at end of file diff --git a/compLib/__init__.py b/compLib/__init__.py index 649f355..bc17135 100644 --- a/compLib/__init__.py +++ b/compLib/__init__.py @@ -1,6 +1,7 @@ __version__ = "0.1.5-1" import compLib.LogstashLogging +import compLib.Spi import logging import apt @@ -14,3 +15,5 @@ try: except Exception as e: compLib.LogstashLogging.Logging.get_logger().error(f"error during checking apt package version -> {str(e)}") print(f"\033[91merror during checking apt package version -> {str(e)}\033[0m\n") + +compLib.Spi.Spi.health_check() \ No newline at end of file From 4f564ca759f5a6fbf0b6531bd2ba7876fca1bdc4 Mon Sep 17 00:00:00 2001 From: HerrNamenlos123 Date: Sat, 4 Sep 2021 05:19:52 -0700 Subject: [PATCH 067/246] Fixed SPI error --- compLib/IRSensor.py | 10 +++++----- compLib/Spi.py | 10 ++++++---- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/compLib/IRSensor.py b/compLib/IRSensor.py index 01b3abe..8f2cf3a 100644 --- a/compLib/IRSensor.py +++ b/compLib/IRSensor.py @@ -33,12 +33,12 @@ class IRSensor(object): raise IndexError("Invalid sensor specified!") if sensor == 1: - Spi.write(Register.IR_1_LED, on) + Spi.write(Register.IR_1_LED, 1, on) elif sensor == 2: - Spi.write(Register.IR_2_LED, on) + Spi.write(Register.IR_2_LED, 1, on) elif sensor == 3: - Spi.write(Register.IR_3_LED, on) + Spi.write(Register.IR_3_LED, 1, on) elif sensor == 4: - Spi.write(Register.IR_4_LED, on) + Spi.write(Register.IR_4_LED, 1, on) elif sensor == 5: - Spi.write(Register.IR_5_LED, on) \ No newline at end of file + Spi.write(Register.IR_5_LED, 1, on) \ No newline at end of file diff --git a/compLib/Spi.py b/compLib/Spi.py index 0e53dd2..cab8ad9 100644 --- a/compLib/Spi.py +++ b/compLib/Spi.py @@ -2,8 +2,9 @@ import spidev from threading import Thread, Lock from enum import IntEnum import time +import sys -from compLib.LogstashLogging import logstash_logger +from compLib.LogstashLogging import Logging SPI_BUS = 1 SPI_DEVICE = 2 @@ -100,7 +101,7 @@ class Spi(object): rx_buffer = spi.xfer([0] * 32) if rx_buffer[1] != write_reg: - logstash_logger.error(f"SPI error during read/write of register {write_reg}!") + Logging.get_logger().error(f"SPI error during read/write of register {write_reg}!") return rx_buffer @@ -159,8 +160,9 @@ class Spi(object): @staticmethod def health_check(): if Spi.read(Register.IDENTIFICATION_MODEL_ID, 1) != 3: - logstash_logger.error(f"Unable to read Version! Make sure the mainboard is connected!") - quit() + Logging.get_logger().error(f"Unable to read Version! Make sure the mainboard is connected!") + print("Unable to read Version! Make sure the mainboard is connected!") + sys.exit() @staticmethod def health_check_loop(): From 91884bd4333178d9aeadc39cd3174e5df02352ba Mon Sep 17 00:00:00 2001 From: Konstantin Lampalzer Date: Sat, 4 Sep 2021 15:35:38 +0200 Subject: [PATCH 068/246] Add auto reset of stm on start --- compLib/Reset.py | 16 ++++++++++++++++ compLib/__init__.py | 2 ++ 2 files changed, 18 insertions(+) create mode 100644 compLib/Reset.py diff --git a/compLib/Reset.py b/compLib/Reset.py new file mode 100644 index 0000000..9c7fd7d --- /dev/null +++ b/compLib/Reset.py @@ -0,0 +1,16 @@ +import RPi.GPIO as GPIO +import time + +RESET_PIN = 23 + + +class Reset: + @staticmethod + def reset_bot(): + GPIO.setmode(GPIO.BCM) + GPIO.setup(RESET_PIN, GPIO.OUT) + + GPIO.output(RESET_PIN, GPIO.LOW) + time.sleep(0.1) + GPIO.output(RESET_PIN, GPIO.HIGH) + time.sleep(0.5) diff --git a/compLib/__init__.py b/compLib/__init__.py index bc17135..d516a38 100644 --- a/compLib/__init__.py +++ b/compLib/__init__.py @@ -2,6 +2,7 @@ __version__ = "0.1.5-1" import compLib.LogstashLogging import compLib.Spi +import compLib.Reset import logging import apt @@ -16,4 +17,5 @@ except Exception as e: compLib.LogstashLogging.Logging.get_logger().error(f"error during checking apt package version -> {str(e)}") print(f"\033[91merror during checking apt package version -> {str(e)}\033[0m\n") +compLib.Reset.Reset.reset_bot() compLib.Spi.Spi.health_check() \ No newline at end of file From 9e61023e670c852700a1fbd613d75509726b9d1c Mon Sep 17 00:00:00 2001 From: Konstantin Lampalzer Date: Sat, 4 Sep 2021 14:50:43 +0100 Subject: [PATCH 069/246] Fixed reset delay --- compLib/Reset.py | 3 ++- compLib/Spi.py | 11 ++++++----- compLib/__init__.py | 3 ++- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/compLib/Reset.py b/compLib/Reset.py index 9c7fd7d..4767c1b 100644 --- a/compLib/Reset.py +++ b/compLib/Reset.py @@ -1,6 +1,7 @@ import RPi.GPIO as GPIO import time +GPIO.setwarnings(False) RESET_PIN = 23 @@ -13,4 +14,4 @@ class Reset: GPIO.output(RESET_PIN, GPIO.LOW) time.sleep(0.1) GPIO.output(RESET_PIN, GPIO.HIGH) - time.sleep(0.5) + time.sleep(1.5) diff --git a/compLib/Spi.py b/compLib/Spi.py index cab8ad9..5f6efb7 100644 --- a/compLib/Spi.py +++ b/compLib/Spi.py @@ -164,13 +164,14 @@ class Spi(object): print("Unable to read Version! Make sure the mainboard is connected!") sys.exit() + @staticmethod + def start_health_check_loop(): + health_check_thread = Thread(target=Spi.health_check_loop) + health_check_thread.setDaemon(True) + health_check_thread.start() + @staticmethod def health_check_loop(): while True: Spi.health_check() time.sleep(0.5) - - -health_check_thread = Thread(target=Spi.health_check_loop) -health_check_thread.setDaemon(True) -health_check_thread.start() \ No newline at end of file diff --git a/compLib/__init__.py b/compLib/__init__.py index d516a38..fa48d2a 100644 --- a/compLib/__init__.py +++ b/compLib/__init__.py @@ -18,4 +18,5 @@ except Exception as e: print(f"\033[91merror during checking apt package version -> {str(e)}\033[0m\n") compLib.Reset.Reset.reset_bot() -compLib.Spi.Spi.health_check() \ No newline at end of file +compLib.Spi.Spi.health_check() +compLib.Spi.Spi.start_health_check_loop() \ No newline at end of file From 3e7df14da89e99f757cccdca94dce2f25e65da88 Mon Sep 17 00:00:00 2001 From: Konstantin Lampalzer Date: Sat, 4 Sep 2021 15:00:33 +0100 Subject: [PATCH 070/246] Fixed Encoder clear at startup --- compLib/Encoder.py | 11 ++++++++--- compLib/__init__.py | 4 +++- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/compLib/Encoder.py b/compLib/Encoder.py index eddc77f..ae9c1a7 100644 --- a/compLib/Encoder.py +++ b/compLib/Encoder.py @@ -57,7 +57,12 @@ class Encoder(object): raise IndexError("Invalid encoder port specified!") encoder_start_values[port] = Encoder.read_raw(port) - -for i in range(1, MOTOR_COUNT + 1): - encoder_start_values[i] = Encoder.read_raw(i) \ No newline at end of file + @staticmethod + def clear_all(): + """Reset all encoder positions to 0 + """ + + for i in range(1, MOTOR_COUNT + 1): + encoder_start_values[i] = Encoder.read_raw(i) + \ No newline at end of file diff --git a/compLib/__init__.py b/compLib/__init__.py index fa48d2a..e67ec4b 100644 --- a/compLib/__init__.py +++ b/compLib/__init__.py @@ -3,6 +3,7 @@ __version__ = "0.1.5-1" import compLib.LogstashLogging import compLib.Spi import compLib.Reset +import compLib.Encoder import logging import apt @@ -19,4 +20,5 @@ except Exception as e: compLib.Reset.Reset.reset_bot() compLib.Spi.Spi.health_check() -compLib.Spi.Spi.start_health_check_loop() \ No newline at end of file +compLib.Spi.Spi.start_health_check_loop() +compLib.Encoder.Encoder.clear_all() \ No newline at end of file From ce748d832100d66af0123e20e1bb9d6b172723e3 Mon Sep 17 00:00:00 2001 From: Konstantin Lampalzer Date: Sat, 4 Sep 2021 18:44:56 +0200 Subject: [PATCH 071/246] Add servo registers --- compLib/Spi.py | 72 ++++++++++++++++++++++++++++---------------------- 1 file changed, 41 insertions(+), 31 deletions(-) diff --git a/compLib/Spi.py b/compLib/Spi.py index cab8ad9..f824a94 100644 --- a/compLib/Spi.py +++ b/compLib/Spi.py @@ -43,19 +43,21 @@ class Register(IntEnum): MOTOR_4_POS_B1 = 24, MOTOR_4_POS_B0 = 25, + # PWM Control Modes + PWM_1_CTRL = 26, + PWM_2_CTRL = 27, + PWM_3_CTRL = 28, + PWM_4_CTRL = 29, + # Motor pwm speed - MOTOR_1_PWM_H = 26, - MOTOR_1_PWM_L = 27, - MOTOR_1_CTRL = 28, - MOTOR_2_PWM_H = 29, - MOTOR_2_PWM_L = 30, - MOTOR_2_CTRL = 31, - MOTOR_3_PWM_H = 32, - MOTOR_3_PWM_L = 33, - MOTOR_3_CTRL = 34, - MOTOR_4_PWM_H = 35, - MOTOR_4_PWM_L = 36, - MOTOR_4_CTRL = 37, + MOTOR_1_PWM_H = 30, + MOTOR_1_PWM_L = 31, + MOTOR_2_PWM_H = 32, + MOTOR_2_PWM_L = 33, + MOTOR_3_PWM_H = 34, + MOTOR_3_PWM_L = 35, + MOTOR_4_PWM_H = 36, + MOTOR_4_PWM_L = 37, # Servo goal position SERVO_1_PWM_H = 38, @@ -66,29 +68,37 @@ class Register(IntEnum): SERVO_3_PWM_L = 43, SERVO_4_PWM_H = 44, SERVO_4_PWM_L = 45, + SERVO_5_PWM_H = 46, + SERVO_5_PWM_L = 47, + SERVO_6_PWM_H = 48, + SERVO_6_PWM_L = 49, + SERVO_7_PWM_H = 50, + SERVO_7_PWM_L = 51, + SERVO_8_PWM_H = 52, + SERVO_8_PWM_L = 53, # IR Sensor value - IR_1_H = 46, - IR_1_L = 47, - IR_2_H = 48, - IR_2_L = 49, - IR_3_H = 50, - IR_3_L = 51, - IR_4_H = 52, - IR_4_L = 53, - IR_5_H = 54, - IR_5_L = 55, - IR_1_LED = 56, - IR_2_LED = 57, - IR_3_LED = 58, - IR_4_LED = 59, - IR_5_LED = 60, + IR_1_H = 54, + IR_1_L = 55, + IR_2_H = 56, + IR_2_L = 57, + IR_3_H = 58, + IR_3_L = 59, + IR_4_H = 60, + IR_4_L = 61, + IR_5_H = 62, + IR_5_L = 63, + IR_1_LED = 64, + IR_2_LED = 65, + IR_3_LED = 66, + IR_4_LED = 67, + IR_5_LED = 68, # Display registers - DISPLAY_LINE_1_C0 = 63, - DISPLAY_LINE_2_C0 = 79, - DISPLAY_LINE_3_C0 = 95, - DISPLAY_LINE_4_C0 = 111 + DISPLAY_LINE_1_C0 = 69, + DISPLAY_LINE_2_C0 = 85, + DISPLAY_LINE_3_C0 = 101, + DISPLAY_LINE_4_C0 = 117 class Spi(object): From 74f0f42d2fb0a44c48bd50424e8256e348273fe0 Mon Sep 17 00:00:00 2001 From: Konstantin Lampalzer Date: Sun, 5 Sep 2021 11:11:53 +0100 Subject: [PATCH 072/246] Fixed encoder overflow --- compLib/Encoder.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/compLib/Encoder.py b/compLib/Encoder.py index ae9c1a7..3ede960 100644 --- a/compLib/Encoder.py +++ b/compLib/Encoder.py @@ -44,7 +44,11 @@ class Encoder(object): if port <= 0 or port > MOTOR_COUNT: raise IndexError("Invalid encoder port specified!") - return Encoder.read_raw(port) - encoder_start_values[port] + diff = Encoder.read_raw(port) - encoder_start_values[port] + if diff > 2 ** 31: + diff -= 2 ** 32 + + return diff @staticmethod def clear(port: int): From 50709c96e05a8977f8e5b5edb9b9b69411e1b8b7 Mon Sep 17 00:00:00 2001 From: Konstantin Lampalzer Date: Sun, 5 Sep 2021 11:27:23 +0100 Subject: [PATCH 073/246] Added prints on library startup --- compLib/__init__.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/compLib/__init__.py b/compLib/__init__.py index e67ec4b..e42c956 100644 --- a/compLib/__init__.py +++ b/compLib/__init__.py @@ -18,7 +18,9 @@ except Exception as e: compLib.LogstashLogging.Logging.get_logger().error(f"error during checking apt package version -> {str(e)}") print(f"\033[91merror during checking apt package version -> {str(e)}\033[0m\n") +print(f"\033[34mInitializing chipmunk board...\033[0m") compLib.Reset.Reset.reset_bot() compLib.Spi.Spi.health_check() compLib.Spi.Spi.start_health_check_loop() -compLib.Encoder.Encoder.clear_all() \ No newline at end of file +compLib.Encoder.Encoder.clear_all() +print(f"\033[34mReady\033[0m\n") \ No newline at end of file From bdb7d687bb3946e7fc79853030b339c071bab9a6 Mon Sep 17 00:00:00 2001 From: Konstantin Lampalzer Date: Sun, 5 Sep 2021 11:37:16 +0100 Subject: [PATCH 074/246] Fixed motor registers --- compLib/Motor.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/compLib/Motor.py b/compLib/Motor.py index 5eca21b..ba1bac3 100644 --- a/compLib/Motor.py +++ b/compLib/Motor.py @@ -34,16 +34,16 @@ class Motor(object): if port == 1: Spi.write(Register.MOTOR_1_PWM_H, 2, pwm) - Spi.write(Register.MOTOR_1_CTRL, 1, int(mode)) + Spi.write(Register.PWM_1_CTRL, 1, int(mode)) elif port == 2: Spi.write(Register.MOTOR_2_PWM_H, 2, pwm) - Spi.write(Register.MOTOR_2_CTRL, 1, int(mode)) + Spi.write(Register.PWM_2_CTRL, 1, int(mode)) elif port == 3: Spi.write(Register.MOTOR_3_PWM_H, 2, pwm) - Spi.write(Register.MOTOR_3_CTRL, 1, int(mode)) + Spi.write(Register.PWM_3_CTRL, 1, int(mode)) elif port == 4: Spi.write(Register.MOTOR_4_PWM_H, 2, pwm) - Spi.write(Register.MOTOR_4_CTRL, 1, int(mode)) + Spi.write(Register.PWM_4_CTRL, 1, int(mode)) @staticmethod def power(port: int, percent: float): From e0600d75c4dc7a87d3f6a73028aaea4610eeb97b Mon Sep 17 00:00:00 2001 From: Konstantin Lampalzer Date: Sun, 5 Sep 2021 14:26:43 +0100 Subject: [PATCH 075/246] Added motor curve linearizer --- compLib/Motor.py | 76 ++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 73 insertions(+), 3 deletions(-) diff --git a/compLib/Motor.py b/compLib/Motor.py index ba1bac3..4968581 100644 --- a/compLib/Motor.py +++ b/compLib/Motor.py @@ -7,7 +7,7 @@ from compLib.Spi import Spi, Register MOTOR_COUNT = 4 MAX_MOTOR_SPEED = 65535 MOTOR_PERCENTAGE_MULT = MAX_MOTOR_SPEED / 100.0 - +MOTOR_CURVE = [0.0, 0.0, 426.5, 692.0, 842.5, 953.5, 1032.5, 1090.5, 1135.5, 1171.0, 1203.5, 1230.0, 1249.5, 1268.0, 1283.0, 1298.5, 1308.0, 1320.0, 1332.0, 1339.5, 1352.5] class MotorMode(IntEnum): COAST = 0, @@ -15,7 +15,6 @@ class MotorMode(IntEnum): BACKWARD = 2, BREAK = 3 - class Motor(object): """Class used to control the motors """ @@ -46,7 +45,7 @@ class Motor(object): Spi.write(Register.PWM_4_CTRL, 1, int(mode)) @staticmethod - def power(port: int, percent: float): + def power_raw(port: int, percent: float): """Set specified motor to percentage power :param port: Port, which the motor is connected to. 1-4 @@ -72,6 +71,17 @@ class Motor(object): Motor.pwm(port, int(pwm), mode) + @staticmethod + def power(port: int, percent: float): + """Set specified motor to percentage power, percentage is linearized + so that it's roughly proportional to the speed + + :param port: Port, which the motor is connected to. 1-4 + :param percent: Percentage of max speed. between -100 and 100 + :raises: IndexError + """ + Motor.power_raw(port, Motor.__linearizePower(MOTOR_CURVE, percent)) + @staticmethod def all_off(): """ @@ -91,5 +101,65 @@ class Motor(object): """ Motor.pwm(port, 0, MotorMode.BREAK) + @staticmethod + def set_motor_curve(curve): + """ + Set the global motor curve, must be a float array with exactly 21 elements. + [0] = x ticks/s (0% power) + [1] = x ticks/s (5% power) + [2] = x ticks/s (10% power) + ... + [20] = x ticks/s (100% power) + + :param curve: float array with 21 elements + :raises: ValueError + """ + if (len(curve) != 21): + raise ValueError('The motor curve is invalid, check documentation for set_motor_curve()!') + + MOTOR_CURVE = curve + + @staticmethod + def get_motor_curve(): + """ + Get the currently active motor curve. Check set_motor_curve() for more info. + + :return: current motor curve + """ + return MOTOR_CURVE + + @staticmethod + def __map(x, in_min, in_max, out_min, out_max): + """ + Linear interpolation. Check https://www.arduino.cc/reference/en/language/functions/math/map/ + """ + return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min + + @staticmethod + def __interpolateSpeed(curve, speed): + """ + Interpolate a speed in the specified motor curve and return + the 'power percentage that is needed to reach that speed' + """ + if speed < curve[0] or speed > curve[20]: + raise ValueError(f'Speed out of range: {str(speed)} ticks/s') + + for index in range(20): # There are 20 speed ranges + if speed >= curve[index] and speed <= curve[index + 1] and curve[index] != curve[index + 1]: + return Motor.__map(speed, curve[index], curve[index + 1], index * 5, index * 5 + 5) + + return 0 + + @staticmethod + def __linearizePower(curve, power): + """ + Takes raw power and returns it corrected so that the motor speed would be roughly linear + """ + if power < 0 or power > 100: + raise ValueError(f'Power out of range: {str(power)}%') + + requiredSpeed = Motor.__map(power, 0, 100, curve[0], curve[20]) + return Motor.__interpolateSpeed(curve, requiredSpeed) + atexit.register(Motor.all_off) From 60f252c37a7664f27e0f64a561d7ab72462f3c39 Mon Sep 17 00:00:00 2001 From: Konstantin Lampalzer Date: Sun, 5 Sep 2021 16:45:30 +0100 Subject: [PATCH 076/246] Fixed sign for motor power --- compLib/Motor.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/compLib/Motor.py b/compLib/Motor.py index 4968581..858041d 100644 --- a/compLib/Motor.py +++ b/compLib/Motor.py @@ -80,7 +80,12 @@ class Motor(object): :param percent: Percentage of max speed. between -100 and 100 :raises: IndexError """ - Motor.power_raw(port, Motor.__linearizePower(MOTOR_CURVE, percent)) + if percent > 0: + Motor.power_raw(port, Motor.__linearizePower(MOTOR_CURVE, percent)) + elif percent < 0: + Motor.power_raw(port, -Motor.__linearizePower(MOTOR_CURVE, -percent)) + else: + Motor.power_raw(port, 0) @staticmethod def all_off(): From 3fe31399618368bf6f6d5f2ef6c0e52d3236bc0c Mon Sep 17 00:00:00 2001 From: Konstantin Lampalzer Date: Mon, 6 Sep 2021 18:51:52 +0200 Subject: [PATCH 077/246] Add MetricsLogging --- compLib/Encoder.py | 4 +- compLib/IRSensor.py | 18 +++++---- compLib/MetricsLogging.py | 84 +++++++++++++++++++++++++++++++++++++++ compLib/Motor.py | 17 +++++--- compLib/Servo.py | 50 +++++++++++------------ compLib/__init__.py | 56 ++++++++++++++++---------- 6 files changed, 168 insertions(+), 61 deletions(-) create mode 100644 compLib/MetricsLogging.py diff --git a/compLib/Encoder.py b/compLib/Encoder.py index 3ede960..75ac3a0 100644 --- a/compLib/Encoder.py +++ b/compLib/Encoder.py @@ -2,6 +2,7 @@ import atexit from enum import Enum from compLib.LogstashLogging import Logging +from compLib.MetricsLogging import MetricsLogging from compLib.Spi import Spi, Register MOTOR_COUNT = 4 @@ -47,7 +48,8 @@ class Encoder(object): diff = Encoder.read_raw(port) - encoder_start_values[port] if diff > 2 ** 31: diff -= 2 ** 32 - + + MetricsLogging.put("Encoder", diff, port) return diff @staticmethod diff --git a/compLib/IRSensor.py b/compLib/IRSensor.py index 8f2cf3a..f2747af 100644 --- a/compLib/IRSensor.py +++ b/compLib/IRSensor.py @@ -1,6 +1,6 @@ from compLib.LogstashLogging import Logging +from compLib.MetricsLogging import MetricsLogging from compLib.Spi import Spi, Register -import spidev SENSOR_COUNT = 5 @@ -14,18 +14,20 @@ class IRSensor(object): if sensor <= 0 or sensor > SENSOR_COUNT: raise IndexError("Invalid sensor specified!") + result = 0 if sensor == 1: - return Spi.read(Register.IR_1_H, 2) + result = Spi.read(Register.IR_1_H, 2) elif sensor == 2: - return Spi.read(Register.IR_2_H, 2) + esult = Spi.read(Register.IR_2_H, 2) elif sensor == 3: - return Spi.read(Register.IR_3_H, 2) + esult = Spi.read(Register.IR_3_H, 2) elif sensor == 4: - return Spi.read(Register.IR_4_H, 2) + esult = Spi.read(Register.IR_4_H, 2) elif sensor == 5: - return Spi.read(Register.IR_5_H, 2) - else: - return 0 + esult = Spi.read(Register.IR_5_H, 2) + + MetricsLogging.put("Infrared", result, sensor) + return result @staticmethod def set(sensor: int, on: bool): diff --git a/compLib/MetricsLogging.py b/compLib/MetricsLogging.py new file mode 100644 index 0000000..f696c0c --- /dev/null +++ b/compLib/MetricsLogging.py @@ -0,0 +1,84 @@ +from influxdb_client import InfluxDBClient, Point, WritePrecision +import socket +import uuid +import os +import queue +import datetime +import threading +import requests + +CONCURRENCY = 2 + +HOSTNAME = socket.gethostname() +RUN_TRACE = str(uuid.uuid4()) + +TOKEN = "aCdxnntw-Zp3agci8Z32lQAR_ep6MhdmWOJG7ObnoikYqe7nKAhFYx1jVGBpipQuId79SC4Jl0J6IBYVqauJyw==" +ORG = "robo4you" +BUCKET = "compAIR" + +INFLUX_HOST = "https://influxdb.comp-air.at" + +EXTENSIVE_LOGGING = os.getenv("EXTENSIVE_LOGGING", "True") +if EXTENSIVE_LOGGING == "True": + EXTENSIVE_LOGGING = True +else: + EXTENSIVE_LOGGING = False + + +influx_client = InfluxDBClient(url=INFLUX_HOST, token=TOKEN) +write_api = influx_client.write_api() + +point_queue = queue.Queue() +workers = [] + +class MetricsLogging(): + + @staticmethod + def is_influx_reachable(): + try: + r = requests.get(INFLUX_HOST) + if r.status_code == 200: + return True + else: + print(f"Could not connect to {INFLUX_HOST} -> ERROR CODE: {r.status_code}!") + return False + except requests.exceptions.RequestException as identifier: + print(f"Could not connect to {INFLUX_HOST}!") + + @staticmethod + def put(sensorType, value, port): + if EXTENSIVE_LOGGING: + point = Point(sensorType) \ + .tag("host", HOSTNAME) \ + .tag("runID", RUN_TRACE) \ + .tag("port", port) \ + .field("value", value) \ + .time(datetime.datetime.utcnow(), WritePrecision.MS) + point_queue.put_nowait(point) + + @staticmethod + def worker(): + while True: + point = point_queue.get() + if point is None: # Kill signal + return + + try: + write_api.write(BUCKET, ORG, point) + + finally: + point_queue.task_done() + + @staticmethod + def start_workers(): + global EXTENSIVE_LOGGING + if EXTENSIVE_LOGGING: + if MetricsLogging.is_influx_reachable(): + EXTENSIVE_LOGGING = False + for i in range(CONCURRENCY): + worker = threading.Thread(target=MetricsLogging.worker, daemon=True) + worker.start() + workers.append(worker) + + +MetricsLogging.start_workers() diff --git a/compLib/Motor.py b/compLib/Motor.py index 858041d..ea6e05f 100644 --- a/compLib/Motor.py +++ b/compLib/Motor.py @@ -2,6 +2,7 @@ import atexit from enum import IntEnum from compLib.LogstashLogging import Logging +from compLib.MetricsLogging import MetricsLogging from compLib.Spi import Spi, Register MOTOR_COUNT = 4 @@ -45,14 +46,13 @@ class Motor(object): Spi.write(Register.PWM_4_CTRL, 1, int(mode)) @staticmethod - def power_raw(port: int, percent: float): + def power_raw(port: int, percent: float, log_metric = True): """Set specified motor to percentage power :param port: Port, which the motor is connected to. 1-4 :param percent: Percentage of max speed. between -100 and 100 :raises: IndexError """ - Logging.get_logger().debug(f"Motor.power {port} {percent}") if port <= 0 or port > MOTOR_COUNT: raise IndexError("Invalid Motor port specified!") @@ -60,6 +60,9 @@ class Motor(object): if percent < -100 or percent > 100: raise IndexError("Invalid Motor speed specified! Speed is between -100 and 100 percent!") + if log_metric: + MetricsLogging.put("MotorRaw", percent, port) + mode = MotorMode.COAST if percent < 0: percent = abs(percent) @@ -80,12 +83,14 @@ class Motor(object): :param percent: Percentage of max speed. between -100 and 100 :raises: IndexError """ + raw_power = 0 if percent > 0: - Motor.power_raw(port, Motor.__linearizePower(MOTOR_CURVE, percent)) + raw_power = Motor.__linearizePower(MOTOR_CURVE, percent) elif percent < 0: - Motor.power_raw(port, -Motor.__linearizePower(MOTOR_CURVE, -percent)) - else: - Motor.power_raw(port, 0) + raw_power = -Motor.__linearizePower(MOTOR_CURVE, -percent) + + MetricsLogging.put("Motor", percent, port, False) + Motor.power_raw(port, raw_power) @staticmethod def all_off(): diff --git a/compLib/Servo.py b/compLib/Servo.py index 183986b..cf50d43 100644 --- a/compLib/Servo.py +++ b/compLib/Servo.py @@ -1,36 +1,36 @@ -from compLib.PCA9685 import PCA9685 +# from compLib.PCA9685 import PCA9685 -SERVO_COUNT = 10 +# SERVO_COUNT = 10 -pwm = PCA9685(0x40, debug=True) -pwm.setPWMFreq(50) +# pwm = PCA9685(0x40, debug=True) +# pwm.setPWMFreq(50) -MIN_ANGLE = -90.0 -MAX_ANGLE = 90.0 +# MIN_ANGLE = -90.0 +# MAX_ANGLE = 90.0 -class Servo: - """Control the servo ports on the robot - """ +# class Servo: +# """Control the servo ports on the robot +# """ - @staticmethod - def set_position(channel: int, angle: int, offset: float =90): - """Set position of servo connected to port +# @staticmethod +# def set_position(channel: int, angle: int, offset: float =90): +# """Set position of servo connected to port - :param channel: channel between 0 and 7 - :param angle: Angle of servo - """ - if channel < 0 or channel >= SERVO_COUNT: - raise IndexError("Invalid Servo channel specified!") +# :param channel: channel between 0 and 7 +# :param angle: Angle of servo +# """ +# if channel < 0 or channel >= SERVO_COUNT: +# raise IndexError("Invalid Servo channel specified!") - angle = max(min(angle, MAX_ANGLE), MIN_ANGLE) +# angle = max(min(angle, MAX_ANGLE), MIN_ANGLE) - pwm.setServoPulse(channel + 8, 500+int((angle+offset)/0.09)) +# pwm.setServoPulse(channel + 8, 500+int((angle+offset)/0.09)) - @staticmethod - def setup_position(): - """Set position of servos to the position used during the setup process - """ +# @staticmethod +# def setup_position(): +# """Set position of servos to the position used during the setup process +# """ - Servo.set_position(0, 0) - Servo.set_position(1, 0) +# Servo.set_position(0, 0) +# Servo.set_position(1, 0) diff --git a/compLib/__init__.py b/compLib/__init__.py index e42c956..c0efb79 100644 --- a/compLib/__init__.py +++ b/compLib/__init__.py @@ -1,26 +1,40 @@ __version__ = "0.1.5-1" +import importlib import compLib.LogstashLogging -import compLib.Spi -import compLib.Reset -import compLib.Encoder -import logging -import apt -try: - __versions = apt.Cache()["python3-complib"].versions - if len(__versions) != 1: - print(f"Starting compLib! \033[91mVersion: {__version__} is outdated\033[0m\n" - f"\033[92m[!] run the command 'sudo apt update && sudo apt install python3-complib' to install the newest version\033[0m") - else: - print(f"Starting compLib! \033[92mVersion: {__version__} is up to date\033[0m") -except Exception as e: - compLib.LogstashLogging.Logging.get_logger().error(f"error during checking apt package version -> {str(e)}") - print(f"\033[91merror during checking apt package version -> {str(e)}\033[0m\n") -print(f"\033[34mInitializing chipmunk board...\033[0m") -compLib.Reset.Reset.reset_bot() -compLib.Spi.Spi.health_check() -compLib.Spi.Spi.start_health_check_loop() -compLib.Encoder.Encoder.clear_all() -print(f"\033[34mReady\033[0m\n") \ No newline at end of file +apt_found = importlib.util.find_spec("apt") is not None +spi_found = importlib.util.find_spec("spidev") is not None + + +if apt_found: + import apt + + try: + __versions = apt.Cache()["python3-complib"].versions + if len(__versions) != 1: + print(f"Starting compLib! \033[91mVersion: {__version__} is outdated\033[0m\n" + f"\033[92m[!] run the command 'sudo apt update && sudo apt install python3-complib' to install the newest version\033[0m") + else: + print(f"Starting compLib! \033[92mVersion: {__version__} is up to date\033[0m") + except Exception as e: + compLib.LogstashLogging.Logging.get_logger().error(f"error during checking apt package version -> {str(e)}") + print(f"\033[91merror during checking apt package version -> {str(e)}\033[0m\n") +else: + print("apt is not installed! This is for local development only!") + +if spi_found: + import compLib.Spi + import compLib.Reset + import compLib.Encoder + import logging + + print(f"\033[34mInitializing chipmunk board...\033[0m") + compLib.Reset.Reset.reset_bot() + compLib.Spi.Spi.health_check() + compLib.Spi.Spi.start_health_check_loop() + compLib.Encoder.Encoder.clear_all() + print(f"\033[34mReady\033[0m\n") +else: + print("spidev is not installed! This is for local development only!") From aac99a11baddee09af5ba08097b2b22604a215b0 Mon Sep 17 00:00:00 2001 From: Konstantin Lampalzer Date: Sat, 11 Sep 2021 21:12:58 +0200 Subject: [PATCH 078/246] Minor fixes --- compLib/MetricsLogging.py | 3 ++- compLib/Motor.py | 4 ++-- compLib/Reset.py | 4 +++- compLib/__init__.py | 1 + 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/compLib/MetricsLogging.py b/compLib/MetricsLogging.py index f696c0c..24f3099 100644 --- a/compLib/MetricsLogging.py +++ b/compLib/MetricsLogging.py @@ -74,11 +74,12 @@ class MetricsLogging(): global EXTENSIVE_LOGGING if EXTENSIVE_LOGGING: if MetricsLogging.is_influx_reachable(): - EXTENSIVE_LOGGING = False for i in range(CONCURRENCY): worker = threading.Thread(target=MetricsLogging.worker, daemon=True) worker.start() workers.append(worker) + else: + EXTENSIVE_LOGGING = False MetricsLogging.start_workers() diff --git a/compLib/Motor.py b/compLib/Motor.py index ea6e05f..b524d9d 100644 --- a/compLib/Motor.py +++ b/compLib/Motor.py @@ -89,8 +89,8 @@ class Motor(object): elif percent < 0: raw_power = -Motor.__linearizePower(MOTOR_CURVE, -percent) - MetricsLogging.put("Motor", percent, port, False) - Motor.power_raw(port, raw_power) + MetricsLogging.put("Motor", percent, port) + Motor.power_raw(port, raw_power, False) @staticmethod def all_off(): diff --git a/compLib/Reset.py b/compLib/Reset.py index 4767c1b..e81bc55 100644 --- a/compLib/Reset.py +++ b/compLib/Reset.py @@ -3,15 +3,17 @@ import time GPIO.setwarnings(False) RESET_PIN = 23 - +BOOT_PIN = 17 class Reset: @staticmethod def reset_bot(): GPIO.setmode(GPIO.BCM) GPIO.setup(RESET_PIN, GPIO.OUT) + GPIO.setup(BOOT_PIN, GPIO.OUT) GPIO.output(RESET_PIN, GPIO.LOW) + GPIO.output(BOOT_PIN, GPIO.LOW) time.sleep(0.1) GPIO.output(RESET_PIN, GPIO.HIGH) time.sleep(1.5) diff --git a/compLib/__init__.py b/compLib/__init__.py index c0efb79..993095f 100644 --- a/compLib/__init__.py +++ b/compLib/__init__.py @@ -2,6 +2,7 @@ __version__ = "0.1.5-1" import importlib import compLib.LogstashLogging +import compLib.MetricsLogging apt_found = importlib.util.find_spec("apt") is not None From cbe3a379bdaf77e4d481fd8f6ad4a5b7b7b41eef Mon Sep 17 00:00:00 2001 From: Konstantin Lampalzer Date: Sun, 12 Sep 2021 13:01:37 +0200 Subject: [PATCH 079/246] Faster reset --- compLib/Reset.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/compLib/Reset.py b/compLib/Reset.py index e81bc55..34194c5 100644 --- a/compLib/Reset.py +++ b/compLib/Reset.py @@ -16,4 +16,4 @@ class Reset: GPIO.output(BOOT_PIN, GPIO.LOW) time.sleep(0.1) GPIO.output(RESET_PIN, GPIO.HIGH) - time.sleep(1.5) + time.sleep(0.3) From 8f2944da715a08f568e26d9518d9558b70144ce1 Mon Sep 17 00:00:00 2001 From: Konstantin Lampalzer Date: Sun, 12 Sep 2021 13:42:55 +0200 Subject: [PATCH 080/246] Documentation --- compLib/Display.py | 9 +++++++++ compLib/IRSensor.py | 12 ++++++++++++ compLib/MetricsLogging.py | 15 ++++++++++++++- compLib/Reset.py | 5 +++++ 4 files changed, 40 insertions(+), 1 deletion(-) diff --git a/compLib/Display.py b/compLib/Display.py index 3253f16..82ad451 100644 --- a/compLib/Display.py +++ b/compLib/Display.py @@ -13,6 +13,12 @@ class Display(object): @staticmethod def write(line: int, text: string): + """Write a string of text to the integrated display. + + :param line: Line to write. Between 1 and 4 + :param text: Text to write. Up to 16 characters + :raises: IndexError + """ if len(text) > CHARS_PER_LINE: logstash_logger.error(f"Too many characters specified!") return @@ -35,5 +41,8 @@ class Display(object): @staticmethod def clear(): + """Clear the display + + """ for i in range(1, LINE_COUNT + 1): Display.write(i, "") diff --git a/compLib/IRSensor.py b/compLib/IRSensor.py index f2747af..8e679f9 100644 --- a/compLib/IRSensor.py +++ b/compLib/IRSensor.py @@ -11,6 +11,13 @@ class IRSensor(object): @staticmethod def read(sensor: int) -> int: + """Read one infrared sensor + + :param sensor: Which sensor to read. Between 1 and 5 + :raises: IndexError + :return: Sensor value. 10 bit accuracy + :rtype: int + """ if sensor <= 0 or sensor > SENSOR_COUNT: raise IndexError("Invalid sensor specified!") @@ -31,6 +38,11 @@ class IRSensor(object): @staticmethod def set(sensor: int, on: bool): + """Turn on / off a IR emitter + + :param sensor: Which sensor to read. Between 1 and 5 + :raises: IndexError + """ if sensor <= 0 or sensor > SENSOR_COUNT: raise IndexError("Invalid sensor specified!") diff --git a/compLib/MetricsLogging.py b/compLib/MetricsLogging.py index 24f3099..5fc4ee2 100644 --- a/compLib/MetricsLogging.py +++ b/compLib/MetricsLogging.py @@ -32,9 +32,16 @@ point_queue = queue.Queue() workers = [] class MetricsLogging(): + """Used to send metrics / points to a influxdb + """ @staticmethod - def is_influx_reachable(): + def is_influx_reachable() -> bool: + """Check if we can send metrics to the database + + :return: Is reachable? + :rtype: bool + """ try: r = requests.get(INFLUX_HOST) if r.status_code == 200: @@ -47,6 +54,12 @@ class MetricsLogging(): @staticmethod def put(sensorType, value, port): + """Put a datapoint into a time-series-database + + :param sensorType: A key used to identify a datapoint + :param value: Value measured by the sensor + :param port: Port of the sensor which was read + """ if EXTENSIVE_LOGGING: point = Point(sensorType) \ .tag("host", HOSTNAME) \ diff --git a/compLib/Reset.py b/compLib/Reset.py index 34194c5..dd52a60 100644 --- a/compLib/Reset.py +++ b/compLib/Reset.py @@ -6,8 +6,13 @@ RESET_PIN = 23 BOOT_PIN = 17 class Reset: + """Reset the co-processor + """ + @staticmethod def reset_bot(): + """Reset the co-processor + """ GPIO.setmode(GPIO.BCM) GPIO.setup(RESET_PIN, GPIO.OUT) GPIO.setup(BOOT_PIN, GPIO.OUT) From cf4e88fd3538bdd6dbd891eea70039096f04a9f6 Mon Sep 17 00:00:00 2001 From: Konstantin Lampalzer Date: Sun, 12 Sep 2021 13:46:30 +0200 Subject: [PATCH 081/246] Documentation --- docs/source/lib/Battery.rst | 23 ----------------------- docs/source/lib/Buzzer.rst | 25 ------------------------- docs/source/lib/IRSensor.rst | 4 +--- docs/source/lib/IRWrapper.rst | 22 ---------------------- docs/source/lib/Motor.rst | 4 ++-- 5 files changed, 3 insertions(+), 75 deletions(-) delete mode 100644 docs/source/lib/Battery.rst delete mode 100644 docs/source/lib/Buzzer.rst delete mode 100644 docs/source/lib/IRWrapper.rst diff --git a/docs/source/lib/Battery.rst b/docs/source/lib/Battery.rst deleted file mode 100644 index c7d1fb1..0000000 --- a/docs/source/lib/Battery.rst +++ /dev/null @@ -1,23 +0,0 @@ -.. _lib_battery: - -Battery -******** - -Class Documentation -==================== - -.. autoclass:: compLib.Battery.Battery - :members: - - -Examples -========= - -Printing percentage --------------------- - -.. code-block:: python - - from compLib.Battery import Battery - - print(Battery.percent()) \ No newline at end of file diff --git a/docs/source/lib/Buzzer.rst b/docs/source/lib/Buzzer.rst deleted file mode 100644 index 56a81c4..0000000 --- a/docs/source/lib/Buzzer.rst +++ /dev/null @@ -1,25 +0,0 @@ -.. _lib_buzzer: - -Buzzer -******* - -Class Documentation -==================== - -.. autoclass:: compLib.Buzzer.Buzzer - :members: - -Examples -========= - -Turning buzzer on and off --------------------------- - -.. code-block:: python - - import time - from compLib.Buzzer import Buzzer - - Buzzer.set(True) - time.sleep(1) - Buzzer.set(False) \ No newline at end of file diff --git a/docs/source/lib/IRSensor.rst b/docs/source/lib/IRSensor.rst index 26332b9..b1dd232 100644 --- a/docs/source/lib/IRSensor.rst +++ b/docs/source/lib/IRSensor.rst @@ -16,7 +16,5 @@ Testing analog sensors from compLib import IRSensor - ir = IRSensor.IRSensor() - while True: - print ("left: {} middle: {} right: {}".format(ir.bottom_left_analog(), ir.bottom_middle_analog(), ir.bottom_right_analog())) \ No newline at end of file + print ("left: {} middle: {} right: {}".format(IRSensor.read(1), IRSensor.read(3), IRSensor.read(5))) \ No newline at end of file diff --git a/docs/source/lib/IRWrapper.rst b/docs/source/lib/IRWrapper.rst deleted file mode 100644 index 15232a7..0000000 --- a/docs/source/lib/IRWrapper.rst +++ /dev/null @@ -1,22 +0,0 @@ -.. _lib_irwrapper: - -Infrared Wrapper -**************** - -.. autoclass:: compLib.IRWrapper.IRWrapper - :members: - -Examples -========= - -Calibrating analog sensors --------------------------- - -.. code-block:: python - - from compLib import IRWrapper - - ir = IRWrapper.IRWrapper() - - ir.calibrate() - print("left {} middle {} right {}".format(ir.bottom_left_calibrated(), ir.bottom_middle_calibrated(), ir.bottom_right_calibrated())) diff --git a/docs/source/lib/Motor.rst b/docs/source/lib/Motor.rst index 5febcfe..e5d6854 100644 --- a/docs/source/lib/Motor.rst +++ b/docs/source/lib/Motor.rst @@ -19,5 +19,5 @@ Driving straight (maybe) from compLib.Motor import Motor - for port in range(0, 4): - Motor.power(port, 50) \ No newline at end of file + Motor.power(1, 50) + Motor.power(2, 50) \ No newline at end of file From f5488f7b47ed504e66a0413c703b16ba1c8fc8f4 Mon Sep 17 00:00:00 2001 From: Konstantin Lampalzer Date: Sun, 12 Sep 2021 13:46:36 +0200 Subject: [PATCH 082/246] Documentation --- docs/source/lib/Display.rst | 23 +++++++++++++++++++++++ docs/source/lib/Encoder.rst | 10 ++++++++++ 2 files changed, 33 insertions(+) create mode 100644 docs/source/lib/Display.rst create mode 100644 docs/source/lib/Encoder.rst diff --git a/docs/source/lib/Display.rst b/docs/source/lib/Display.rst new file mode 100644 index 0000000..6701845 --- /dev/null +++ b/docs/source/lib/Display.rst @@ -0,0 +1,23 @@ +.. _lib_display: + +Display +******* + +Class Documentation +==================== + +.. autoclass:: compLib.Display.Display + :members: + +Examples +========= + +Write a line to the display +--------------------------- + +.. code-block:: python + + import time + from compLib.Display import Display + + Display.write(1, "Hello World!") \ No newline at end of file diff --git a/docs/source/lib/Encoder.rst b/docs/source/lib/Encoder.rst new file mode 100644 index 0000000..1d5bf30 --- /dev/null +++ b/docs/source/lib/Encoder.rst @@ -0,0 +1,10 @@ +.. _lib_encoder: + +Encoder +******* + +Class Documentation +==================== + +.. autoclass:: compLib.Encoder.Encoder + :members: From 54320096fb9d23d152ec86a0b9c42bd413ae5bcd Mon Sep 17 00:00:00 2001 From: Konstantin Lampalzer Date: Sun, 12 Sep 2021 13:54:38 +0200 Subject: [PATCH 083/246] Documentation --- compLib/Encoder.py | 6 +++--- docs/source/conf.py | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/compLib/Encoder.py b/compLib/Encoder.py index 75ac3a0..d6ef934 100644 --- a/compLib/Encoder.py +++ b/compLib/Encoder.py @@ -18,7 +18,7 @@ class Encoder(object): def read_raw(port: int) -> int: """Read raw encoder from a specified port. Will not be reset to 0 at start. - :param port: Port, which the motor is connected to. 1-4 allowed + :param port: Port, which the motor is connected to. Between 1 and 4 :raises: IndexError :return: Current encoder position """ @@ -38,7 +38,7 @@ class Encoder(object): def read(port: int) -> int: """Read encoder from a specified port - :param port: Port, which the motor is connected to. 1-4 allowed + :param port: Port, which the motor is connected to. Between 1 and 4 :raises: IndexError :return: Current encoder position """ @@ -56,7 +56,7 @@ class Encoder(object): def clear(port: int): """Reset encoder position to 0 - :param port: Port, which the motor is connected to. 1-4 allowed + :param port: Port, which the motor is connected to. Between 1 and 4 :raises: IndexError """ if port <= 0 or port > MOTOR_COUNT: diff --git a/docs/source/conf.py b/docs/source/conf.py index 5c77524..60cd842 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -35,7 +35,7 @@ extensions = [ 'sphinx_rtd_theme' ] -autodoc_mock_imports = ["smbus", "compLib.PCA9685", "RPi", "pigpio", "flask", "apt", "spidev"] +autodoc_mock_imports = ["smbus", "compLib.PCA9685", "RPi", "pigpio", "flask", "apt", "spidev", "influxdb_client"] # Add any paths that contain templates here, relative to this directory. templates_path = ['_templates'] From 3ef0fff256705565d29980cbbd210ea846544af5 Mon Sep 17 00:00:00 2001 From: Konstantin Lampalzer Date: Mon, 13 Sep 2021 19:14:47 +0200 Subject: [PATCH 084/246] update documentation --- compLib/Display.py | 2 +- compLib/Spi.py | 1 - compLib/__init__.py | 14 +- docs/source/images/compair-logo-white.svg | 189 ++++++++++++++++++++++ docs/source/index.rst | 8 +- docs/source/other/usage.rst | 9 +- 6 files changed, 205 insertions(+), 18 deletions(-) create mode 100644 docs/source/images/compair-logo-white.svg diff --git a/compLib/Display.py b/compLib/Display.py index 82ad451..f27c0a9 100644 --- a/compLib/Display.py +++ b/compLib/Display.py @@ -12,7 +12,7 @@ class Display(object): """ @staticmethod - def write(line: int, text: string): + def write(line: int, text: str): """Write a string of text to the integrated display. :param line: Line to write. Between 1 and 4 diff --git a/compLib/Spi.py b/compLib/Spi.py index a141bfa..c2f963f 100644 --- a/compLib/Spi.py +++ b/compLib/Spi.py @@ -172,7 +172,6 @@ class Spi(object): if Spi.read(Register.IDENTIFICATION_MODEL_ID, 1) != 3: Logging.get_logger().error(f"Unable to read Version! Make sure the mainboard is connected!") print("Unable to read Version! Make sure the mainboard is connected!") - sys.exit() @staticmethod def start_health_check_loop(): diff --git a/compLib/__init__.py b/compLib/__init__.py index 993095f..827f85b 100644 --- a/compLib/__init__.py +++ b/compLib/__init__.py @@ -26,16 +26,16 @@ else: print("apt is not installed! This is for local development only!") if spi_found: - import compLib.Spi - import compLib.Reset - import compLib.Encoder + from compLib.Spi import Spi + from compLib.Reset import Reset + from compLib.Encoder import Encoder import logging print(f"\033[34mInitializing chipmunk board...\033[0m") - compLib.Reset.Reset.reset_bot() - compLib.Spi.Spi.health_check() - compLib.Spi.Spi.start_health_check_loop() - compLib.Encoder.Encoder.clear_all() + Reset.reset_bot() + Spi.health_check() + Spi.start_health_check_loop() + Encoder.clear_all() print(f"\033[34mReady\033[0m\n") else: print("spidev is not installed! This is for local development only!") diff --git a/docs/source/images/compair-logo-white.svg b/docs/source/images/compair-logo-white.svg new file mode 100644 index 0000000..8fb8da1 --- /dev/null +++ b/docs/source/images/compair-logo-white.svg @@ -0,0 +1,189 @@ + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/source/index.rst b/docs/source/index.rst index 2c0ae75..f10ea78 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -1,14 +1,12 @@ -Robo4you Competition Library +.. image:: images/compair-logo-white.svg + +Competition Robot Library ############################# .. toctree:: :maxdepth: 2 :caption: Contents: - -CompLib is the library used in the robo4you competition 2021. - - Contents ********* diff --git a/docs/source/other/usage.rst b/docs/source/other/usage.rst index 8b47eef..50fd86d 100644 --- a/docs/source/other/usage.rst +++ b/docs/source/other/usage.rst @@ -9,12 +9,13 @@ Usage from compLib.Motor import * def forward(): - for port in range(0, 4): - Motor.power(port, 30); + Motor.power(1, -30); + Motor.power(2, 30); + def backward(): - for port in range(0, 4): - Motor.power(port, -30); + Motor.power(1, 30); + Motor.power(2, -30); def main(): print("hallo ich bin ein roboter beep buup") From 1c0310b9c78fffe7a7bf6b5d1cec740228d1c8f9 Mon Sep 17 00:00:00 2001 From: Konstantin Lampalzer Date: Tue, 14 Sep 2021 18:34:50 +0200 Subject: [PATCH 085/246] new linefollower example --- docs/source/lib/Linefollower.rst | 124 +++++++++++++++---------------- 1 file changed, 58 insertions(+), 66 deletions(-) diff --git a/docs/source/lib/Linefollower.rst b/docs/source/lib/Linefollower.rst index 8918554..48fe4d3 100644 --- a/docs/source/lib/Linefollower.rst +++ b/docs/source/lib/Linefollower.rst @@ -8,82 +8,74 @@ Simple Linefollower .. code-block:: python + from compLib.Motor import Motor + from compLib.Display import Display + from compLib.IRSensor import IRSensor + from compLib.Encoder import Encoder + import time - from compLib.IRWrapper import IRWrapper - from compLib.Motor import Motor + IRSensor.set(1, True) + IRSensor.set(2, True) + IRSensor.set(3, True) + IRSensor.set(4, True) + IRSensor.set(5, True) - STRAIGHT_SPEED = 40.0 - TURN_SPEED = 40.0 + DRIVE_SPEED = 85 + TURN_SPEED = 50 + COLOR_BREAK = 750 + KP = 50.0 + KD = 0.0 - COLOR_BREAK = 500 + def drive(leftSpeed, rightSpeed): + leftSpeed *= -1 + rightSpeed *= 0.906 + Motor.power(1, min(max(-100, leftSpeed), 100)) + Motor.power(2, min(max(-100, rightSpeed), 100)) - def drive(left, right, active_break=False, back_mult=0.0): - left = max(min(left, 100), -100) - right = max(min(right, 100), -100) + def follow(sleepTime = 0.1): + lastError = 0 + sensorsBlack = 0 + while sensorsBlack < 3: + sensorsBlack = 0 + for i in range(1, 6): + if IRSensor.read(i) > COLOR_BREAK: + sensorsBlack += 1 - print("left {} right {}".format(left, right)) + error = lastError + if IRSensor.read(3) > COLOR_BREAK: + error = 0 + elif IRSensor.read(1) > COLOR_BREAK: + error = -1.5 + elif IRSensor.read(5) > COLOR_BREAK: + error = 1.5 + elif IRSensor.read(2) > COLOR_BREAK: + error = -1 + elif IRSensor.read(4) > COLOR_BREAK: + error = 1 + elif error == 1.5: + error = 3 + elif error == -1.5: + error = -3 + + lastError = error - Motor.power(0, left) - Motor.power(1, left * back_mult) - Motor.power(2, right * back_mult) - Motor.power(3, right) + adjustment = KP * error + KD * (error - lastError) + leftSpeed = DRIVE_SPEED + adjustment + rightSpeed = DRIVE_SPEED - adjustment - if active_break: - time.sleep(0.001) - - Motor.power(0, 10) - Motor.power(1, 10) - Motor.power(2, 10) - Motor.power(3, 10) - - time.sleep(0.001) - - - def follow_till_line(): - while True: - print("left: {:.2f} middle: {:.2f} right: {:.2f}".format(IRWrapper.bottom_left_calibrated(), - IRWrapper.bottom_middle_calibrated(), - IRWrapper.bottom_right_calibrated())) - - left = IRWrapper.bottom_left_calibrated() - right = IRWrapper.bottom_right_calibrated() - - if left > COLOR_BREAK: - drive(-TURN_SPEED, TURN_SPEED, back_mult=1.25) - while IRWrapper.bottom_middle_calibrated() < COLOR_BREAK and \ - IRWrapper.bottom_right_calibrated() < COLOR_BREAK: - pass - drive(0, 0) - elif right > COLOR_BREAK: - drive(TURN_SPEED, -TURN_SPEED, back_mult=1.25) - while IRWrapper.bottom_middle_calibrated() < COLOR_BREAK and \ - IRWrapper.bottom_left_calibrated() < COLOR_BREAK: - pass - drive(0, 0) - else: - drive(STRAIGHT_SPEED, STRAIGHT_SPEED, True) - - if IRWrapper.bottom_left_calibrated() > 750 and IRWrapper.bottom_right_calibrated() > 750: - break - - print("left: {} middle: {} right: {}".format(IRWrapper.bottom_left_calibrated(), - IRWrapper.bottom_middle_calibrated(), - IRWrapper.bottom_right_calibrated())) + print(f"{leftSpeed} {rightSpeed} {adjustment} {error}") + drive(leftSpeed, rightSpeed) drive(0, 0) + time.sleep(sleepTime) - time.sleep(0.2) + def main(): + follow() + follow() + follow() + follow() + follow(0.2) - - if __name__ == "__main__": - # Put bot with middle sensor onto black line - IRWrapper.calibrate() - - # Initialize Motors, so the bot doesn't speed off instantly - drive(1, 1) - time.sleep(1) - - # Follow line, till the left and right sensor are on black - follow_till_line() + main() \ No newline at end of file From 31eb91d51be11925aa1b9704348104734aa6a82e Mon Sep 17 00:00:00 2001 From: Konstantin Lampalzer Date: Thu, 23 Sep 2021 20:43:41 +0200 Subject: [PATCH 086/246] Add servo --- compLib/Servo.py | 86 ++++++++++++++++++++++++++++++++---------------- 1 file changed, 57 insertions(+), 29 deletions(-) diff --git a/compLib/Servo.py b/compLib/Servo.py index cf50d43..69cae04 100644 --- a/compLib/Servo.py +++ b/compLib/Servo.py @@ -1,36 +1,64 @@ -# from compLib.PCA9685 import PCA9685 - -# SERVO_COUNT = 10 - -# pwm = PCA9685(0x40, debug=True) -# pwm.setPWMFreq(50) - -# MIN_ANGLE = -90.0 -# MAX_ANGLE = 90.0 +from compLib.Spi import Spi, Register -# class Servo: -# """Control the servo ports on the robot -# """ +SERVO_COUNT = 8 -# @staticmethod -# def set_position(channel: int, angle: int, offset: float =90): -# """Set position of servo connected to port +MIN_ANGLE = -90.0 +MAX_ANGLE = 90.0 -# :param channel: channel between 0 and 7 -# :param angle: Angle of servo -# """ -# if channel < 0 or channel >= SERVO_COUNT: -# raise IndexError("Invalid Servo channel specified!") + +def map(x, in_min, in_max, out_min, out_max): + return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min + + +class Servo: + """Control the servo ports on the robot + """ + + @staticmethod + def set_position(port: int, angle: float, offset: float = 0.0): + """Set position of servo connected to port + + :param port: port between 1 and 8 + :param angle: Angle of servo + """ + if port <= 0 or port > SERVO_COUNT: + raise IndexError("Invalid Servo port specified!") -# angle = max(min(angle, MAX_ANGLE), MIN_ANGLE) - -# pwm.setServoPulse(channel + 8, 500+int((angle+offset)/0.09)) + angle = max(min(angle, MAX_ANGLE), MIN_ANGLE) -# @staticmethod -# def setup_position(): -# """Set position of servos to the position used during the setup process -# """ + mapped_angle = int(map(angle, MIN_ANGLE, MAX_ANGLE, 0, 65535)) + print(mapped_angle) + + if port == 1: + Spi.write(Register.SERVO_1_PWM_H, 2, mapped_angle) + Spi.write(Register.PWM_1_CTRL, 1, 4) + elif port == 2: + Spi.write(Register.SERVO_2_PWM_H, 2, mapped_angle) + Spi.write(Register.PWM_1_CTRL, 1, 4) + elif port == 3: + Spi.write(Register.SERVO_3_PWM_H, 2, mapped_angle) + Spi.write(Register.PWM_2_CTRL, 1, 4) + elif port == 4: + Spi.write(Register.SERVO_4_PWM_H, 2, mapped_angle) + Spi.write(Register.PWM_2_CTRL, 1, 4) + elif port == 5: + Spi.write(Register.SERVO_5_PWM_H, 2, mapped_angle) + Spi.write(Register.PWM_3_CTRL, 1, 4) + elif port == 6: + Spi.write(Register.SERVO_6_PWM_H, 2, mapped_angle) + Spi.write(Register.PWM_3_CTRL, 1, 4) + elif port == 7: + Spi.write(Register.SERVO_7_PWM_H, 2, mapped_angle) + Spi.write(Register.PWM_4_CTRL, 1, 4) + elif port == 8: + Spi.write(Register.SERVO_8_PWM_H, 2, mapped_angle) + Spi.write(Register.PWM_4_CTRL, 1, 4) + + @staticmethod + def setup_position(): + """Set position of servos to the position used during the setup process + """ -# Servo.set_position(0, 0) -# Servo.set_position(1, 0) + for i in range(1, SERVO_COUNT + 1): + Servo.set_position(i, 0) From 6eef4e7aa40812c25ce66ade03b40ebbea989ca2 Mon Sep 17 00:00:00 2001 From: itssme Date: Thu, 30 Sep 2021 16:13:18 +0200 Subject: [PATCH 087/246] added influxdb_client pip package --- postinstall.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/postinstall.sh b/postinstall.sh index 2da6340..dde2f9c 100644 --- a/postinstall.sh +++ b/postinstall.sh @@ -21,6 +21,7 @@ install_package "flask" install_package "python-logstash-async" install_package "RPi.GPIO" install_package "spidev" +install_package "influxdb_client" echo "Setting up opencv4" pkg-config --modversion opencv4 From 7f001966807ca500bb16085b7ff3cb8a4ec8ee81 Mon Sep 17 00:00:00 2001 From: Joel Klimont Date: Fri, 1 Oct 2021 00:24:08 +0200 Subject: [PATCH 088/246] added ip address writing to daemon --- build_deb.sh | 2 +- compLib/VisionDaemon.py | 58 +++++++++++++++++++++++------------------ setup.py | 2 +- 3 files changed, 34 insertions(+), 28 deletions(-) diff --git a/build_deb.sh b/build_deb.sh index 7bd753b..b32eda0 100755 --- a/build_deb.sh +++ b/build_deb.sh @@ -34,7 +34,7 @@ fpm -s python --python-bin python3 --python-pip pip3 --python-package-name-prefi -d "python3-pigpio" \ -d "python3-numpy" \ -d "ffmpeg" \ - -v 0.1.5-1 -t deb setup.py + -v 0.2.1-0 -t deb setup.py # --deb-changelog changelog \ # --deb-upstream-changelog changelog \ diff --git a/compLib/VisionDaemon.py b/compLib/VisionDaemon.py index 81dee7d..94f443d 100644 --- a/compLib/VisionDaemon.py +++ b/compLib/VisionDaemon.py @@ -7,33 +7,39 @@ import LogstashLogging from LogstashLogging import logstash_logger from threading import Thread import logging +import socket -RUN_CHECK = False +RUN_IP_CHECK = False try: - from Battery import Battery - from Buzzer import Buzzer - RUN_CHECK = True + from compLib.Display import Display except Exception as e: - logstash_logger.error(f"unable to import battery or buzzer in daemon -> {str(e)}") + logstash_logger.warning(f"Could not import display for battery output {str(e)}") + __run = """raspivid -t 0 -b 5000000 -w 1280 -h 720 -fps 30 -n -o - | gst-launch-1.0 fdsrc ! video/x-h264,width=1280,height=720,framerate=30/1,noise-reduction=1,profile=high,stream-format=byte-stream ! h264parse ! queue ! flvmux streamable=true ! rtmpsink location=\"rtmp://localhost/live/stream\"""" STREAM_RASPI = False if os.getenv("STREAM_RASPI", "false") == "false" else True +IP_OUTPUT = False if os.getenv("IP_OUTPUT", "false") == "false" else True -def check_battery(): - while True: - time.sleep(2) - battery = 0 - try: - battery = Battery.percent() - except Exception as e: - logstash_logger.error(f"could not check battery -> {str(e)}") - if -100 <= battery <= 15: - logstash_logger.warning(f"LOW BATTERY DETECTED: '{battery}'") - Buzzer.set(True) - time.sleep(1) - Buzzer.set(False) +def get_ip(): + s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) + try: + s.connect(('10.255.255.255', 1)) + IP = s.getsockname()[0] + except Exception: + IP = '127.0.0.1' + finally: + s.close() + return IP + + +def write_ip_to_screen(): + while not os.getenv("IP_OUTPUT", "false") == "false": + ip = str(get_ip()) + logstash_logger.info(f"writing {ip} to display") + Display.write(1, ip) + time.sleep(60) if __name__ == '__main__': @@ -43,12 +49,12 @@ if __name__ == '__main__': logstash_logger.warning("Warning, old systemd version detected") systemd.daemon.notify('READY=1') - logstash_logger.info("starting battery checker") - battery_checker = None - if RUN_CHECK: + logstash_logger.info("starting ip output") + ip_output = None + if RUN_IP_CHECK and IP_OUTPUT: try: - battery_checker = threading.Thread(target=check_battery) - battery_checker.start() + ip_output = threading.Thread(target=write_ip_to_screen) + ip_output.start() logstash_logger.info("starting battery checker - DONE") except Exception as e: logstash_logger.error(f"could not start battery checker -> {str(e)}") @@ -59,8 +65,8 @@ if __name__ == '__main__': logstash_logger.error("gstreamer stopped...") else: logstash_logger.info("not starting gstreamer background process and only checking for battery") - if battery_checker is not None: - battery_checker.join() + if ip_output is not None: + ip_output.join() else: - logstash_logger.info("battery checker failed to initialize.. sleeping for a day, good night") + logstash_logger.info("ip display output failed to initialize.. sleeping for a day, good night") time.sleep(60*60*24) diff --git a/setup.py b/setup.py index a3ab080..1c3f53d 100644 --- a/setup.py +++ b/setup.py @@ -12,7 +12,7 @@ else: setuptools.setup( name="complib", - version="0.1.5-1", + version="0.2.1-0", author="F-WuTs", author_email="--", description="", From a81fd4204bfd6c5511a0f2d02fde2dbdfb914656 Mon Sep 17 00:00:00 2001 From: Joel Klimont Date: Fri, 1 Oct 2021 00:33:45 +0200 Subject: [PATCH 089/246] fixed version number in package init --- compLib/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/compLib/__init__.py b/compLib/__init__.py index 827f85b..6cd4f2a 100644 --- a/compLib/__init__.py +++ b/compLib/__init__.py @@ -1,4 +1,4 @@ -__version__ = "0.1.5-1" +__version__ = "0.2.1-0" import importlib import compLib.LogstashLogging From bb4483b141fd7e8b2897eb4075a0074442867cb7 Mon Sep 17 00:00:00 2001 From: Joel Klimont Date: Fri, 1 Oct 2021 01:04:05 +0200 Subject: [PATCH 090/246] background daemon now disables heartbeat for itself --- compLib/Spi.py | 8 +++++++- compLib/VisionDaemon.py | 8 +++++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/compLib/Spi.py b/compLib/Spi.py index c2f963f..a3b2c14 100644 --- a/compLib/Spi.py +++ b/compLib/Spi.py @@ -10,6 +10,7 @@ SPI_BUS = 1 SPI_DEVICE = 2 SPI_SPEED = 1000000 SPI_BUFFER_SIZE = 32 +SPI_HEALTH = True spi = spidev.SpiDev() spi.open(SPI_BUS, SPI_DEVICE) @@ -179,8 +180,13 @@ class Spi(object): health_check_thread.setDaemon(True) health_check_thread.start() + @staticmethod + def disable_health_check(): + global SPI_HEALTH + SPI_HEALTH = False + @staticmethod def health_check_loop(): - while True: + while SPI_HEALTH: Spi.health_check() time.sleep(0.5) diff --git a/compLib/VisionDaemon.py b/compLib/VisionDaemon.py index 94f443d..2f7def8 100644 --- a/compLib/VisionDaemon.py +++ b/compLib/VisionDaemon.py @@ -12,8 +12,9 @@ import socket RUN_IP_CHECK = False try: from compLib.Display import Display + from compLib.Spi import Spi except Exception as e: - logstash_logger.warning(f"Could not import display for battery output {str(e)}") + logstash_logger.warning(f"Could not import display or spi for ip output {str(e)}") __run = """raspivid -t 0 -b 5000000 -w 1280 -h 720 -fps 30 -n -o - | gst-launch-1.0 fdsrc ! video/x-h264,width=1280,height=720,framerate=30/1,noise-reduction=1,profile=high,stream-format=byte-stream ! h264parse ! queue ! flvmux streamable=true ! rtmpsink location=\"rtmp://localhost/live/stream\"""" @@ -53,11 +54,12 @@ if __name__ == '__main__': ip_output = None if RUN_IP_CHECK and IP_OUTPUT: try: + Spi.disable_health_check() ip_output = threading.Thread(target=write_ip_to_screen) ip_output.start() - logstash_logger.info("starting battery checker - DONE") + logstash_logger.info("starting ip output - DONE") except Exception as e: - logstash_logger.error(f"could not start battery checker -> {str(e)}") + logstash_logger.error(f"could not start ip output -> {str(e)}") if STREAM_RASPI: logstash_logger.info("starting gstreamer background process") From 023ccb416b26f99bf1db925ba17eda70a6a4b186 Mon Sep 17 00:00:00 2001 From: Konstantin Lampalzer Date: Fri, 1 Oct 2021 01:13:07 +0200 Subject: [PATCH 091/246] Fix documentation for diplay --- compLib/Display.py | 3 ++- compLib/Servo.py | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/compLib/Display.py b/compLib/Display.py index f27c0a9..d85d3b8 100644 --- a/compLib/Display.py +++ b/compLib/Display.py @@ -8,7 +8,8 @@ CHARS_PER_LINE = 16 class Display(object): - """Access the different IR Sensors of the robot + """Access the display on the robot. + The display is split into 4 Rows and 16 Columns. Each function call changes one line at a time. """ @staticmethod diff --git a/compLib/Servo.py b/compLib/Servo.py index 69cae04..f659b52 100644 --- a/compLib/Servo.py +++ b/compLib/Servo.py @@ -16,7 +16,7 @@ class Servo: """ @staticmethod - def set_position(port: int, angle: float, offset: float = 0.0): + def set_position(port: int, angle: float, offset: float = 90.0): """Set position of servo connected to port :param port: port between 1 and 8 From d06e6fa32dd827f8d858eee13f47d85a04ca0f43 Mon Sep 17 00:00:00 2001 From: Joel Klimont Date: Fri, 1 Oct 2021 01:50:31 +0200 Subject: [PATCH 092/246] added api requests --- build_deb.sh | 2 +- compLib/Api.py | 74 +++++++++++++++++++++++++++++++-------------- compLib/__init__.py | 2 +- setup.py | 2 +- 4 files changed, 55 insertions(+), 25 deletions(-) diff --git a/build_deb.sh b/build_deb.sh index b32eda0..fd8e6a9 100755 --- a/build_deb.sh +++ b/build_deb.sh @@ -34,7 +34,7 @@ fpm -s python --python-bin python3 --python-pip pip3 --python-package-name-prefi -d "python3-pigpio" \ -d "python3-numpy" \ -d "ffmpeg" \ - -v 0.2.1-0 -t deb setup.py + -v 0.2.2-0 -t deb setup.py # --deb-changelog changelog \ # --deb-upstream-changelog changelog \ diff --git a/compLib/Api.py b/compLib/Api.py index f7aaf34..1ad8a8a 100644 --- a/compLib/Api.py +++ b/compLib/Api.py @@ -8,14 +8,18 @@ import time from compLib.LogstashLogging import Logging API_URL = os.getenv("API_URL", "http://localhost:5000/") + "api/" +API_URL_GET_DELIVERY = API_URL + "getDelivery" +API_URL_GET_MATERIAL = API_URL + "getMaterial" +API_URL_GET_GARBAGE = API_URL + "getGarbage" +API_URL_GET_LIST_CARGO = API_URL + "listCargo" +API_URL_GET_CARGO = API_URL + "getCargo/" + API_URL_GET_POS = API_URL + "getPos" API_URL_GET_OP = API_URL + "getOp" API_URL_GET_GOAL = API_URL + "getGoal" API_URL_GET_ITEMS = API_URL + "getItems" -API_URL_GET_PARK = API_URL + "getPark" -API_URL_PAY_PARK = API_URL + "payPark" -API_URL_SIMON_SAYS = API_URL + "simonSays" API_URL_GET_SCORES = API_URL + "getScores" +API_URL_GET_METEOROID = API_URL + "getMeteoroid" class Seeding: @@ -23,38 +27,64 @@ class Seeding: """ @staticmethod - def get_park() -> Tuple[Dict, int]: - """Get a parkingsapce from the api. + def get_delivery() -> Tuple[Dict, int]: + """Makes the /api/getDelivery call to the api. :return: Json Object and status code as returned by the api. :rtype: Tuple[Dict, int] """ - res = requests.get(API_URL_GET_PARK) + res = requests.get(API_URL_GET_DELIVERY) result = json.loads(res.content) - Logging.get_logger().debug(f"Seeding.get_park = {result}, status code = {res.status_code}") + Logging.get_logger().debug(f"Seeding.get_delivery = {result}, status code = {res.status_code}") return result, res.status_code @staticmethod - def pay_park() -> int: - """Pay for parking. - - :return: Status code as returned by the api. - :rtype: int - """ - result = requests.get(API_URL_PAY_PARK).status_code - Logging.get_logger().debug(f"Seeding.pay_park = {result}") - return result - - @staticmethod - def simon_says() -> Tuple[Dict, int]: - """Get next simon says zone from the api. + def get_material() -> Tuple[Dict, int]: + """Makes the /api/getMaterial call to the api. :return: Json Object and status code as returned by the api. :rtype: Tuple[Dict, int] """ - res = requests.get(API_URL_SIMON_SAYS) + res = requests.get(API_URL_GET_MATERIAL) result = json.loads(res.content) - Logging.get_logger().debug(f"Seeding.simon_says = {result}, status code = {res.status_code}") + Logging.get_logger().debug(f"Seeding.get_material = {result}, status code = {res.status_code}") + return result, res.status_code + + @staticmethod + def get_garbage() -> Tuple[Dict, int]: + """Makes the /api/getGarbage call to the api. + + :return: Json Object and status code as returned by the api. + :rtype: Tuple[Dict, int] + """ + res = requests.get(API_URL_GET_GARBAGE) + result = json.loads(res.content) + Logging.get_logger().debug(f"Seeding.get_garbage {result}, status code = {res.status_code}") + return result, res.status_code + + @staticmethod + def list_cargo() -> Tuple[Dict, int]: + """Makes the /api/listCargo call to the api. + + :return: Json Object and status code as returned by the api. + :rtype: Tuple[Dict, int] + """ + res = requests.get(API_URL_GET_LIST_CARGO) + result = json.loads(res.content) + Logging.get_logger().debug(f"Seeding.list_cargo {result}, status code = {res.status_code}") + return result, res.status_code + + @staticmethod + def getCargo(color: str) -> Tuple[Dict, int]: + """Makes the /api/listCargo call to the api. + + :param color: Color parameter which specifies which cargo should be taken. (A string which is either "green", "red", "yellow" or "blue" + :return: Json Object and status code as returned by the api. + :rtype: Tuple[Dict, int] + """ + res = requests.get(API_URL_GET_CARGO + color) + result = json.loads(res.content) + Logging.get_logger().debug(f"Seeding.get_cargo {result}, status code = {res.status_code}") return result, res.status_code diff --git a/compLib/__init__.py b/compLib/__init__.py index 6cd4f2a..064d50e 100644 --- a/compLib/__init__.py +++ b/compLib/__init__.py @@ -1,4 +1,4 @@ -__version__ = "0.2.1-0" +__version__ = "0.2.2-0" import importlib import compLib.LogstashLogging diff --git a/setup.py b/setup.py index 1c3f53d..38d1587 100644 --- a/setup.py +++ b/setup.py @@ -12,7 +12,7 @@ else: setuptools.setup( name="complib", - version="0.2.1-0", + version="0.2.2-0", author="F-WuTs", author_email="--", description="", From d58a41da69d9052a0861d4455c95ae150ce46ef1 Mon Sep 17 00:00:00 2001 From: Joel Klimont Date: Fri, 1 Oct 2021 02:40:16 +0200 Subject: [PATCH 093/246] fixed missing api calls and documentation --- build_deb.sh | 2 +- compLib/Api.py | 29 ++++++++++++---- compLib/__init__.py | 2 +- docs/source/conf.py | 2 +- docs/source/lib/Api.rst | 75 ++++++++++++++++++++++++++++++----------- setup.py | 2 +- 6 files changed, 82 insertions(+), 30 deletions(-) diff --git a/build_deb.sh b/build_deb.sh index fd8e6a9..0784496 100755 --- a/build_deb.sh +++ b/build_deb.sh @@ -34,7 +34,7 @@ fpm -s python --python-bin python3 --python-pip pip3 --python-package-name-prefi -d "python3-pigpio" \ -d "python3-numpy" \ -d "ffmpeg" \ - -v 0.2.2-0 -t deb setup.py + -v 0.2.3-0 -t deb setup.py # --deb-changelog changelog \ # --deb-upstream-changelog changelog \ diff --git a/compLib/Api.py b/compLib/Api.py index 1ad8a8a..ca6b5f1 100644 --- a/compLib/Api.py +++ b/compLib/Api.py @@ -75,7 +75,7 @@ class Seeding: return result, res.status_code @staticmethod - def getCargo(color: str) -> Tuple[Dict, int]: + def get_cargo(color: str) -> Tuple[Dict, int]: """Makes the /api/listCargo call to the api. :param color: Color parameter which specifies which cargo should be taken. (A string which is either "green", "red", "yellow" or "blue" @@ -110,7 +110,7 @@ class DoubleElim: @staticmethod def get_position() -> Tuple[Position, int]: - """Get position of the robot + """Makes the /api/getPos call to the api. :return: A Position object with robot position :rtype: Tuple[Position, int] @@ -127,7 +127,7 @@ class DoubleElim: @staticmethod def get_opponent() -> Tuple[Position, int]: - """Get position of the opponents robot + """Makes the /api/getOp call to the api. :return: A Position object with opponents robot position :rtype: Tuple[Position, int] @@ -144,7 +144,7 @@ class DoubleElim: @staticmethod def get_goal() -> Tuple[Position, int]: - """Get position of the goal + """Makes the /api/getGoal call to the api. :return: A Position object with x and y coordinates of the goal, rotation is always -1 :rtype: Tuple[Position, int] @@ -161,7 +161,7 @@ class DoubleElim: @staticmethod def get_items() -> Tuple[List[Dict], int]: - """Get a list with all current items + """Makes the /api/getItems call to the api. :return: A list will all items currently on the game field. Items are dictionaries that look like: {"id": 0, "x": 0, "y": 0} :rtype: Tuple[List[Dict], int] @@ -178,7 +178,7 @@ class DoubleElim: @staticmethod def get_scores() -> Tuple[Dict, int]: - """Get the current scores + """Makes the /api/getScores call to the api. :return: A dictionary with all scores included like: {"self":2,"opponent":0} :rtype: Tuple[Dict, int] @@ -192,3 +192,20 @@ class DoubleElim: response = json.loads(res.content) Logging.get_logger().debug(f"DoubleElim.get_scores = {response}, status code = {res.status_code}") return response, res.status_code + + @staticmethod + def get_meteoroid() -> Tuple[Dict, int]: + """Makes the /api/getMeteoroid call to the api. + + :return: A dictionary with all scores included like: {"self":2,"opponent":0} + :rtype: Tuple[Dict, int] + """ + res = requests.get(API_URL_GET_METEOROID) + if res.status_code == 408: + Logging.get_logger().error(f"DoubleElim.get_meteoroid timeout!") + time.sleep(0.01) + return DoubleElim.get_scores() + + response = json.loads(res.content) + Logging.get_logger().debug(f"DoubleElim.get_meteoroid = {response}, status code = {res.status_code}") + return response, res.status_code \ No newline at end of file diff --git a/compLib/__init__.py b/compLib/__init__.py index 064d50e..26296c5 100644 --- a/compLib/__init__.py +++ b/compLib/__init__.py @@ -1,4 +1,4 @@ -__version__ = "0.2.2-0" +__version__ = "0.2.3-0" import importlib import compLib.LogstashLogging diff --git a/docs/source/conf.py b/docs/source/conf.py index 60cd842..26d8294 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -23,7 +23,7 @@ copyright = '2021, robo4you' author = 'robo4you' # The full version, including alpha/beta/rc tags -release = '0.0.2' +release = '0.2.3' # -- General configuration --------------------------------------------------- diff --git a/docs/source/lib/Api.rst b/docs/source/lib/Api.rst index 18605ae..59ad2d6 100644 --- a/docs/source/lib/Api.rst +++ b/docs/source/lib/Api.rst @@ -32,31 +32,31 @@ Calling Seeding API from compLib.Api import Seeding - park, code = Seeding.get_park() + zones, code = Seeding.get_delivery() if code == 403: print(f"I am not in the correct zone to make that request!") else: - park = park["id"] - print(f"I should move to parking position: {park}") + print(f"First we need to go to zone {zone[0]}") + # put code here to follow line and drive to the zone + print(f"Now we need to go to zone {zone[1]}") + # put code here to follow line and drive to the next zone + print(f"Now we need to go to zone {zone[2]}") + # put code here to follow line and drive to the last zone + print(f"We delivered all packages, hopefully we scored some points!") - if park == 0: - print(f"I can't move to this position yet :(") - elif park == 1: - print(f"Moving to position 1!") - # drive to parking position using Motors module... - print(f"Now hopefully at position 1") - # drive back using Motors module... - elif park == 2: - # do something similar to park == 1.. - elif park == 3: - # do something similar to park == 1.. +.. code-block:: python - success = Seeding.pay_park() - # check which code the api returned - if success == 204: - print(f"We scored some points!") - else: - print(f"We failed :(") + from compLib.Api import Seeding + + package, code = Seeding.get_cargo("yellow") + if code == 403: + print(f"I am not in the correct zone to make that request!") + elif code == 404: + print(f"I am in the correct zone, but there is no yellow package here.") + elif code == 413: + print(f"I am in the correct zone, but I already have two packages loaded.") + else code == 200: + print(f"The {package['color']} has been picked up!") Calling Double Elimination API ---------------------------------- @@ -70,3 +70,38 @@ Calling Double Elimination API goal, status = DoubleElim.get_goal() print(f"Goal is at: x={goal.x}, y={goal.y}, the server responded with status code: {status}") + +.. code-block:: python + + from compLib.Api import DoubleElim + import time + + # function which waits for the game to be started (you should include this in your double elimination program) + def wait_for_start(): + _, status = DoubleElim.get_position() + while status == 503: + time.sleep(0.1) + _, status = DoubleElim.get_position() + + wait_for_start() + print(f"Game has started, lets score some points!!") + + position, status = DoubleElim.get_position() + print(f"Position of my robot is: x={position.x}, y={position.y} and rotation is: {position.degrees}, the server responded with status code: {status}") + + opponent_position, status = DoubleElim.get_opponent() + print(f"Position of the opponents robot is: x={opponent_position.x}, y={opponent_position.y} and rotation is: {opponent_position.degrees}, the server responded with status code: {status}") + + goal, status = DoubleElim.get_goal() + print(f"Goal is at: x={goal.x}, y={goal.y}, the server responded with status code: {status}") + + items, status = DoubleElim.get_items() + print(f"There are currently {len(items)} on the gameboard: {items}, the server responded with status code: {status}") + + score, status = DoubleElim.get_score() + print(f"The current score of the game is {score}, the server responded with status code: {status}") + + meteoroids, status = DoubleElim.get_meteoroid() + print(f"The current meteoroids in the game are {meteoroids}, the server responded with status code: {status}") + +In this second example we wait until the game is started by the judges and then make all possible requests once. You should use the wait_for_start function in your double elimination program. If your robot starts too soon your run will not count! diff --git a/setup.py b/setup.py index 38d1587..b0cece3 100644 --- a/setup.py +++ b/setup.py @@ -12,7 +12,7 @@ else: setuptools.setup( name="complib", - version="0.2.2-0", + version="0.2.3-0", author="F-WuTs", author_email="--", description="", From 3eab71aaf5c1e8e65637dec8be60df56e7ceb209 Mon Sep 17 00:00:00 2001 From: Joel Klimont Date: Fri, 1 Oct 2021 02:46:52 +0200 Subject: [PATCH 094/246] fixed bug in get_meteoroids which would recursively call the wrong function --- build_deb.sh | 2 +- compLib/Api.py | 8 ++++---- compLib/__init__.py | 2 +- setup.py | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/build_deb.sh b/build_deb.sh index 0784496..a4d8e60 100755 --- a/build_deb.sh +++ b/build_deb.sh @@ -34,7 +34,7 @@ fpm -s python --python-bin python3 --python-pip pip3 --python-package-name-prefi -d "python3-pigpio" \ -d "python3-numpy" \ -d "ffmpeg" \ - -v 0.2.3-0 -t deb setup.py + -v 0.2.3-1 -t deb setup.py # --deb-changelog changelog \ # --deb-upstream-changelog changelog \ diff --git a/compLib/Api.py b/compLib/Api.py index ca6b5f1..4c87a8c 100644 --- a/compLib/Api.py +++ b/compLib/Api.py @@ -194,17 +194,17 @@ class DoubleElim: return response, res.status_code @staticmethod - def get_meteoroid() -> Tuple[Dict, int]: + def get_meteoroid() -> Tuple[List[Dict], int]: """Makes the /api/getMeteoroid call to the api. - :return: A dictionary with all scores included like: {"self":2,"opponent":0} - :rtype: Tuple[Dict, int] + :return: A list will all meteoroids currently on the game field. Meteoroids are dictionaries that look like: {"x": 0, "y": 0} + :rtype: Tuple[List[Dict], int] """ res = requests.get(API_URL_GET_METEOROID) if res.status_code == 408: Logging.get_logger().error(f"DoubleElim.get_meteoroid timeout!") time.sleep(0.01) - return DoubleElim.get_scores() + return DoubleElim.get_meteoroid() response = json.loads(res.content) Logging.get_logger().debug(f"DoubleElim.get_meteoroid = {response}, status code = {res.status_code}") diff --git a/compLib/__init__.py b/compLib/__init__.py index 26296c5..32b824f 100644 --- a/compLib/__init__.py +++ b/compLib/__init__.py @@ -1,4 +1,4 @@ -__version__ = "0.2.3-0" +__version__ = "0.2.3-1" import importlib import compLib.LogstashLogging diff --git a/setup.py b/setup.py index b0cece3..451ae11 100644 --- a/setup.py +++ b/setup.py @@ -12,7 +12,7 @@ else: setuptools.setup( name="complib", - version="0.2.3-0", + version="0.2.3-1", author="F-WuTs", author_email="--", description="", From d1a86d2c0eed9abf9e7365afa61e09f5b88edbad Mon Sep 17 00:00:00 2001 From: Joel Klimont Date: Fri, 1 Oct 2021 13:37:56 +0200 Subject: [PATCH 095/246] fixed logging in background daemon --- build_deb.sh | 2 +- compLib/VisionDaemon.py | 57 +++++++++++++++++++++++++++++------------ compLib/__init__.py | 2 +- setup.py | 2 +- 4 files changed, 44 insertions(+), 19 deletions(-) diff --git a/build_deb.sh b/build_deb.sh index a4d8e60..a07abf2 100755 --- a/build_deb.sh +++ b/build_deb.sh @@ -34,7 +34,7 @@ fpm -s python --python-bin python3 --python-pip pip3 --python-package-name-prefi -d "python3-pigpio" \ -d "python3-numpy" \ -d "ffmpeg" \ - -v 0.2.3-1 -t deb setup.py + -v 0.2.4-0 -t deb setup.py # --deb-changelog changelog \ # --deb-upstream-changelog changelog \ diff --git a/compLib/VisionDaemon.py b/compLib/VisionDaemon.py index 2f7def8..1c285da 100644 --- a/compLib/VisionDaemon.py +++ b/compLib/VisionDaemon.py @@ -1,21 +1,38 @@ import os +import socket import threading import time import systemd.daemon -import LogstashLogging -from LogstashLogging import logstash_logger -from threading import Thread -import logging -import socket + +try: + from compLib.LogstashLogging import Logging +except Exception as e: + import logging + + + class Logger(): + def __init__(self): + self.logger = logging.Logger('compApi background') + + def get_logger(self): + return self.logger + + Logging = Logger() + print(f"Could not import compLib.LogstashLogging: {str(e)}") + Logging.get_logger().error(f"Could not import compLib.LogstashLogging: {str(e)}") + +print("after basic imports") RUN_IP_CHECK = False try: from compLib.Display import Display from compLib.Spi import Spi except Exception as e: - logstash_logger.warning(f"Could not import display or spi for ip output {str(e)}") + print(f"Could not import display or spi for ip output {str(e)}") + Logging.get_logger().warning(f"Could not import display or spi for ip output {str(e)}") +print(f"After display and Spi import") __run = """raspivid -t 0 -b 5000000 -w 1280 -h 720 -fps 30 -n -o - | gst-launch-1.0 fdsrc ! video/x-h264,width=1280,height=720,framerate=30/1,noise-reduction=1,profile=high,stream-format=byte-stream ! h264parse ! queue ! flvmux streamable=true ! rtmpsink location=\"rtmp://localhost/live/stream\"""" @@ -38,7 +55,8 @@ def get_ip(): def write_ip_to_screen(): while not os.getenv("IP_OUTPUT", "false") == "false": ip = str(get_ip()) - logstash_logger.info(f"writing {ip} to display") + print(f"writing {ip} to display") + Logging.get_logger().info(f"writing {ip} to display") Display.write(1, ip) time.sleep(60) @@ -47,28 +65,35 @@ if __name__ == '__main__': try: systemd.daemon.notify(systemd.daemon.Notification.READY) except: - logstash_logger.warning("Warning, old systemd version detected") + Logging.get_logger().warning("Warning, old systemd version detected") systemd.daemon.notify('READY=1') - logstash_logger.info("starting ip output") + print("starting ip output") + Logging.get_logger().info("starting ip output") ip_output = None if RUN_IP_CHECK and IP_OUTPUT: try: Spi.disable_health_check() ip_output = threading.Thread(target=write_ip_to_screen) ip_output.start() - logstash_logger.info("starting ip output - DONE") + print("starting ip output - DONE") + Logging.get_logger().info("starting ip output - DONE") except Exception as e: - logstash_logger.error(f"could not start ip output -> {str(e)}") + print(f"could not start ip output -> {str(e)}") + Logging.get_logger().error(f"could not start ip output -> {str(e)}") if STREAM_RASPI: - logstash_logger.info("starting gstreamer background process") + print("starting gstreamer background process") + Logging.get_logger().info("starting gstreamer background process") os.system(__run) - logstash_logger.error("gstreamer stopped...") + print("gstreamer stopped...") + Logging.get_logger().error("gstreamer stopped...") else: - logstash_logger.info("not starting gstreamer background process and only checking for battery") + print("not starting gstreamer background process and only checking for battery") + Logging.get_logger().info("not starting gstreamer background process and only checking for battery") if ip_output is not None: ip_output.join() else: - logstash_logger.info("ip display output failed to initialize.. sleeping for a day, good night") - time.sleep(60*60*24) + print("ip display output failed to initialize.. sleeping for a day, good night") + Logging.get_logger().info("ip display output failed to initialize.. sleeping for a day, good night") + time.sleep(60 * 60 * 24) diff --git a/compLib/__init__.py b/compLib/__init__.py index 32b824f..1323bff 100644 --- a/compLib/__init__.py +++ b/compLib/__init__.py @@ -1,4 +1,4 @@ -__version__ = "0.2.3-1" +__version__ = "0.2.4-0" import importlib import compLib.LogstashLogging diff --git a/setup.py b/setup.py index 451ae11..7c4c025 100644 --- a/setup.py +++ b/setup.py @@ -12,7 +12,7 @@ else: setuptools.setup( name="complib", - version="0.2.3-1", + version="0.2.4-0", author="F-WuTs", author_email="--", description="", From 3faee0fb880e532ac763182a50e5dff72f3682ff Mon Sep 17 00:00:00 2001 From: Konstantin Lampalzer Date: Fri, 1 Oct 2021 21:11:52 +0200 Subject: [PATCH 096/246] Update IRSensor.py --- compLib/IRSensor.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/compLib/IRSensor.py b/compLib/IRSensor.py index 8e679f9..5f6f95d 100644 --- a/compLib/IRSensor.py +++ b/compLib/IRSensor.py @@ -25,13 +25,13 @@ class IRSensor(object): if sensor == 1: result = Spi.read(Register.IR_1_H, 2) elif sensor == 2: - esult = Spi.read(Register.IR_2_H, 2) + result = Spi.read(Register.IR_2_H, 2) elif sensor == 3: - esult = Spi.read(Register.IR_3_H, 2) + result = Spi.read(Register.IR_3_H, 2) elif sensor == 4: - esult = Spi.read(Register.IR_4_H, 2) + result = Spi.read(Register.IR_4_H, 2) elif sensor == 5: - esult = Spi.read(Register.IR_5_H, 2) + result = Spi.read(Register.IR_5_H, 2) MetricsLogging.put("Infrared", result, sensor) return result @@ -55,4 +55,4 @@ class IRSensor(object): elif sensor == 4: Spi.write(Register.IR_4_LED, 1, on) elif sensor == 5: - Spi.write(Register.IR_5_LED, 1, on) \ No newline at end of file + Spi.write(Register.IR_5_LED, 1, on) From 8218e8228eee5b919e502b7b727ab9b0e9948a8e Mon Sep 17 00:00:00 2001 From: itssme Date: Sat, 2 Oct 2021 11:49:33 +0200 Subject: [PATCH 097/246] fixed ip displayer not starting after correct imports --- compLib/VisionDaemon.py | 1 + 1 file changed, 1 insertion(+) diff --git a/compLib/VisionDaemon.py b/compLib/VisionDaemon.py index 1c285da..23c673a 100644 --- a/compLib/VisionDaemon.py +++ b/compLib/VisionDaemon.py @@ -28,6 +28,7 @@ RUN_IP_CHECK = False try: from compLib.Display import Display from compLib.Spi import Spi + RUN_IP_CHECK = True except Exception as e: print(f"Could not import display or spi for ip output {str(e)}") Logging.get_logger().warning(f"Could not import display or spi for ip output {str(e)}") From b4eae06eb69b1ec5745a4f0e889647c5009c5288 Mon Sep 17 00:00:00 2001 From: root Date: Sat, 2 Oct 2021 11:45:03 +0100 Subject: [PATCH 098/246] Fix VisionDaemon --- compLib/VisionDaemon.py | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/compLib/VisionDaemon.py b/compLib/VisionDaemon.py index 23c673a..3643f92 100644 --- a/compLib/VisionDaemon.py +++ b/compLib/VisionDaemon.py @@ -38,7 +38,7 @@ print(f"After display and Spi import") __run = """raspivid -t 0 -b 5000000 -w 1280 -h 720 -fps 30 -n -o - | gst-launch-1.0 fdsrc ! video/x-h264,width=1280,height=720,framerate=30/1,noise-reduction=1,profile=high,stream-format=byte-stream ! h264parse ! queue ! flvmux streamable=true ! rtmpsink location=\"rtmp://localhost/live/stream\"""" STREAM_RASPI = False if os.getenv("STREAM_RASPI", "false") == "false" else True -IP_OUTPUT = False if os.getenv("IP_OUTPUT", "false") == "false" else True +IP_OUTPUT = False if os.getenv("IP_OUTPUT", "true") != "true" else True def get_ip(): @@ -54,11 +54,12 @@ def get_ip(): def write_ip_to_screen(): - while not os.getenv("IP_OUTPUT", "false") == "false": + while os.getenv("IP_OUTPUT", "true") == "true": ip = str(get_ip()) print(f"writing {ip} to display") Logging.get_logger().info(f"writing {ip} to display") - Display.write(1, ip) + Display.write(1, "Current IP:") + Display.write(2, ip) time.sleep(60) @@ -69,10 +70,11 @@ if __name__ == '__main__': Logging.get_logger().warning("Warning, old systemd version detected") systemd.daemon.notify('READY=1') - print("starting ip output") - Logging.get_logger().info("starting ip output") + ip_output = None if RUN_IP_CHECK and IP_OUTPUT: + print("starting ip output") + Logging.get_logger().info("starting ip output") try: Spi.disable_health_check() ip_output = threading.Thread(target=write_ip_to_screen) @@ -90,8 +92,8 @@ if __name__ == '__main__': print("gstreamer stopped...") Logging.get_logger().error("gstreamer stopped...") else: - print("not starting gstreamer background process and only checking for battery") - Logging.get_logger().info("not starting gstreamer background process and only checking for battery") + print("not starting gstreamer background process") + Logging.get_logger().info("not starting gstreamer background process") if ip_output is not None: ip_output.join() else: From 7228af5e40b03d1948f20a0f76ec255fe2f25ed2 Mon Sep 17 00:00:00 2001 From: root Date: Sat, 2 Oct 2021 11:50:10 +0100 Subject: [PATCH 099/246] Fix warning in motor --- compLib/Motor.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/compLib/Motor.py b/compLib/Motor.py index b524d9d..4570026 100644 --- a/compLib/Motor.py +++ b/compLib/Motor.py @@ -61,7 +61,7 @@ class Motor(object): raise IndexError("Invalid Motor speed specified! Speed is between -100 and 100 percent!") if log_metric: - MetricsLogging.put("MotorRaw", percent, port) + MetricsLogging.put("MotorRaw", float(percent), port) mode = MotorMode.COAST if percent < 0: @@ -89,7 +89,7 @@ class Motor(object): elif percent < 0: raw_power = -Motor.__linearizePower(MOTOR_CURVE, -percent) - MetricsLogging.put("Motor", percent, port) + MetricsLogging.put("Motor", float(percent), port) Motor.power_raw(port, raw_power, False) @staticmethod From f5cc142019228cdfabeea3fd058cf04a1401ac2b Mon Sep 17 00:00:00 2001 From: root Date: Sat, 2 Oct 2021 12:38:13 +0100 Subject: [PATCH 100/246] Remove unused print in servo --- compLib/Servo.py | 1 - 1 file changed, 1 deletion(-) diff --git a/compLib/Servo.py b/compLib/Servo.py index f659b52..8aefeee 100644 --- a/compLib/Servo.py +++ b/compLib/Servo.py @@ -28,7 +28,6 @@ class Servo: angle = max(min(angle, MAX_ANGLE), MIN_ANGLE) mapped_angle = int(map(angle, MIN_ANGLE, MAX_ANGLE, 0, 65535)) - print(mapped_angle) if port == 1: Spi.write(Register.SERVO_1_PWM_H, 2, mapped_angle) From 89d681d10f761555ba19200c743de488fbd6710d Mon Sep 17 00:00:00 2001 From: Joel Klimont Date: Sat, 2 Oct 2021 17:39:48 +0200 Subject: [PATCH 101/246] changed version number to 0.2.5-0 --- build_deb.sh | 2 +- compLib/__init__.py | 2 +- setup.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/build_deb.sh b/build_deb.sh index a07abf2..2e2de31 100755 --- a/build_deb.sh +++ b/build_deb.sh @@ -34,7 +34,7 @@ fpm -s python --python-bin python3 --python-pip pip3 --python-package-name-prefi -d "python3-pigpio" \ -d "python3-numpy" \ -d "ffmpeg" \ - -v 0.2.4-0 -t deb setup.py + -v 0.2.5-0 -t deb setup.py # --deb-changelog changelog \ # --deb-upstream-changelog changelog \ diff --git a/compLib/__init__.py b/compLib/__init__.py index 1323bff..6a57bd7 100644 --- a/compLib/__init__.py +++ b/compLib/__init__.py @@ -1,4 +1,4 @@ -__version__ = "0.2.4-0" +__version__ = "0.2.5-0" import importlib import compLib.LogstashLogging diff --git a/setup.py b/setup.py index 7c4c025..b74ab04 100644 --- a/setup.py +++ b/setup.py @@ -12,7 +12,7 @@ else: setuptools.setup( name="complib", - version="0.2.4-0", + version="0.2.5-0", author="F-WuTs", author_email="--", description="", From 436ef35d46654e9b453a29ac8355bf4738714b66 Mon Sep 17 00:00:00 2001 From: Joel Klimont Date: Wed, 6 Oct 2021 00:19:58 +0200 Subject: [PATCH 102/246] renamed /getMeteoroid to /getMeteoroids small corrections in ip daemon --- build_deb.sh | 2 +- compLib/Api.py | 12 ++++++------ compLib/Vision.py | 24 +++++++++++++++++++----- compLib/VisionDaemon.py | 2 +- compLib/__init__.py | 2 +- docs/source/lib/Api.rst | 2 +- setup.py | 2 +- 7 files changed, 30 insertions(+), 16 deletions(-) diff --git a/build_deb.sh b/build_deb.sh index 2e2de31..14ccbe9 100755 --- a/build_deb.sh +++ b/build_deb.sh @@ -34,7 +34,7 @@ fpm -s python --python-bin python3 --python-pip pip3 --python-package-name-prefi -d "python3-pigpio" \ -d "python3-numpy" \ -d "ffmpeg" \ - -v 0.2.5-0 -t deb setup.py + -v 0.2.6-0 -t deb setup.py # --deb-changelog changelog \ # --deb-upstream-changelog changelog \ diff --git a/compLib/Api.py b/compLib/Api.py index 4c87a8c..f518f9b 100644 --- a/compLib/Api.py +++ b/compLib/Api.py @@ -194,18 +194,18 @@ class DoubleElim: return response, res.status_code @staticmethod - def get_meteoroid() -> Tuple[List[Dict], int]: - """Makes the /api/getMeteoroid call to the api. + def get_meteoroids() -> Tuple[List[Dict], int]: + """Makes the /api/getMeteoroids call to the api. :return: A list will all meteoroids currently on the game field. Meteoroids are dictionaries that look like: {"x": 0, "y": 0} :rtype: Tuple[List[Dict], int] """ res = requests.get(API_URL_GET_METEOROID) if res.status_code == 408: - Logging.get_logger().error(f"DoubleElim.get_meteoroid timeout!") + Logging.get_logger().error(f"DoubleElim.get_meteoroids timeout!") time.sleep(0.01) - return DoubleElim.get_meteoroid() + return DoubleElim.get_meteoroids() response = json.loads(res.content) - Logging.get_logger().debug(f"DoubleElim.get_meteoroid = {response}, status code = {res.status_code}") - return response, res.status_code \ No newline at end of file + Logging.get_logger().debug(f"DoubleElim.get_meteoroids = {response}, status code = {res.status_code}") + return response, res.status_code diff --git a/compLib/Vision.py b/compLib/Vision.py index 2bd3558..a560cc9 100644 --- a/compLib/Vision.py +++ b/compLib/Vision.py @@ -1,14 +1,13 @@ import os import queue -from queue import Queue +import socket +import threading import cv2 -import logging -import threading -from compLib.LogstashLogging import Logging - from flask import Flask, Response +from compLib.LogstashLogging import Logging + RTMP_SERVER = os.getenv("RTMP_SERVER", "rtmp://localhost/live/stream") SERVE_VIDEO = os.getenv("SERVER_SRC", "/live") BUILDING_DOCS = os.getenv("BUILDING_DOCS", "false") @@ -161,6 +160,18 @@ def __index(): return HTML +def get_ip(): + s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) + try: + s.connect(('10.255.255.255', 1)) + IP = s.getsockname()[0] + except Exception: + IP = '127.0.0.1' + finally: + s.close() + return IP + + def __start_flask(): """ Function for running flask server in a thread. @@ -169,6 +180,9 @@ def __start_flask(): """ Logging.get_logger().info("starting flask server") app.run(host="0.0.0.0", port=9898, debug=True, threaded=True, use_reloader=False) + ip = get_ip() + Logging.get_logger().info(f"Vision stream started and can be viewed on: {ip}:9898") + print(f"\033[92mVision stream started and can be viewed on: {ip}:9898\033[0m") if BUILDING_DOCS == "false": diff --git a/compLib/VisionDaemon.py b/compLib/VisionDaemon.py index 3643f92..2af82ac 100644 --- a/compLib/VisionDaemon.py +++ b/compLib/VisionDaemon.py @@ -60,7 +60,7 @@ def write_ip_to_screen(): Logging.get_logger().info(f"writing {ip} to display") Display.write(1, "Current IP:") Display.write(2, ip) - time.sleep(60) + time.sleep(5) if __name__ == '__main__': diff --git a/compLib/__init__.py b/compLib/__init__.py index 6a57bd7..38904af 100644 --- a/compLib/__init__.py +++ b/compLib/__init__.py @@ -1,4 +1,4 @@ -__version__ = "0.2.5-0" +__version__ = "0.2.6-0" import importlib import compLib.LogstashLogging diff --git a/docs/source/lib/Api.rst b/docs/source/lib/Api.rst index 59ad2d6..850f69b 100644 --- a/docs/source/lib/Api.rst +++ b/docs/source/lib/Api.rst @@ -101,7 +101,7 @@ Calling Double Elimination API score, status = DoubleElim.get_score() print(f"The current score of the game is {score}, the server responded with status code: {status}") - meteoroids, status = DoubleElim.get_meteoroid() + meteoroids, status = DoubleElim.get_meteoroids() print(f"The current meteoroids in the game are {meteoroids}, the server responded with status code: {status}") In this second example we wait until the game is started by the judges and then make all possible requests once. You should use the wait_for_start function in your double elimination program. If your robot starts too soon your run will not count! diff --git a/setup.py b/setup.py index b74ab04..1ca6220 100644 --- a/setup.py +++ b/setup.py @@ -12,7 +12,7 @@ else: setuptools.setup( name="complib", - version="0.2.5-0", + version="0.2.6-0", author="F-WuTs", author_email="--", description="", From 881f8ddbf862aeaad94566581c9fe984b9d4db0e Mon Sep 17 00:00:00 2001 From: Joel Klimont Date: Wed, 6 Oct 2021 13:20:21 +0200 Subject: [PATCH 103/246] added error output to get_ip --- build_deb.sh | 2 +- compLib/Vision.py | 3 ++- compLib/VisionDaemon.py | 1 + compLib/__init__.py | 2 +- setup.py | 2 +- 5 files changed, 6 insertions(+), 4 deletions(-) diff --git a/build_deb.sh b/build_deb.sh index 14ccbe9..7c4e00e 100755 --- a/build_deb.sh +++ b/build_deb.sh @@ -34,7 +34,7 @@ fpm -s python --python-bin python3 --python-pip pip3 --python-package-name-prefi -d "python3-pigpio" \ -d "python3-numpy" \ -d "ffmpeg" \ - -v 0.2.6-0 -t deb setup.py + -v 0.2.6-1 -t deb setup.py # --deb-changelog changelog \ # --deb-upstream-changelog changelog \ diff --git a/compLib/Vision.py b/compLib/Vision.py index a560cc9..c3221a2 100644 --- a/compLib/Vision.py +++ b/compLib/Vision.py @@ -165,8 +165,9 @@ def get_ip(): try: s.connect(('10.255.255.255', 1)) IP = s.getsockname()[0] - except Exception: + except Exception as e: IP = '127.0.0.1' + print(f"Error could not query ip: {e}") finally: s.close() return IP diff --git a/compLib/VisionDaemon.py b/compLib/VisionDaemon.py index 2af82ac..9114923 100644 --- a/compLib/VisionDaemon.py +++ b/compLib/VisionDaemon.py @@ -48,6 +48,7 @@ def get_ip(): IP = s.getsockname()[0] except Exception: IP = '127.0.0.1' + print(f"Error could not query ip: {e}") finally: s.close() return IP diff --git a/compLib/__init__.py b/compLib/__init__.py index 38904af..28b40b2 100644 --- a/compLib/__init__.py +++ b/compLib/__init__.py @@ -1,4 +1,4 @@ -__version__ = "0.2.6-0" +__version__ = "0.2.6-1" import importlib import compLib.LogstashLogging diff --git a/setup.py b/setup.py index 1ca6220..b5d4b9c 100644 --- a/setup.py +++ b/setup.py @@ -12,7 +12,7 @@ else: setuptools.setup( name="complib", - version="0.2.6-0", + version="0.2.6-1", author="F-WuTs", author_email="--", description="", From eafad7ccdbb527a30a959e4c2142886a24219ce3 Mon Sep 17 00:00:00 2001 From: Konstantin Lampalzer Date: Thu, 14 Oct 2021 13:36:03 +0200 Subject: [PATCH 104/246] Add local development to SPI --- compLib/Spi.py | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/compLib/Spi.py b/compLib/Spi.py index a3b2c14..5f7d964 100644 --- a/compLib/Spi.py +++ b/compLib/Spi.py @@ -1,4 +1,4 @@ -import spidev +import importlib from threading import Thread, Lock from enum import IntEnum import time @@ -12,13 +12,17 @@ SPI_SPEED = 1000000 SPI_BUFFER_SIZE = 32 SPI_HEALTH = True -spi = spidev.SpiDev() -spi.open(SPI_BUS, SPI_DEVICE) -spi.max_speed_hz = SPI_SPEED -spi.mode = 0 -spi.bits_per_word = 8 +# For development purposes +spi_found = importlib.util.find_spec("spidev") is not None +spi = None +if spi_found: + spi = spidev.SpiDev() + spi.open(SPI_BUS, SPI_DEVICE) + spi.max_speed_hz = SPI_SPEED + spi.mode = 0 + spi.bits_per_word = 8 -spi_mutex = Lock() + spi_mutex = Lock() class Register(IntEnum): IDENTIFICATION_MODEL_ID = 1, @@ -106,6 +110,9 @@ class Spi(object): @staticmethod def transfer(tx_buffer: list): + if not spi_found: + return [] * SPI_BUFFER_SIZE + write_reg = tx_buffer[1] spi.xfer(tx_buffer) From 0f95d4207aa8220c9fdc8e035e21dc85efc2248c Mon Sep 17 00:00:00 2001 From: Joel Klimont Date: Thu, 14 Oct 2021 13:37:33 +0200 Subject: [PATCH 105/246] stability improvements for ip daemon --- compLib/VisionDaemon.py | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/compLib/VisionDaemon.py b/compLib/VisionDaemon.py index 9114923..1fd4ca3 100644 --- a/compLib/VisionDaemon.py +++ b/compLib/VisionDaemon.py @@ -1,3 +1,4 @@ +import datetime import os import socket import threading @@ -47,7 +48,7 @@ def get_ip(): s.connect(('10.255.255.255', 1)) IP = s.getsockname()[0] except Exception: - IP = '127.0.0.1' + IP = 'Not connected' print(f"Error could not query ip: {e}") finally: s.close() @@ -56,12 +57,17 @@ def get_ip(): def write_ip_to_screen(): while os.getenv("IP_OUTPUT", "true") == "true": - ip = str(get_ip()) - print(f"writing {ip} to display") - Logging.get_logger().info(f"writing {ip} to display") - Display.write(1, "Current IP:") - Display.write(2, ip) - time.sleep(5) + try: + ip = str(get_ip()) + print(f"writing {ip} to display") + Logging.get_logger().info(f"writing {ip} to display") + Display.write(1, "Current IP:") + Display.write(2, ip) + Display.write(3, datetime.datetime.now().strftime("%b %d %Y %H:%M:%S")) + time.sleep(5) + except Exception as e: + print(f"Exception in write ip thread: {e}") + time.sleep(5) if __name__ == '__main__': From 74db0ca67691ba36d965feedcbc58c6ea197ad69 Mon Sep 17 00:00:00 2001 From: Joel Klimont Date: Thu, 14 Oct 2021 13:44:12 +0200 Subject: [PATCH 106/246] updated version number --- build_deb.sh | 2 +- compLib/__init__.py | 2 +- setup.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/build_deb.sh b/build_deb.sh index 7c4e00e..78a8d3a 100755 --- a/build_deb.sh +++ b/build_deb.sh @@ -34,7 +34,7 @@ fpm -s python --python-bin python3 --python-pip pip3 --python-package-name-prefi -d "python3-pigpio" \ -d "python3-numpy" \ -d "ffmpeg" \ - -v 0.2.6-1 -t deb setup.py + -v 0.2.7-0 -t deb setup.py # --deb-changelog changelog \ # --deb-upstream-changelog changelog \ diff --git a/compLib/__init__.py b/compLib/__init__.py index 28b40b2..372d078 100644 --- a/compLib/__init__.py +++ b/compLib/__init__.py @@ -1,4 +1,4 @@ -__version__ = "0.2.6-1" +__version__ = "0.2.7-0" import importlib import compLib.LogstashLogging diff --git a/setup.py b/setup.py index b5d4b9c..119fd76 100644 --- a/setup.py +++ b/setup.py @@ -12,7 +12,7 @@ else: setuptools.setup( name="complib", - version="0.2.6-1", + version="0.2.7-0", author="F-WuTs", author_email="--", description="", From ce7094b5cf477170b750f50e0de10f107d097371 Mon Sep 17 00:00:00 2001 From: Konstantin Lampalzer Date: Thu, 14 Oct 2021 13:59:20 +0200 Subject: [PATCH 107/246] Fix spidev --- compLib/Spi.py | 1 + docs/source/lib/Linefollower.rst | 16 +++++++--------- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/compLib/Spi.py b/compLib/Spi.py index 5f7d964..6e083bf 100644 --- a/compLib/Spi.py +++ b/compLib/Spi.py @@ -16,6 +16,7 @@ SPI_HEALTH = True spi_found = importlib.util.find_spec("spidev") is not None spi = None if spi_found: + import spidev spi = spidev.SpiDev() spi.open(SPI_BUS, SPI_DEVICE) spi.max_speed_hz = SPI_SPEED diff --git a/docs/source/lib/Linefollower.rst b/docs/source/lib/Linefollower.rst index 48fe4d3..41de752 100644 --- a/docs/source/lib/Linefollower.rst +++ b/docs/source/lib/Linefollower.rst @@ -21,18 +21,16 @@ Simple Linefollower IRSensor.set(4, True) IRSensor.set(5, True) - DRIVE_SPEED = 85 - TURN_SPEED = 50 - COLOR_BREAK = 750 - KP = 50.0 + DRIVE_SPEED = 75 + COLOR_BREAK = 900 + KP = 10.0 KD = 0.0 def drive(leftSpeed, rightSpeed): - leftSpeed *= -1 - rightSpeed *= 0.906 + rightSpeed *= -0.906 - Motor.power(1, min(max(-100, leftSpeed), 100)) - Motor.power(2, min(max(-100, rightSpeed), 100)) + Motor.power(1, min(max(-100, rightSpeed), 100)) + Motor.power(4, min(max(-100, leftSpeed), 100)) def follow(sleepTime = 0.1): lastError = 0 @@ -58,7 +56,7 @@ Simple Linefollower error = 3 elif error == -1.5: error = -3 - + lastError = error adjustment = KP * error + KD * (error - lastError) From 9f09ca3382003ff7f908fb2d0dc4f1dd793fb709 Mon Sep 17 00:00:00 2001 From: Joel Klimont Date: Thu, 14 Oct 2021 14:00:03 +0200 Subject: [PATCH 108/246] updated version number --- build_deb.sh | 2 +- compLib/__init__.py | 2 +- setup.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/build_deb.sh b/build_deb.sh index 78a8d3a..61cacf4 100755 --- a/build_deb.sh +++ b/build_deb.sh @@ -34,7 +34,7 @@ fpm -s python --python-bin python3 --python-pip pip3 --python-package-name-prefi -d "python3-pigpio" \ -d "python3-numpy" \ -d "ffmpeg" \ - -v 0.2.7-0 -t deb setup.py + -v 0.2.7-1 -t deb setup.py # --deb-changelog changelog \ # --deb-upstream-changelog changelog \ diff --git a/compLib/__init__.py b/compLib/__init__.py index 372d078..d3f643a 100644 --- a/compLib/__init__.py +++ b/compLib/__init__.py @@ -1,4 +1,4 @@ -__version__ = "0.2.7-0" +__version__ = "0.2.7-1" import importlib import compLib.LogstashLogging diff --git a/setup.py b/setup.py index 119fd76..b53fce7 100644 --- a/setup.py +++ b/setup.py @@ -12,7 +12,7 @@ else: setuptools.setup( name="complib", - version="0.2.7-0", + version="0.2.7-1", author="F-WuTs", author_email="--", description="", From 910c5edaee81baa1cd3791611e7399311489e5d1 Mon Sep 17 00:00:00 2001 From: Joel Klimont Date: Thu, 14 Oct 2021 14:04:38 +0200 Subject: [PATCH 109/246] speedup of postinstall script --- postinstall.sh | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/postinstall.sh b/postinstall.sh index dde2f9c..80799f7 100644 --- a/postinstall.sh +++ b/postinstall.sh @@ -15,13 +15,15 @@ install_package() { fi } -install_package "smbus" -install_package "requests" -install_package "flask" -install_package "python-logstash-async" -install_package "RPi.GPIO" -install_package "spidev" -install_package "influxdb_client" +#install_package "smbus" +#install_package "requests" +#install_package "flask" +#install_package "python-logstash-async" +#install_package "RPi.GPIO" +#install_package "spidev" +#install_package "influxdb_client" + +pip3 install smbus requests flask python-logstash-async RPi.GPIO spidev influxdb_client echo "Setting up opencv4" pkg-config --modversion opencv4 From d81eb73b464d03dea60977b0731245e97df0fcfb Mon Sep 17 00:00:00 2001 From: Joel Klimont Date: Thu, 14 Oct 2021 14:07:06 +0200 Subject: [PATCH 110/246] updated version fixed ip date output --- build_deb.sh | 2 +- compLib/VisionDaemon.py | 2 +- compLib/__init__.py | 2 +- setup.py | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/build_deb.sh b/build_deb.sh index 61cacf4..3882f66 100755 --- a/build_deb.sh +++ b/build_deb.sh @@ -34,7 +34,7 @@ fpm -s python --python-bin python3 --python-pip pip3 --python-package-name-prefi -d "python3-pigpio" \ -d "python3-numpy" \ -d "ffmpeg" \ - -v 0.2.7-1 -t deb setup.py + -v 0.2.7-2 -t deb setup.py # --deb-changelog changelog \ # --deb-upstream-changelog changelog \ diff --git a/compLib/VisionDaemon.py b/compLib/VisionDaemon.py index 1fd4ca3..a18d47d 100644 --- a/compLib/VisionDaemon.py +++ b/compLib/VisionDaemon.py @@ -63,7 +63,7 @@ def write_ip_to_screen(): Logging.get_logger().info(f"writing {ip} to display") Display.write(1, "Current IP:") Display.write(2, ip) - Display.write(3, datetime.datetime.now().strftime("%b %d %Y %H:%M:%S")) + Display.write(3, datetime.datetime.now().strftime("%b %d %H:%M:%S")) time.sleep(5) except Exception as e: print(f"Exception in write ip thread: {e}") diff --git a/compLib/__init__.py b/compLib/__init__.py index d3f643a..cb321e0 100644 --- a/compLib/__init__.py +++ b/compLib/__init__.py @@ -1,4 +1,4 @@ -__version__ = "0.2.7-1" +__version__ = "0.2.7-2" import importlib import compLib.LogstashLogging diff --git a/setup.py b/setup.py index b53fce7..616c09d 100644 --- a/setup.py +++ b/setup.py @@ -12,7 +12,7 @@ else: setuptools.setup( name="complib", - version="0.2.7-1", + version="0.2.7-2", author="F-WuTs", author_email="--", description="", From 42952eb9e1b0e3eb27392a5cb2e348df3ea6daaa Mon Sep 17 00:00:00 2001 From: Konstantin Lampalzer Date: Thu, 14 Oct 2021 15:17:35 +0200 Subject: [PATCH 111/246] Add QC docu, Fix display update --- compLib/VisionDaemon.py | 4 +-- docs/source/lib/QC.rst | 71 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 72 insertions(+), 3 deletions(-) create mode 100644 docs/source/lib/QC.rst diff --git a/compLib/VisionDaemon.py b/compLib/VisionDaemon.py index a18d47d..78902ef 100644 --- a/compLib/VisionDaemon.py +++ b/compLib/VisionDaemon.py @@ -60,10 +60,8 @@ def write_ip_to_screen(): try: ip = str(get_ip()) print(f"writing {ip} to display") - Logging.get_logger().info(f"writing {ip} to display") - Display.write(1, "Current IP:") Display.write(2, ip) - Display.write(3, datetime.datetime.now().strftime("%b %d %H:%M:%S")) + Display.write(1, datetime.datetime.now().strftime("%b %d %H:%M:%S")) time.sleep(5) except Exception as e: print(f"Exception in write ip thread: {e}") diff --git a/docs/source/lib/QC.rst b/docs/source/lib/QC.rst new file mode 100644 index 0000000..924fa71 --- /dev/null +++ b/docs/source/lib/QC.rst @@ -0,0 +1,71 @@ +.. _lib_qc: + +Quality Control +############### + +Infrared Test +------------------------- + +.. code-block:: python + + from compLib.IRSensor import IRSensor + import time + + IRSensor.set(1, True) + IRSensor.set(2, True) + IRSensor.set(3, True) + IRSensor.set(4, True) + IRSensor.set(5, True) + + while True: + t = time.time() + for i in range(1, 6): + print(f"{i}: {IRSensor.read(i)}") + print("") + time.sleep(0.2) + +Motor Test +------------------------- + +.. code-block:: python + + from compLib.Motor import Motor + from compLib.Encoder import Encoder + import time + + Motor.power(1, -50) + Motor.power(4, 50) + + while True: + print(f"L:{Encoder.read(4)} R:{Encoder.read(1)}") + time.sleep(0.1) + +Servo Test +------------------------- + +.. code-block:: python + + from compLib.Servo import Servo + import time + + for i in range(1, 8 + 1): + Servo.set_position(i, 45) + print(f"{i}") + time.sleep(1) + + Servo.setup_position() + time.sleep(10) + +Vision Test +------------------------- + +.. code-block:: python + + import cv2 + from compLib import Vision + from compLib.Servo import Servo + + while True: + frame = Vision.Streaming.get_frame() + Vision.Streaming.publish_frame(frame) + Servo.set_position(3, -45) From 97b08497d8c2fcc1f7a27a0731dcf505fb4feb5c Mon Sep 17 00:00:00 2001 From: Joel Klimont Date: Thu, 14 Oct 2021 15:22:09 +0200 Subject: [PATCH 112/246] updated version --- build_deb.sh | 2 +- compLib/__init__.py | 2 +- setup.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/build_deb.sh b/build_deb.sh index 3882f66..b88c0ee 100755 --- a/build_deb.sh +++ b/build_deb.sh @@ -34,7 +34,7 @@ fpm -s python --python-bin python3 --python-pip pip3 --python-package-name-prefi -d "python3-pigpio" \ -d "python3-numpy" \ -d "ffmpeg" \ - -v 0.2.7-2 -t deb setup.py + -v 0.2.7-3 -t deb setup.py # --deb-changelog changelog \ # --deb-upstream-changelog changelog \ diff --git a/compLib/__init__.py b/compLib/__init__.py index cb321e0..ad7e02d 100644 --- a/compLib/__init__.py +++ b/compLib/__init__.py @@ -1,4 +1,4 @@ -__version__ = "0.2.7-2" +__version__ = "0.2.7-3" import importlib import compLib.LogstashLogging diff --git a/setup.py b/setup.py index 616c09d..e9b2caa 100644 --- a/setup.py +++ b/setup.py @@ -12,7 +12,7 @@ else: setuptools.setup( name="complib", - version="0.2.7-2", + version="0.2.7-3", author="F-WuTs", author_email="--", description="", From 222aa46123a16fee1cfa95931dadf7f946e8722e Mon Sep 17 00:00:00 2001 From: Konstantin Lampalzer Date: Sat, 16 Oct 2021 16:36:07 +0200 Subject: [PATCH 113/246] Fix docu --- docs/source/lib/Motor.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/source/lib/Motor.rst b/docs/source/lib/Motor.rst index e5d6854..bd8b253 100644 --- a/docs/source/lib/Motor.rst +++ b/docs/source/lib/Motor.rst @@ -19,5 +19,5 @@ Driving straight (maybe) from compLib.Motor import Motor - Motor.power(1, 50) - Motor.power(2, 50) \ No newline at end of file + Motor.power(1, -50) + Motor.power(4, 50) \ No newline at end of file From f7a2a8a261f5f60415bd89a4d297436567b626ea Mon Sep 17 00:00:00 2001 From: Your Name Date: Sat, 16 Oct 2021 18:18:50 +0100 Subject: [PATCH 114/246] Add firmware Version to display --- compLib/Spi.py | 8 ++++++++ compLib/VisionDaemon.py | 6 ++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/compLib/Spi.py b/compLib/Spi.py index 6e083bf..3310c07 100644 --- a/compLib/Spi.py +++ b/compLib/Spi.py @@ -198,3 +198,11 @@ class Spi(object): while SPI_HEALTH: Spi.health_check() time.sleep(0.5) + + @staticmethod + def get_version(): + major = Spi.read(Register.IDENTIFICATION_MODEL_REV_MAJOR, 1) + minor = Spi.read(Register.IDENTIFICATION_MODEL_REV_MINOR, 1) + patch = Spi.read(Register.IDENTIFICATION_MODEL_REV_PATCH, 1) + + return f"{major}.{minor}.{patch}" diff --git a/compLib/VisionDaemon.py b/compLib/VisionDaemon.py index 78902ef..93f9966 100644 --- a/compLib/VisionDaemon.py +++ b/compLib/VisionDaemon.py @@ -60,8 +60,10 @@ def write_ip_to_screen(): try: ip = str(get_ip()) print(f"writing {ip} to display") - Display.write(2, ip) - Display.write(1, datetime.datetime.now().strftime("%b %d %H:%M:%S")) + Display.write(1, f"FW. V{Spi.get_version()}") + Display.write(2, datetime.datetime.now().strftime("%b %d %H:%M:%S")) + Display.write(3, "IP:") + Display.write(4, ip) time.sleep(5) except Exception as e: print(f"Exception in write ip thread: {e}") From 592311d3eeafd65f87c53675b460e69ab081026a Mon Sep 17 00:00:00 2001 From: Konstantin Lampalzer Date: Sat, 16 Oct 2021 23:38:15 +0200 Subject: [PATCH 115/246] Change lines --- compLib/VisionDaemon.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/compLib/VisionDaemon.py b/compLib/VisionDaemon.py index 93f9966..404c8d0 100644 --- a/compLib/VisionDaemon.py +++ b/compLib/VisionDaemon.py @@ -60,10 +60,10 @@ def write_ip_to_screen(): try: ip = str(get_ip()) print(f"writing {ip} to display") - Display.write(1, f"FW. V{Spi.get_version()}") - Display.write(2, datetime.datetime.now().strftime("%b %d %H:%M:%S")) + Display.write(2, f"FW. V{Spi.get_version()}") Display.write(3, "IP:") Display.write(4, ip) + Display.write(1, datetime.datetime.now().strftime("%b %d %H:%M:%S")) time.sleep(5) except Exception as e: print(f"Exception in write ip thread: {e}") From 107ba9c667a4f280aeb2f99cb25e7d64b91d70a3 Mon Sep 17 00:00:00 2001 From: Joel Klimont Date: Sat, 16 Oct 2021 23:51:59 +0200 Subject: [PATCH 116/246] updated version --- build_deb.sh | 2 +- compLib/__init__.py | 2 +- setup.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/build_deb.sh b/build_deb.sh index b88c0ee..2bed6e7 100755 --- a/build_deb.sh +++ b/build_deb.sh @@ -34,7 +34,7 @@ fpm -s python --python-bin python3 --python-pip pip3 --python-package-name-prefi -d "python3-pigpio" \ -d "python3-numpy" \ -d "ffmpeg" \ - -v 0.2.7-3 -t deb setup.py + -v 0.2.8-0 -t deb setup.py # --deb-changelog changelog \ # --deb-upstream-changelog changelog \ diff --git a/compLib/__init__.py b/compLib/__init__.py index ad7e02d..65bd29c 100644 --- a/compLib/__init__.py +++ b/compLib/__init__.py @@ -1,4 +1,4 @@ -__version__ = "0.2.7-3" +__version__ = "0.2.8-0" import importlib import compLib.LogstashLogging diff --git a/setup.py b/setup.py index e9b2caa..71f5525 100644 --- a/setup.py +++ b/setup.py @@ -12,7 +12,7 @@ else: setuptools.setup( name="complib", - version="0.2.7-3", + version="0.2.8-0", author="F-WuTs", author_email="--", description="", From 4c4da544c2519e3a9edea84d68157cbbb722e440 Mon Sep 17 00:00:00 2001 From: Joel Klimont Date: Thu, 28 Oct 2021 23:23:52 +0200 Subject: [PATCH 117/246] added basic test for seeding api --- test.py | 306 ++++++-------------------------------------------------- 1 file changed, 29 insertions(+), 277 deletions(-) diff --git a/test.py b/test.py index 3438843..f6451ca 100644 --- a/test.py +++ b/test.py @@ -1,285 +1,37 @@ -import json -import os -import time + import unittest -from threading import Thread -import requests - -# compapi is a dependency for this test -try: - from compapi import server - - START_SERVER = True -except ImportError: - print("[!] error could not import server module from compapi, assuming server is running") - START_SERVER = False - -from multiprocessing import Process - -from compLib import LogstashLogging -from compLib import Api - - -def change_api_state(park_id: int = 0, in_get_park: bool = False, was_in_park: bool = False, - simon_says_ids: list = [0, 0, 0, 0, 0], - in_simon_zone: bool = False): - data = { - "parkId": park_id, - "inGetPark": in_get_park, - "wasInPark": was_in_park, - "simonSaysIDs": simon_says_ids, - "inSimonZone": in_simon_zone - } - - requests.post("http://localhost:5000/api/api/updateState", json=data) - - -def change_double_elim_api_state(started: bool = False, goal: list = [0, 0], position: list = [0, 0, 0], - op_position: list = [0, 0, 0], items: list = []): - data = { - "started": started, - "goal": goal, - "position": position, - "opPosition": op_position, - "items": items - } - - requests.post("http://localhost:5000/api/api/updateDoubleElimState", json=data) +import os +os.environ["API_URL"] = "http://192.168.0.7:5000/" +from compLib.Api import Seeding class TestApiServer(unittest.TestCase): - def test_get_park(self): - ret, code = Api.Seeding.get_park() - id = ret["id"] - assert type(ret) is dict - assert type(id) is int - assert id == -1 - assert type(code) is int - assert code == 403 - - change_api_state(in_get_park=True) - - ret, code = Api.Seeding.get_park() - id = ret["id"] - assert type(ret) is dict - assert type(id) is int - assert 0 <= id < 4 - assert type(code) is int - assert code == 200 - - def test_pay_park(self): - ret = Api.Seeding.pay_park() - assert type(ret) is int - assert ret == 402 - - change_api_state(was_in_park=True) - - ret = Api.Seeding.pay_park() - assert type(ret) is int - assert ret == 402 - - change_api_state(was_in_park=True, in_get_park=True) - - ret = Api.Seeding.pay_park() - assert type(ret) is int - assert ret == 204 - - def test_simon_says(self): - change_api_state(in_simon_zone=False) - ret, code = Api.Seeding.simon_says() - id = ret["id"] - assert type(ret) is dict - assert type(id) is int - assert type(code) is int - assert code == 403 - assert id == -1 - - got = [] - while len(got) != 5: - change_api_state(in_simon_zone=True) - ret, code = Api.Seeding.simon_says() - id = ret["id"] - assert type(ret) is dict - assert type(id) is int - assert type(code) is int - assert code == 200 - assert id <= 0 < 4 - got.append(ret) - print(got) - - change_api_state(in_simon_zone=True) - ret, code = Api.Seeding.simon_says() - id = ret["id"] - assert type(ret) is dict - assert type(id) is int - assert type(code) is int - assert code == 200 - assert id == -1 - - change_api_state(in_simon_zone=False) - ret, code = Api.Seeding.simon_says() - id = ret["id"] - assert type(ret) is dict - assert type(id) is int - assert type(code) is int - assert code == 403 - assert id == -1 - - def test_simon_says_iterations(self): - for i in range(0, 5): - change_api_state(in_simon_zone=True) - ret, status = Api.Seeding.simon_says() - assert type(ret) is dict - assert type(status) is int - assert type(ret["id"]) is int - assert 0 <= ret["id"] < 4 - - # after 4 iterations the api should only return -1 from now - for i in range(0, 10): - assert Api.Seeding.simon_says()[0]["id"] == -1 - - # after api reset this test should work again - self.resetApi() - - for i in range(0, 4): - change_api_state(in_simon_zone=True) - ret, status = Api.Seeding.simon_says() - assert type(ret) is dict - assert type(status) is int - assert type(ret["id"]) is int - assert 0 <= ret["id"] < 4 - - for i in range(0, 10): - assert Api.Seeding.simon_says()[0]["id"] == -1 - - def test_simon_says_non_repeat(self): - """ - Note: this test will fail if testing against the local api as the - configuration is to return zeros if not otherwise specified. - - Checks if simons says does not send the robot to the - same position again. - """ - - last_pos, status = Api.Seeding.simon_says() - last_pos = last_pos["id"] - for i in range(0, 100): - change_api_state(in_simon_zone=True) - next_pos, status = Api.Seeding.simon_says() - next_pos = next_pos["id"] - if next_pos == -1: - last_pos = -1 # state is reset, so reset here as well - self.resetApi() - continue - assert last_pos != next_pos - last_pos = next_pos - - def test_get_position(self): - response, status = Api.DoubleElim.get_position() - assert type(status) is int - assert status == 503 - assert type(response) == Api.Position - assert 0 == response.x - assert 0 == response.y - assert 0 == response.degrees - - change_double_elim_api_state(started=True, position=[50, 75, 90]) - - response, status = Api.DoubleElim.get_position() - assert type(status) is int - assert status == 200 - assert type(response) == Api.Position - assert 50 == response.x - assert 75 == response.y - assert 90 == response.degrees - - def test_get_opponent(self): - response, status = Api.DoubleElim.get_opponent() - assert type(status) is int - assert status == 503 - assert type(response) == Api.Position - assert 0 == response.x - assert 0 == response.y - assert 0 == response.degrees - - change_double_elim_api_state(started=True, op_position=[50, 75, 90]) - - response, status = Api.DoubleElim.get_opponent() - assert type(status) is int - assert status == 200 - assert type(response) == Api.Position - assert 50 == response.x - assert 75 == response.y - assert 90 == response.degrees - - def test_get_goal(self): - response, status = Api.DoubleElim.get_goal() - assert type(status) is int - assert status == 503 - assert type(response) == Api.Position - assert 0 == response.x - assert 0 == response.y - assert response.degrees == -1 - - change_double_elim_api_state(started=True, goal=[50, 75]) - - response, status = Api.DoubleElim.get_goal() - assert type(status) is int - assert status == 200 - assert type(response) == Api.Position - assert 50 == response.x - assert 75 == response.y - assert response.degrees == -1 - - def test_get_items(self): - response, status = Api.DoubleElim.get_items() - assert type(status) is int - assert status == 503 - assert type(response) == list - assert response == [] - - change_double_elim_api_state(started=True) - - response, status = Api.DoubleElim.get_items() - assert type(status) is int - assert status == 200 - assert type(response) == list - assert response == [] - - change_double_elim_api_state(started=True, items=[{"id": 0, "x": 50, "y": 75}]) - - response, status = Api.DoubleElim.get_items() - assert type(status) is int - assert status == 200 - assert type(response) == list - assert len(response) == 1 - assert response == [{"id": 0, "x": 50, "y": 75}] - - change_double_elim_api_state(started=True, items=[{"id": 0, "x": 50, "y": 75}, {"id": 2, "x": -50, "y": -75}]) - - response, status = Api.DoubleElim.get_items() - assert type(status) is int - assert status == 200 - assert type(response) == list - assert len(response) == 2 - assert response == [{"id": 0, "x": 50, "y": 75}, {"id": 2, "x": -50, "y": -75}] - - def setUp(self) -> None: - if START_SERVER: - self.server = Process(target=server.app.run, kwargs={"host": "0.0.0.0", "port": "5000"}) - self.server.start() - time.sleep(0.25) - else: - self.resetApi() - - def tearDown(self) -> None: - if START_SERVER: - self.server.terminate() - self.server.join() - - def resetApi(self): - assert requests.get(Api.API_URL + "resetState").status_code == 200 + def test_all(self): + ret, code = Seeding.get_garbage() + print(ret) + print(code) + ret, code = Seeding.get_delivery() + print(ret) + print(code) + ret, code = Seeding.get_material() + print(ret) + print(code) + ret, code = Seeding.list_cargo() + print(ret) + print(code) + ret, code = Seeding.get_cargo("green") + print(ret) + print(code) + ret, code = Seeding.get_cargo("yellow") + print(ret) + print(code) + ret, code = Seeding.get_cargo("blue") + print(ret) + print(code) + ret, code = Seeding.get_cargo("red") + print(ret) + print(code) if __name__ == '__main__': From 210580d3f1bf43bb4ad2ca3f21a4bdf3c23e585f Mon Sep 17 00:00:00 2001 From: HerrNamenlos123 <44909261+HerrNamenlos123@users.noreply.github.com> Date: Fri, 5 Nov 2021 15:06:20 +0100 Subject: [PATCH 118/246] Update Reset.py --- compLib/Reset.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/compLib/Reset.py b/compLib/Reset.py index dd52a60..c297cfc 100644 --- a/compLib/Reset.py +++ b/compLib/Reset.py @@ -21,4 +21,4 @@ class Reset: GPIO.output(BOOT_PIN, GPIO.LOW) time.sleep(0.1) GPIO.output(RESET_PIN, GPIO.HIGH) - time.sleep(0.3) + time.sleep(1.5) From b2d025002e3696b5c70c31db40e59639fdeb7be8 Mon Sep 17 00:00:00 2001 From: Joel Klimont Date: Fri, 5 Nov 2021 15:23:13 +0100 Subject: [PATCH 119/246] changed version number to 0.2.9-0 --- build_deb.sh | 2 +- compLib/__init__.py | 2 +- setup.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/build_deb.sh b/build_deb.sh index 2bed6e7..9413f9e 100755 --- a/build_deb.sh +++ b/build_deb.sh @@ -34,7 +34,7 @@ fpm -s python --python-bin python3 --python-pip pip3 --python-package-name-prefi -d "python3-pigpio" \ -d "python3-numpy" \ -d "ffmpeg" \ - -v 0.2.8-0 -t deb setup.py + -v 0.2.9-0 -t deb setup.py # --deb-changelog changelog \ # --deb-upstream-changelog changelog \ diff --git a/compLib/__init__.py b/compLib/__init__.py index 65bd29c..2570b5b 100644 --- a/compLib/__init__.py +++ b/compLib/__init__.py @@ -1,4 +1,4 @@ -__version__ = "0.2.8-0" +__version__ = "0.2.9-0" import importlib import compLib.LogstashLogging diff --git a/setup.py b/setup.py index 71f5525..136df7a 100644 --- a/setup.py +++ b/setup.py @@ -12,7 +12,7 @@ else: setuptools.setup( name="complib", - version="0.2.8-0", + version="0.2.9-0", author="F-WuTs", author_email="--", description="", From c5dd14fb1f5a88da9342a25789131092e183caee Mon Sep 17 00:00:00 2001 From: root Date: Fri, 12 Nov 2021 19:17:14 +0000 Subject: [PATCH 120/246] Add bot driving slower --- compLib/Api.py | 8 ++++++++ compLib/Motor.py | 43 +++++++++++++++++++++++++++++++++++++++++++ compLib/__init__.py | 2 ++ 3 files changed, 53 insertions(+) diff --git a/compLib/Api.py b/compLib/Api.py index f518f9b..55e0a3c 100644 --- a/compLib/Api.py +++ b/compLib/Api.py @@ -13,6 +13,7 @@ API_URL_GET_MATERIAL = API_URL + "getMaterial" API_URL_GET_GARBAGE = API_URL + "getGarbage" API_URL_GET_LIST_CARGO = API_URL + "listCargo" API_URL_GET_CARGO = API_URL + "getCargo/" +API_URL_GET_ROBOT_STATE = API_URL + "getRobotState" API_URL_GET_POS = API_URL + "getPos" API_URL_GET_OP = API_URL + "getOp" @@ -87,6 +88,12 @@ class Seeding: Logging.get_logger().debug(f"Seeding.get_cargo {result}, status code = {res.status_code}") return result, res.status_code + @staticmethod + def get_robot_state() -> Tuple[Dict, int]: + res = requests.get(API_URL_GET_ROBOT_STATE) + result = json.loads(res.content) + Logging.get_logger().debug(f"Seeding.get_robot_state {result}, status code = {res.status_code}") + return result, res.status_code class Position: """Datastructure for holding a position @@ -209,3 +216,4 @@ class DoubleElim: response = json.loads(res.content) Logging.get_logger().debug(f"DoubleElim.get_meteoroids = {response}, status code = {res.status_code}") return response, res.status_code + diff --git a/compLib/Motor.py b/compLib/Motor.py index 4570026..272e3ea 100644 --- a/compLib/Motor.py +++ b/compLib/Motor.py @@ -10,6 +10,10 @@ MAX_MOTOR_SPEED = 65535 MOTOR_PERCENTAGE_MULT = MAX_MOTOR_SPEED / 100.0 MOTOR_CURVE = [0.0, 0.0, 426.5, 692.0, 842.5, 953.5, 1032.5, 1090.5, 1135.5, 1171.0, 1203.5, 1230.0, 1249.5, 1268.0, 1283.0, 1298.5, 1308.0, 1320.0, 1332.0, 1339.5, 1352.5] +SPEED_LOCK = False +SPEED_MULT = 1.0 + + class MotorMode(IntEnum): COAST = 0, FORWARD = 1, @@ -29,6 +33,10 @@ class Motor(object): :param mode: Motor mode. See enum MotorMode for more info :raises: IndexError """ + + if SPEED_LOCK: + return + if port <= 0 or port > MOTOR_COUNT: raise IndexError("Invalid Motor port specified!") @@ -70,6 +78,7 @@ class Motor(object): elif percent > 0: mode = MotorMode.FORWARD + percent *= SPEED_MULT pwm = percent * MOTOR_PERCENTAGE_MULT Motor.pwm(port, int(pwm), mode) @@ -172,4 +181,38 @@ class Motor(object): return Motor.__interpolateSpeed(curve, requiredSpeed) + @staticmethod + def robot_state_loop(): + import time + from compLib.Api import Seeding + + global SPEED_LOCK + global SPEED_MULT + + while True: + try: + state, status = Seeding.get_robot_state() + SPEED_MULT = state["speed"] / 100.0 + + if state["left"] != -1 or state["right"] != -1: + Motor.power(1, state["right"]) + Motor.power(4, state["left"]) + SPEED_LOCK = True + time.sleep(state["time"]) + SPEED_LOCK = False + Motor.power(1, 0) + Motor.power(4, 0) + else: + time.sleep(0.25) + except: + time.sleep(0.25) + pass + + @staticmethod + def start_robot_state_loop(): + from threading import Thread + robot_state_thread = Thread(target=Motor.robot_state_loop) + robot_state_thread.setDaemon(True) + robot_state_thread.start() + atexit.register(Motor.all_off) diff --git a/compLib/__init__.py b/compLib/__init__.py index 2570b5b..728ab3d 100644 --- a/compLib/__init__.py +++ b/compLib/__init__.py @@ -29,12 +29,14 @@ if spi_found: from compLib.Spi import Spi from compLib.Reset import Reset from compLib.Encoder import Encoder + from compLib.Motor import Motor import logging print(f"\033[34mInitializing chipmunk board...\033[0m") Reset.reset_bot() Spi.health_check() Spi.start_health_check_loop() + Motor.start_robot_state_loop() Encoder.clear_all() print(f"\033[34mReady\033[0m\n") else: From 7f76813df166dccc01a24e569ec9c5003209f5e7 Mon Sep 17 00:00:00 2001 From: Joel Klimont Date: Sat, 13 Nov 2021 20:43:45 +0100 Subject: [PATCH 121/246] changed version number to 0.3.0-0 --- build_deb.sh | 2 +- compLib/__init__.py | 2 +- setup.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/build_deb.sh b/build_deb.sh index 9413f9e..f439649 100755 --- a/build_deb.sh +++ b/build_deb.sh @@ -34,7 +34,7 @@ fpm -s python --python-bin python3 --python-pip pip3 --python-package-name-prefi -d "python3-pigpio" \ -d "python3-numpy" \ -d "ffmpeg" \ - -v 0.2.9-0 -t deb setup.py + -v 0.3.0-0 -t deb setup.py # --deb-changelog changelog \ # --deb-upstream-changelog changelog \ diff --git a/compLib/__init__.py b/compLib/__init__.py index 728ab3d..6cd3aac 100644 --- a/compLib/__init__.py +++ b/compLib/__init__.py @@ -1,4 +1,4 @@ -__version__ = "0.2.9-0" +__version__ = "0.3.0-0" import importlib import compLib.LogstashLogging diff --git a/setup.py b/setup.py index 136df7a..8edafdf 100644 --- a/setup.py +++ b/setup.py @@ -12,7 +12,7 @@ else: setuptools.setup( name="complib", - version="0.2.9-0", + version="0.3.0-0", author="F-WuTs", author_email="--", description="", From 0db6ed23b2750d90e78736c8f3f3f752c699e176 Mon Sep 17 00:00:00 2001 From: Joel Klimont Date: Fri, 19 Nov 2021 13:38:34 +0100 Subject: [PATCH 122/246] postinstallscript now enables the background service explicitly --- build_deb.sh | 2 +- compLib/__init__.py | 2 +- postinstall.sh | 3 +++ setup.py | 2 +- 4 files changed, 6 insertions(+), 3 deletions(-) diff --git a/build_deb.sh b/build_deb.sh index f439649..a2912d2 100755 --- a/build_deb.sh +++ b/build_deb.sh @@ -34,7 +34,7 @@ fpm -s python --python-bin python3 --python-pip pip3 --python-package-name-prefi -d "python3-pigpio" \ -d "python3-numpy" \ -d "ffmpeg" \ - -v 0.3.0-0 -t deb setup.py + -v 0.3.1-0 -t deb setup.py # --deb-changelog changelog \ # --deb-upstream-changelog changelog \ diff --git a/compLib/__init__.py b/compLib/__init__.py index 6cd3aac..58f11e4 100644 --- a/compLib/__init__.py +++ b/compLib/__init__.py @@ -1,4 +1,4 @@ -__version__ = "0.3.0-0" +__version__ = "0.3.1-0" import importlib import compLib.LogstashLogging diff --git a/postinstall.sh b/postinstall.sh index 80799f7..357fe4b 100644 --- a/postinstall.sh +++ b/postinstall.sh @@ -58,3 +58,6 @@ CiBfX19fX18gICAgIF9fX19fXyAgICAgX18gICAgX18gICAgIF9fX19fXyAgIF9fICAgICAgICAgX18g UPD echo "" echo "" + +service complib restart +systemctl enable complib diff --git a/setup.py b/setup.py index 8edafdf..9f9ea2b 100644 --- a/setup.py +++ b/setup.py @@ -12,7 +12,7 @@ else: setuptools.setup( name="complib", - version="0.3.0-0", + version="0.3.1-0", author="F-WuTs", author_email="--", description="", From d3a26a9539dfc2f8d230d96c7f1fca0db580aeb1 Mon Sep 17 00:00:00 2001 From: Joel Klimont Date: Fri, 19 Nov 2021 17:08:18 +0100 Subject: [PATCH 123/246] changes in double elim api for status code 503 --- compLib/Api.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/compLib/Api.py b/compLib/Api.py index 55e0a3c..01b2326 100644 --- a/compLib/Api.py +++ b/compLib/Api.py @@ -1,9 +1,9 @@ -from typing import Dict, Tuple, List - -import requests import json import os import time +from typing import Dict, Tuple, List + +import requests from compLib.LogstashLogging import Logging @@ -178,6 +178,8 @@ class DoubleElim: Logging.get_logger().error(f"DoubleElim.get_items timeout!") time.sleep(0.01) return DoubleElim.get_items() + elif res.status_code == 503: + return [], 503 response = json.loads(res.content) Logging.get_logger().debug(f"DoubleElim.get_items = {response}, status code = {res.status_code}") @@ -195,6 +197,8 @@ class DoubleElim: Logging.get_logger().error(f"DoubleElim.get_scores timeout!") time.sleep(0.01) return DoubleElim.get_scores() + elif res.status_code == 503: + return {"self": 0, "opponent": 0}, 503 response = json.loads(res.content) Logging.get_logger().debug(f"DoubleElim.get_scores = {response}, status code = {res.status_code}") @@ -212,6 +216,8 @@ class DoubleElim: Logging.get_logger().error(f"DoubleElim.get_meteoroids timeout!") time.sleep(0.01) return DoubleElim.get_meteoroids() + elif res.status_code == 503: + return [], 503 response = json.loads(res.content) Logging.get_logger().debug(f"DoubleElim.get_meteoroids = {response}, status code = {res.status_code}") From 9e89123e9206f056cc7abcbecdbbb6010f385ba7 Mon Sep 17 00:00:00 2001 From: root Date: Fri, 19 Nov 2021 20:26:57 +0000 Subject: [PATCH 124/246] New curve, encoder filter --- compLib/Encoder.py | 21 +++++++++++++++++---- compLib/Motor.py | 27 ++++++++++++++++----------- 2 files changed, 33 insertions(+), 15 deletions(-) diff --git a/compLib/Encoder.py b/compLib/Encoder.py index d6ef934..a2490d2 100644 --- a/compLib/Encoder.py +++ b/compLib/Encoder.py @@ -9,6 +9,7 @@ MOTOR_COUNT = 4 encoder_start_values = [0] * (MOTOR_COUNT + 1) +encoder_last_raw_value = [0] * (MOTOR_COUNT + 1) class Encoder(object): """Class used to read the encoders @@ -24,15 +25,25 @@ class Encoder(object): """ if port <= 0 or port > MOTOR_COUNT: raise IndexError("Invalid encoder port specified!") + + global encoder_last_raw_value + raw_value = 0 if port == 1: - return Spi.read(Register.MOTOR_1_POS_B3, 4) + raw_value = Spi.read(Register.MOTOR_1_POS_B3, 4) elif port == 2: - return Spi.read(Register.MOTOR_2_POS_B3, 4) + raw_value = Spi.read(Register.MOTOR_2_POS_B3, 4) elif port == 3: - return Spi.read(Register.MOTOR_3_POS_B3, 4) + raw_value = Spi.read(Register.MOTOR_3_POS_B3, 4) elif port == 4: - return Spi.read(Register.MOTOR_4_POS_B3, 4) + raw_value = Spi.read(Register.MOTOR_4_POS_B3, 4) + + if abs(raw_value - encoder_last_raw_value[port]) > 1000: + encoder_last_raw_value[port] = raw_value + return Encoder.read_raw(port) + + encoder_last_raw_value[port] = raw_value + return raw_value @staticmethod def read(port: int) -> int: @@ -48,6 +59,8 @@ class Encoder(object): diff = Encoder.read_raw(port) - encoder_start_values[port] if diff > 2 ** 31: diff -= 2 ** 32 + elif diff < -2 ** 31: + diff += 2 ** 32 MetricsLogging.put("Encoder", diff, port) return diff diff --git a/compLib/Motor.py b/compLib/Motor.py index 272e3ea..8d46f58 100644 --- a/compLib/Motor.py +++ b/compLib/Motor.py @@ -8,7 +8,7 @@ from compLib.Spi import Spi, Register MOTOR_COUNT = 4 MAX_MOTOR_SPEED = 65535 MOTOR_PERCENTAGE_MULT = MAX_MOTOR_SPEED / 100.0 -MOTOR_CURVE = [0.0, 0.0, 426.5, 692.0, 842.5, 953.5, 1032.5, 1090.5, 1135.5, 1171.0, 1203.5, 1230.0, 1249.5, 1268.0, 1283.0, 1298.5, 1308.0, 1320.0, 1332.0, 1339.5, 1352.5] +MOTOR_CURVE = [0.0, 0.0, 0.5, 60.0, 199.83333333333334, 377.66666666666663, 990.3333333333333, 1860.6666666666665, 2587.0, 3091.6666666666665, 3489.0, 3860.5, 4197.333333333333, 4432.166666666667, 4647.166666666666, 4873.166666666666, 5054.333333333334, 5208.666666666667, 5353.0, 5466.5, 5604.0] SPEED_LOCK = False SPEED_MULT = 1.0 @@ -33,7 +33,7 @@ class Motor(object): :param mode: Motor mode. See enum MotorMode for more info :raises: IndexError """ - + if SPEED_LOCK: return @@ -92,11 +92,9 @@ class Motor(object): :param percent: Percentage of max speed. between -100 and 100 :raises: IndexError """ - raw_power = 0 - if percent > 0: - raw_power = Motor.__linearizePower(MOTOR_CURVE, percent) - elif percent < 0: - raw_power = -Motor.__linearizePower(MOTOR_CURVE, -percent) + raw_power = raw_power = Motor.__linearizePower(MOTOR_CURVE, abs(percent)) + if percent < 0: + raw_power *= -1 MetricsLogging.put("Motor", float(percent), port) Motor.power_raw(port, raw_power, False) @@ -135,7 +133,8 @@ class Motor(object): """ if (len(curve) != 21): raise ValueError('The motor curve is invalid, check documentation for set_motor_curve()!') - + + global MOTOR_CURVE MOTOR_CURVE = curve @staticmethod @@ -152,6 +151,12 @@ class Motor(object): """ Linear interpolation. Check https://www.arduino.cc/reference/en/language/functions/math/map/ """ + x = float(x) + in_min = float(in_min) + in_max = float(in_max) + out_min = float(out_min) + out_max = float(out_max) + return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min @staticmethod @@ -160,10 +165,10 @@ class Motor(object): Interpolate a speed in the specified motor curve and return the 'power percentage that is needed to reach that speed' """ - if speed < curve[0] or speed > curve[20]: + if speed < min(curve) or speed > max(curve): raise ValueError(f'Speed out of range: {str(speed)} ticks/s') - for index in range(20): # There are 20 speed ranges + for index in range(len(curve) - 2): if speed >= curve[index] and speed <= curve[index + 1] and curve[index] != curve[index + 1]: return Motor.__map(speed, curve[index], curve[index + 1], index * 5, index * 5 + 5) @@ -177,7 +182,7 @@ class Motor(object): if power < 0 or power > 100: raise ValueError(f'Power out of range: {str(power)}%') - requiredSpeed = Motor.__map(power, 0, 100, curve[0], curve[20]) + requiredSpeed = Motor.__map(power, 0, 100, min(curve), max(curve)) return Motor.__interpolateSpeed(curve, requiredSpeed) From 9b3c8e5b7fe57ddd37bda51b9d26ab59208a1465 Mon Sep 17 00:00:00 2001 From: Joel Klimont Date: Fri, 3 Dec 2021 15:28:28 +0100 Subject: [PATCH 125/246] added api tests for de fixed getMeteoroids call in api --- compLib/Api.py | 2 +- test.py | 25 ++++++++++++++++++++++++- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/compLib/Api.py b/compLib/Api.py index 01b2326..6776af0 100644 --- a/compLib/Api.py +++ b/compLib/Api.py @@ -20,7 +20,7 @@ API_URL_GET_OP = API_URL + "getOp" API_URL_GET_GOAL = API_URL + "getGoal" API_URL_GET_ITEMS = API_URL + "getItems" API_URL_GET_SCORES = API_URL + "getScores" -API_URL_GET_METEOROID = API_URL + "getMeteoroid" +API_URL_GET_METEOROID = API_URL + "getMeteoroids" class Seeding: diff --git a/test.py b/test.py index f6451ca..52d6fa3 100644 --- a/test.py +++ b/test.py @@ -2,8 +2,9 @@ import unittest import os -os.environ["API_URL"] = "http://192.168.0.7:5000/" +os.environ["API_URL"] = "http://127.0.0.1:5000/" from compLib.Api import Seeding +from compLib.Api import DoubleElim class TestApiServer(unittest.TestCase): @@ -34,5 +35,27 @@ class TestApiServer(unittest.TestCase): print(code) +class TestApiServerDoubleElim(unittest.TestCase): + def test_all(self): + ret, code = DoubleElim.get_goal() + print(ret) + print(code) + ret, code = DoubleElim.get_items() + print(ret) + print(code) + ret, code = DoubleElim.get_scores() + print(ret) + print(code) + ret, code = DoubleElim.get_opponent() + print(ret) + print(code) + ret, code = DoubleElim.get_position() + print(ret) + print(code) + ret, code = DoubleElim.get_meteoroids() + print(ret) + print(code) + + if __name__ == '__main__': unittest.main() From c70ac8fd03181343ed3395148da3e14f591d431d Mon Sep 17 00:00:00 2001 From: itssme Date: Wed, 15 Dec 2021 16:49:50 +0100 Subject: [PATCH 126/246] updated readme --- README.md | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/README.md b/README.md index c4e6787..0fbb89e 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,5 @@ # compLIB -## TODOs - -### LED control is not implemented - -Need dependencies: -https://github.com/Freenove/Freenove_RPI_WS281x_Python - # Dependencies ## Building documentation @@ -27,7 +20,7 @@ pip install sphinx-rtd-theme sudo raspivid -t 0 -b 10000000 -w 1920 -h 1080 -fps 30 -n -o - | gst-launch-1.0 fdsrc ! video/x-h264,width=1280,height=720,framerate=30/1,noise-reduction=1,profile=high,stream-format=byte-stream ! h264parse ! queue ! flvmux streamable=true ! rtmpsink location=\"rtmp://10.1.1.68/live/stream\"``` ``` -# Stream video from generic USB camera +## Stream video from generic USB camera with gst, very cpu heavy ``` From c800b30e31910738b1a97be5de6543a0eacbdaf0 Mon Sep 17 00:00:00 2001 From: root Date: Sun, 9 Jan 2022 16:48:06 +0000 Subject: [PATCH 127/246] Add Odometry, Add Robot class, Change SPI Speed, Change Motor to old speeds --- compLib/Encoder.py | 80 +++++++++++++++++++++++++++++---------- compLib/MetricsLogging.py | 26 ++++++------- compLib/Motor.py | 3 +- compLib/Odom.py | 69 +++++++++++++++++++++++++++++++++ compLib/Robot.py | 12 ++++++ compLib/Spi.py | 10 +++-- 6 files changed, 163 insertions(+), 37 deletions(-) create mode 100644 compLib/Odom.py create mode 100644 compLib/Robot.py diff --git a/compLib/Encoder.py b/compLib/Encoder.py index a2490d2..8d9d4d3 100644 --- a/compLib/Encoder.py +++ b/compLib/Encoder.py @@ -2,19 +2,38 @@ import atexit from enum import Enum from compLib.LogstashLogging import Logging -from compLib.MetricsLogging import MetricsLogging from compLib.Spi import Spi, Register MOTOR_COUNT = 4 encoder_start_values = [0] * (MOTOR_COUNT + 1) -encoder_last_raw_value = [0] * (MOTOR_COUNT + 1) + class Encoder(object): """Class used to read the encoders """ + @staticmethod + def handle_wrap(raw_value, port): + """Handle overflow and underflow of int for encoders. + + :param raw_value: Raw value which was read on port + :param port: Port, which the motor is connected to. Between 1 and 4 + :raises: IndexError + :return: Current encoder position + """ + if port <= 0 or port > MOTOR_COUNT: + raise IndexError("Invalid encoder port specified!") + + diff = raw_value - encoder_start_values[port] + if diff > 2 ** 31: + diff -= 2 ** 32 + elif diff < -2 ** 31: + diff += 2 ** 32 + + return diff + @staticmethod def read_raw(port: int) -> int: """Read raw encoder from a specified port. Will not be reset to 0 at start. @@ -25,8 +44,7 @@ class Encoder(object): """ if port <= 0 or port > MOTOR_COUNT: raise IndexError("Invalid encoder port specified!") - - global encoder_last_raw_value + raw_value = 0 if port == 1: @@ -37,14 +55,44 @@ class Encoder(object): raw_value = Spi.read(Register.MOTOR_3_POS_B3, 4) elif port == 4: raw_value = Spi.read(Register.MOTOR_4_POS_B3, 4) - - if abs(raw_value - encoder_last_raw_value[port]) > 1000: - encoder_last_raw_value[port] = raw_value - return Encoder.read_raw(port) - - encoder_last_raw_value[port] = raw_value + return raw_value - + + @staticmethod + def read_all_raw(): + """Read all encoders at once. + This is faster than read_raw as it only uses one SPI call for all encoders! + + :return: Tuple of all current raw encoder positions + """ + + encoders = Spi.read_array(Register.MOTOR_1_POS_B3, 4 * 4) + + encoder_1 = int.from_bytes( + encoders[0:4], byteorder='big', signed=False) + encoder_2 = int.from_bytes( + encoders[4:8], byteorder='big', signed=False) + encoder_3 = int.from_bytes( + encoders[8:12], byteorder='big', signed=False) + encoder_4 = int.from_bytes( + encoders[12:16], byteorder='big', signed=False) + + return (encoder_1, encoder_2, encoder_3, encoder_4) + + @staticmethod + def read_all(): + """Read all encoders at once. + This is faster than read as it only uses one SPI call for all encoders! + + :return: Tuple of all current encoder positions + """ + encoders = Encoder.read_all_raw() + + return (Encoder.handle_wrap(encoders[0], 1), + Encoder.handle_wrap(encoders[1], 2), + Encoder.handle_wrap(encoders[2], 3), + Encoder.handle_wrap(encoders[3], 4)) + @staticmethod def read(port: int) -> int: """Read encoder from a specified port @@ -56,14 +104,7 @@ class Encoder(object): if port <= 0 or port > MOTOR_COUNT: raise IndexError("Invalid encoder port specified!") - diff = Encoder.read_raw(port) - encoder_start_values[port] - if diff > 2 ** 31: - diff -= 2 ** 32 - elif diff < -2 ** 31: - diff += 2 ** 32 - - MetricsLogging.put("Encoder", diff, port) - return diff + return Encoder.handle_wrap(Encoder.read_raw(port), port) @staticmethod def clear(port: int): @@ -84,4 +125,3 @@ class Encoder(object): for i in range(1, MOTOR_COUNT + 1): encoder_start_values[i] = Encoder.read_raw(i) - \ No newline at end of file diff --git a/compLib/MetricsLogging.py b/compLib/MetricsLogging.py index 5fc4ee2..b783edb 100644 --- a/compLib/MetricsLogging.py +++ b/compLib/MetricsLogging.py @@ -2,12 +2,13 @@ from influxdb_client import InfluxDBClient, Point, WritePrecision import socket import uuid import os -import queue +import multiprocessing +import faster_fifo import datetime -import threading import requests +import time -CONCURRENCY = 2 +CONCURRENCY = 1 HOSTNAME = socket.gethostname() RUN_TRACE = str(uuid.uuid4()) @@ -28,7 +29,7 @@ else: influx_client = InfluxDBClient(url=INFLUX_HOST, token=TOKEN) write_api = influx_client.write_api() -point_queue = queue.Queue() +point_queue = faster_fifo.Queue() workers = [] class MetricsLogging(): @@ -72,23 +73,22 @@ class MetricsLogging(): @staticmethod def worker(): while True: - point = point_queue.get() - if point is None: # Kill signal - return - try: - write_api.write(BUCKET, ORG, point) - + points = point_queue.get_many() + write_api.write(BUCKET, ORG, points) + time.sleep(0.1) + except Exception as e: + pass finally: - point_queue.task_done() - + pass + @staticmethod def start_workers(): global EXTENSIVE_LOGGING if EXTENSIVE_LOGGING: if MetricsLogging.is_influx_reachable(): for i in range(CONCURRENCY): - worker = threading.Thread(target=MetricsLogging.worker, daemon=True) + worker = multiprocessing.Process(target=MetricsLogging.worker, daemon=True) worker.start() workers.append(worker) else: diff --git a/compLib/Motor.py b/compLib/Motor.py index 8d46f58..74c92ec 100644 --- a/compLib/Motor.py +++ b/compLib/Motor.py @@ -8,7 +8,8 @@ from compLib.Spi import Spi, Register MOTOR_COUNT = 4 MAX_MOTOR_SPEED = 65535 MOTOR_PERCENTAGE_MULT = MAX_MOTOR_SPEED / 100.0 -MOTOR_CURVE = [0.0, 0.0, 0.5, 60.0, 199.83333333333334, 377.66666666666663, 990.3333333333333, 1860.6666666666665, 2587.0, 3091.6666666666665, 3489.0, 3860.5, 4197.333333333333, 4432.166666666667, 4647.166666666666, 4873.166666666666, 5054.333333333334, 5208.666666666667, 5353.0, 5466.5, 5604.0] +NEW_MOTOR_CURVE = [0.0, 0.0, 0.5, 60.0, 199.83333333333334, 377.66666666666663, 990.3333333333333, 1860.6666666666665, 2587.0, 3091.6666666666665, 3489.0, 3860.5, 4197.333333333333, 4432.166666666667, 4647.166666666666, 4873.166666666666, 5054.333333333334, 5208.666666666667, 5353.0, 5466.5, 5604.0] +MOTOR_CURVE = [0.0, 0.0, 426.5, 692.0, 842.5, 953.5, 1032.5, 1090.5, 1135.5, 1171.0, 1203.5, 1230.0, 1249.5, 1268.0, 1283.0, 1298.5, 1308.0, 1320.0, 1332.0, 1339.5, 1352.5] SPEED_LOCK = False SPEED_MULT = 1.0 diff --git a/compLib/Odom.py b/compLib/Odom.py new file mode 100644 index 0000000..7fe7c58 --- /dev/null +++ b/compLib/Odom.py @@ -0,0 +1,69 @@ +import time +import math +from compLib.Encoder import Encoder +from compLib.Robot import Robot + +last_run = time.time() +last_enc_left = 0 +last_enc_right = 0 + +pos_x = 0 +pos_y = 0 +orientation = 0 + + +class Odometry(): + def __init__(self, x, y, orientation): + self.x = x + self.y = y + self.orientation = orientation + + def __str__(self): + return f"X: {self.x} Y: {self.y} O: {self.orientation}" + +class Odom(object): + + @staticmethod + def get_odom(): + return Odometry(pos_x, pos_y, orientation) + + @staticmethod + def clear(): + global last_run, last_enc_left, last_enc_right, pos_x, pos_y, orientation + + last_run = 0 + last_enc_left = 0 + last_enc_right = 0 + pos_x = 0 + pos_y = 0 + orientation = 0 + + @staticmethod + def update(): + global last_run, last_enc_left, last_enc_right, pos_x, pos_y, orientation + + now = time.time() + if last_run + 0.01 < now: + last_run = now + + encoder_positions = Encoder.read_all() + current_left = encoder_positions[Robot.LEFT_PORT - 1] + current_right = -encoder_positions[Robot.RIGHT_PORT - 1] + distance_left = (current_left - last_enc_left) / Robot.TICKS_PER_METER + distance_right = (current_right - last_enc_right) / Robot.TICKS_PER_METER + last_enc_left = current_left + last_enc_right = current_right + + distance = (distance_left + distance_right) / 2.0 + theta = (distance_left - distance_right) / Robot.ARBOR_LENGTH_M + + if distance != 0: + distance_x = math.cos(theta) * distance + distance_y = -math.sin(theta) * distance + + pos_x = pos_x + (math.cos(orientation) * distance_x - + math.sin(orientation) * distance_y) + pos_y = pos_y + (math.sin(orientation) * distance_x + + math.cos(orientation) * distance_y) + if theta != 0: + orientation += theta \ No newline at end of file diff --git a/compLib/Robot.py b/compLib/Robot.py new file mode 100644 index 0000000..4a17691 --- /dev/null +++ b/compLib/Robot.py @@ -0,0 +1,12 @@ +import math + + +class Robot(object): + + WHEEL_CIRCUMFERENCE_MM = 71.0 * math.pi + TICKS_PER_TURN = 27.7 * 100.0 + ARBOR_LENGTH_MM = 139.0 + ARBOR_LENGTH_M = ARBOR_LENGTH_MM / 1000.0 + TICKS_PER_METER = 1000.0 / WHEEL_CIRCUMFERENCE_MM * TICKS_PER_TURN + LEFT_PORT = 4 + RIGHT_PORT = 1 diff --git a/compLib/Spi.py b/compLib/Spi.py index 3310c07..88cc1eb 100644 --- a/compLib/Spi.py +++ b/compLib/Spi.py @@ -8,7 +8,7 @@ from compLib.LogstashLogging import Logging SPI_BUS = 1 SPI_DEVICE = 2 -SPI_SPEED = 1000000 +SPI_SPEED = 4000000 SPI_BUFFER_SIZE = 32 SPI_HEALTH = True @@ -117,7 +117,7 @@ class Spi(object): write_reg = tx_buffer[1] spi.xfer(tx_buffer) - rx_buffer = spi.xfer([0] * 32) + rx_buffer = spi.xfer([0] * SPI_BUFFER_SIZE) if rx_buffer[1] != write_reg: Logging.get_logger().error(f"SPI error during read/write of register {write_reg}!") @@ -126,6 +126,10 @@ class Spi(object): @staticmethod def read(reg: int, length: int): + return int.from_bytes(Spi.read_array(reg, length), byteorder='big', signed=False) + + @staticmethod + def read_array(reg: int, length: int): if not type(reg) is int: reg = int(reg) @@ -136,7 +140,7 @@ class Spi(object): tx_buf[2] = length rx_buf = Spi.transfer(tx_buf) - return int.from_bytes(rx_buf[2:2 + length], byteorder='big', signed=False) + return rx_buf[2:2 + length] @staticmethod def write(reg: int, length: int, value: int): From 866fac984885d0cd1db0e4dc3b18d498df01e2df Mon Sep 17 00:00:00 2001 From: Konstantin Lampalzer Date: Sun, 9 Jan 2022 18:40:44 +0100 Subject: [PATCH 128/246] Add Documentation for odometrty and robot class. Remove fast_fifo --- compLib/MetricsLogging.py | 3 +-- compLib/Motor.py | 1 + compLib/Odom.py | 38 ++++++++++++++++++++++++++--- compLib/Robot.py | 14 ++++++++++- docs/source/conf.py | 6 +++-- docs/source/lib/Odom.rst | 50 +++++++++++++++++++++++++++++++++++++++ docs/source/lib/Robot.rst | 11 +++++++++ 7 files changed, 115 insertions(+), 8 deletions(-) create mode 100644 docs/source/lib/Odom.rst create mode 100644 docs/source/lib/Robot.rst diff --git a/compLib/MetricsLogging.py b/compLib/MetricsLogging.py index b783edb..0501a2c 100644 --- a/compLib/MetricsLogging.py +++ b/compLib/MetricsLogging.py @@ -3,7 +3,6 @@ import socket import uuid import os import multiprocessing -import faster_fifo import datetime import requests import time @@ -29,7 +28,7 @@ else: influx_client = InfluxDBClient(url=INFLUX_HOST, token=TOKEN) write_api = influx_client.write_api() -point_queue = faster_fifo.Queue() +point_queue = multiprocessing.Queue() workers = [] class MetricsLogging(): diff --git a/compLib/Motor.py b/compLib/Motor.py index 74c92ec..426c6ee 100644 --- a/compLib/Motor.py +++ b/compLib/Motor.py @@ -21,6 +21,7 @@ class MotorMode(IntEnum): BACKWARD = 2, BREAK = 3 + class Motor(object): """Class used to control the motors """ diff --git a/compLib/Odom.py b/compLib/Odom.py index 7fe7c58..c88a0ef 100644 --- a/compLib/Odom.py +++ b/compLib/Odom.py @@ -13,22 +13,50 @@ orientation = 0 class Odometry(): + """DTO used for holding all odometry information. \n + Coordinate system: \n + X: + Forward; - Backwards \n + Y: + Right; - Left \n + Orientation: + Right; - Left + """ + def __init__(self, x, y, orientation): self.x = x self.y = y self.orientation = orientation + def get_x(self) -> float: + """Returns distance driven on x-axis in meters""" + return self.x + + def get_y(self) -> float: + """Returns distance driven on y-axis in meters""" + return self.y + + def get_orientation(self) -> float: + """Returns degrees turned in radians""" + return self.orientation + def __str__(self): return f"X: {self.x} Y: {self.y} O: {self.orientation}" + class Odom(object): + """Class used to track the movement of the robot in X, Y, Theta (Orientation) + """ @staticmethod - def get_odom(): + def get_odom() -> Odometry: + """ + :return: Current orientation of the robot + """ return Odometry(pos_x, pos_y, orientation) @staticmethod - def clear(): + def clear() -> None: + """ + Clears the current odometry information and start from X, Y, Orientation set to 0 + """ global last_run, last_enc_left, last_enc_right, pos_x, pos_y, orientation last_run = 0 @@ -39,7 +67,11 @@ class Odom(object): orientation = 0 @staticmethod - def update(): + def update() -> None: + """ + Updates the current odometry information of the robot, Should be called in a loop with at least 100HZ. + Do not clear encoder positions between updates! Must be cleared, when clearing encoders! + """ global last_run, last_enc_left, last_enc_right, pos_x, pos_y, orientation now = time.time() diff --git a/compLib/Robot.py b/compLib/Robot.py index 4a17691..2609cbd 100644 --- a/compLib/Robot.py +++ b/compLib/Robot.py @@ -2,11 +2,23 @@ import math class Robot(object): - WHEEL_CIRCUMFERENCE_MM = 71.0 * math.pi + """Circumference of a wheel in millimeters""" + TICKS_PER_TURN = 27.7 * 100.0 + """Ticks per 360 degree turn of a wheel""" + ARBOR_LENGTH_MM = 139.0 + """Distance between the two wheels in millimeters""" + ARBOR_LENGTH_M = ARBOR_LENGTH_MM / 1000.0 + """Distance between the two wheels in meters""" + TICKS_PER_METER = 1000.0 / WHEEL_CIRCUMFERENCE_MM * TICKS_PER_TURN + """Ticks after driving one meter""" + LEFT_PORT = 4 + """Motor port for the left motor""" + RIGHT_PORT = 1 + """Motor port for the right motor""" diff --git a/docs/source/conf.py b/docs/source/conf.py index 26d8294..c13be0c 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -15,11 +15,12 @@ import sys sys.path.insert(0, os.path.abspath('../..')) sys.setrecursionlimit(1500) +os.environ["EXTENSIVE_LOGGING"] = "False" # -- Project information ----------------------------------------------------- project = 'CompLib' -copyright = '2021, robo4you' +copyright = '2022, Verein zur Förderung von Wissenschaft und Technik an Schulen (F-WuTS)' author = 'robo4you' # The full version, including alpha/beta/rc tags @@ -35,7 +36,8 @@ extensions = [ 'sphinx_rtd_theme' ] -autodoc_mock_imports = ["smbus", "compLib.PCA9685", "RPi", "pigpio", "flask", "apt", "spidev", "influxdb_client"] +autodoc_mock_imports = ["smbus", "compLib.PCA9685", "RPi", + "pigpio", "flask", "apt", "spidev", "influxdb_client"] # Add any paths that contain templates here, relative to this directory. templates_path = ['_templates'] diff --git a/docs/source/lib/Odom.rst b/docs/source/lib/Odom.rst new file mode 100644 index 0000000..b448509 --- /dev/null +++ b/docs/source/lib/Odom.rst @@ -0,0 +1,50 @@ +.. _lib_odom: + +Odometry +****** + +Class Documentation +==================== + +.. autoclass:: compLib.Odom.Odometry + :members: + +.. autoclass:: compLib.Odom.Odom + :members: + + +Examples +========= + +Getting actual distance driven +------------------------------ + +.. code-block:: python + + import time + import math + from compLib.Motor import Motor + from compLib.Encoder import Encoder + from compLib.Odom import Odom, Odometry + + # distance in meters + # speed in % of max speed + def drive_example(distance, speed): + Odom.update() + odom = Odom.get_odom() + while abs(odom.get_x()) < distance: + Odom.update() + odom = Odom.get_odom() + + Motor.power(4, speed) + Motor.power(1, -speed) + + print(f" Forward: {odom.get_x()} m") + print(f" Right: {odom.get_y()} m") + print(f" Turned: {math.degrees(odom.get_orientation())} degrees") + + Motor.active_break(1) + Motor.active_break(4) + time.sleep(0.1) + Encoder.clear_all() + Odom.clear() \ No newline at end of file diff --git a/docs/source/lib/Robot.rst b/docs/source/lib/Robot.rst new file mode 100644 index 0000000..c7aa712 --- /dev/null +++ b/docs/source/lib/Robot.rst @@ -0,0 +1,11 @@ +.. _lib_robot: + +Robot +****** + +Class Documentation +==================== + +.. autoclass:: compLib.Robot.Robot + :members: + :private-members: \ No newline at end of file From bbcbfa210fe34ae44f4c932b7a4a0b2f0ad9d3d2 Mon Sep 17 00:00:00 2001 From: Joel Klimont Date: Sun, 9 Jan 2022 18:48:20 +0100 Subject: [PATCH 129/246] updated version number to 0.3.2-0 --- build_deb.sh | 2 +- compLib/__init__.py | 2 +- setup.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/build_deb.sh b/build_deb.sh index a2912d2..dce7e6e 100755 --- a/build_deb.sh +++ b/build_deb.sh @@ -34,7 +34,7 @@ fpm -s python --python-bin python3 --python-pip pip3 --python-package-name-prefi -d "python3-pigpio" \ -d "python3-numpy" \ -d "ffmpeg" \ - -v 0.3.1-0 -t deb setup.py + -v 0.3.2-0 -t deb setup.py # --deb-changelog changelog \ # --deb-upstream-changelog changelog \ diff --git a/compLib/__init__.py b/compLib/__init__.py index 58f11e4..4c81368 100644 --- a/compLib/__init__.py +++ b/compLib/__init__.py @@ -1,4 +1,4 @@ -__version__ = "0.3.1-0" +__version__ = "0.3.2-0" import importlib import compLib.LogstashLogging diff --git a/setup.py b/setup.py index 9f9ea2b..7c130ae 100644 --- a/setup.py +++ b/setup.py @@ -12,7 +12,7 @@ else: setuptools.setup( name="complib", - version="0.3.1-0", + version="0.3.2-0", author="F-WuTs", author_email="--", description="", From 62f0b96d72a1979b7652030808a238f99c184a78 Mon Sep 17 00:00:00 2001 From: Konstantin Lampalzer Date: Fri, 21 Jan 2022 15:50:48 +0100 Subject: [PATCH 130/246] Update Spi.py --- compLib/Spi.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/compLib/Spi.py b/compLib/Spi.py index 88cc1eb..731d75a 100644 --- a/compLib/Spi.py +++ b/compLib/Spi.py @@ -8,7 +8,7 @@ from compLib.LogstashLogging import Logging SPI_BUS = 1 SPI_DEVICE = 2 -SPI_SPEED = 4000000 +SPI_SPEED = 1000000 SPI_BUFFER_SIZE = 32 SPI_HEALTH = True From d4d69daabd0c803cd045cd430c3f645add4d5a06 Mon Sep 17 00:00:00 2001 From: Joel Klimont Date: Fri, 21 Jan 2022 16:19:44 +0100 Subject: [PATCH 131/246] updated version number to 0.3.3-0 --- build_deb.sh | 2 +- compLib/__init__.py | 2 +- setup.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/build_deb.sh b/build_deb.sh index dce7e6e..b2974af 100755 --- a/build_deb.sh +++ b/build_deb.sh @@ -34,7 +34,7 @@ fpm -s python --python-bin python3 --python-pip pip3 --python-package-name-prefi -d "python3-pigpio" \ -d "python3-numpy" \ -d "ffmpeg" \ - -v 0.3.2-0 -t deb setup.py + -v 0.3.3-0 -t deb setup.py # --deb-changelog changelog \ # --deb-upstream-changelog changelog \ diff --git a/compLib/__init__.py b/compLib/__init__.py index 4c81368..5f413b5 100644 --- a/compLib/__init__.py +++ b/compLib/__init__.py @@ -1,4 +1,4 @@ -__version__ = "0.3.2-0" +__version__ = "0.3.3-0" import importlib import compLib.LogstashLogging diff --git a/setup.py b/setup.py index 7c130ae..1f1b48f 100644 --- a/setup.py +++ b/setup.py @@ -12,7 +12,7 @@ else: setuptools.setup( name="complib", - version="0.3.2-0", + version="0.3.3-0", author="F-WuTs", author_email="--", description="", From e7c82dbc471a3a9e9220e8c93d962970370a8e02 Mon Sep 17 00:00:00 2001 From: HerrNamenlos123 Date: Fri, 28 Jan 2022 15:43:20 +0100 Subject: [PATCH 132/246] hopefully fixed spi read/write errors --- compLib/Spi.py | 1 + 1 file changed, 1 insertion(+) diff --git a/compLib/Spi.py b/compLib/Spi.py index 731d75a..d585365 100644 --- a/compLib/Spi.py +++ b/compLib/Spi.py @@ -121,6 +121,7 @@ class Spi(object): if rx_buffer[1] != write_reg: Logging.get_logger().error(f"SPI error during read/write of register {write_reg}!") + return [0] * SPI_BUFFER_SIZE return rx_buffer From 2b3f6f86c57a87be4d1cda1c5bc32eadeabbe9de Mon Sep 17 00:00:00 2001 From: Joel Klimont Date: Fri, 28 Jan 2022 16:25:14 +0100 Subject: [PATCH 133/246] updated version number to 0.3.4-0 --- build_deb.sh | 2 +- compLib/__init__.py | 2 +- setup.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/build_deb.sh b/build_deb.sh index b2974af..d48f17f 100755 --- a/build_deb.sh +++ b/build_deb.sh @@ -34,7 +34,7 @@ fpm -s python --python-bin python3 --python-pip pip3 --python-package-name-prefi -d "python3-pigpio" \ -d "python3-numpy" \ -d "ffmpeg" \ - -v 0.3.3-0 -t deb setup.py + -v 0.3.4-0 -t deb setup.py # --deb-changelog changelog \ # --deb-upstream-changelog changelog \ diff --git a/compLib/__init__.py b/compLib/__init__.py index 5f413b5..d12958b 100644 --- a/compLib/__init__.py +++ b/compLib/__init__.py @@ -1,4 +1,4 @@ -__version__ = "0.3.3-0" +__version__ = "0.3.4-0" import importlib import compLib.LogstashLogging diff --git a/setup.py b/setup.py index 1f1b48f..865cb02 100644 --- a/setup.py +++ b/setup.py @@ -12,7 +12,7 @@ else: setuptools.setup( name="complib", - version="0.3.3-0", + version="0.3.4-0", author="F-WuTs", author_email="--", description="", From fc64706b655a99c64ed12409a66382746864ccc7 Mon Sep 17 00:00:00 2001 From: root Date: Fri, 28 Jan 2022 18:09:02 +0000 Subject: [PATCH 134/246] Add locking in spi --- compLib/Spi.py | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/compLib/Spi.py b/compLib/Spi.py index d585365..a370b20 100644 --- a/compLib/Spi.py +++ b/compLib/Spi.py @@ -1,5 +1,6 @@ import importlib -from threading import Thread, Lock +from threading import Thread +import multiprocessing from enum import IntEnum import time import sys @@ -8,13 +9,14 @@ from compLib.LogstashLogging import Logging SPI_BUS = 1 SPI_DEVICE = 2 -SPI_SPEED = 1000000 +SPI_SPEED = 4000000 SPI_BUFFER_SIZE = 32 SPI_HEALTH = True # For development purposes spi_found = importlib.util.find_spec("spidev") is not None spi = None +spi_lock = multiprocessing.Lock() if spi_found: import spidev spi = spidev.SpiDev() @@ -23,8 +25,6 @@ if spi_found: spi.mode = 0 spi.bits_per_word = 8 - spi_mutex = Lock() - class Register(IntEnum): IDENTIFICATION_MODEL_ID = 1, IDENTIFICATION_MODEL_REV_MAJOR = 2, @@ -115,13 +115,16 @@ class Spi(object): return [] * SPI_BUFFER_SIZE write_reg = tx_buffer[1] + tx_buffer_copy = tx_buffer.copy() - spi.xfer(tx_buffer) - rx_buffer = spi.xfer([0] * SPI_BUFFER_SIZE) - - if rx_buffer[1] != write_reg: - Logging.get_logger().error(f"SPI error during read/write of register {write_reg}!") - return [0] * SPI_BUFFER_SIZE + with spi_lock: + spi.xfer(tx_buffer) + rx_buffer = spi.xfer([0] * SPI_BUFFER_SIZE) + + if rx_buffer[1] != write_reg: + Logging.get_logger().error(f"SPI error during read/write of register {write_reg}! Retrying automatically") + time.sleep(0.01) + return Spi.transfer(tx_buffer_copy) return rx_buffer @@ -202,7 +205,7 @@ class Spi(object): def health_check_loop(): while SPI_HEALTH: Spi.health_check() - time.sleep(0.5) + time.sleep(5) @staticmethod def get_version(): From d22c91cc4ca3c0e6fcc9bfc847ef12de7483ece2 Mon Sep 17 00:00:00 2001 From: Joel Klimont Date: Fri, 28 Jan 2022 19:10:03 +0100 Subject: [PATCH 135/246] updated version number to 0.3.5-0 --- build_deb.sh | 2 +- compLib/__init__.py | 2 +- setup.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/build_deb.sh b/build_deb.sh index d48f17f..54b5564 100755 --- a/build_deb.sh +++ b/build_deb.sh @@ -34,7 +34,7 @@ fpm -s python --python-bin python3 --python-pip pip3 --python-package-name-prefi -d "python3-pigpio" \ -d "python3-numpy" \ -d "ffmpeg" \ - -v 0.3.4-0 -t deb setup.py + -v 0.3.5-0 -t deb setup.py # --deb-changelog changelog \ # --deb-upstream-changelog changelog \ diff --git a/compLib/__init__.py b/compLib/__init__.py index d12958b..60f47d1 100644 --- a/compLib/__init__.py +++ b/compLib/__init__.py @@ -1,4 +1,4 @@ -__version__ = "0.3.4-0" +__version__ = "0.3.5-0" import importlib import compLib.LogstashLogging diff --git a/setup.py b/setup.py index 865cb02..6f53250 100644 --- a/setup.py +++ b/setup.py @@ -12,7 +12,7 @@ else: setuptools.setup( name="complib", - version="0.3.4-0", + version="0.3.5-0", author="F-WuTs", author_email="--", description="", From 2748290e30ffa2a4d3aa3fbac13ed8d6a1e7dbec Mon Sep 17 00:00:00 2001 From: root Date: Fri, 28 Jan 2022 18:21:15 +0000 Subject: [PATCH 136/246] Add multiple read to ir sensor --- compLib/IRSensor.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/compLib/IRSensor.py b/compLib/IRSensor.py index 5f6f95d..3051124 100644 --- a/compLib/IRSensor.py +++ b/compLib/IRSensor.py @@ -36,6 +36,29 @@ class IRSensor(object): MetricsLogging.put("Infrared", result, sensor) return result + @staticmethod + def read_all(): + """Read all IR sensors at once. + This is faster than read as it only uses one SPI call for all sensors! + + :return: Tuple of all current ir sensors + """ + + sensors = Spi.read_array(Register.IR_1_H, 5 * 2) + + sensor_1 = int.from_bytes( + sensors[0:2], byteorder='big', signed=False) + sensor_2 = int.from_bytes( + sensors[2:4], byteorder='big', signed=False) + sensor_3 = int.from_bytes( + sensors[4:6], byteorder='big', signed=False) + sensor_4 = int.from_bytes( + sensors[6:8], byteorder='big', signed=False) + sensor_5 = int.from_bytes( + sensors[8:10], byteorder='big', signed=False) + + return (sensor_1, sensor_2, sensor_3, sensor_4, sensor_5) + @staticmethod def set(sensor: int, on: bool): """Turn on / off a IR emitter From 0d15ea1654e92cbddef531645ccb1c7f2783270e Mon Sep 17 00:00:00 2001 From: Joel Klimont Date: Fri, 28 Jan 2022 19:23:09 +0100 Subject: [PATCH 137/246] updated version number to 0.3.6-0 --- build_deb.sh | 2 +- compLib/__init__.py | 2 +- setup.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/build_deb.sh b/build_deb.sh index 54b5564..a650d76 100755 --- a/build_deb.sh +++ b/build_deb.sh @@ -34,7 +34,7 @@ fpm -s python --python-bin python3 --python-pip pip3 --python-package-name-prefi -d "python3-pigpio" \ -d "python3-numpy" \ -d "ffmpeg" \ - -v 0.3.5-0 -t deb setup.py + -v 0.3.6-0 -t deb setup.py # --deb-changelog changelog \ # --deb-upstream-changelog changelog \ diff --git a/compLib/__init__.py b/compLib/__init__.py index 60f47d1..d3da223 100644 --- a/compLib/__init__.py +++ b/compLib/__init__.py @@ -1,4 +1,4 @@ -__version__ = "0.3.5-0" +__version__ = "0.3.6-0" import importlib import compLib.LogstashLogging diff --git a/setup.py b/setup.py index 6f53250..77ccce8 100644 --- a/setup.py +++ b/setup.py @@ -12,7 +12,7 @@ else: setuptools.setup( name="complib", - version="0.3.5-0", + version="0.3.6-0", author="F-WuTs", author_email="--", description="", From 543be6cdaba29b659664fa136b098cd4c7154707 Mon Sep 17 00:00:00 2001 From: root Date: Fri, 28 Jan 2022 18:34:01 +0000 Subject: [PATCH 138/246] Fix recursive lock --- compLib/Spi.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/compLib/Spi.py b/compLib/Spi.py index a370b20..d342178 100644 --- a/compLib/Spi.py +++ b/compLib/Spi.py @@ -121,10 +121,10 @@ class Spi(object): spi.xfer(tx_buffer) rx_buffer = spi.xfer([0] * SPI_BUFFER_SIZE) - if rx_buffer[1] != write_reg: - Logging.get_logger().error(f"SPI error during read/write of register {write_reg}! Retrying automatically") - time.sleep(0.01) - return Spi.transfer(tx_buffer_copy) + if rx_buffer[1] != write_reg: + Logging.get_logger().error(f"Warning! SPI error during read/write of register {write_reg}! Retrying automagically") + time.sleep(0.01) + return Spi.transfer(tx_buffer_copy) return rx_buffer From a5b0933eff5b1171083ed7ddde6420e4eb1a9e9d Mon Sep 17 00:00:00 2001 From: Joel Klimont Date: Fri, 28 Jan 2022 19:35:44 +0100 Subject: [PATCH 139/246] updated version number to 0.3.7-0 --- build_deb.sh | 2 +- compLib/__init__.py | 2 +- setup.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/build_deb.sh b/build_deb.sh index a650d76..1452d75 100755 --- a/build_deb.sh +++ b/build_deb.sh @@ -34,7 +34,7 @@ fpm -s python --python-bin python3 --python-pip pip3 --python-package-name-prefi -d "python3-pigpio" \ -d "python3-numpy" \ -d "ffmpeg" \ - -v 0.3.6-0 -t deb setup.py + -v 0.3.7-0 -t deb setup.py # --deb-changelog changelog \ # --deb-upstream-changelog changelog \ diff --git a/compLib/__init__.py b/compLib/__init__.py index d3da223..aec24aa 100644 --- a/compLib/__init__.py +++ b/compLib/__init__.py @@ -1,4 +1,4 @@ -__version__ = "0.3.6-0" +__version__ = "0.3.7-0" import importlib import compLib.LogstashLogging diff --git a/setup.py b/setup.py index 77ccce8..529ee8d 100644 --- a/setup.py +++ b/setup.py @@ -12,7 +12,7 @@ else: setuptools.setup( name="complib", - version="0.3.6-0", + version="0.3.7-0", author="F-WuTs", author_email="--", description="", From df4c672701052e397024cc7e91067a33bc288ad0 Mon Sep 17 00:00:00 2001 From: Konstantin Lampalzer Date: Fri, 28 Jan 2022 19:53:13 +0100 Subject: [PATCH 140/246] Update documentation --- docs/source/conf.py | 2 +- docs/source/lib/Odom.rst | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/source/conf.py b/docs/source/conf.py index c13be0c..7fdb3b3 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -37,7 +37,7 @@ extensions = [ ] autodoc_mock_imports = ["smbus", "compLib.PCA9685", "RPi", - "pigpio", "flask", "apt", "spidev", "influxdb_client"] + "pigpio", "flask", "apt", "influxdb_client"] # Add any paths that contain templates here, relative to this directory. templates_path = ['_templates'] diff --git a/docs/source/lib/Odom.rst b/docs/source/lib/Odom.rst index b448509..672e11c 100644 --- a/docs/source/lib/Odom.rst +++ b/docs/source/lib/Odom.rst @@ -1,7 +1,7 @@ .. _lib_odom: Odometry -****** +******** Class Documentation ==================== From 2d63fcc58f5ccd0cd32f74d150cf8b5df1f3fc70 Mon Sep 17 00:00:00 2001 From: root Date: Fri, 4 Feb 2022 16:36:06 +0000 Subject: [PATCH 141/246] Fix 3 bugs --- compLib/MetricsLogging.py | 6 +++--- compLib/Motor.py | 5 ++++- compLib/Spi.py | 2 +- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/compLib/MetricsLogging.py b/compLib/MetricsLogging.py index 0501a2c..4535af5 100644 --- a/compLib/MetricsLogging.py +++ b/compLib/MetricsLogging.py @@ -71,10 +71,10 @@ class MetricsLogging(): @staticmethod def worker(): - while True: + point = object() + for job in iter(point_queue.get, point): try: - points = point_queue.get_many() - write_api.write(BUCKET, ORG, points) + write_api.write(BUCKET, ORG, point) time.sleep(0.1) except Exception as e: pass diff --git a/compLib/Motor.py b/compLib/Motor.py index 426c6ee..9cafbcb 100644 --- a/compLib/Motor.py +++ b/compLib/Motor.py @@ -170,7 +170,7 @@ class Motor(object): if speed < min(curve) or speed > max(curve): raise ValueError(f'Speed out of range: {str(speed)} ticks/s') - for index in range(len(curve) - 2): + for index in range(len(curve) - 1): if speed >= curve[index] and speed <= curve[index + 1] and curve[index] != curve[index + 1]: return Motor.__map(speed, curve[index], curve[index + 1], index * 5, index * 5 + 5) @@ -184,7 +184,10 @@ class Motor(object): if power < 0 or power > 100: raise ValueError(f'Power out of range: {str(power)}%') + print(power) requiredSpeed = Motor.__map(power, 0, 100, min(curve), max(curve)) + print(requiredSpeed) + return Motor.__interpolateSpeed(curve, requiredSpeed) diff --git a/compLib/Spi.py b/compLib/Spi.py index d342178..ad712a9 100644 --- a/compLib/Spi.py +++ b/compLib/Spi.py @@ -205,7 +205,7 @@ class Spi(object): def health_check_loop(): while SPI_HEALTH: Spi.health_check() - time.sleep(5) + time.sleep(0.75) @staticmethod def get_version(): From a7de60329812debbcc96e9637f9ee311da4c608e Mon Sep 17 00:00:00 2001 From: Joel Klimont Date: Fri, 4 Feb 2022 17:51:21 +0100 Subject: [PATCH 142/246] updated version number to 0.3.8-0 --- build_deb.sh | 2 +- compLib/__init__.py | 2 +- setup.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/build_deb.sh b/build_deb.sh index 1452d75..1f147e5 100755 --- a/build_deb.sh +++ b/build_deb.sh @@ -34,7 +34,7 @@ fpm -s python --python-bin python3 --python-pip pip3 --python-package-name-prefi -d "python3-pigpio" \ -d "python3-numpy" \ -d "ffmpeg" \ - -v 0.3.7-0 -t deb setup.py + -v 0.3.8-0 -t deb setup.py # --deb-changelog changelog \ # --deb-upstream-changelog changelog \ diff --git a/compLib/__init__.py b/compLib/__init__.py index aec24aa..712d87b 100644 --- a/compLib/__init__.py +++ b/compLib/__init__.py @@ -1,4 +1,4 @@ -__version__ = "0.3.7-0" +__version__ = "0.3.8-0" import importlib import compLib.LogstashLogging diff --git a/setup.py b/setup.py index 529ee8d..9bb0920 100644 --- a/setup.py +++ b/setup.py @@ -12,7 +12,7 @@ else: setuptools.setup( name="complib", - version="0.3.7-0", + version="0.3.8-0", author="F-WuTs", author_email="--", description="", From 4b96a1a4a744b6ba2ca4fa64db9bbedfe27777da Mon Sep 17 00:00:00 2001 From: Konstantin Lampalzer Date: Fri, 4 Feb 2022 18:32:32 +0100 Subject: [PATCH 143/246] Update Motor.py --- compLib/Motor.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/compLib/Motor.py b/compLib/Motor.py index 9cafbcb..51e0c02 100644 --- a/compLib/Motor.py +++ b/compLib/Motor.py @@ -184,9 +184,7 @@ class Motor(object): if power < 0 or power > 100: raise ValueError(f'Power out of range: {str(power)}%') - print(power) requiredSpeed = Motor.__map(power, 0, 100, min(curve), max(curve)) - print(requiredSpeed) return Motor.__interpolateSpeed(curve, requiredSpeed) From 2c0f05dd779783dc8fdf7a71bf37d50fe27c0aba Mon Sep 17 00:00:00 2001 From: Joel Klimont Date: Fri, 4 Feb 2022 18:36:01 +0100 Subject: [PATCH 144/246] updated version number to 0.3.9-0 --- build_deb.sh | 2 +- compLib/__init__.py | 2 +- setup.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/build_deb.sh b/build_deb.sh index 1f147e5..4b36fad 100755 --- a/build_deb.sh +++ b/build_deb.sh @@ -34,7 +34,7 @@ fpm -s python --python-bin python3 --python-pip pip3 --python-package-name-prefi -d "python3-pigpio" \ -d "python3-numpy" \ -d "ffmpeg" \ - -v 0.3.8-0 -t deb setup.py + -v 0.3.9-0 -t deb setup.py # --deb-changelog changelog \ # --deb-upstream-changelog changelog \ diff --git a/compLib/__init__.py b/compLib/__init__.py index 712d87b..10cd837 100644 --- a/compLib/__init__.py +++ b/compLib/__init__.py @@ -1,4 +1,4 @@ -__version__ = "0.3.8-0" +__version__ = "0.3.9-0" import importlib import compLib.LogstashLogging diff --git a/setup.py b/setup.py index 9bb0920..1258275 100644 --- a/setup.py +++ b/setup.py @@ -12,7 +12,7 @@ else: setuptools.setup( name="complib", - version="0.3.8-0", + version="0.3.9-0", author="F-WuTs", author_email="--", description="", From 34e68e2a9e8fcef5c253ec598d8e3f5dc8016b5d Mon Sep 17 00:00:00 2001 From: Your Name Date: Fri, 11 Feb 2022 12:35:48 +0000 Subject: [PATCH 145/246] Try another fix --- compLib/Spi.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/compLib/Spi.py b/compLib/Spi.py index ad712a9..5ce69f9 100644 --- a/compLib/Spi.py +++ b/compLib/Spi.py @@ -4,6 +4,7 @@ import multiprocessing from enum import IntEnum import time import sys +import random from compLib.LogstashLogging import Logging @@ -17,6 +18,7 @@ SPI_HEALTH = True spi_found = importlib.util.find_spec("spidev") is not None spi = None spi_lock = multiprocessing.Lock() +last_spi_call = time.time() if spi_found: import spidev spi = spidev.SpiDev() @@ -113,7 +115,7 @@ class Spi(object): def transfer(tx_buffer: list): if not spi_found: return [] * SPI_BUFFER_SIZE - + write_reg = tx_buffer[1] tx_buffer_copy = tx_buffer.copy() @@ -123,9 +125,12 @@ class Spi(object): if rx_buffer[1] != write_reg: Logging.get_logger().error(f"Warning! SPI error during read/write of register {write_reg}! Retrying automagically") - time.sleep(0.01) + time.sleep(random.uniform(0.0, 0.1)) return Spi.transfer(tx_buffer_copy) + global last_spi_call + last_spi_call = time.time() + return rx_buffer @staticmethod @@ -204,8 +209,9 @@ class Spi(object): @staticmethod def health_check_loop(): while SPI_HEALTH: - Spi.health_check() - time.sleep(0.75) + if last_spi_call + 0.75 < time.time(): + Spi.health_check() + time.sleep(0.5) @staticmethod def get_version(): From e7f0f95d664b220e8074fb90ec82f98f4bc85e1a Mon Sep 17 00:00:00 2001 From: Joel Klimont Date: Sat, 12 Feb 2022 13:16:26 +0100 Subject: [PATCH 146/246] updated version number to 0.4.0-0 added API_FORCE for overriding API_URL extensive logging is now disabled by default --- build_deb.sh | 2 +- compLib/Api.py | 7 +++++++ compLib/LogstashLogging.py | 2 +- compLib/__init__.py | 2 +- setup.py | 2 +- 5 files changed, 11 insertions(+), 4 deletions(-) diff --git a/build_deb.sh b/build_deb.sh index 4b36fad..6ba60ec 100755 --- a/build_deb.sh +++ b/build_deb.sh @@ -34,7 +34,7 @@ fpm -s python --python-bin python3 --python-pip pip3 --python-package-name-prefi -d "python3-pigpio" \ -d "python3-numpy" \ -d "ffmpeg" \ - -v 0.3.9-0 -t deb setup.py + -v 0.4.0-0 -t deb setup.py # --deb-changelog changelog \ # --deb-upstream-changelog changelog \ diff --git a/compLib/Api.py b/compLib/Api.py index 6776af0..f36e79a 100644 --- a/compLib/Api.py +++ b/compLib/Api.py @@ -8,6 +8,13 @@ import requests from compLib.LogstashLogging import Logging API_URL = os.getenv("API_URL", "http://localhost:5000/") + "api/" + +api_override = os.getenv("API_FORCE", "") + +if api_override != "": + print(f"API_URL was set to {API_URL} but was overwritten with {api_override}") + API_URL = api_override + API_URL_GET_DELIVERY = API_URL + "getDelivery" API_URL_GET_MATERIAL = API_URL + "getMaterial" API_URL_GET_GARBAGE = API_URL + "getGarbage" diff --git a/compLib/LogstashLogging.py b/compLib/LogstashLogging.py index c766f74..b36196a 100644 --- a/compLib/LogstashLogging.py +++ b/compLib/LogstashLogging.py @@ -6,7 +6,7 @@ import requests from logstash_async.transport import HttpTransport from logstash_async.handler import AsynchronousLogstashHandler -EXTENSIVE_LOGGING = os.getenv("EXTENSIVE_LOGGING", "True") +EXTENSIVE_LOGGING = os.getenv("EXTENSIVE_LOGGING", "False") if EXTENSIVE_LOGGING == "True": EXTENSIVE_LOGGING = True diff --git a/compLib/__init__.py b/compLib/__init__.py index 10cd837..0110242 100644 --- a/compLib/__init__.py +++ b/compLib/__init__.py @@ -1,4 +1,4 @@ -__version__ = "0.3.9-0" +__version__ = "0.4.0-0" import importlib import compLib.LogstashLogging diff --git a/setup.py b/setup.py index 1258275..78a9f6e 100644 --- a/setup.py +++ b/setup.py @@ -12,7 +12,7 @@ else: setuptools.setup( name="complib", - version="0.3.9-0", + version="0.4.0-0", author="F-WuTs", author_email="--", description="", From 01cb854f50f8efb443225d25f86298e92eb9759a Mon Sep 17 00:00:00 2001 From: Your Name Date: Sun, 13 Feb 2022 17:30:10 +0000 Subject: [PATCH 147/246] Add Locking --- compLib/{VisionDaemon.py => IPService.py} | 20 +++++++++++------- compLib/Lock.py | 25 +++++++++++++++++++++++ compLib/__init__.py | 9 +++++++- complib.service | 2 +- postinstall.sh | 2 +- 5 files changed, 48 insertions(+), 10 deletions(-) rename compLib/{VisionDaemon.py => IPService.py} (86%) create mode 100644 compLib/Lock.py diff --git a/compLib/VisionDaemon.py b/compLib/IPService.py similarity index 86% rename from compLib/VisionDaemon.py rename to compLib/IPService.py index 404c8d0..dcf81b2 100644 --- a/compLib/VisionDaemon.py +++ b/compLib/IPService.py @@ -5,6 +5,7 @@ import threading import time import systemd.daemon +from compLib.Lock import Lock try: from compLib.LogstashLogging import Logging @@ -29,6 +30,7 @@ RUN_IP_CHECK = False try: from compLib.Display import Display from compLib.Spi import Spi + from compLib import __version__ RUN_IP_CHECK = True except Exception as e: print(f"Could not import display or spi for ip output {str(e)}") @@ -58,13 +60,16 @@ def get_ip(): def write_ip_to_screen(): while os.getenv("IP_OUTPUT", "true") == "true": try: - ip = str(get_ip()) - print(f"writing {ip} to display") - Display.write(2, f"FW. V{Spi.get_version()}") - Display.write(3, "IP:") - Display.write(4, ip) - Display.write(1, datetime.datetime.now().strftime("%b %d %H:%M:%S")) - time.sleep(5) + if not Lock.is_locked(): + Lock.lock() + ip = str(get_ip()) + print(f"writing {ip} to display") + Display.write(2, f"LIB: V{__version__}") + Display.write(3, f"FW: V{Spi.get_version()}") + Display.write(4, f"IP: {ip}") + Display.write(1, datetime.datetime.now().strftime("%b %d %H:%M:%S")) + Lock.unlock() + time.sleep(10) except Exception as e: print(f"Exception in write ip thread: {e}") time.sleep(5) @@ -82,6 +87,7 @@ if __name__ == '__main__': if RUN_IP_CHECK and IP_OUTPUT: print("starting ip output") Logging.get_logger().info("starting ip output") + Lock.unlock() try: Spi.disable_health_check() ip_output = threading.Thread(target=write_ip_to_screen) diff --git a/compLib/Lock.py b/compLib/Lock.py new file mode 100644 index 0000000..2184b6b --- /dev/null +++ b/compLib/Lock.py @@ -0,0 +1,25 @@ +from filelock import FileLock, Timeout +import atexit + +FILELOCK_PATH = "/root/complib.lock" + +global_lock = FileLock(FILELOCK_PATH, timeout=1) +class Lock(object): + @staticmethod + def lock(): + global_lock.acquire() + + @staticmethod + def unlock(): + global_lock.release() + + @staticmethod + def is_locked(): + try: + global_lock.acquire() + global_lock.release() + return False + except Timeout: + return True + +atexit.register(Lock.unlock) \ No newline at end of file diff --git a/compLib/__init__.py b/compLib/__init__.py index 10cd837..ff019af 100644 --- a/compLib/__init__.py +++ b/compLib/__init__.py @@ -1,9 +1,10 @@ __version__ = "0.3.9-0" +import sys import importlib import compLib.LogstashLogging import compLib.MetricsLogging - +from compLib.Lock import Lock apt_found = importlib.util.find_spec("apt") is not None spi_found = importlib.util.find_spec("spidev") is not None @@ -25,6 +26,12 @@ if apt_found: else: print("apt is not installed! This is for local development only!") +if Lock.is_locked(): + print("Another program using compLib is still running! Delete /root/complib.lock if this is an error. Exiting...") + sys.exit() +else: + Lock.lock() + if spi_found: from compLib.Spi import Spi from compLib.Reset import Reset diff --git a/complib.service b/complib.service index 43e3f49..758aaf7 100644 --- a/complib.service +++ b/complib.service @@ -1,7 +1,7 @@ [Unit] Description=Monitoring service [Service] -ExecStart=/usr/bin/python3 /usr/local/lib/python3.7/dist-packages/compLib/VisionDaemon.py +ExecStart=/usr/bin/python3 /usr/local/lib/python3.7/dist-packages/compLib/IPService.py Environment="debug=False" Restart=always RestartSec=5 diff --git a/postinstall.sh b/postinstall.sh index 357fe4b..fabfa94 100644 --- a/postinstall.sh +++ b/postinstall.sh @@ -23,7 +23,7 @@ install_package() { #install_package "spidev" #install_package "influxdb_client" -pip3 install smbus requests flask python-logstash-async RPi.GPIO spidev influxdb_client +pip3 install smbus requests flask python-logstash-async RPi.GPIO spidev influxdb_client filelock echo "Setting up opencv4" pkg-config --modversion opencv4 From 0e1b767f2637ccf2a6949caf68a53ea3aa8ae5a7 Mon Sep 17 00:00:00 2001 From: Your Name Date: Sun, 13 Feb 2022 17:50:06 +0000 Subject: [PATCH 148/246] Fix while true in IPService Lock --- compLib/IPService.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/compLib/IPService.py b/compLib/IPService.py index dcf81b2..1a97fff 100644 --- a/compLib/IPService.py +++ b/compLib/IPService.py @@ -69,7 +69,8 @@ def write_ip_to_screen(): Display.write(4, f"IP: {ip}") Display.write(1, datetime.datetime.now().strftime("%b %d %H:%M:%S")) Lock.unlock() - time.sleep(10) + + time.sleep(10) except Exception as e: print(f"Exception in write ip thread: {e}") time.sleep(5) From e1e03933d2c5f1a1827fc27a01e840dc6df8d35c Mon Sep 17 00:00:00 2001 From: Joel Klimont Date: Sun, 13 Feb 2022 19:15:31 +0100 Subject: [PATCH 149/246] updated version number to 0.4.1-0 --- build_deb.sh | 2 +- compLib/__init__.py | 2 +- setup.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/build_deb.sh b/build_deb.sh index 6ba60ec..2602cda 100755 --- a/build_deb.sh +++ b/build_deb.sh @@ -34,7 +34,7 @@ fpm -s python --python-bin python3 --python-pip pip3 --python-package-name-prefi -d "python3-pigpio" \ -d "python3-numpy" \ -d "ffmpeg" \ - -v 0.4.0-0 -t deb setup.py + -v 0.4.1-0 -t deb setup.py # --deb-changelog changelog \ # --deb-upstream-changelog changelog \ diff --git a/compLib/__init__.py b/compLib/__init__.py index e565396..5787540 100644 --- a/compLib/__init__.py +++ b/compLib/__init__.py @@ -1,4 +1,4 @@ -__version__ = "0.4.0-0" +__version__ = "0.4.1-0" import sys import importlib diff --git a/setup.py b/setup.py index 78a9f6e..0dc4f89 100644 --- a/setup.py +++ b/setup.py @@ -12,7 +12,7 @@ else: setuptools.setup( name="complib", - version="0.4.0-0", + version="0.4.1-0", author="F-WuTs", author_email="--", description="", From 98fc45e97affe9fcd4531d2f41bbacc47f9599b4 Mon Sep 17 00:00:00 2001 From: Konstantin Lampalzer Date: Mon, 14 Feb 2022 15:10:05 +0100 Subject: [PATCH 150/246] Update Spi.py --- compLib/Spi.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/compLib/Spi.py b/compLib/Spi.py index 5ce69f9..90c08a5 100644 --- a/compLib/Spi.py +++ b/compLib/Spi.py @@ -209,9 +209,9 @@ class Spi(object): @staticmethod def health_check_loop(): while SPI_HEALTH: - if last_spi_call + 0.75 < time.time(): + if last_spi_call + 0.5 < time.time(): Spi.health_check() - time.sleep(0.5) + time.sleep(0.1) @staticmethod def get_version(): From a6af166fd1d6dffddd76d376f9dcc9c89d1dedf2 Mon Sep 17 00:00:00 2001 From: Joel Klimont Date: Mon, 14 Feb 2022 15:19:39 +0100 Subject: [PATCH 151/246] updated version number to 0.4.1-1 --- build_deb.sh | 2 +- compLib/__init__.py | 2 +- setup.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/build_deb.sh b/build_deb.sh index 2602cda..7261b47 100755 --- a/build_deb.sh +++ b/build_deb.sh @@ -34,7 +34,7 @@ fpm -s python --python-bin python3 --python-pip pip3 --python-package-name-prefi -d "python3-pigpio" \ -d "python3-numpy" \ -d "ffmpeg" \ - -v 0.4.1-0 -t deb setup.py + -v 0.4.1-1 -t deb setup.py # --deb-changelog changelog \ # --deb-upstream-changelog changelog \ diff --git a/compLib/__init__.py b/compLib/__init__.py index 5787540..e16b119 100644 --- a/compLib/__init__.py +++ b/compLib/__init__.py @@ -1,4 +1,4 @@ -__version__ = "0.4.1-0" +__version__ = "0.4.1-1" import sys import importlib diff --git a/setup.py b/setup.py index 0dc4f89..19e14da 100644 --- a/setup.py +++ b/setup.py @@ -12,7 +12,7 @@ else: setuptools.setup( name="complib", - version="0.4.1-0", + version="0.4.1-1", author="F-WuTs", author_email="--", description="", From e277a83c5f61cfc67eecda9745f88e565960518c Mon Sep 17 00:00:00 2001 From: Joel Klimont Date: Wed, 16 Feb 2022 13:16:04 +0100 Subject: [PATCH 152/246] updated docs --- compLib/Api.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/compLib/Api.py b/compLib/Api.py index f36e79a..4c8cb99 100644 --- a/compLib/Api.py +++ b/compLib/Api.py @@ -84,9 +84,9 @@ class Seeding: @staticmethod def get_cargo(color: str) -> Tuple[Dict, int]: - """Makes the /api/listCargo call to the api. + """Makes the /api/getCargo call to the api. - :param color: Color parameter which specifies which cargo should be taken. (A string which is either "green", "red", "yellow" or "blue" + :param color: Color parameter which specifies which cargo should be taken. (A string which is either "green", "red", "yellow" or "blue") The function only picks up one package. :return: Json Object and status code as returned by the api. :rtype: Tuple[Dict, int] """ @@ -102,6 +102,7 @@ class Seeding: Logging.get_logger().debug(f"Seeding.get_robot_state {result}, status code = {res.status_code}") return result, res.status_code + class Position: """Datastructure for holding a position """ From 9b567b8c6ca550c5c140d59710943d0d92e25933 Mon Sep 17 00:00:00 2001 From: Konstantin Lampalzer Date: Fri, 18 Mar 2022 18:11:16 +0100 Subject: [PATCH 153/246] Protobuf prototype --- .gitignore => client_s1/.gitignore | 0 MANIFEST.in => client_s1/MANIFEST.in | 0 build_deb.sh => client_s1/build_deb.sh | 0 changelog => client_s1/changelog | 0 {compLib => client_s1/compLib}/Api.py | 0 {compLib => client_s1/compLib}/Display.py | 0 {compLib => client_s1/compLib}/Encoder.py | 0 {compLib => client_s1/compLib}/IPService.py | 0 {compLib => client_s1/compLib}/IRSensor.py | 0 {compLib => client_s1/compLib}/Lock.py | 0 .../compLib}/LogstashLogging.py | 0 .../compLib}/MetricsLogging.py | 0 {compLib => client_s1/compLib}/Motor.py | 0 {compLib => client_s1/compLib}/Odom.py | 0 {compLib => client_s1/compLib}/Reset.py | 0 {compLib => client_s1/compLib}/Robot.py | 0 {compLib => client_s1/compLib}/Servo.py | 0 {compLib => client_s1/compLib}/Spi.py | 0 {compLib => client_s1/compLib}/Vision.py | 0 {compLib => client_s1/compLib}/__init__.py | 0 complib.service => client_s1/complib.service | 0 {docs => client_s1/docs}/.gitignore | 0 {docs => client_s1/docs}/Makefile | 0 {docs => client_s1/docs}/make.bat | 0 .../docs}/source/_static/.gitkeep | 0 {docs => client_s1/docs}/source/conf.py | 0 .../source/images/compair-logo-white.svg | 0 {docs => client_s1/docs}/source/index.rst | 0 {docs => client_s1/docs}/source/lib/Api.rst | 0 {docs => client_s1/docs}/source/lib/Aruco.rst | 0 .../docs}/source/lib/Display.rst | 0 .../docs}/source/lib/Encoder.rst | 0 .../docs}/source/lib/IRSensor.rst | 0 .../docs}/source/lib/Linefollower.rst | 0 .../docs}/source/lib/Logging.rst | 0 {docs => client_s1/docs}/source/lib/Motor.rst | 0 {docs => client_s1/docs}/source/lib/Odom.rst | 0 {docs => client_s1/docs}/source/lib/QC.rst | 0 {docs => client_s1/docs}/source/lib/Robot.rst | 0 {docs => client_s1/docs}/source/lib/Servo.rst | 0 .../docs}/source/lib/Vision.rst | 0 .../docs}/source/lib/images/chessboard.jpg | Bin .../source/lib/images/chessboard_detected.jpg | Bin .../source/lib/images/opencv_http_stream.png | Bin .../source/lib/images/opencv_processed.png | Bin .../docs}/source/other/usage.rst | 0 postinstall.sh => client_s1/postinstall.sh | 0 setup.py => client_s1/setup.py | 0 .../sphinx_to_github.sh | 0 test.py => client_s1/test.py | 0 client_s2/CompLib.proto | 36 + client_s2/CompLib_pb2.py | 84 + .../__pycache__/CompLib_pb2.cpython-39.pyc | Bin 0 -> 1923 bytes client_s2/main.py | 36 + server/.idea/.gitignore | 6 + server/.idea/.name | 1 + server/.idea/misc.xml | 4 + server/.idea/modules.xml | 8 + server/.idea/saveactions_settings.xml | 15 + server/.idea/serialmonitor_settings.xml | 4 + server/.idea/server.iml | 2 + server/.idea/vcs.xml | 6 + server/CMakeLists.txt | 32 + server/cmake-build-debug/CMakeCache.txt | 433 ++++ .../CMakeFiles/3.17.3/CMakeCCompiler.cmake | 76 + .../CMakeFiles/3.17.3/CMakeCXXCompiler.cmake | 88 + .../3.17.3/CMakeDetermineCompilerABI_C.bin | Bin 0 -> 16592 bytes .../3.17.3/CMakeDetermineCompilerABI_CXX.bin | Bin 0 -> 16576 bytes .../CMakeFiles/3.17.3/CMakeSystem.cmake | 15 + .../3.17.3/CompilerIdC/CMakeCCompilerId.c | 671 ++++++ .../3.17.3/CompilerIdC/CMakeCCompilerId.o | Bin 0 -> 1400 bytes .../CompilerIdCXX/CMakeCXXCompilerId.cpp | 660 ++++++ .../3.17.3/CompilerIdCXX/CMakeCXXCompilerId.o | Bin 0 -> 1380 bytes .../CMakeDirectoryInformation.cmake | 16 + .../CMakeFiles/CMakeError.log | 22 + .../CMakeFiles/CMakeOutput.log | 334 +++ .../CMakeFiles/CMakeRuleHashes.txt | 2 + .../CMakeFiles/Makefile.cmake | 64 + server/cmake-build-debug/CMakeFiles/Makefile2 | 126 ++ .../CMakeFiles/TargetDirectories.txt | 3 + .../CMakeFiles/clion-environment.txt | 3 + .../CMakeFiles/clion-log.txt | 4 + .../CMakeFiles/cmake.check_cache | 1 + .../compLib_server.dir/CXX.includecache | 958 ++++++++ .../compLib_server.dir/CompLib.pb.cc.o | Bin 0 -> 746364 bytes .../compLib_server.dir/DependInfo.cmake | 32 + .../CMakeFiles/compLib_server.dir/build.make | 158 ++ .../compLib_server.dir/cmake_clean.cmake | 14 + .../compLib_server.dir/depend.internal | 107 + .../CMakeFiles/compLib_server.dir/depend.make | 107 + .../CMakeFiles/compLib_server.dir/flags.make | 10 + .../CMakeFiles/compLib_server.dir/link.txt | 1 + .../compLib_server.dir/progress.make | 6 + .../compLib_server.dir/src/main.cpp.o | Bin 0 -> 561916 bytes .../CMakeFiles/progress.marks | 1 + .../CMakeFiles/server.dir/CXX.includecache | 12 + .../CMakeFiles/server.dir/DependInfo.cmake | 20 + .../CMakeFiles/server.dir/build.make | 118 + .../CMakeFiles/server.dir/cmake_clean.cmake | 10 + .../CMakeFiles/server.dir/depend.internal | 5 + .../CMakeFiles/server.dir/depend.make | 5 + .../CMakeFiles/server.dir/flags.make | 10 + .../CMakeFiles/server.dir/link.txt | 1 + .../CMakeFiles/server.dir/progress.make | 3 + .../CMakeFiles/server.dir/src/main.cpp.o | Bin 0 -> 94116 bytes server/cmake-build-debug/CompLib.pb.cc | 1654 ++++++++++++++ server/cmake-build-debug/CompLib.pb.h | 1928 +++++++++++++++++ server/cmake-build-debug/Makefile | 258 +++ server/cmake-build-debug/cmake_install.cmake | 44 + server/cmake-build-debug/compLib_server | Bin 0 -> 254888 bytes server/cmake-build-debug/compLib_server.cbp | 120 + server/cmake-build-debug/server | Bin 0 -> 62280 bytes server/cmake-build-debug/server.cbp | 90 + server/include/Spi.hpp | 10 + server/include/errorMessages.hpp | 10 + server/include/messageBuilder.hpp | 28 + server/protos/CompLib.proto | 36 + server/src/Spi.cpp | 1 + server/src/main.cpp | 90 + 119 files changed, 8599 insertions(+) rename .gitignore => client_s1/.gitignore (100%) rename MANIFEST.in => client_s1/MANIFEST.in (100%) rename build_deb.sh => client_s1/build_deb.sh (100%) rename changelog => client_s1/changelog (100%) rename {compLib => client_s1/compLib}/Api.py (100%) rename {compLib => client_s1/compLib}/Display.py (100%) rename {compLib => client_s1/compLib}/Encoder.py (100%) rename {compLib => client_s1/compLib}/IPService.py (100%) rename {compLib => client_s1/compLib}/IRSensor.py (100%) rename {compLib => client_s1/compLib}/Lock.py (100%) rename {compLib => client_s1/compLib}/LogstashLogging.py (100%) rename {compLib => client_s1/compLib}/MetricsLogging.py (100%) rename {compLib => client_s1/compLib}/Motor.py (100%) rename {compLib => client_s1/compLib}/Odom.py (100%) rename {compLib => client_s1/compLib}/Reset.py (100%) rename {compLib => client_s1/compLib}/Robot.py (100%) rename {compLib => client_s1/compLib}/Servo.py (100%) rename {compLib => client_s1/compLib}/Spi.py (100%) rename {compLib => client_s1/compLib}/Vision.py (100%) rename {compLib => client_s1/compLib}/__init__.py (100%) rename complib.service => client_s1/complib.service (100%) rename {docs => client_s1/docs}/.gitignore (100%) rename {docs => client_s1/docs}/Makefile (100%) rename {docs => client_s1/docs}/make.bat (100%) rename {docs => client_s1/docs}/source/_static/.gitkeep (100%) rename {docs => client_s1/docs}/source/conf.py (100%) rename {docs => client_s1/docs}/source/images/compair-logo-white.svg (100%) rename {docs => client_s1/docs}/source/index.rst (100%) rename {docs => client_s1/docs}/source/lib/Api.rst (100%) rename {docs => client_s1/docs}/source/lib/Aruco.rst (100%) rename {docs => client_s1/docs}/source/lib/Display.rst (100%) rename {docs => client_s1/docs}/source/lib/Encoder.rst (100%) rename {docs => client_s1/docs}/source/lib/IRSensor.rst (100%) rename {docs => client_s1/docs}/source/lib/Linefollower.rst (100%) rename {docs => client_s1/docs}/source/lib/Logging.rst (100%) rename {docs => client_s1/docs}/source/lib/Motor.rst (100%) rename {docs => client_s1/docs}/source/lib/Odom.rst (100%) rename {docs => client_s1/docs}/source/lib/QC.rst (100%) rename {docs => client_s1/docs}/source/lib/Robot.rst (100%) rename {docs => client_s1/docs}/source/lib/Servo.rst (100%) rename {docs => client_s1/docs}/source/lib/Vision.rst (100%) rename {docs => client_s1/docs}/source/lib/images/chessboard.jpg (100%) rename {docs => client_s1/docs}/source/lib/images/chessboard_detected.jpg (100%) rename {docs => client_s1/docs}/source/lib/images/opencv_http_stream.png (100%) rename {docs => client_s1/docs}/source/lib/images/opencv_processed.png (100%) rename {docs => client_s1/docs}/source/other/usage.rst (100%) rename postinstall.sh => client_s1/postinstall.sh (100%) rename setup.py => client_s1/setup.py (100%) rename sphinx_to_github.sh => client_s1/sphinx_to_github.sh (100%) rename test.py => client_s1/test.py (100%) create mode 100644 client_s2/CompLib.proto create mode 100644 client_s2/CompLib_pb2.py create mode 100644 client_s2/__pycache__/CompLib_pb2.cpython-39.pyc create mode 100644 client_s2/main.py create mode 100644 server/.idea/.gitignore create mode 100644 server/.idea/.name create mode 100644 server/.idea/misc.xml create mode 100644 server/.idea/modules.xml create mode 100644 server/.idea/saveactions_settings.xml create mode 100644 server/.idea/serialmonitor_settings.xml create mode 100644 server/.idea/server.iml create mode 100644 server/.idea/vcs.xml create mode 100644 server/CMakeLists.txt create mode 100644 server/cmake-build-debug/CMakeCache.txt create mode 100644 server/cmake-build-debug/CMakeFiles/3.17.3/CMakeCCompiler.cmake create mode 100644 server/cmake-build-debug/CMakeFiles/3.17.3/CMakeCXXCompiler.cmake create mode 100755 server/cmake-build-debug/CMakeFiles/3.17.3/CMakeDetermineCompilerABI_C.bin create mode 100755 server/cmake-build-debug/CMakeFiles/3.17.3/CMakeDetermineCompilerABI_CXX.bin create mode 100644 server/cmake-build-debug/CMakeFiles/3.17.3/CMakeSystem.cmake create mode 100644 server/cmake-build-debug/CMakeFiles/3.17.3/CompilerIdC/CMakeCCompilerId.c create mode 100644 server/cmake-build-debug/CMakeFiles/3.17.3/CompilerIdC/CMakeCCompilerId.o create mode 100644 server/cmake-build-debug/CMakeFiles/3.17.3/CompilerIdCXX/CMakeCXXCompilerId.cpp create mode 100644 server/cmake-build-debug/CMakeFiles/3.17.3/CompilerIdCXX/CMakeCXXCompilerId.o create mode 100644 server/cmake-build-debug/CMakeFiles/CMakeDirectoryInformation.cmake create mode 100644 server/cmake-build-debug/CMakeFiles/CMakeError.log create mode 100644 server/cmake-build-debug/CMakeFiles/CMakeOutput.log create mode 100644 server/cmake-build-debug/CMakeFiles/CMakeRuleHashes.txt create mode 100644 server/cmake-build-debug/CMakeFiles/Makefile.cmake create mode 100644 server/cmake-build-debug/CMakeFiles/Makefile2 create mode 100644 server/cmake-build-debug/CMakeFiles/TargetDirectories.txt create mode 100644 server/cmake-build-debug/CMakeFiles/clion-environment.txt create mode 100644 server/cmake-build-debug/CMakeFiles/clion-log.txt create mode 100644 server/cmake-build-debug/CMakeFiles/cmake.check_cache create mode 100644 server/cmake-build-debug/CMakeFiles/compLib_server.dir/CXX.includecache create mode 100644 server/cmake-build-debug/CMakeFiles/compLib_server.dir/CompLib.pb.cc.o create mode 100644 server/cmake-build-debug/CMakeFiles/compLib_server.dir/DependInfo.cmake create mode 100644 server/cmake-build-debug/CMakeFiles/compLib_server.dir/build.make create mode 100644 server/cmake-build-debug/CMakeFiles/compLib_server.dir/cmake_clean.cmake create mode 100644 server/cmake-build-debug/CMakeFiles/compLib_server.dir/depend.internal create mode 100644 server/cmake-build-debug/CMakeFiles/compLib_server.dir/depend.make create mode 100644 server/cmake-build-debug/CMakeFiles/compLib_server.dir/flags.make create mode 100644 server/cmake-build-debug/CMakeFiles/compLib_server.dir/link.txt create mode 100644 server/cmake-build-debug/CMakeFiles/compLib_server.dir/progress.make create mode 100644 server/cmake-build-debug/CMakeFiles/compLib_server.dir/src/main.cpp.o create mode 100644 server/cmake-build-debug/CMakeFiles/progress.marks create mode 100644 server/cmake-build-debug/CMakeFiles/server.dir/CXX.includecache create mode 100644 server/cmake-build-debug/CMakeFiles/server.dir/DependInfo.cmake create mode 100644 server/cmake-build-debug/CMakeFiles/server.dir/build.make create mode 100644 server/cmake-build-debug/CMakeFiles/server.dir/cmake_clean.cmake create mode 100644 server/cmake-build-debug/CMakeFiles/server.dir/depend.internal create mode 100644 server/cmake-build-debug/CMakeFiles/server.dir/depend.make create mode 100644 server/cmake-build-debug/CMakeFiles/server.dir/flags.make create mode 100644 server/cmake-build-debug/CMakeFiles/server.dir/link.txt create mode 100644 server/cmake-build-debug/CMakeFiles/server.dir/progress.make create mode 100644 server/cmake-build-debug/CMakeFiles/server.dir/src/main.cpp.o create mode 100644 server/cmake-build-debug/CompLib.pb.cc create mode 100644 server/cmake-build-debug/CompLib.pb.h create mode 100644 server/cmake-build-debug/Makefile create mode 100644 server/cmake-build-debug/cmake_install.cmake create mode 100755 server/cmake-build-debug/compLib_server create mode 100644 server/cmake-build-debug/compLib_server.cbp create mode 100755 server/cmake-build-debug/server create mode 100644 server/cmake-build-debug/server.cbp create mode 100644 server/include/Spi.hpp create mode 100644 server/include/errorMessages.hpp create mode 100644 server/include/messageBuilder.hpp create mode 100644 server/protos/CompLib.proto create mode 100644 server/src/Spi.cpp create mode 100644 server/src/main.cpp diff --git a/.gitignore b/client_s1/.gitignore similarity index 100% rename from .gitignore rename to client_s1/.gitignore diff --git a/MANIFEST.in b/client_s1/MANIFEST.in similarity index 100% rename from MANIFEST.in rename to client_s1/MANIFEST.in diff --git a/build_deb.sh b/client_s1/build_deb.sh similarity index 100% rename from build_deb.sh rename to client_s1/build_deb.sh diff --git a/changelog b/client_s1/changelog similarity index 100% rename from changelog rename to client_s1/changelog diff --git a/compLib/Api.py b/client_s1/compLib/Api.py similarity index 100% rename from compLib/Api.py rename to client_s1/compLib/Api.py diff --git a/compLib/Display.py b/client_s1/compLib/Display.py similarity index 100% rename from compLib/Display.py rename to client_s1/compLib/Display.py diff --git a/compLib/Encoder.py b/client_s1/compLib/Encoder.py similarity index 100% rename from compLib/Encoder.py rename to client_s1/compLib/Encoder.py diff --git a/compLib/IPService.py b/client_s1/compLib/IPService.py similarity index 100% rename from compLib/IPService.py rename to client_s1/compLib/IPService.py diff --git a/compLib/IRSensor.py b/client_s1/compLib/IRSensor.py similarity index 100% rename from compLib/IRSensor.py rename to client_s1/compLib/IRSensor.py diff --git a/compLib/Lock.py b/client_s1/compLib/Lock.py similarity index 100% rename from compLib/Lock.py rename to client_s1/compLib/Lock.py diff --git a/compLib/LogstashLogging.py b/client_s1/compLib/LogstashLogging.py similarity index 100% rename from compLib/LogstashLogging.py rename to client_s1/compLib/LogstashLogging.py diff --git a/compLib/MetricsLogging.py b/client_s1/compLib/MetricsLogging.py similarity index 100% rename from compLib/MetricsLogging.py rename to client_s1/compLib/MetricsLogging.py diff --git a/compLib/Motor.py b/client_s1/compLib/Motor.py similarity index 100% rename from compLib/Motor.py rename to client_s1/compLib/Motor.py diff --git a/compLib/Odom.py b/client_s1/compLib/Odom.py similarity index 100% rename from compLib/Odom.py rename to client_s1/compLib/Odom.py diff --git a/compLib/Reset.py b/client_s1/compLib/Reset.py similarity index 100% rename from compLib/Reset.py rename to client_s1/compLib/Reset.py diff --git a/compLib/Robot.py b/client_s1/compLib/Robot.py similarity index 100% rename from compLib/Robot.py rename to client_s1/compLib/Robot.py diff --git a/compLib/Servo.py b/client_s1/compLib/Servo.py similarity index 100% rename from compLib/Servo.py rename to client_s1/compLib/Servo.py diff --git a/compLib/Spi.py b/client_s1/compLib/Spi.py similarity index 100% rename from compLib/Spi.py rename to client_s1/compLib/Spi.py diff --git a/compLib/Vision.py b/client_s1/compLib/Vision.py similarity index 100% rename from compLib/Vision.py rename to client_s1/compLib/Vision.py diff --git a/compLib/__init__.py b/client_s1/compLib/__init__.py similarity index 100% rename from compLib/__init__.py rename to client_s1/compLib/__init__.py diff --git a/complib.service b/client_s1/complib.service similarity index 100% rename from complib.service rename to client_s1/complib.service diff --git a/docs/.gitignore b/client_s1/docs/.gitignore similarity index 100% rename from docs/.gitignore rename to client_s1/docs/.gitignore diff --git a/docs/Makefile b/client_s1/docs/Makefile similarity index 100% rename from docs/Makefile rename to client_s1/docs/Makefile diff --git a/docs/make.bat b/client_s1/docs/make.bat similarity index 100% rename from docs/make.bat rename to client_s1/docs/make.bat diff --git a/docs/source/_static/.gitkeep b/client_s1/docs/source/_static/.gitkeep similarity index 100% rename from docs/source/_static/.gitkeep rename to client_s1/docs/source/_static/.gitkeep diff --git a/docs/source/conf.py b/client_s1/docs/source/conf.py similarity index 100% rename from docs/source/conf.py rename to client_s1/docs/source/conf.py diff --git a/docs/source/images/compair-logo-white.svg b/client_s1/docs/source/images/compair-logo-white.svg similarity index 100% rename from docs/source/images/compair-logo-white.svg rename to client_s1/docs/source/images/compair-logo-white.svg diff --git a/docs/source/index.rst b/client_s1/docs/source/index.rst similarity index 100% rename from docs/source/index.rst rename to client_s1/docs/source/index.rst diff --git a/docs/source/lib/Api.rst b/client_s1/docs/source/lib/Api.rst similarity index 100% rename from docs/source/lib/Api.rst rename to client_s1/docs/source/lib/Api.rst diff --git a/docs/source/lib/Aruco.rst b/client_s1/docs/source/lib/Aruco.rst similarity index 100% rename from docs/source/lib/Aruco.rst rename to client_s1/docs/source/lib/Aruco.rst diff --git a/docs/source/lib/Display.rst b/client_s1/docs/source/lib/Display.rst similarity index 100% rename from docs/source/lib/Display.rst rename to client_s1/docs/source/lib/Display.rst diff --git a/docs/source/lib/Encoder.rst b/client_s1/docs/source/lib/Encoder.rst similarity index 100% rename from docs/source/lib/Encoder.rst rename to client_s1/docs/source/lib/Encoder.rst diff --git a/docs/source/lib/IRSensor.rst b/client_s1/docs/source/lib/IRSensor.rst similarity index 100% rename from docs/source/lib/IRSensor.rst rename to client_s1/docs/source/lib/IRSensor.rst diff --git a/docs/source/lib/Linefollower.rst b/client_s1/docs/source/lib/Linefollower.rst similarity index 100% rename from docs/source/lib/Linefollower.rst rename to client_s1/docs/source/lib/Linefollower.rst diff --git a/docs/source/lib/Logging.rst b/client_s1/docs/source/lib/Logging.rst similarity index 100% rename from docs/source/lib/Logging.rst rename to client_s1/docs/source/lib/Logging.rst diff --git a/docs/source/lib/Motor.rst b/client_s1/docs/source/lib/Motor.rst similarity index 100% rename from docs/source/lib/Motor.rst rename to client_s1/docs/source/lib/Motor.rst diff --git a/docs/source/lib/Odom.rst b/client_s1/docs/source/lib/Odom.rst similarity index 100% rename from docs/source/lib/Odom.rst rename to client_s1/docs/source/lib/Odom.rst diff --git a/docs/source/lib/QC.rst b/client_s1/docs/source/lib/QC.rst similarity index 100% rename from docs/source/lib/QC.rst rename to client_s1/docs/source/lib/QC.rst diff --git a/docs/source/lib/Robot.rst b/client_s1/docs/source/lib/Robot.rst similarity index 100% rename from docs/source/lib/Robot.rst rename to client_s1/docs/source/lib/Robot.rst diff --git a/docs/source/lib/Servo.rst b/client_s1/docs/source/lib/Servo.rst similarity index 100% rename from docs/source/lib/Servo.rst rename to client_s1/docs/source/lib/Servo.rst diff --git a/docs/source/lib/Vision.rst b/client_s1/docs/source/lib/Vision.rst similarity index 100% rename from docs/source/lib/Vision.rst rename to client_s1/docs/source/lib/Vision.rst diff --git a/docs/source/lib/images/chessboard.jpg b/client_s1/docs/source/lib/images/chessboard.jpg similarity index 100% rename from docs/source/lib/images/chessboard.jpg rename to client_s1/docs/source/lib/images/chessboard.jpg diff --git a/docs/source/lib/images/chessboard_detected.jpg b/client_s1/docs/source/lib/images/chessboard_detected.jpg similarity index 100% rename from docs/source/lib/images/chessboard_detected.jpg rename to client_s1/docs/source/lib/images/chessboard_detected.jpg diff --git a/docs/source/lib/images/opencv_http_stream.png b/client_s1/docs/source/lib/images/opencv_http_stream.png similarity index 100% rename from docs/source/lib/images/opencv_http_stream.png rename to client_s1/docs/source/lib/images/opencv_http_stream.png diff --git a/docs/source/lib/images/opencv_processed.png b/client_s1/docs/source/lib/images/opencv_processed.png similarity index 100% rename from docs/source/lib/images/opencv_processed.png rename to client_s1/docs/source/lib/images/opencv_processed.png diff --git a/docs/source/other/usage.rst b/client_s1/docs/source/other/usage.rst similarity index 100% rename from docs/source/other/usage.rst rename to client_s1/docs/source/other/usage.rst diff --git a/postinstall.sh b/client_s1/postinstall.sh similarity index 100% rename from postinstall.sh rename to client_s1/postinstall.sh diff --git a/setup.py b/client_s1/setup.py similarity index 100% rename from setup.py rename to client_s1/setup.py diff --git a/sphinx_to_github.sh b/client_s1/sphinx_to_github.sh similarity index 100% rename from sphinx_to_github.sh rename to client_s1/sphinx_to_github.sh diff --git a/test.py b/client_s1/test.py similarity index 100% rename from test.py rename to client_s1/test.py diff --git a/client_s2/CompLib.proto b/client_s2/CompLib.proto new file mode 100644 index 0000000..77a202d --- /dev/null +++ b/client_s2/CompLib.proto @@ -0,0 +1,36 @@ +syntax = "proto3"; + +package CompLib; + +message Header { + string message_type = 1; +} + +message Status { + bool successful = 1; + string error_message = 2; +} + +message GenericRequest { + Header header = 1; +} + +message GenericResponse { + Header header = 1; + Status status = 2; +} + +message ReadSensorsRequest { + Header header = 1; +} + +message ReadSensorsResponse { + Header header = 1; + Status status = 2; + uint32 ir_1 = 3; + uint32 ir_2 = 4; + uint32 ir_3 = 5; + uint32 ir_4 = 6; + uint32 ir_5 = 7; +} + diff --git a/client_s2/CompLib_pb2.py b/client_s2/CompLib_pb2.py new file mode 100644 index 0000000..ea548fd --- /dev/null +++ b/client_s2/CompLib_pb2.py @@ -0,0 +1,84 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: CompLib.proto +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\rCompLib.proto\x12\x07\x43ompLib\"\x1e\n\x06Header\x12\x14\n\x0cmessage_type\x18\x01 \x01(\t\"3\n\x06Status\x12\x12\n\nsuccessful\x18\x01 \x01(\x08\x12\x15\n\rerror_message\x18\x02 \x01(\t\"1\n\x0eGenericRequest\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\"S\n\x0fGenericResponse\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\x12\x1f\n\x06status\x18\x02 \x01(\x0b\x32\x0f.CompLib.Status\"5\n\x12ReadSensorsRequest\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\"\x9d\x01\n\x13ReadSensorsResponse\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\x12\x1f\n\x06status\x18\x02 \x01(\x0b\x32\x0f.CompLib.Status\x12\x0c\n\x04ir_1\x18\x03 \x01(\r\x12\x0c\n\x04ir_2\x18\x04 \x01(\r\x12\x0c\n\x04ir_3\x18\x05 \x01(\r\x12\x0c\n\x04ir_4\x18\x06 \x01(\r\x12\x0c\n\x04ir_5\x18\x07 \x01(\rb\x06proto3') + + + +_HEADER = DESCRIPTOR.message_types_by_name['Header'] +_STATUS = DESCRIPTOR.message_types_by_name['Status'] +_GENERICREQUEST = DESCRIPTOR.message_types_by_name['GenericRequest'] +_GENERICRESPONSE = DESCRIPTOR.message_types_by_name['GenericResponse'] +_READSENSORSREQUEST = DESCRIPTOR.message_types_by_name['ReadSensorsRequest'] +_READSENSORSRESPONSE = DESCRIPTOR.message_types_by_name['ReadSensorsResponse'] +Header = _reflection.GeneratedProtocolMessageType('Header', (_message.Message,), { + 'DESCRIPTOR' : _HEADER, + '__module__' : 'CompLib_pb2' + # @@protoc_insertion_point(class_scope:CompLib.Header) + }) +_sym_db.RegisterMessage(Header) + +Status = _reflection.GeneratedProtocolMessageType('Status', (_message.Message,), { + 'DESCRIPTOR' : _STATUS, + '__module__' : 'CompLib_pb2' + # @@protoc_insertion_point(class_scope:CompLib.Status) + }) +_sym_db.RegisterMessage(Status) + +GenericRequest = _reflection.GeneratedProtocolMessageType('GenericRequest', (_message.Message,), { + 'DESCRIPTOR' : _GENERICREQUEST, + '__module__' : 'CompLib_pb2' + # @@protoc_insertion_point(class_scope:CompLib.GenericRequest) + }) +_sym_db.RegisterMessage(GenericRequest) + +GenericResponse = _reflection.GeneratedProtocolMessageType('GenericResponse', (_message.Message,), { + 'DESCRIPTOR' : _GENERICRESPONSE, + '__module__' : 'CompLib_pb2' + # @@protoc_insertion_point(class_scope:CompLib.GenericResponse) + }) +_sym_db.RegisterMessage(GenericResponse) + +ReadSensorsRequest = _reflection.GeneratedProtocolMessageType('ReadSensorsRequest', (_message.Message,), { + 'DESCRIPTOR' : _READSENSORSREQUEST, + '__module__' : 'CompLib_pb2' + # @@protoc_insertion_point(class_scope:CompLib.ReadSensorsRequest) + }) +_sym_db.RegisterMessage(ReadSensorsRequest) + +ReadSensorsResponse = _reflection.GeneratedProtocolMessageType('ReadSensorsResponse', (_message.Message,), { + 'DESCRIPTOR' : _READSENSORSRESPONSE, + '__module__' : 'CompLib_pb2' + # @@protoc_insertion_point(class_scope:CompLib.ReadSensorsResponse) + }) +_sym_db.RegisterMessage(ReadSensorsResponse) + +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + _HEADER._serialized_start=26 + _HEADER._serialized_end=56 + _STATUS._serialized_start=58 + _STATUS._serialized_end=109 + _GENERICREQUEST._serialized_start=111 + _GENERICREQUEST._serialized_end=160 + _GENERICRESPONSE._serialized_start=162 + _GENERICRESPONSE._serialized_end=245 + _READSENSORSREQUEST._serialized_start=247 + _READSENSORSREQUEST._serialized_end=300 + _READSENSORSRESPONSE._serialized_start=303 + _READSENSORSRESPONSE._serialized_end=460 +# @@protoc_insertion_point(module_scope) diff --git a/client_s2/__pycache__/CompLib_pb2.cpython-39.pyc b/client_s2/__pycache__/CompLib_pb2.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..53c4d1a54b4e7261d327b9088945377da263d826 GIT binary patch literal 1923 zcmb_d&2H;N6tsCt$%Nuw>;et3CiiVu3g_aoyai5(r@{U%qqZJD%~JbH;9^LNvTS$-dS9 zv8rjmNn`dh(f9~|;%8mcnC56qXGWk84JV^Zo=N(h=9P)xwR6LKII3-wzc+Z{RNDGyAiOBF%P5A3xkdRWH11} z;e`ygZ)M`Q^q4RZ9{0yl$kD3aTXYN+mRbhgk=#T zCZ3104km#bEm%!b0nS5ClgO5#f}WB&^_srdgD)o_B5R%GzfjYtz|u~2`))nc**9%c zO+&;u90~Zx7%32HZED)thfbHg`HWaSoYjVr2)X#zYxzzm_1EJ5uLW6UlJz-#+RETI zRT68bm7TG6Te%tQ-By0ade$W z+=HfY%mWy>lOS?TibIt3o!TD5O5wg6_^*IH_XFT_GPXI}6@vD!=*S%c#=Y$B9dvt0 z?9;u|Gux@s7u}<7?{L4@{rs$JpWcNF=fuY3>_4xO( + + + \ No newline at end of file diff --git a/server/.idea/modules.xml b/server/.idea/modules.xml new file mode 100644 index 0000000..fbd90b4 --- /dev/null +++ b/server/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/server/.idea/saveactions_settings.xml b/server/.idea/saveactions_settings.xml new file mode 100644 index 0000000..b7b3f34 --- /dev/null +++ b/server/.idea/saveactions_settings.xml @@ -0,0 +1,15 @@ + + + + + + \ No newline at end of file diff --git a/server/.idea/serialmonitor_settings.xml b/server/.idea/serialmonitor_settings.xml new file mode 100644 index 0000000..eff936b --- /dev/null +++ b/server/.idea/serialmonitor_settings.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/server/.idea/server.iml b/server/.idea/server.iml new file mode 100644 index 0000000..f08604b --- /dev/null +++ b/server/.idea/server.iml @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/server/.idea/vcs.xml b/server/.idea/vcs.xml new file mode 100644 index 0000000..6c0b863 --- /dev/null +++ b/server/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/server/CMakeLists.txt b/server/CMakeLists.txt new file mode 100644 index 0000000..ba7da5f --- /dev/null +++ b/server/CMakeLists.txt @@ -0,0 +1,32 @@ +cmake_minimum_required(VERSION 3.17) +set(CMAKE_CXX_STANDARD 17) +set(PROJECT_NAME compLib_server) +project(${PROJECT_NAME}) + +find_package(Protobuf REQUIRED) + +set(PROTO_FILES + protos/CompLib.proto + ) + +set(SRC_FILES + src/main.cpp + src/Spi.cpp + ) + +set(HDR_FILES + include/messageBuilder.hpp + include/errorMessages.hpp + include/Spi.hpp + ) + +include_directories(third_party/asio) + +PROTOBUF_GENERATE_CPP(PROTO_SRC PROTO_HDR ${PROTO_FILES}) +add_executable(${PROJECT_NAME} ${SRC_FILES} ${HDR_FILES} ${PROTO_SRC} ${PROTO_HDR} ${PROTO_FILES}) +target_include_directories(${PROJECT_NAME} + PUBLIC ${CMAKE_CURRENT_BINARY_DIR} + PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} + PUBLIC ${PROTOBUF_INCLUDE_DIRS} + ) +target_link_libraries(${PROJECT_NAME} ${PROTOBUF_LIBRARIES}) diff --git a/server/cmake-build-debug/CMakeCache.txt b/server/cmake-build-debug/CMakeCache.txt new file mode 100644 index 0000000..a068a24 --- /dev/null +++ b/server/cmake-build-debug/CMakeCache.txt @@ -0,0 +1,433 @@ +# This is the CMakeCache file. +# For build in directory: /Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug +# It was generated by CMake: /Applications/CLion.app/Contents/bin/cmake/mac/bin/cmake +# You can edit this file to change values found and used by cmake. +# If you do not want to change any of the values, simply exit the editor. +# If you do want to change a value, simply edit, save, and exit the editor. +# The syntax for the file is as follows: +# KEY:TYPE=VALUE +# KEY is the name of a variable in the cache. +# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!. +# VALUE is the current value for the KEY. + +######################## +# EXTERNAL cache entries +######################## + +//Path to a program. +CMAKE_ADDR2LINE:FILEPATH=CMAKE_ADDR2LINE-NOTFOUND + +//Path to a program. +CMAKE_AR:FILEPATH=/Library/Developer/CommandLineTools/usr/bin/ar + +//Choose the type of build, options are: None Debug Release RelWithDebInfo +// MinSizeRel ... +CMAKE_BUILD_TYPE:STRING=Debug + +//Id string of the compiler for the CodeBlocks IDE. Automatically +// detected when left empty +CMAKE_CODEBLOCKS_COMPILER_ID:STRING= + +//The CodeBlocks executable +CMAKE_CODEBLOCKS_EXECUTABLE:FILEPATH=CMAKE_CODEBLOCKS_EXECUTABLE-NOTFOUND + +//Additional command line arguments when CodeBlocks invokes make. +// Enter e.g. -j to get parallel builds +CMAKE_CODEBLOCKS_MAKE_ARGUMENTS:STRING=-j16 + +//Enable/Disable color output during build. +CMAKE_COLOR_MAKEFILE:BOOL=ON + +//CXX compiler +CMAKE_CXX_COMPILER:FILEPATH=/Library/Developer/CommandLineTools/usr/bin/c++ + +//Flags used by the CXX compiler during all build types. +CMAKE_CXX_FLAGS:STRING= + +//Flags used by the CXX compiler during DEBUG builds. +CMAKE_CXX_FLAGS_DEBUG:STRING=-g + +//Flags used by the CXX compiler during MINSIZEREL builds. +CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG + +//Flags used by the CXX compiler during RELEASE builds. +CMAKE_CXX_FLAGS_RELEASE:STRING=-O3 -DNDEBUG + +//Flags used by the CXX compiler during RELWITHDEBINFO builds. +CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//C compiler +CMAKE_C_COMPILER:FILEPATH=/Library/Developer/CommandLineTools/usr/bin/cc + +//Flags used by the C compiler during all build types. +CMAKE_C_FLAGS:STRING= + +//Flags used by the C compiler during DEBUG builds. +CMAKE_C_FLAGS_DEBUG:STRING=-g + +//Flags used by the C compiler during MINSIZEREL builds. +CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG + +//Flags used by the C compiler during RELEASE builds. +CMAKE_C_FLAGS_RELEASE:STRING=-O3 -DNDEBUG + +//Flags used by the C compiler during RELWITHDEBINFO builds. +CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//Path to a program. +CMAKE_DLLTOOL:FILEPATH=CMAKE_DLLTOOL-NOTFOUND + +//Executable file format +CMAKE_EXECUTABLE_FORMAT:STRING=MACHO + +//Flags used by the linker during all build types. +CMAKE_EXE_LINKER_FLAGS:STRING= + +//Flags used by the linker during DEBUG builds. +CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during MINSIZEREL builds. +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during RELEASE builds. +CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during RELWITHDEBINFO builds. +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Enable/Disable output of compile commands during generation. +CMAKE_EXPORT_COMPILE_COMMANDS:BOOL= + +//Path to a program. +CMAKE_INSTALL_NAME_TOOL:FILEPATH=/usr/bin/install_name_tool + +//Install path prefix, prepended onto install directories. +CMAKE_INSTALL_PREFIX:PATH=/usr/local + +//Path to a program. +CMAKE_LINKER:FILEPATH=/Library/Developer/CommandLineTools/usr/bin/ld + +//Path to a program. +CMAKE_MAKE_PROGRAM:FILEPATH=/usr/bin/make + +//Flags used by the linker during the creation of modules during +// all build types. +CMAKE_MODULE_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of modules during +// DEBUG builds. +CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of modules during +// MINSIZEREL builds. +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of modules during +// RELEASE builds. +CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of modules during +// RELWITHDEBINFO builds. +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Path to a program. +CMAKE_NM:FILEPATH=/Library/Developer/CommandLineTools/usr/bin/nm + +//Path to a program. +CMAKE_OBJCOPY:FILEPATH=CMAKE_OBJCOPY-NOTFOUND + +//Path to a program. +CMAKE_OBJDUMP:FILEPATH=/Library/Developer/CommandLineTools/usr/bin/objdump + +//Build architectures for OSX +CMAKE_OSX_ARCHITECTURES:STRING= + +//Minimum OS X version to target for deployment (at runtime); newer +// APIs weak linked. Set to empty string for default value. +CMAKE_OSX_DEPLOYMENT_TARGET:STRING= + +//The product will be built against the headers and libraries located +// inside the indicated SDK. +CMAKE_OSX_SYSROOT:PATH=/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk + +//Value Computed by CMake +CMAKE_PROJECT_DESCRIPTION:STATIC= + +//Value Computed by CMake +CMAKE_PROJECT_HOMEPAGE_URL:STATIC= + +//Value Computed by CMake +CMAKE_PROJECT_NAME:STATIC=compLib_server + +//Path to a program. +CMAKE_RANLIB:FILEPATH=/Library/Developer/CommandLineTools/usr/bin/ranlib + +//Path to a program. +CMAKE_READELF:FILEPATH=CMAKE_READELF-NOTFOUND + +//Flags used by the linker during the creation of shared libraries +// during all build types. +CMAKE_SHARED_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of shared libraries +// during DEBUG builds. +CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of shared libraries +// during MINSIZEREL builds. +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of shared libraries +// during RELEASE builds. +CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of shared libraries +// during RELWITHDEBINFO builds. +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//If set, runtime paths are not added when installing shared libraries, +// but are added when building. +CMAKE_SKIP_INSTALL_RPATH:BOOL=NO + +//If set, runtime paths are not added when using shared libraries. +CMAKE_SKIP_RPATH:BOOL=NO + +//Flags used by the linker during the creation of static libraries +// during all build types. +CMAKE_STATIC_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of static libraries +// during DEBUG builds. +CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of static libraries +// during MINSIZEREL builds. +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of static libraries +// during RELEASE builds. +CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of static libraries +// during RELWITHDEBINFO builds. +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Path to a program. +CMAKE_STRIP:FILEPATH=/Library/Developer/CommandLineTools/usr/bin/strip + +//If this value is on, makefiles will be generated without the +// .SILENT directive, and all commands will be echoed to the console +// during the make. This is useful for debugging only. With Visual +// Studio IDE projects all commands are done without /nologo. +CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE + +//Path to a program. +ProcessorCount_cmd_sysctl:FILEPATH=/usr/sbin/sysctl + +//Path to a file. +Protobuf_INCLUDE_DIR:PATH=/usr/local/include + +//Path to a library. +Protobuf_LIBRARY_DEBUG:FILEPATH=/usr/local/lib/libprotobuf.dylib + +//Path to a library. +Protobuf_LIBRARY_RELEASE:FILEPATH=/usr/local/lib/libprotobuf.dylib + +//Path to a library. +Protobuf_LITE_LIBRARY_DEBUG:FILEPATH=/usr/local/lib/libprotobuf-lite.dylib + +//Path to a library. +Protobuf_LITE_LIBRARY_RELEASE:FILEPATH=/usr/local/lib/libprotobuf-lite.dylib + +//The Google Protocol Buffers Compiler +Protobuf_PROTOC_EXECUTABLE:FILEPATH=/usr/local/bin/protoc + +//Path to a library. +Protobuf_PROTOC_LIBRARY_DEBUG:FILEPATH=/usr/local/lib/libprotoc.dylib + +//Path to a library. +Protobuf_PROTOC_LIBRARY_RELEASE:FILEPATH=/usr/local/lib/libprotoc.dylib + +//Value Computed by CMake +compLib_server_BINARY_DIR:STATIC=/Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug + +//Value Computed by CMake +compLib_server_SOURCE_DIR:STATIC=/Users/konstantinviesure/workspace/compLIB/server + +//Value Computed by CMake +server_BINARY_DIR:STATIC=/Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug + +//Value Computed by CMake +server_SOURCE_DIR:STATIC=/Users/konstantinviesure/workspace/compLIB/server + + +######################## +# INTERNAL cache entries +######################## + +//ADVANCED property for variable: CMAKE_ADDR2LINE +CMAKE_ADDR2LINE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_AR +CMAKE_AR-ADVANCED:INTERNAL=1 +//This is the directory where this CMakeCache.txt was created +CMAKE_CACHEFILE_DIR:INTERNAL=/Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug +//Major version of cmake used to create the current loaded cache +CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3 +//Minor version of cmake used to create the current loaded cache +CMAKE_CACHE_MINOR_VERSION:INTERNAL=17 +//Patch version of cmake used to create the current loaded cache +CMAKE_CACHE_PATCH_VERSION:INTERNAL=3 +//ADVANCED property for variable: CMAKE_COLOR_MAKEFILE +CMAKE_COLOR_MAKEFILE-ADVANCED:INTERNAL=1 +//Path to CMake executable. +CMAKE_COMMAND:INTERNAL=/Applications/CLion.app/Contents/bin/cmake/mac/bin/cmake +//Path to cpack program executable. +CMAKE_CPACK_COMMAND:INTERNAL=/Applications/CLion.app/Contents/bin/cmake/mac/bin/cpack +//Path to ctest program executable. +CMAKE_CTEST_COMMAND:INTERNAL=/Applications/CLion.app/Contents/bin/cmake/mac/bin/ctest +//ADVANCED property for variable: CMAKE_CXX_COMPILER +CMAKE_CXX_COMPILER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS +CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG +CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL +CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE +CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO +CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_COMPILER +CMAKE_C_COMPILER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS +CMAKE_C_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG +CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL +CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE +CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO +CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_DLLTOOL +CMAKE_DLLTOOL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS +CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG +CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE +CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS +CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1 +//Name of external makefile project generator. +CMAKE_EXTRA_GENERATOR:INTERNAL=CodeBlocks +//CXX compiler system defined macros +CMAKE_EXTRA_GENERATOR_CXX_SYSTEM_DEFINED_MACROS:INTERNAL=__llvm__;1;__clang__;1;__clang_major__;12;__clang_minor__;0;__clang_patchlevel__;0;__clang_version__;"12.0.0 (clang-1200.0.31.1)";__GNUC__;4;__GNUC_MINOR__;2;__GNUC_PATCHLEVEL__;1;__GXX_ABI_VERSION;1002;__ATOMIC_RELAXED;0;__ATOMIC_CONSUME;1;__ATOMIC_ACQUIRE;2;__ATOMIC_RELEASE;3;__ATOMIC_ACQ_REL;4;__ATOMIC_SEQ_CST;5;__OPENCL_MEMORY_SCOPE_WORK_ITEM;0;__OPENCL_MEMORY_SCOPE_WORK_GROUP;1;__OPENCL_MEMORY_SCOPE_DEVICE;2;__OPENCL_MEMORY_SCOPE_ALL_SVM_DEVICES;3;__OPENCL_MEMORY_SCOPE_SUB_GROUP;4;__PRAGMA_REDEFINE_EXTNAME;1;__VERSION__;"Apple LLVM 12.0.0 (clang-1200.0.31.1)";__OBJC_BOOL_IS_BOOL;0;__CONSTANT_CFSTRINGS__;1;__block;__attribute__((__blocks__(byref)));__BLOCKS__;1;__ORDER_LITTLE_ENDIAN__;1234;__ORDER_BIG_ENDIAN__;4321;__ORDER_PDP_ENDIAN__;3412;__BYTE_ORDER__;__ORDER_LITTLE_ENDIAN__;__LITTLE_ENDIAN__;1;_LP64;1;__LP64__;1;__CHAR_BIT__;8;__SCHAR_MAX__;127;__SHRT_MAX__;32767;__INT_MAX__;2147483647;__LONG_MAX__;9223372036854775807L;__LONG_LONG_MAX__;9223372036854775807LL;__WCHAR_MAX__;2147483647;__WINT_MAX__;2147483647;__INTMAX_MAX__;9223372036854775807L;__SIZE_MAX__;18446744073709551615UL;__UINTMAX_MAX__;18446744073709551615UL;__PTRDIFF_MAX__;9223372036854775807L;__INTPTR_MAX__;9223372036854775807L;__UINTPTR_MAX__;18446744073709551615UL;__SIZEOF_DOUBLE__;8;__SIZEOF_FLOAT__;4;__SIZEOF_INT__;4;__SIZEOF_LONG__;8;__SIZEOF_LONG_DOUBLE__;16;__SIZEOF_LONG_LONG__;8;__SIZEOF_POINTER__;8;__SIZEOF_SHORT__;2;__SIZEOF_PTRDIFF_T__;8;__SIZEOF_SIZE_T__;8;__SIZEOF_WCHAR_T__;4;__SIZEOF_WINT_T__;4;__SIZEOF_INT128__;16;__INTMAX_TYPE__;long int;__INTMAX_FMTd__;"ld";__INTMAX_FMTi__;"li";__INTMAX_C_SUFFIX__;L;__UINTMAX_TYPE__;long unsigned int;__UINTMAX_FMTo__;"lo";__UINTMAX_FMTu__;"lu";__UINTMAX_FMTx__;"lx";__UINTMAX_FMTX__;"lX";__UINTMAX_C_SUFFIX__;UL;__INTMAX_WIDTH__;64;__PTRDIFF_TYPE__;long int;__PTRDIFF_FMTd__;"ld";__PTRDIFF_FMTi__;"li";__PTRDIFF_WIDTH__;64;__INTPTR_TYPE__;long int;__INTPTR_FMTd__;"ld";__INTPTR_FMTi__;"li";__INTPTR_WIDTH__;64;__SIZE_TYPE__;long unsigned int;__SIZE_FMTo__;"lo";__SIZE_FMTu__;"lu";__SIZE_FMTx__;"lx";__SIZE_FMTX__;"lX";__SIZE_WIDTH__;64;__WCHAR_TYPE__;int;__WCHAR_WIDTH__;32;__WINT_TYPE__;int;__WINT_WIDTH__;32;__SIG_ATOMIC_WIDTH__;32;__SIG_ATOMIC_MAX__;2147483647;__CHAR16_TYPE__;unsigned short;__CHAR32_TYPE__;unsigned int;__UINTMAX_WIDTH__;64;__UINTPTR_TYPE__;long unsigned int;__UINTPTR_FMTo__;"lo";__UINTPTR_FMTu__;"lu";__UINTPTR_FMTx__;"lx";__UINTPTR_FMTX__;"lX";__UINTPTR_WIDTH__;64;__FLT16_DENORM_MIN__;5.9604644775390625e-8F16;__FLT16_HAS_DENORM__;1;__FLT16_DIG__;3;__FLT16_DECIMAL_DIG__;5;__FLT16_EPSILON__;9.765625e-4F16;__FLT16_HAS_INFINITY__;1;__FLT16_HAS_QUIET_NAN__;1;__FLT16_MANT_DIG__;11;__FLT16_MAX_10_EXP__;4;__FLT16_MAX_EXP__;16;__FLT16_MAX__;6.5504e+4F16;__FLT16_MIN_10_EXP__;(-4);__FLT16_MIN_EXP__;(-13);__FLT16_MIN__;6.103515625e-5F16;__FLT_DENORM_MIN__;1.40129846e-45F;__FLT_HAS_DENORM__;1;__FLT_DIG__;6;__FLT_DECIMAL_DIG__;9;__FLT_EPSILON__;1.19209290e-7F;__FLT_HAS_INFINITY__;1;__FLT_HAS_QUIET_NAN__;1;__FLT_MANT_DIG__;24;__FLT_MAX_10_EXP__;38;__FLT_MAX_EXP__;128;__FLT_MAX__;3.40282347e+38F;__FLT_MIN_10_EXP__;(-37);__FLT_MIN_EXP__;(-125);__FLT_MIN__;1.17549435e-38F;__DBL_DENORM_MIN__;4.9406564584124654e-324;__DBL_HAS_DENORM__;1;__DBL_DIG__;15;__DBL_DECIMAL_DIG__;17;__DBL_EPSILON__;2.2204460492503131e-16;__DBL_HAS_INFINITY__;1;__DBL_HAS_QUIET_NAN__;1;__DBL_MANT_DIG__;53;__DBL_MAX_10_EXP__;308;__DBL_MAX_EXP__;1024;__DBL_MAX__;1.7976931348623157e+308;__DBL_MIN_10_EXP__;(-307);__DBL_MIN_EXP__;(-1021);__DBL_MIN__;2.2250738585072014e-308;__LDBL_DENORM_MIN__;3.64519953188247460253e-4951L;__LDBL_HAS_DENORM__;1;__LDBL_DIG__;18;__LDBL_DECIMAL_DIG__;21;__LDBL_EPSILON__;1.08420217248550443401e-19L;__LDBL_HAS_INFINITY__;1;__LDBL_HAS_QUIET_NAN__;1;__LDBL_MANT_DIG__;64;__LDBL_MAX_10_EXP__;4932;__LDBL_MAX_EXP__;16384;__LDBL_MAX__;1.18973149535723176502e+4932L;__LDBL_MIN_10_EXP__;(-4931);__LDBL_MIN_EXP__;(-16381);__LDBL_MIN__;3.36210314311209350626e-4932L;__POINTER_WIDTH__;64;__BIGGEST_ALIGNMENT__;16;__INT8_TYPE__;signed char;__INT8_FMTd__;"hhd";__INT8_FMTi__;"hhi";__INT8_C_SUFFIX__; ;__INT16_TYPE__;short;__INT16_FMTd__;"hd";__INT16_FMTi__;"hi";__INT16_C_SUFFIX__; ;__INT32_TYPE__;int;__INT32_FMTd__;"d";__INT32_FMTi__;"i";__INT32_C_SUFFIX__; ;__INT64_TYPE__;long long int;__INT64_FMTd__;"lld";__INT64_FMTi__;"lli";__INT64_C_SUFFIX__;LL;__UINT8_TYPE__;unsigned char;__UINT8_FMTo__;"hho";__UINT8_FMTu__;"hhu";__UINT8_FMTx__;"hhx";__UINT8_FMTX__;"hhX";__UINT8_C_SUFFIX__; ;__UINT8_MAX__;255;__INT8_MAX__;127;__UINT16_TYPE__;unsigned short;__UINT16_FMTo__;"ho";__UINT16_FMTu__;"hu";__UINT16_FMTx__;"hx";__UINT16_FMTX__;"hX";__UINT16_C_SUFFIX__; ;__UINT16_MAX__;65535;__INT16_MAX__;32767;__UINT32_TYPE__;unsigned int;__UINT32_FMTo__;"o";__UINT32_FMTu__;"u";__UINT32_FMTx__;"x";__UINT32_FMTX__;"X";__UINT32_C_SUFFIX__;U;__UINT32_MAX__;4294967295U;__INT32_MAX__;2147483647;__UINT64_TYPE__;long long unsigned int;__UINT64_FMTo__;"llo";__UINT64_FMTu__;"llu";__UINT64_FMTx__;"llx";__UINT64_FMTX__;"llX";__UINT64_C_SUFFIX__;ULL;__UINT64_MAX__;18446744073709551615ULL;__INT64_MAX__;9223372036854775807LL;__INT_LEAST8_TYPE__;signed char;__INT_LEAST8_MAX__;127;__INT_LEAST8_FMTd__;"hhd";__INT_LEAST8_FMTi__;"hhi";__UINT_LEAST8_TYPE__;unsigned char;__UINT_LEAST8_MAX__;255;__UINT_LEAST8_FMTo__;"hho";__UINT_LEAST8_FMTu__;"hhu";__UINT_LEAST8_FMTx__;"hhx";__UINT_LEAST8_FMTX__;"hhX";__INT_LEAST16_TYPE__;short;__INT_LEAST16_MAX__;32767;__INT_LEAST16_FMTd__;"hd";__INT_LEAST16_FMTi__;"hi";__UINT_LEAST16_TYPE__;unsigned short;__UINT_LEAST16_MAX__;65535;__UINT_LEAST16_FMTo__;"ho";__UINT_LEAST16_FMTu__;"hu";__UINT_LEAST16_FMTx__;"hx";__UINT_LEAST16_FMTX__;"hX";__INT_LEAST32_TYPE__;int;__INT_LEAST32_MAX__;2147483647;__INT_LEAST32_FMTd__;"d";__INT_LEAST32_FMTi__;"i";__UINT_LEAST32_TYPE__;unsigned int;__UINT_LEAST32_MAX__;4294967295U;__UINT_LEAST32_FMTo__;"o";__UINT_LEAST32_FMTu__;"u";__UINT_LEAST32_FMTx__;"x";__UINT_LEAST32_FMTX__;"X";__INT_LEAST64_TYPE__;long long int;__INT_LEAST64_MAX__;9223372036854775807LL;__INT_LEAST64_FMTd__;"lld";__INT_LEAST64_FMTi__;"lli";__UINT_LEAST64_TYPE__;long long unsigned int;__UINT_LEAST64_MAX__;18446744073709551615ULL;__UINT_LEAST64_FMTo__;"llo";__UINT_LEAST64_FMTu__;"llu";__UINT_LEAST64_FMTx__;"llx";__UINT_LEAST64_FMTX__;"llX";__INT_FAST8_TYPE__;signed char;__INT_FAST8_MAX__;127;__INT_FAST8_FMTd__;"hhd";__INT_FAST8_FMTi__;"hhi";__UINT_FAST8_TYPE__;unsigned char;__UINT_FAST8_MAX__;255;__UINT_FAST8_FMTo__;"hho";__UINT_FAST8_FMTu__;"hhu";__UINT_FAST8_FMTx__;"hhx";__UINT_FAST8_FMTX__;"hhX";__INT_FAST16_TYPE__;short;__INT_FAST16_MAX__;32767;__INT_FAST16_FMTd__;"hd";__INT_FAST16_FMTi__;"hi";__UINT_FAST16_TYPE__;unsigned short;__UINT_FAST16_MAX__;65535;__UINT_FAST16_FMTo__;"ho";__UINT_FAST16_FMTu__;"hu";__UINT_FAST16_FMTx__;"hx";__UINT_FAST16_FMTX__;"hX";__INT_FAST32_TYPE__;int;__INT_FAST32_MAX__;2147483647;__INT_FAST32_FMTd__;"d";__INT_FAST32_FMTi__;"i";__UINT_FAST32_TYPE__;unsigned int;__UINT_FAST32_MAX__;4294967295U;__UINT_FAST32_FMTo__;"o";__UINT_FAST32_FMTu__;"u";__UINT_FAST32_FMTx__;"x";__UINT_FAST32_FMTX__;"X";__INT_FAST64_TYPE__;long long int;__INT_FAST64_MAX__;9223372036854775807LL;__INT_FAST64_FMTd__;"lld";__INT_FAST64_FMTi__;"lli";__UINT_FAST64_TYPE__;long long unsigned int;__UINT_FAST64_MAX__;18446744073709551615ULL;__UINT_FAST64_FMTo__;"llo";__UINT_FAST64_FMTu__;"llu";__UINT_FAST64_FMTx__;"llx";__UINT_FAST64_FMTX__;"llX";__USER_LABEL_PREFIX__;_;__FINITE_MATH_ONLY__;0;__GNUC_STDC_INLINE__;1;__GCC_ATOMIC_TEST_AND_SET_TRUEVAL;1;__CLANG_ATOMIC_BOOL_LOCK_FREE;2;__CLANG_ATOMIC_CHAR_LOCK_FREE;2;__CLANG_ATOMIC_CHAR16_T_LOCK_FREE;2;__CLANG_ATOMIC_CHAR32_T_LOCK_FREE;2;__CLANG_ATOMIC_WCHAR_T_LOCK_FREE;2;__CLANG_ATOMIC_SHORT_LOCK_FREE;2;__CLANG_ATOMIC_INT_LOCK_FREE;2;__CLANG_ATOMIC_LONG_LOCK_FREE;2;__CLANG_ATOMIC_LLONG_LOCK_FREE;2;__CLANG_ATOMIC_POINTER_LOCK_FREE;2;__GCC_ATOMIC_BOOL_LOCK_FREE;2;__GCC_ATOMIC_CHAR_LOCK_FREE;2;__GCC_ATOMIC_CHAR16_T_LOCK_FREE;2;__GCC_ATOMIC_CHAR32_T_LOCK_FREE;2;__GCC_ATOMIC_WCHAR_T_LOCK_FREE;2;__GCC_ATOMIC_SHORT_LOCK_FREE;2;__GCC_ATOMIC_INT_LOCK_FREE;2;__GCC_ATOMIC_LONG_LOCK_FREE;2;__GCC_ATOMIC_LLONG_LOCK_FREE;2;__GCC_ATOMIC_POINTER_LOCK_FREE;2;__NO_INLINE__;1;__PIC__;2;__pic__;2;__FLT_EVAL_METHOD__;0;__FLT_RADIX__;2;__DECIMAL_DIG__;__LDBL_DECIMAL_DIG__;__SSP__;1;__nonnull;_Nonnull;__null_unspecified;_Null_unspecified;__nullable;_Nullable;__GCC_ASM_FLAG_OUTPUTS__;1;__code_model_small_;1;__amd64__;1;__amd64;1;__x86_64;1;__x86_64__;1;__SEG_GS;1;__SEG_FS;1;__seg_gs;__attribute__((address_space(256)));__seg_fs;__attribute__((address_space(257)));__core2;1;__core2__;1;__tune_core2__;1;__REGISTER_PREFIX__; ;__NO_MATH_INLINES;1;__FXSR__;1;__SSE4_1__;1;__SSSE3__;1;__SSE3__;1;__SSE2__;1;__SSE2_MATH__;1;__SSE__;1;__SSE_MATH__;1;__MMX__;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_16;1;__APPLE_CC__;6000;__APPLE__;1;__STDC_NO_THREADS__;1;__apple_build_version__;12000031;__weak;__attribute__((objc_gc(weak)));__strong; ;__unsafe_unretained; ;__DYNAMIC__;1;__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__;120000;__MACH__;1;__STDC__;1;__STDC_HOSTED__;1;__STDC_VERSION__;201112L;__STDC_UTF_16__;1;__STDC_UTF_32__;1;__llvm__;1;__clang__;1;__clang_major__;12;__clang_minor__;0;__clang_patchlevel__;0;__clang_version__;"12.0.0 (clang-1200.0.31.1)";__GNUC__;4;__GNUC_MINOR__;2;__GNUC_PATCHLEVEL__;1;__GXX_ABI_VERSION;1002;__GNUG__;4;__GXX_WEAK__;1;__ATOMIC_RELAXED;0;__ATOMIC_CONSUME;1;__ATOMIC_ACQUIRE;2;__ATOMIC_RELEASE;3;__ATOMIC_ACQ_REL;4;__ATOMIC_SEQ_CST;5;__OPENCL_MEMORY_SCOPE_WORK_ITEM;0;__OPENCL_MEMORY_SCOPE_WORK_GROUP;1;__OPENCL_MEMORY_SCOPE_DEVICE;2;__OPENCL_MEMORY_SCOPE_ALL_SVM_DEVICES;3;__OPENCL_MEMORY_SCOPE_SUB_GROUP;4;__PRAGMA_REDEFINE_EXTNAME;1;__VERSION__;"Apple LLVM 12.0.0 (clang-1200.0.31.1)";__OBJC_BOOL_IS_BOOL;0;__cpp_rtti;199711L;__cpp_exceptions;199711L;__cpp_threadsafe_static_init;200806L;__cpp_impl_destroying_delete;201806L;__CONSTANT_CFSTRINGS__;1;__block;__attribute__((__blocks__(byref)));__BLOCKS__;1;__EXCEPTIONS;1;__GXX_RTTI;1;__DEPRECATED;1;__private_extern__;extern;__ORDER_LITTLE_ENDIAN__;1234;__ORDER_BIG_ENDIAN__;4321;__ORDER_PDP_ENDIAN__;3412;__BYTE_ORDER__;__ORDER_LITTLE_ENDIAN__;__LITTLE_ENDIAN__;1;_LP64;1;__LP64__;1;__CHAR_BIT__;8;__SCHAR_MAX__;127;__SHRT_MAX__;32767;__INT_MAX__;2147483647;__LONG_MAX__;9223372036854775807L;__LONG_LONG_MAX__;9223372036854775807LL;__WCHAR_MAX__;2147483647;__WINT_MAX__;2147483647;__INTMAX_MAX__;9223372036854775807L;__SIZE_MAX__;18446744073709551615UL;__UINTMAX_MAX__;18446744073709551615UL;__PTRDIFF_MAX__;9223372036854775807L;__INTPTR_MAX__;9223372036854775807L;__UINTPTR_MAX__;18446744073709551615UL;__SIZEOF_DOUBLE__;8;__SIZEOF_FLOAT__;4;__SIZEOF_INT__;4;__SIZEOF_LONG__;8;__SIZEOF_LONG_DOUBLE__;16;__SIZEOF_LONG_LONG__;8;__SIZEOF_POINTER__;8;__SIZEOF_SHORT__;2;__SIZEOF_PTRDIFF_T__;8;__SIZEOF_SIZE_T__;8;__SIZEOF_WCHAR_T__;4;__SIZEOF_WINT_T__;4;__SIZEOF_INT128__;16;__INTMAX_TYPE__;long int;__INTMAX_FMTd__;"ld";__INTMAX_FMTi__;"li";__INTMAX_C_SUFFIX__;L;__UINTMAX_TYPE__;long unsigned int;__UINTMAX_FMTo__;"lo";__UINTMAX_FMTu__;"lu";__UINTMAX_FMTx__;"lx";__UINTMAX_FMTX__;"lX";__UINTMAX_C_SUFFIX__;UL;__INTMAX_WIDTH__;64;__PTRDIFF_TYPE__;long int;__PTRDIFF_FMTd__;"ld";__PTRDIFF_FMTi__;"li";__PTRDIFF_WIDTH__;64;__INTPTR_TYPE__;long int;__INTPTR_FMTd__;"ld";__INTPTR_FMTi__;"li";__INTPTR_WIDTH__;64;__SIZE_TYPE__;long unsigned int;__SIZE_FMTo__;"lo";__SIZE_FMTu__;"lu";__SIZE_FMTx__;"lx";__SIZE_FMTX__;"lX";__SIZE_WIDTH__;64;__WCHAR_TYPE__;int;__WCHAR_WIDTH__;32;__WINT_TYPE__;int;__WINT_WIDTH__;32;__SIG_ATOMIC_WIDTH__;32;__SIG_ATOMIC_MAX__;2147483647;__CHAR16_TYPE__;unsigned short;__CHAR32_TYPE__;unsigned int;__UINTMAX_WIDTH__;64;__UINTPTR_TYPE__;long unsigned int;__UINTPTR_FMTo__;"lo";__UINTPTR_FMTu__;"lu";__UINTPTR_FMTx__;"lx";__UINTPTR_FMTX__;"lX";__UINTPTR_WIDTH__;64;__FLT16_DENORM_MIN__;5.9604644775390625e-8F16;__FLT16_HAS_DENORM__;1;__FLT16_DIG__;3;__FLT16_DECIMAL_DIG__;5;__FLT16_EPSILON__;9.765625e-4F16;__FLT16_HAS_INFINITY__;1;__FLT16_HAS_QUIET_NAN__;1;__FLT16_MANT_DIG__;11;__FLT16_MAX_10_EXP__;4;__FLT16_MAX_EXP__;16;__FLT16_MAX__;6.5504e+4F16;__FLT16_MIN_10_EXP__;(-4);__FLT16_MIN_EXP__;(-13);__FLT16_MIN__;6.103515625e-5F16;__FLT_DENORM_MIN__;1.40129846e-45F;__FLT_HAS_DENORM__;1;__FLT_DIG__;6;__FLT_DECIMAL_DIG__;9;__FLT_EPSILON__;1.19209290e-7F;__FLT_HAS_INFINITY__;1;__FLT_HAS_QUIET_NAN__;1;__FLT_MANT_DIG__;24;__FLT_MAX_10_EXP__;38;__FLT_MAX_EXP__;128;__FLT_MAX__;3.40282347e+38F;__FLT_MIN_10_EXP__;(-37);__FLT_MIN_EXP__;(-125);__FLT_MIN__;1.17549435e-38F;__DBL_DENORM_MIN__;4.9406564584124654e-324;__DBL_HAS_DENORM__;1;__DBL_DIG__;15;__DBL_DECIMAL_DIG__;17;__DBL_EPSILON__;2.2204460492503131e-16;__DBL_HAS_INFINITY__;1;__DBL_HAS_QUIET_NAN__;1;__DBL_MANT_DIG__;53;__DBL_MAX_10_EXP__;308;__DBL_MAX_EXP__;1024;__DBL_MAX__;1.7976931348623157e+308;__DBL_MIN_10_EXP__;(-307);__DBL_MIN_EXP__;(-1021);__DBL_MIN__;2.2250738585072014e-308;__LDBL_DENORM_MIN__;3.64519953188247460253e-4951L;__LDBL_HAS_DENORM__;1;__LDBL_DIG__;18;__LDBL_DECIMAL_DIG__;21;__LDBL_EPSILON__;1.08420217248550443401e-19L;__LDBL_HAS_INFINITY__;1;__LDBL_HAS_QUIET_NAN__;1;__LDBL_MANT_DIG__;64;__LDBL_MAX_10_EXP__;4932;__LDBL_MAX_EXP__;16384;__LDBL_MAX__;1.18973149535723176502e+4932L;__LDBL_MIN_10_EXP__;(-4931);__LDBL_MIN_EXP__;(-16381);__LDBL_MIN__;3.36210314311209350626e-4932L;__POINTER_WIDTH__;64;__BIGGEST_ALIGNMENT__;16;__INT8_TYPE__;signed char;__INT8_FMTd__;"hhd";__INT8_FMTi__;"hhi";__INT8_C_SUFFIX__; ;__INT16_TYPE__;short;__INT16_FMTd__;"hd";__INT16_FMTi__;"hi";__INT16_C_SUFFIX__; ;__INT32_TYPE__;int;__INT32_FMTd__;"d";__INT32_FMTi__;"i";__INT32_C_SUFFIX__; ;__INT64_TYPE__;long long int;__INT64_FMTd__;"lld";__INT64_FMTi__;"lli";__INT64_C_SUFFIX__;LL;__UINT8_TYPE__;unsigned char;__UINT8_FMTo__;"hho";__UINT8_FMTu__;"hhu";__UINT8_FMTx__;"hhx";__UINT8_FMTX__;"hhX";__UINT8_C_SUFFIX__; ;__UINT8_MAX__;255;__INT8_MAX__;127;__UINT16_TYPE__;unsigned short;__UINT16_FMTo__;"ho";__UINT16_FMTu__;"hu";__UINT16_FMTx__;"hx";__UINT16_FMTX__;"hX";__UINT16_C_SUFFIX__; ;__UINT16_MAX__;65535;__INT16_MAX__;32767;__UINT32_TYPE__;unsigned int;__UINT32_FMTo__;"o";__UINT32_FMTu__;"u";__UINT32_FMTx__;"x";__UINT32_FMTX__;"X";__UINT32_C_SUFFIX__;U;__UINT32_MAX__;4294967295U;__INT32_MAX__;2147483647;__UINT64_TYPE__;long long unsigned int;__UINT64_FMTo__;"llo";__UINT64_FMTu__;"llu";__UINT64_FMTx__;"llx";__UINT64_FMTX__;"llX";__UINT64_C_SUFFIX__;ULL;__UINT64_MAX__;18446744073709551615ULL;__INT64_MAX__;9223372036854775807LL;__INT_LEAST8_TYPE__;signed char;__INT_LEAST8_MAX__;127;__INT_LEAST8_FMTd__;"hhd";__INT_LEAST8_FMTi__;"hhi";__UINT_LEAST8_TYPE__;unsigned char;__UINT_LEAST8_MAX__;255;__UINT_LEAST8_FMTo__;"hho";__UINT_LEAST8_FMTu__;"hhu";__UINT_LEAST8_FMTx__;"hhx";__UINT_LEAST8_FMTX__;"hhX";__INT_LEAST16_TYPE__;short;__INT_LEAST16_MAX__;32767;__INT_LEAST16_FMTd__;"hd";__INT_LEAST16_FMTi__;"hi";__UINT_LEAST16_TYPE__;unsigned short;__UINT_LEAST16_MAX__;65535;__UINT_LEAST16_FMTo__;"ho";__UINT_LEAST16_FMTu__;"hu";__UINT_LEAST16_FMTx__;"hx";__UINT_LEAST16_FMTX__;"hX";__INT_LEAST32_TYPE__;int;__INT_LEAST32_MAX__;2147483647;__INT_LEAST32_FMTd__;"d";__INT_LEAST32_FMTi__;"i";__UINT_LEAST32_TYPE__;unsigned int;__UINT_LEAST32_MAX__;4294967295U;__UINT_LEAST32_FMTo__;"o";__UINT_LEAST32_FMTu__;"u";__UINT_LEAST32_FMTx__;"x";__UINT_LEAST32_FMTX__;"X";__INT_LEAST64_TYPE__;long long int;__INT_LEAST64_MAX__;9223372036854775807LL;__INT_LEAST64_FMTd__;"lld";__INT_LEAST64_FMTi__;"lli";__UINT_LEAST64_TYPE__;long long unsigned int;__UINT_LEAST64_MAX__;18446744073709551615ULL;__UINT_LEAST64_FMTo__;"llo";__UINT_LEAST64_FMTu__;"llu";__UINT_LEAST64_FMTx__;"llx";__UINT_LEAST64_FMTX__;"llX";__INT_FAST8_TYPE__;signed char;__INT_FAST8_MAX__;127;__INT_FAST8_FMTd__;"hhd";__INT_FAST8_FMTi__;"hhi";__UINT_FAST8_TYPE__;unsigned char;__UINT_FAST8_MAX__;255;__UINT_FAST8_FMTo__;"hho";__UINT_FAST8_FMTu__;"hhu";__UINT_FAST8_FMTx__;"hhx";__UINT_FAST8_FMTX__;"hhX";__INT_FAST16_TYPE__;short;__INT_FAST16_MAX__;32767;__INT_FAST16_FMTd__;"hd";__INT_FAST16_FMTi__;"hi";__UINT_FAST16_TYPE__;unsigned short;__UINT_FAST16_MAX__;65535;__UINT_FAST16_FMTo__;"ho";__UINT_FAST16_FMTu__;"hu";__UINT_FAST16_FMTx__;"hx";__UINT_FAST16_FMTX__;"hX";__INT_FAST32_TYPE__;int;__INT_FAST32_MAX__;2147483647;__INT_FAST32_FMTd__;"d";__INT_FAST32_FMTi__;"i";__UINT_FAST32_TYPE__;unsigned int;__UINT_FAST32_MAX__;4294967295U;__UINT_FAST32_FMTo__;"o";__UINT_FAST32_FMTu__;"u";__UINT_FAST32_FMTx__;"x";__UINT_FAST32_FMTX__;"X";__INT_FAST64_TYPE__;long long int;__INT_FAST64_MAX__;9223372036854775807LL;__INT_FAST64_FMTd__;"lld";__INT_FAST64_FMTi__;"lli";__UINT_FAST64_TYPE__;long long unsigned int;__UINT_FAST64_MAX__;18446744073709551615ULL;__UINT_FAST64_FMTo__;"llo";__UINT_FAST64_FMTu__;"llu";__UINT_FAST64_FMTx__;"llx";__UINT_FAST64_FMTX__;"llX";__USER_LABEL_PREFIX__;_;__FINITE_MATH_ONLY__;0;__GNUC_GNU_INLINE__;1;__GCC_ATOMIC_TEST_AND_SET_TRUEVAL;1;__CLANG_ATOMIC_BOOL_LOCK_FREE;2;__CLANG_ATOMIC_CHAR_LOCK_FREE;2;__CLANG_ATOMIC_CHAR16_T_LOCK_FREE;2;__CLANG_ATOMIC_CHAR32_T_LOCK_FREE;2;__CLANG_ATOMIC_WCHAR_T_LOCK_FREE;2;__CLANG_ATOMIC_SHORT_LOCK_FREE;2;__CLANG_ATOMIC_INT_LOCK_FREE;2;__CLANG_ATOMIC_LONG_LOCK_FREE;2;__CLANG_ATOMIC_LLONG_LOCK_FREE;2;__CLANG_ATOMIC_POINTER_LOCK_FREE;2;__GCC_ATOMIC_BOOL_LOCK_FREE;2;__GCC_ATOMIC_CHAR_LOCK_FREE;2;__GCC_ATOMIC_CHAR16_T_LOCK_FREE;2;__GCC_ATOMIC_CHAR32_T_LOCK_FREE;2;__GCC_ATOMIC_WCHAR_T_LOCK_FREE;2;__GCC_ATOMIC_SHORT_LOCK_FREE;2;__GCC_ATOMIC_INT_LOCK_FREE;2;__GCC_ATOMIC_LONG_LOCK_FREE;2;__GCC_ATOMIC_LLONG_LOCK_FREE;2;__GCC_ATOMIC_POINTER_LOCK_FREE;2;__NO_INLINE__;1;__PIC__;2;__pic__;2;__FLT_EVAL_METHOD__;0;__FLT_RADIX__;2;__DECIMAL_DIG__;__LDBL_DECIMAL_DIG__;__SSP__;1;__nonnull;_Nonnull;__null_unspecified;_Null_unspecified;__nullable;_Nullable;__GLIBCXX_TYPE_INT_N_0;__int128;__GLIBCXX_BITSIZE_INT_N_0;128;__GCC_ASM_FLAG_OUTPUTS__;1;__code_model_small_;1;__amd64__;1;__amd64;1;__x86_64;1;__x86_64__;1;__SEG_GS;1;__SEG_FS;1;__seg_gs;__attribute__((address_space(256)));__seg_fs;__attribute__((address_space(257)));__core2;1;__core2__;1;__tune_core2__;1;__REGISTER_PREFIX__; ;__NO_MATH_INLINES;1;__FXSR__;1;__SSE4_1__;1;__SSSE3__;1;__SSE3__;1;__SSE2__;1;__SSE2_MATH__;1;__SSE__;1;__SSE_MATH__;1;__MMX__;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_16;1;__APPLE_CC__;6000;__APPLE__;1;__STDC_NO_THREADS__;1;__apple_build_version__;12000031;__weak;__attribute__((objc_gc(weak)));__strong; ;__unsafe_unretained; ;__DYNAMIC__;1;__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__;120000;__MACH__;1;__STDC__;1;__STDC_HOSTED__;1;__cplusplus;199711L;__STDCPP_DEFAULT_NEW_ALIGNMENT__;16UL;__STDC_UTF_16__;1;__STDC_UTF_32__;1 +//CXX compiler system include directories +CMAKE_EXTRA_GENERATOR_CXX_SYSTEM_INCLUDE_DIRS:INTERNAL=/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1;/usr/local/include;/Library/Developer/CommandLineTools/usr/lib/clang/12.0.0/include;/Library/Developer/CommandLineTools/usr/include;/System/Library/Frameworks;/Library/Frameworks +//C compiler system defined macros +CMAKE_EXTRA_GENERATOR_C_SYSTEM_DEFINED_MACROS:INTERNAL=__llvm__;1;__clang__;1;__clang_major__;12;__clang_minor__;0;__clang_patchlevel__;0;__clang_version__;"12.0.0 (clang-1200.0.31.1)";__GNUC__;4;__GNUC_MINOR__;2;__GNUC_PATCHLEVEL__;1;__GXX_ABI_VERSION;1002;__ATOMIC_RELAXED;0;__ATOMIC_CONSUME;1;__ATOMIC_ACQUIRE;2;__ATOMIC_RELEASE;3;__ATOMIC_ACQ_REL;4;__ATOMIC_SEQ_CST;5;__OPENCL_MEMORY_SCOPE_WORK_ITEM;0;__OPENCL_MEMORY_SCOPE_WORK_GROUP;1;__OPENCL_MEMORY_SCOPE_DEVICE;2;__OPENCL_MEMORY_SCOPE_ALL_SVM_DEVICES;3;__OPENCL_MEMORY_SCOPE_SUB_GROUP;4;__PRAGMA_REDEFINE_EXTNAME;1;__VERSION__;"Apple LLVM 12.0.0 (clang-1200.0.31.1)";__OBJC_BOOL_IS_BOOL;0;__CONSTANT_CFSTRINGS__;1;__block;__attribute__((__blocks__(byref)));__BLOCKS__;1;__ORDER_LITTLE_ENDIAN__;1234;__ORDER_BIG_ENDIAN__;4321;__ORDER_PDP_ENDIAN__;3412;__BYTE_ORDER__;__ORDER_LITTLE_ENDIAN__;__LITTLE_ENDIAN__;1;_LP64;1;__LP64__;1;__CHAR_BIT__;8;__SCHAR_MAX__;127;__SHRT_MAX__;32767;__INT_MAX__;2147483647;__LONG_MAX__;9223372036854775807L;__LONG_LONG_MAX__;9223372036854775807LL;__WCHAR_MAX__;2147483647;__WINT_MAX__;2147483647;__INTMAX_MAX__;9223372036854775807L;__SIZE_MAX__;18446744073709551615UL;__UINTMAX_MAX__;18446744073709551615UL;__PTRDIFF_MAX__;9223372036854775807L;__INTPTR_MAX__;9223372036854775807L;__UINTPTR_MAX__;18446744073709551615UL;__SIZEOF_DOUBLE__;8;__SIZEOF_FLOAT__;4;__SIZEOF_INT__;4;__SIZEOF_LONG__;8;__SIZEOF_LONG_DOUBLE__;16;__SIZEOF_LONG_LONG__;8;__SIZEOF_POINTER__;8;__SIZEOF_SHORT__;2;__SIZEOF_PTRDIFF_T__;8;__SIZEOF_SIZE_T__;8;__SIZEOF_WCHAR_T__;4;__SIZEOF_WINT_T__;4;__SIZEOF_INT128__;16;__INTMAX_TYPE__;long int;__INTMAX_FMTd__;"ld";__INTMAX_FMTi__;"li";__INTMAX_C_SUFFIX__;L;__UINTMAX_TYPE__;long unsigned int;__UINTMAX_FMTo__;"lo";__UINTMAX_FMTu__;"lu";__UINTMAX_FMTx__;"lx";__UINTMAX_FMTX__;"lX";__UINTMAX_C_SUFFIX__;UL;__INTMAX_WIDTH__;64;__PTRDIFF_TYPE__;long int;__PTRDIFF_FMTd__;"ld";__PTRDIFF_FMTi__;"li";__PTRDIFF_WIDTH__;64;__INTPTR_TYPE__;long int;__INTPTR_FMTd__;"ld";__INTPTR_FMTi__;"li";__INTPTR_WIDTH__;64;__SIZE_TYPE__;long unsigned int;__SIZE_FMTo__;"lo";__SIZE_FMTu__;"lu";__SIZE_FMTx__;"lx";__SIZE_FMTX__;"lX";__SIZE_WIDTH__;64;__WCHAR_TYPE__;int;__WCHAR_WIDTH__;32;__WINT_TYPE__;int;__WINT_WIDTH__;32;__SIG_ATOMIC_WIDTH__;32;__SIG_ATOMIC_MAX__;2147483647;__CHAR16_TYPE__;unsigned short;__CHAR32_TYPE__;unsigned int;__UINTMAX_WIDTH__;64;__UINTPTR_TYPE__;long unsigned int;__UINTPTR_FMTo__;"lo";__UINTPTR_FMTu__;"lu";__UINTPTR_FMTx__;"lx";__UINTPTR_FMTX__;"lX";__UINTPTR_WIDTH__;64;__FLT16_DENORM_MIN__;5.9604644775390625e-8F16;__FLT16_HAS_DENORM__;1;__FLT16_DIG__;3;__FLT16_DECIMAL_DIG__;5;__FLT16_EPSILON__;9.765625e-4F16;__FLT16_HAS_INFINITY__;1;__FLT16_HAS_QUIET_NAN__;1;__FLT16_MANT_DIG__;11;__FLT16_MAX_10_EXP__;4;__FLT16_MAX_EXP__;16;__FLT16_MAX__;6.5504e+4F16;__FLT16_MIN_10_EXP__;(-4);__FLT16_MIN_EXP__;(-13);__FLT16_MIN__;6.103515625e-5F16;__FLT_DENORM_MIN__;1.40129846e-45F;__FLT_HAS_DENORM__;1;__FLT_DIG__;6;__FLT_DECIMAL_DIG__;9;__FLT_EPSILON__;1.19209290e-7F;__FLT_HAS_INFINITY__;1;__FLT_HAS_QUIET_NAN__;1;__FLT_MANT_DIG__;24;__FLT_MAX_10_EXP__;38;__FLT_MAX_EXP__;128;__FLT_MAX__;3.40282347e+38F;__FLT_MIN_10_EXP__;(-37);__FLT_MIN_EXP__;(-125);__FLT_MIN__;1.17549435e-38F;__DBL_DENORM_MIN__;4.9406564584124654e-324;__DBL_HAS_DENORM__;1;__DBL_DIG__;15;__DBL_DECIMAL_DIG__;17;__DBL_EPSILON__;2.2204460492503131e-16;__DBL_HAS_INFINITY__;1;__DBL_HAS_QUIET_NAN__;1;__DBL_MANT_DIG__;53;__DBL_MAX_10_EXP__;308;__DBL_MAX_EXP__;1024;__DBL_MAX__;1.7976931348623157e+308;__DBL_MIN_10_EXP__;(-307);__DBL_MIN_EXP__;(-1021);__DBL_MIN__;2.2250738585072014e-308;__LDBL_DENORM_MIN__;3.64519953188247460253e-4951L;__LDBL_HAS_DENORM__;1;__LDBL_DIG__;18;__LDBL_DECIMAL_DIG__;21;__LDBL_EPSILON__;1.08420217248550443401e-19L;__LDBL_HAS_INFINITY__;1;__LDBL_HAS_QUIET_NAN__;1;__LDBL_MANT_DIG__;64;__LDBL_MAX_10_EXP__;4932;__LDBL_MAX_EXP__;16384;__LDBL_MAX__;1.18973149535723176502e+4932L;__LDBL_MIN_10_EXP__;(-4931);__LDBL_MIN_EXP__;(-16381);__LDBL_MIN__;3.36210314311209350626e-4932L;__POINTER_WIDTH__;64;__BIGGEST_ALIGNMENT__;16;__INT8_TYPE__;signed char;__INT8_FMTd__;"hhd";__INT8_FMTi__;"hhi";__INT8_C_SUFFIX__; ;__INT16_TYPE__;short;__INT16_FMTd__;"hd";__INT16_FMTi__;"hi";__INT16_C_SUFFIX__; ;__INT32_TYPE__;int;__INT32_FMTd__;"d";__INT32_FMTi__;"i";__INT32_C_SUFFIX__; ;__INT64_TYPE__;long long int;__INT64_FMTd__;"lld";__INT64_FMTi__;"lli";__INT64_C_SUFFIX__;LL;__UINT8_TYPE__;unsigned char;__UINT8_FMTo__;"hho";__UINT8_FMTu__;"hhu";__UINT8_FMTx__;"hhx";__UINT8_FMTX__;"hhX";__UINT8_C_SUFFIX__; ;__UINT8_MAX__;255;__INT8_MAX__;127;__UINT16_TYPE__;unsigned short;__UINT16_FMTo__;"ho";__UINT16_FMTu__;"hu";__UINT16_FMTx__;"hx";__UINT16_FMTX__;"hX";__UINT16_C_SUFFIX__; ;__UINT16_MAX__;65535;__INT16_MAX__;32767;__UINT32_TYPE__;unsigned int;__UINT32_FMTo__;"o";__UINT32_FMTu__;"u";__UINT32_FMTx__;"x";__UINT32_FMTX__;"X";__UINT32_C_SUFFIX__;U;__UINT32_MAX__;4294967295U;__INT32_MAX__;2147483647;__UINT64_TYPE__;long long unsigned int;__UINT64_FMTo__;"llo";__UINT64_FMTu__;"llu";__UINT64_FMTx__;"llx";__UINT64_FMTX__;"llX";__UINT64_C_SUFFIX__;ULL;__UINT64_MAX__;18446744073709551615ULL;__INT64_MAX__;9223372036854775807LL;__INT_LEAST8_TYPE__;signed char;__INT_LEAST8_MAX__;127;__INT_LEAST8_FMTd__;"hhd";__INT_LEAST8_FMTi__;"hhi";__UINT_LEAST8_TYPE__;unsigned char;__UINT_LEAST8_MAX__;255;__UINT_LEAST8_FMTo__;"hho";__UINT_LEAST8_FMTu__;"hhu";__UINT_LEAST8_FMTx__;"hhx";__UINT_LEAST8_FMTX__;"hhX";__INT_LEAST16_TYPE__;short;__INT_LEAST16_MAX__;32767;__INT_LEAST16_FMTd__;"hd";__INT_LEAST16_FMTi__;"hi";__UINT_LEAST16_TYPE__;unsigned short;__UINT_LEAST16_MAX__;65535;__UINT_LEAST16_FMTo__;"ho";__UINT_LEAST16_FMTu__;"hu";__UINT_LEAST16_FMTx__;"hx";__UINT_LEAST16_FMTX__;"hX";__INT_LEAST32_TYPE__;int;__INT_LEAST32_MAX__;2147483647;__INT_LEAST32_FMTd__;"d";__INT_LEAST32_FMTi__;"i";__UINT_LEAST32_TYPE__;unsigned int;__UINT_LEAST32_MAX__;4294967295U;__UINT_LEAST32_FMTo__;"o";__UINT_LEAST32_FMTu__;"u";__UINT_LEAST32_FMTx__;"x";__UINT_LEAST32_FMTX__;"X";__INT_LEAST64_TYPE__;long long int;__INT_LEAST64_MAX__;9223372036854775807LL;__INT_LEAST64_FMTd__;"lld";__INT_LEAST64_FMTi__;"lli";__UINT_LEAST64_TYPE__;long long unsigned int;__UINT_LEAST64_MAX__;18446744073709551615ULL;__UINT_LEAST64_FMTo__;"llo";__UINT_LEAST64_FMTu__;"llu";__UINT_LEAST64_FMTx__;"llx";__UINT_LEAST64_FMTX__;"llX";__INT_FAST8_TYPE__;signed char;__INT_FAST8_MAX__;127;__INT_FAST8_FMTd__;"hhd";__INT_FAST8_FMTi__;"hhi";__UINT_FAST8_TYPE__;unsigned char;__UINT_FAST8_MAX__;255;__UINT_FAST8_FMTo__;"hho";__UINT_FAST8_FMTu__;"hhu";__UINT_FAST8_FMTx__;"hhx";__UINT_FAST8_FMTX__;"hhX";__INT_FAST16_TYPE__;short;__INT_FAST16_MAX__;32767;__INT_FAST16_FMTd__;"hd";__INT_FAST16_FMTi__;"hi";__UINT_FAST16_TYPE__;unsigned short;__UINT_FAST16_MAX__;65535;__UINT_FAST16_FMTo__;"ho";__UINT_FAST16_FMTu__;"hu";__UINT_FAST16_FMTx__;"hx";__UINT_FAST16_FMTX__;"hX";__INT_FAST32_TYPE__;int;__INT_FAST32_MAX__;2147483647;__INT_FAST32_FMTd__;"d";__INT_FAST32_FMTi__;"i";__UINT_FAST32_TYPE__;unsigned int;__UINT_FAST32_MAX__;4294967295U;__UINT_FAST32_FMTo__;"o";__UINT_FAST32_FMTu__;"u";__UINT_FAST32_FMTx__;"x";__UINT_FAST32_FMTX__;"X";__INT_FAST64_TYPE__;long long int;__INT_FAST64_MAX__;9223372036854775807LL;__INT_FAST64_FMTd__;"lld";__INT_FAST64_FMTi__;"lli";__UINT_FAST64_TYPE__;long long unsigned int;__UINT_FAST64_MAX__;18446744073709551615ULL;__UINT_FAST64_FMTo__;"llo";__UINT_FAST64_FMTu__;"llu";__UINT_FAST64_FMTx__;"llx";__UINT_FAST64_FMTX__;"llX";__USER_LABEL_PREFIX__;_;__FINITE_MATH_ONLY__;0;__GNUC_STDC_INLINE__;1;__GCC_ATOMIC_TEST_AND_SET_TRUEVAL;1;__CLANG_ATOMIC_BOOL_LOCK_FREE;2;__CLANG_ATOMIC_CHAR_LOCK_FREE;2;__CLANG_ATOMIC_CHAR16_T_LOCK_FREE;2;__CLANG_ATOMIC_CHAR32_T_LOCK_FREE;2;__CLANG_ATOMIC_WCHAR_T_LOCK_FREE;2;__CLANG_ATOMIC_SHORT_LOCK_FREE;2;__CLANG_ATOMIC_INT_LOCK_FREE;2;__CLANG_ATOMIC_LONG_LOCK_FREE;2;__CLANG_ATOMIC_LLONG_LOCK_FREE;2;__CLANG_ATOMIC_POINTER_LOCK_FREE;2;__GCC_ATOMIC_BOOL_LOCK_FREE;2;__GCC_ATOMIC_CHAR_LOCK_FREE;2;__GCC_ATOMIC_CHAR16_T_LOCK_FREE;2;__GCC_ATOMIC_CHAR32_T_LOCK_FREE;2;__GCC_ATOMIC_WCHAR_T_LOCK_FREE;2;__GCC_ATOMIC_SHORT_LOCK_FREE;2;__GCC_ATOMIC_INT_LOCK_FREE;2;__GCC_ATOMIC_LONG_LOCK_FREE;2;__GCC_ATOMIC_LLONG_LOCK_FREE;2;__GCC_ATOMIC_POINTER_LOCK_FREE;2;__NO_INLINE__;1;__PIC__;2;__pic__;2;__FLT_EVAL_METHOD__;0;__FLT_RADIX__;2;__DECIMAL_DIG__;__LDBL_DECIMAL_DIG__;__SSP__;1;__nonnull;_Nonnull;__null_unspecified;_Null_unspecified;__nullable;_Nullable;__GCC_ASM_FLAG_OUTPUTS__;1;__code_model_small_;1;__amd64__;1;__amd64;1;__x86_64;1;__x86_64__;1;__SEG_GS;1;__SEG_FS;1;__seg_gs;__attribute__((address_space(256)));__seg_fs;__attribute__((address_space(257)));__core2;1;__core2__;1;__tune_core2__;1;__REGISTER_PREFIX__; ;__NO_MATH_INLINES;1;__FXSR__;1;__SSE4_1__;1;__SSSE3__;1;__SSE3__;1;__SSE2__;1;__SSE2_MATH__;1;__SSE__;1;__SSE_MATH__;1;__MMX__;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_16;1;__APPLE_CC__;6000;__APPLE__;1;__STDC_NO_THREADS__;1;__apple_build_version__;12000031;__weak;__attribute__((objc_gc(weak)));__strong; ;__unsafe_unretained; ;__DYNAMIC__;1;__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__;120000;__MACH__;1;__STDC__;1;__STDC_HOSTED__;1;__STDC_VERSION__;201112L;__STDC_UTF_16__;1;__STDC_UTF_32__;1 +//C compiler system include directories +CMAKE_EXTRA_GENERATOR_C_SYSTEM_INCLUDE_DIRS:INTERNAL=/usr/local/include;/Library/Developer/CommandLineTools/usr/lib/clang/12.0.0/include;/Library/Developer/CommandLineTools/usr/include;/System/Library/Frameworks;/Library/Frameworks +//Name of generator. +CMAKE_GENERATOR:INTERNAL=Unix Makefiles +//Generator instance identifier. +CMAKE_GENERATOR_INSTANCE:INTERNAL= +//Name of generator platform. +CMAKE_GENERATOR_PLATFORM:INTERNAL= +//Name of generator toolset. +CMAKE_GENERATOR_TOOLSET:INTERNAL= +//Test CMAKE_HAVE_LIBC_PTHREAD +CMAKE_HAVE_LIBC_PTHREAD:INTERNAL=1 +//Have include pthread.h +CMAKE_HAVE_PTHREAD_H:INTERNAL=1 +//Source directory with the top level CMakeLists.txt file for this +// project +CMAKE_HOME_DIRECTORY:INTERNAL=/Users/konstantinviesure/workspace/compLIB/server +//ADVANCED property for variable: CMAKE_INSTALL_NAME_TOOL +CMAKE_INSTALL_NAME_TOOL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_LINKER +CMAKE_LINKER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MAKE_PROGRAM +CMAKE_MAKE_PROGRAM-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS +CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG +CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE +CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_NM +CMAKE_NM-ADVANCED:INTERNAL=1 +//number of local generators +CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=1 +//ADVANCED property for variable: CMAKE_OBJCOPY +CMAKE_OBJCOPY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_OBJDUMP +CMAKE_OBJDUMP-ADVANCED:INTERNAL=1 +//Platform information initialized +CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_RANLIB +CMAKE_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_READELF +CMAKE_READELF-ADVANCED:INTERNAL=1 +//Path to CMake installation. +CMAKE_ROOT:INTERNAL=/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS +CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG +CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE +CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH +CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_RPATH +CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS +CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG +CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE +CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STRIP +CMAKE_STRIP-ADVANCED:INTERNAL=1 +//uname command +CMAKE_UNAME:INTERNAL=/usr/bin/uname +//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE +CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1 +//Details about finding Protobuf +FIND_PACKAGE_MESSAGE_DETAILS_Protobuf:INTERNAL=[/usr/local/lib/libprotobuf.dylib][/usr/local/include][v3.19.4()] +//ADVANCED property for variable: ProcessorCount_cmd_sysctl +ProcessorCount_cmd_sysctl-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: Protobuf_INCLUDE_DIR +Protobuf_INCLUDE_DIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: Protobuf_LIBRARY_DEBUG +Protobuf_LIBRARY_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: Protobuf_LIBRARY_RELEASE +Protobuf_LIBRARY_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: Protobuf_LITE_LIBRARY_DEBUG +Protobuf_LITE_LIBRARY_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: Protobuf_LITE_LIBRARY_RELEASE +Protobuf_LITE_LIBRARY_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: Protobuf_PROTOC_EXECUTABLE +Protobuf_PROTOC_EXECUTABLE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: Protobuf_PROTOC_LIBRARY_DEBUG +Protobuf_PROTOC_LIBRARY_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: Protobuf_PROTOC_LIBRARY_RELEASE +Protobuf_PROTOC_LIBRARY_RELEASE-ADVANCED:INTERNAL=1 + diff --git a/server/cmake-build-debug/CMakeFiles/3.17.3/CMakeCCompiler.cmake b/server/cmake-build-debug/CMakeFiles/3.17.3/CMakeCCompiler.cmake new file mode 100644 index 0000000..2e52f83 --- /dev/null +++ b/server/cmake-build-debug/CMakeFiles/3.17.3/CMakeCCompiler.cmake @@ -0,0 +1,76 @@ +set(CMAKE_C_COMPILER "/Library/Developer/CommandLineTools/usr/bin/cc") +set(CMAKE_C_COMPILER_ARG1 "") +set(CMAKE_C_COMPILER_ID "AppleClang") +set(CMAKE_C_COMPILER_VERSION "12.0.0.12000031") +set(CMAKE_C_COMPILER_VERSION_INTERNAL "") +set(CMAKE_C_COMPILER_WRAPPER "") +set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "11") +set(CMAKE_C_COMPILE_FEATURES "c_std_90;c_function_prototypes;c_std_99;c_restrict;c_variadic_macros;c_std_11;c_static_assert") +set(CMAKE_C90_COMPILE_FEATURES "c_std_90;c_function_prototypes") +set(CMAKE_C99_COMPILE_FEATURES "c_std_99;c_restrict;c_variadic_macros") +set(CMAKE_C11_COMPILE_FEATURES "c_std_11;c_static_assert") + +set(CMAKE_C_PLATFORM_ID "Darwin") +set(CMAKE_C_SIMULATE_ID "") +set(CMAKE_C_COMPILER_FRONTEND_VARIANT "") +set(CMAKE_C_SIMULATE_VERSION "") + + + +set(CMAKE_AR "/Library/Developer/CommandLineTools/usr/bin/ar") +set(CMAKE_C_COMPILER_AR "") +set(CMAKE_RANLIB "/Library/Developer/CommandLineTools/usr/bin/ranlib") +set(CMAKE_C_COMPILER_RANLIB "") +set(CMAKE_LINKER "/Library/Developer/CommandLineTools/usr/bin/ld") +set(CMAKE_MT "") +set(CMAKE_COMPILER_IS_GNUCC ) +set(CMAKE_C_COMPILER_LOADED 1) +set(CMAKE_C_COMPILER_WORKS TRUE) +set(CMAKE_C_ABI_COMPILED TRUE) +set(CMAKE_COMPILER_IS_MINGW ) +set(CMAKE_COMPILER_IS_CYGWIN ) +if(CMAKE_COMPILER_IS_CYGWIN) + set(CYGWIN 1) + set(UNIX 1) +endif() + +set(CMAKE_C_COMPILER_ENV_VAR "CC") + +if(CMAKE_COMPILER_IS_MINGW) + set(MINGW 1) +endif() +set(CMAKE_C_COMPILER_ID_RUN 1) +set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m) +set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC) +set(CMAKE_C_LINKER_PREFERENCE 10) + +# Save compiler ABI information. +set(CMAKE_C_SIZEOF_DATA_PTR "8") +set(CMAKE_C_COMPILER_ABI "") +set(CMAKE_C_LIBRARY_ARCHITECTURE "") + +if(CMAKE_C_SIZEOF_DATA_PTR) + set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}") +endif() + +if(CMAKE_C_COMPILER_ABI) + set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}") +endif() + +if(CMAKE_C_LIBRARY_ARCHITECTURE) + set(CMAKE_LIBRARY_ARCHITECTURE "") +endif() + +set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "") +if(CMAKE_C_CL_SHOWINCLUDES_PREFIX) + set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}") +endif() + + + + + +set(CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES "/Library/Developer/CommandLineTools/usr/lib/clang/12.0.0/include;/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/include;/Library/Developer/CommandLineTools/usr/include") +set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "") +set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/lib") +set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/System/Library/Frameworks") diff --git a/server/cmake-build-debug/CMakeFiles/3.17.3/CMakeCXXCompiler.cmake b/server/cmake-build-debug/CMakeFiles/3.17.3/CMakeCXXCompiler.cmake new file mode 100644 index 0000000..110e06e --- /dev/null +++ b/server/cmake-build-debug/CMakeFiles/3.17.3/CMakeCXXCompiler.cmake @@ -0,0 +1,88 @@ +set(CMAKE_CXX_COMPILER "/Library/Developer/CommandLineTools/usr/bin/c++") +set(CMAKE_CXX_COMPILER_ARG1 "") +set(CMAKE_CXX_COMPILER_ID "AppleClang") +set(CMAKE_CXX_COMPILER_VERSION "12.0.0.12000031") +set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "") +set(CMAKE_CXX_COMPILER_WRAPPER "") +set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "98") +set(CMAKE_CXX_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters;cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates;cxx_std_17;cxx_std_20") +set(CMAKE_CXX98_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters") +set(CMAKE_CXX11_COMPILE_FEATURES "cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates") +set(CMAKE_CXX14_COMPILE_FEATURES "cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates") +set(CMAKE_CXX17_COMPILE_FEATURES "cxx_std_17") +set(CMAKE_CXX20_COMPILE_FEATURES "cxx_std_20") + +set(CMAKE_CXX_PLATFORM_ID "Darwin") +set(CMAKE_CXX_SIMULATE_ID "") +set(CMAKE_CXX_COMPILER_FRONTEND_VARIANT "") +set(CMAKE_CXX_SIMULATE_VERSION "") + + + +set(CMAKE_AR "/Library/Developer/CommandLineTools/usr/bin/ar") +set(CMAKE_CXX_COMPILER_AR "") +set(CMAKE_RANLIB "/Library/Developer/CommandLineTools/usr/bin/ranlib") +set(CMAKE_CXX_COMPILER_RANLIB "") +set(CMAKE_LINKER "/Library/Developer/CommandLineTools/usr/bin/ld") +set(CMAKE_MT "") +set(CMAKE_COMPILER_IS_GNUCXX ) +set(CMAKE_CXX_COMPILER_LOADED 1) +set(CMAKE_CXX_COMPILER_WORKS TRUE) +set(CMAKE_CXX_ABI_COMPILED TRUE) +set(CMAKE_COMPILER_IS_MINGW ) +set(CMAKE_COMPILER_IS_CYGWIN ) +if(CMAKE_COMPILER_IS_CYGWIN) + set(CYGWIN 1) + set(UNIX 1) +endif() + +set(CMAKE_CXX_COMPILER_ENV_VAR "CXX") + +if(CMAKE_COMPILER_IS_MINGW) + set(MINGW 1) +endif() +set(CMAKE_CXX_COMPILER_ID_RUN 1) +set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;m;mm;CPP) +set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC) + +foreach (lang C OBJC OBJCXX) + if (CMAKE_${lang}_COMPILER_ID_RUN) + foreach(extension IN LISTS CMAKE_${lang}_SOURCE_FILE_EXTENSIONS) + list(REMOVE_ITEM CMAKE_CXX_SOURCE_FILE_EXTENSIONS ${extension}) + endforeach() + endif() +endforeach() + +set(CMAKE_CXX_LINKER_PREFERENCE 30) +set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1) + +# Save compiler ABI information. +set(CMAKE_CXX_SIZEOF_DATA_PTR "8") +set(CMAKE_CXX_COMPILER_ABI "") +set(CMAKE_CXX_LIBRARY_ARCHITECTURE "") + +if(CMAKE_CXX_SIZEOF_DATA_PTR) + set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}") +endif() + +if(CMAKE_CXX_COMPILER_ABI) + set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}") +endif() + +if(CMAKE_CXX_LIBRARY_ARCHITECTURE) + set(CMAKE_LIBRARY_ARCHITECTURE "") +endif() + +set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "") +if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX) + set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}") +endif() + + + + + +set(CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES "/Library/Developer/CommandLineTools/usr/include/c++/v1;/Library/Developer/CommandLineTools/usr/lib/clang/12.0.0/include;/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/include;/Library/Developer/CommandLineTools/usr/include") +set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "c++") +set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/lib") +set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/System/Library/Frameworks") diff --git a/server/cmake-build-debug/CMakeFiles/3.17.3/CMakeDetermineCompilerABI_C.bin b/server/cmake-build-debug/CMakeFiles/3.17.3/CMakeDetermineCompilerABI_C.bin new file mode 100755 index 0000000000000000000000000000000000000000..3f11f96e93dae73e933aa88fd1acbfa68f04d539 GIT binary patch literal 16592 zcmeI3%WD%+6vl5FMWNLed}9~Eg{X_9n1VqBqd1zNv_TsvO1U=4lm?na^1wz=yKxaj zDB{AM{WDyN;-a|HKf#T=6kJvj@%v^bWX4C=F1|xf?)mQH%(=gr?fLk9>*pS0VsT^4 z2z)<01M$Qp5E*j}o`YLkxOC0A?cAK@Y}8^=`B%j}8Emw6&Y7Q!Zt>1%qjM(EyD?2? zeKc#^?rPhQeI3nr_aZKXg>1chggM4I4qbB!%*^vK@{LFRdN`AmD>)&(0X)t~Y5|M$&HP9!FS(^&t z9fz#{zFE^zcmbOCUB`%@8HE?%VdJ}@ho2W--znzzmVl4JQ=L{bwNfpmD&3U|H0?N? zbxcmrzkPWi^ZeD3Z|M)+t#@ZJmw@}vWL2YH?0+YVBWEx(0Uy{Y+@E>)J%o+V&A_?F zJEIbOZn0r4sOMI<)pl#i%SqH#EqR;FNes-N%Nny6Y zKmYKmYKmYKmYKmYKmY;Qu60%=Nx(IzL!k@8Nc?*ZI2X^r>=XXFK<7-z38E zHwR2o^f$J=67DR#>3Q@9Q4tn4;$-#ja*N{F*5Wlfe!jVYw^12BUMi OR=ZQOCG^~*X!8r?hM0!{ literal 0 HcmV?d00001 diff --git a/server/cmake-build-debug/CMakeFiles/3.17.3/CMakeDetermineCompilerABI_CXX.bin b/server/cmake-build-debug/CMakeFiles/3.17.3/CMakeDetermineCompilerABI_CXX.bin new file mode 100755 index 0000000000000000000000000000000000000000..32d15dddb8ea8946246c50b1313252c811dd546e GIT binary patch literal 16576 zcmeI3%WD%+6vpo)6_v!MizBp-9>O&M2hE|2buAOD_7rv!@b|V=bn4+Z)STweEYJqTPY*1 zl!}R`#Oop+skF?LIwW2c*Lv~tb#ukMv4GX68BzILg*hASZZBux4NT*KiBut&$r({1Rcp2P9}4$ zd#!c5RnvBBt?lY)eXsp|UspPRF!b&-hWb#osyLa@xV^V`;iC#L)dUH z-itlFLybL_6vn6)si!(UoteoEGZ?)HS?Vi)Q zoy)J{IQpJ(78V}S!;Bv1b27r8`~A+Cqc=J!Cnwy~B9O+=(qA9b&APVwR<-9?x^9(g zR!1FemhG0B@|wFpK6JyC3MQvTkIP=rACIt<;dNZ2wgayAY6)tU5n-;SrBnXbJGFZ! d+P`(z=~Z+^I_aeptykt|&ZDDVhfuhAegJFjn4>24 & 0x00FF) +# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) +# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) + +#elif defined(__BORLANDC__) +# define COMPILER_ID "Borland" + /* __BORLANDC__ = 0xVRR */ +# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) +# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) + +#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 +# define COMPILER_ID "Watcom" + /* __WATCOMC__ = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__WATCOMC__) +# define COMPILER_ID "OpenWatcom" + /* __WATCOMC__ = VVRP + 1100 */ +# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__SUNPRO_C) +# define COMPILER_ID "SunPro" +# if __SUNPRO_C >= 0x5100 + /* __SUNPRO_C = 0xVRRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>12) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) +# else + /* __SUNPRO_CC = 0xVRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>8) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) +# endif + +#elif defined(__HP_cc) +# define COMPILER_ID "HP" + /* __HP_cc = VVRRPP */ +# define COMPILER_VERSION_MAJOR DEC(__HP_cc/10000) +# define COMPILER_VERSION_MINOR DEC(__HP_cc/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__HP_cc % 100) + +#elif defined(__DECC) +# define COMPILER_ID "Compaq" + /* __DECC_VER = VVRRTPPPP */ +# define COMPILER_VERSION_MAJOR DEC(__DECC_VER/10000000) +# define COMPILER_VERSION_MINOR DEC(__DECC_VER/100000 % 100) +# define COMPILER_VERSION_PATCH DEC(__DECC_VER % 10000) + +#elif defined(__IBMC__) && defined(__COMPILER_VER__) +# define COMPILER_ID "zOS" + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) + +#elif defined(__ibmxl__) && defined(__clang__) +# define COMPILER_ID "XLClang" +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) + + +#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ >= 800 +# define COMPILER_ID "XL" + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) + +#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ < 800 +# define COMPILER_ID "VisualAge" + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) + +#elif defined(__PGI) +# define COMPILER_ID "PGI" +# define COMPILER_VERSION_MAJOR DEC(__PGIC__) +# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) +# if defined(__PGIC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) +# endif + +#elif defined(_CRAYC) +# define COMPILER_ID "Cray" +# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) +# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) + +#elif defined(__TI_COMPILER_VERSION__) +# define COMPILER_ID "TI" + /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ +# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) +# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) +# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) + +#elif defined(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version) +# define COMPILER_ID "Fujitsu" + +#elif defined(__ghs__) +# define COMPILER_ID "GHS" +/* __GHS_VERSION_NUMBER = VVVVRP */ +# ifdef __GHS_VERSION_NUMBER +# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100) +# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10) +# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10) +# endif + +#elif defined(__TINYC__) +# define COMPILER_ID "TinyCC" + +#elif defined(__BCC__) +# define COMPILER_ID "Bruce" + +#elif defined(__SCO_VERSION__) +# define COMPILER_ID "SCO" + +#elif defined(__ARMCC_VERSION) && !defined(__clang__) +# define COMPILER_ID "ARMCC" +#if __ARMCC_VERSION >= 1000000 + /* __ARMCC_VERSION = VRRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#else + /* __ARMCC_VERSION = VRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#endif + + +#elif defined(__clang__) && defined(__apple_build_version__) +# define COMPILER_ID "AppleClang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) + +#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION) +# define COMPILER_ID "ARMClang" + # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION % 10000) +# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION) + +#elif defined(__clang__) +# define COMPILER_ID "Clang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__GNUC__) +# define COMPILER_ID "GNU" +# define COMPILER_VERSION_MAJOR DEC(__GNUC__) +# if defined(__GNUC_MINOR__) +# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif defined(_MSC_VER) +# define COMPILER_ID "MSVC" + /* _MSC_VER = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) +# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) +# if defined(_MSC_FULL_VER) +# if _MSC_VER >= 1400 + /* _MSC_FULL_VER = VVRRPPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) +# else + /* _MSC_FULL_VER = VVRRPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) +# endif +# endif +# if defined(_MSC_BUILD) +# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) +# endif + +#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) +# define COMPILER_ID "ADSP" +#if defined(__VISUALDSPVERSION__) + /* __VISUALDSPVERSION__ = 0xVVRRPP00 */ +# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24) +# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF) +#endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# define COMPILER_ID "IAR" +# if defined(__VER__) && defined(__ICCARM__) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) +# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) +# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__)) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100) +# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100)) +# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# endif + +#elif defined(__SDCC_VERSION_MAJOR) || defined(SDCC) +# define COMPILER_ID "SDCC" +# if defined(__SDCC_VERSION_MAJOR) +# define COMPILER_VERSION_MAJOR DEC(__SDCC_VERSION_MAJOR) +# define COMPILER_VERSION_MINOR DEC(__SDCC_VERSION_MINOR) +# define COMPILER_VERSION_PATCH DEC(__SDCC_VERSION_PATCH) +# else + /* SDCC = VRP */ +# define COMPILER_VERSION_MAJOR DEC(SDCC/100) +# define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10) +# define COMPILER_VERSION_PATCH DEC(SDCC % 10) +# endif + + +/* These compilers are either not known or too old to define an + identification macro. Try to identify the platform and guess that + it is the native compiler. */ +#elif defined(__hpux) || defined(__hpua) +# define COMPILER_ID "HP" + +#else /* unknown compiler */ +# define COMPILER_ID "" +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; +#ifdef SIMULATE_ID +char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; +#endif + +#ifdef __QNXNTO__ +char const* qnxnto = "INFO" ":" "qnxnto[]"; +#endif + +#if defined(__CRAYXE) || defined(__CRAYXC) +char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; +#endif + +#define STRINGIFY_HELPER(X) #X +#define STRINGIFY(X) STRINGIFY_HELPER(X) + +/* Identify known platforms by name. */ +#if defined(__linux) || defined(__linux__) || defined(linux) +# define PLATFORM_ID "Linux" + +#elif defined(__CYGWIN__) +# define PLATFORM_ID "Cygwin" + +#elif defined(__MINGW32__) +# define PLATFORM_ID "MinGW" + +#elif defined(__APPLE__) +# define PLATFORM_ID "Darwin" + +#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) +# define PLATFORM_ID "Windows" + +#elif defined(__FreeBSD__) || defined(__FreeBSD) +# define PLATFORM_ID "FreeBSD" + +#elif defined(__NetBSD__) || defined(__NetBSD) +# define PLATFORM_ID "NetBSD" + +#elif defined(__OpenBSD__) || defined(__OPENBSD) +# define PLATFORM_ID "OpenBSD" + +#elif defined(__sun) || defined(sun) +# define PLATFORM_ID "SunOS" + +#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) +# define PLATFORM_ID "AIX" + +#elif defined(__hpux) || defined(__hpux__) +# define PLATFORM_ID "HP-UX" + +#elif defined(__HAIKU__) +# define PLATFORM_ID "Haiku" + +#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) +# define PLATFORM_ID "BeOS" + +#elif defined(__QNX__) || defined(__QNXNTO__) +# define PLATFORM_ID "QNX" + +#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) +# define PLATFORM_ID "Tru64" + +#elif defined(__riscos) || defined(__riscos__) +# define PLATFORM_ID "RISCos" + +#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) +# define PLATFORM_ID "SINIX" + +#elif defined(__UNIX_SV__) +# define PLATFORM_ID "UNIX_SV" + +#elif defined(__bsdos__) +# define PLATFORM_ID "BSDOS" + +#elif defined(_MPRAS) || defined(MPRAS) +# define PLATFORM_ID "MP-RAS" + +#elif defined(__osf) || defined(__osf__) +# define PLATFORM_ID "OSF1" + +#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) +# define PLATFORM_ID "SCO_SV" + +#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) +# define PLATFORM_ID "ULTRIX" + +#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) +# define PLATFORM_ID "Xenix" + +#elif defined(__WATCOMC__) +# if defined(__LINUX__) +# define PLATFORM_ID "Linux" + +# elif defined(__DOS__) +# define PLATFORM_ID "DOS" + +# elif defined(__OS2__) +# define PLATFORM_ID "OS2" + +# elif defined(__WINDOWS__) +# define PLATFORM_ID "Windows3x" + +# else /* unknown platform */ +# define PLATFORM_ID +# endif + +#elif defined(__INTEGRITY) +# if defined(INT_178B) +# define PLATFORM_ID "Integrity178" + +# else /* regular Integrity */ +# define PLATFORM_ID "Integrity" +# endif + +#else /* unknown platform */ +# define PLATFORM_ID + +#endif + +/* For windows compilers MSVC and Intel we can determine + the architecture of the compiler being used. This is because + the compilers do not have flags that can change the architecture, + but rather depend on which compiler is being used +*/ +#if defined(_WIN32) && defined(_MSC_VER) +# if defined(_M_IA64) +# define ARCHITECTURE_ID "IA64" + +# elif defined(_M_X64) || defined(_M_AMD64) +# define ARCHITECTURE_ID "x64" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# elif defined(_M_ARM64) +# define ARCHITECTURE_ID "ARM64" + +# elif defined(_M_ARM) +# if _M_ARM == 4 +# define ARCHITECTURE_ID "ARMV4I" +# elif _M_ARM == 5 +# define ARCHITECTURE_ID "ARMV5I" +# else +# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) +# endif + +# elif defined(_M_MIPS) +# define ARCHITECTURE_ID "MIPS" + +# elif defined(_M_SH) +# define ARCHITECTURE_ID "SHx" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__WATCOMC__) +# if defined(_M_I86) +# define ARCHITECTURE_ID "I86" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# if defined(__ICCARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__ICCRX__) +# define ARCHITECTURE_ID "RX" + +# elif defined(__ICCRH850__) +# define ARCHITECTURE_ID "RH850" + +# elif defined(__ICCRL78__) +# define ARCHITECTURE_ID "RL78" + +# elif defined(__ICCRISCV__) +# define ARCHITECTURE_ID "RISCV" + +# elif defined(__ICCAVR__) +# define ARCHITECTURE_ID "AVR" + +# elif defined(__ICC430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__ICCV850__) +# define ARCHITECTURE_ID "V850" + +# elif defined(__ICC8051__) +# define ARCHITECTURE_ID "8051" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__ghs__) +# if defined(__PPC64__) +# define ARCHITECTURE_ID "PPC64" + +# elif defined(__ppc__) +# define ARCHITECTURE_ID "PPC" + +# elif defined(__ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__x86_64__) +# define ARCHITECTURE_ID "x64" + +# elif defined(__i386__) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif +#else +# define ARCHITECTURE_ID +#endif + +/* Convert integer to decimal digit literals. */ +#define DEC(n) \ + ('0' + (((n) / 10000000)%10)), \ + ('0' + (((n) / 1000000)%10)), \ + ('0' + (((n) / 100000)%10)), \ + ('0' + (((n) / 10000)%10)), \ + ('0' + (((n) / 1000)%10)), \ + ('0' + (((n) / 100)%10)), \ + ('0' + (((n) / 10)%10)), \ + ('0' + ((n) % 10)) + +/* Convert integer to hex digit literals. */ +#define HEX(n) \ + ('0' + ((n)>>28 & 0xF)), \ + ('0' + ((n)>>24 & 0xF)), \ + ('0' + ((n)>>20 & 0xF)), \ + ('0' + ((n)>>16 & 0xF)), \ + ('0' + ((n)>>12 & 0xF)), \ + ('0' + ((n)>>8 & 0xF)), \ + ('0' + ((n)>>4 & 0xF)), \ + ('0' + ((n) & 0xF)) + +/* Construct a string literal encoding the version number components. */ +#ifdef COMPILER_VERSION_MAJOR +char const info_version[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', + COMPILER_VERSION_MAJOR, +# ifdef COMPILER_VERSION_MINOR + '.', COMPILER_VERSION_MINOR, +# ifdef COMPILER_VERSION_PATCH + '.', COMPILER_VERSION_PATCH, +# ifdef COMPILER_VERSION_TWEAK + '.', COMPILER_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct a string literal encoding the internal version number. */ +#ifdef COMPILER_VERSION_INTERNAL +char const info_version_internal[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', + 'i','n','t','e','r','n','a','l','[', + COMPILER_VERSION_INTERNAL,']','\0'}; +#endif + +/* Construct a string literal encoding the version number components. */ +#ifdef SIMULATE_VERSION_MAJOR +char const info_simulate_version[] = { + 'I', 'N', 'F', 'O', ':', + 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', + SIMULATE_VERSION_MAJOR, +# ifdef SIMULATE_VERSION_MINOR + '.', SIMULATE_VERSION_MINOR, +# ifdef SIMULATE_VERSION_PATCH + '.', SIMULATE_VERSION_PATCH, +# ifdef SIMULATE_VERSION_TWEAK + '.', SIMULATE_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; +char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; + + + + +#if !defined(__STDC__) +# if (defined(_MSC_VER) && !defined(__clang__)) \ + || (defined(__ibmxl__) || defined(__IBMC__)) +# define C_DIALECT "90" +# else +# define C_DIALECT +# endif +#elif __STDC_VERSION__ >= 201000L +# define C_DIALECT "11" +#elif __STDC_VERSION__ >= 199901L +# define C_DIALECT "99" +#else +# define C_DIALECT "90" +#endif +const char* info_language_dialect_default = + "INFO" ":" "dialect_default[" C_DIALECT "]"; + +/*--------------------------------------------------------------------------*/ + +#ifdef ID_VOID_MAIN +void main() {} +#else +# if defined(__CLASSIC_C__) +int main(argc, argv) int argc; char *argv[]; +# else +int main(int argc, char* argv[]) +# endif +{ + int require = 0; + require += info_compiler[argc]; + require += info_platform[argc]; + require += info_arch[argc]; +#ifdef COMPILER_VERSION_MAJOR + require += info_version[argc]; +#endif +#ifdef COMPILER_VERSION_INTERNAL + require += info_version_internal[argc]; +#endif +#ifdef SIMULATE_ID + require += info_simulate[argc]; +#endif +#ifdef SIMULATE_VERSION_MAJOR + require += info_simulate_version[argc]; +#endif +#if defined(__CRAYXE) || defined(__CRAYXC) + require += info_cray[argc]; +#endif + require += info_language_dialect_default[argc]; + (void)argv; + return require; +} +#endif diff --git a/server/cmake-build-debug/CMakeFiles/3.17.3/CompilerIdC/CMakeCCompilerId.o b/server/cmake-build-debug/CMakeFiles/3.17.3/CompilerIdC/CMakeCCompilerId.o new file mode 100644 index 0000000000000000000000000000000000000000..6551d109e4b0b97fba024c98a702d4fc4b84d52e GIT binary patch literal 1400 zcmb7C&ubG=5PoTE8nCrF^w5HV96a=-NxUgSLy{6ft&{|W5T=i0lPqjDVYAU96nauZ z5&9?Stw(Qq^3p?l^Izyi@DQQLAX5EicV6=Y6&;xUX6DU&Z{E&){{HQ9QK`th!Uwtl zJ)XlS35BdfH`xD!yyYUundBHBoQgHdhY%v)+Vev@^h`vwIW=2PE&VY_vrM|pF`xG8f;N-zd8?(aQNj;5YW zWVNW_>9!RX%=Wh{MVrF6A$;Ph>llr(88gr|Xjrzyp+NXjj(ieA~7pp^-|BjdX@%cZFV9 zuI`cPUxn4Gn30z|DzX=k#FrLhN65N`_)X}+<#^wZC7Gu>24 & 0x00FF) +# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) +# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) + +#elif defined(__BORLANDC__) +# define COMPILER_ID "Borland" + /* __BORLANDC__ = 0xVRR */ +# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) +# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) + +#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 +# define COMPILER_ID "Watcom" + /* __WATCOMC__ = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__WATCOMC__) +# define COMPILER_ID "OpenWatcom" + /* __WATCOMC__ = VVRP + 1100 */ +# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__SUNPRO_CC) +# define COMPILER_ID "SunPro" +# if __SUNPRO_CC >= 0x5100 + /* __SUNPRO_CC = 0xVRRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) +# else + /* __SUNPRO_CC = 0xVRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) +# endif + +#elif defined(__HP_aCC) +# define COMPILER_ID "HP" + /* __HP_aCC = VVRRPP */ +# define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000) +# define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__HP_aCC % 100) + +#elif defined(__DECCXX) +# define COMPILER_ID "Compaq" + /* __DECCXX_VER = VVRRTPPPP */ +# define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000) +# define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000 % 100) +# define COMPILER_VERSION_PATCH DEC(__DECCXX_VER % 10000) + +#elif defined(__IBMCPP__) && defined(__COMPILER_VER__) +# define COMPILER_ID "zOS" + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__ibmxl__) && defined(__clang__) +# define COMPILER_ID "XLClang" +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) + + +#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800 +# define COMPILER_ID "XL" + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800 +# define COMPILER_ID "VisualAge" + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__PGI) +# define COMPILER_ID "PGI" +# define COMPILER_VERSION_MAJOR DEC(__PGIC__) +# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) +# if defined(__PGIC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) +# endif + +#elif defined(_CRAYC) +# define COMPILER_ID "Cray" +# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) +# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) + +#elif defined(__TI_COMPILER_VERSION__) +# define COMPILER_ID "TI" + /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ +# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) +# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) +# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) + +#elif defined(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version) +# define COMPILER_ID "Fujitsu" + +#elif defined(__ghs__) +# define COMPILER_ID "GHS" +/* __GHS_VERSION_NUMBER = VVVVRP */ +# ifdef __GHS_VERSION_NUMBER +# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100) +# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10) +# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10) +# endif + +#elif defined(__SCO_VERSION__) +# define COMPILER_ID "SCO" + +#elif defined(__ARMCC_VERSION) && !defined(__clang__) +# define COMPILER_ID "ARMCC" +#if __ARMCC_VERSION >= 1000000 + /* __ARMCC_VERSION = VRRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#else + /* __ARMCC_VERSION = VRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#endif + + +#elif defined(__clang__) && defined(__apple_build_version__) +# define COMPILER_ID "AppleClang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) + +#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION) +# define COMPILER_ID "ARMClang" + # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION % 10000) +# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION) + +#elif defined(__clang__) +# define COMPILER_ID "Clang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__GNUC__) || defined(__GNUG__) +# define COMPILER_ID "GNU" +# if defined(__GNUC__) +# define COMPILER_VERSION_MAJOR DEC(__GNUC__) +# else +# define COMPILER_VERSION_MAJOR DEC(__GNUG__) +# endif +# if defined(__GNUC_MINOR__) +# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif defined(_MSC_VER) +# define COMPILER_ID "MSVC" + /* _MSC_VER = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) +# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) +# if defined(_MSC_FULL_VER) +# if _MSC_VER >= 1400 + /* _MSC_FULL_VER = VVRRPPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) +# else + /* _MSC_FULL_VER = VVRRPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) +# endif +# endif +# if defined(_MSC_BUILD) +# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) +# endif + +#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) +# define COMPILER_ID "ADSP" +#if defined(__VISUALDSPVERSION__) + /* __VISUALDSPVERSION__ = 0xVVRRPP00 */ +# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24) +# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF) +#endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# define COMPILER_ID "IAR" +# if defined(__VER__) && defined(__ICCARM__) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) +# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) +# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__)) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100) +# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100)) +# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# endif + + +/* These compilers are either not known or too old to define an + identification macro. Try to identify the platform and guess that + it is the native compiler. */ +#elif defined(__hpux) || defined(__hpua) +# define COMPILER_ID "HP" + +#else /* unknown compiler */ +# define COMPILER_ID "" +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; +#ifdef SIMULATE_ID +char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; +#endif + +#ifdef __QNXNTO__ +char const* qnxnto = "INFO" ":" "qnxnto[]"; +#endif + +#if defined(__CRAYXE) || defined(__CRAYXC) +char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; +#endif + +#define STRINGIFY_HELPER(X) #X +#define STRINGIFY(X) STRINGIFY_HELPER(X) + +/* Identify known platforms by name. */ +#if defined(__linux) || defined(__linux__) || defined(linux) +# define PLATFORM_ID "Linux" + +#elif defined(__CYGWIN__) +# define PLATFORM_ID "Cygwin" + +#elif defined(__MINGW32__) +# define PLATFORM_ID "MinGW" + +#elif defined(__APPLE__) +# define PLATFORM_ID "Darwin" + +#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) +# define PLATFORM_ID "Windows" + +#elif defined(__FreeBSD__) || defined(__FreeBSD) +# define PLATFORM_ID "FreeBSD" + +#elif defined(__NetBSD__) || defined(__NetBSD) +# define PLATFORM_ID "NetBSD" + +#elif defined(__OpenBSD__) || defined(__OPENBSD) +# define PLATFORM_ID "OpenBSD" + +#elif defined(__sun) || defined(sun) +# define PLATFORM_ID "SunOS" + +#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) +# define PLATFORM_ID "AIX" + +#elif defined(__hpux) || defined(__hpux__) +# define PLATFORM_ID "HP-UX" + +#elif defined(__HAIKU__) +# define PLATFORM_ID "Haiku" + +#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) +# define PLATFORM_ID "BeOS" + +#elif defined(__QNX__) || defined(__QNXNTO__) +# define PLATFORM_ID "QNX" + +#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) +# define PLATFORM_ID "Tru64" + +#elif defined(__riscos) || defined(__riscos__) +# define PLATFORM_ID "RISCos" + +#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) +# define PLATFORM_ID "SINIX" + +#elif defined(__UNIX_SV__) +# define PLATFORM_ID "UNIX_SV" + +#elif defined(__bsdos__) +# define PLATFORM_ID "BSDOS" + +#elif defined(_MPRAS) || defined(MPRAS) +# define PLATFORM_ID "MP-RAS" + +#elif defined(__osf) || defined(__osf__) +# define PLATFORM_ID "OSF1" + +#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) +# define PLATFORM_ID "SCO_SV" + +#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) +# define PLATFORM_ID "ULTRIX" + +#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) +# define PLATFORM_ID "Xenix" + +#elif defined(__WATCOMC__) +# if defined(__LINUX__) +# define PLATFORM_ID "Linux" + +# elif defined(__DOS__) +# define PLATFORM_ID "DOS" + +# elif defined(__OS2__) +# define PLATFORM_ID "OS2" + +# elif defined(__WINDOWS__) +# define PLATFORM_ID "Windows3x" + +# else /* unknown platform */ +# define PLATFORM_ID +# endif + +#elif defined(__INTEGRITY) +# if defined(INT_178B) +# define PLATFORM_ID "Integrity178" + +# else /* regular Integrity */ +# define PLATFORM_ID "Integrity" +# endif + +#else /* unknown platform */ +# define PLATFORM_ID + +#endif + +/* For windows compilers MSVC and Intel we can determine + the architecture of the compiler being used. This is because + the compilers do not have flags that can change the architecture, + but rather depend on which compiler is being used +*/ +#if defined(_WIN32) && defined(_MSC_VER) +# if defined(_M_IA64) +# define ARCHITECTURE_ID "IA64" + +# elif defined(_M_X64) || defined(_M_AMD64) +# define ARCHITECTURE_ID "x64" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# elif defined(_M_ARM64) +# define ARCHITECTURE_ID "ARM64" + +# elif defined(_M_ARM) +# if _M_ARM == 4 +# define ARCHITECTURE_ID "ARMV4I" +# elif _M_ARM == 5 +# define ARCHITECTURE_ID "ARMV5I" +# else +# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) +# endif + +# elif defined(_M_MIPS) +# define ARCHITECTURE_ID "MIPS" + +# elif defined(_M_SH) +# define ARCHITECTURE_ID "SHx" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__WATCOMC__) +# if defined(_M_I86) +# define ARCHITECTURE_ID "I86" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# if defined(__ICCARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__ICCRX__) +# define ARCHITECTURE_ID "RX" + +# elif defined(__ICCRH850__) +# define ARCHITECTURE_ID "RH850" + +# elif defined(__ICCRL78__) +# define ARCHITECTURE_ID "RL78" + +# elif defined(__ICCRISCV__) +# define ARCHITECTURE_ID "RISCV" + +# elif defined(__ICCAVR__) +# define ARCHITECTURE_ID "AVR" + +# elif defined(__ICC430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__ICCV850__) +# define ARCHITECTURE_ID "V850" + +# elif defined(__ICC8051__) +# define ARCHITECTURE_ID "8051" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__ghs__) +# if defined(__PPC64__) +# define ARCHITECTURE_ID "PPC64" + +# elif defined(__ppc__) +# define ARCHITECTURE_ID "PPC" + +# elif defined(__ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__x86_64__) +# define ARCHITECTURE_ID "x64" + +# elif defined(__i386__) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif +#else +# define ARCHITECTURE_ID +#endif + +/* Convert integer to decimal digit literals. */ +#define DEC(n) \ + ('0' + (((n) / 10000000)%10)), \ + ('0' + (((n) / 1000000)%10)), \ + ('0' + (((n) / 100000)%10)), \ + ('0' + (((n) / 10000)%10)), \ + ('0' + (((n) / 1000)%10)), \ + ('0' + (((n) / 100)%10)), \ + ('0' + (((n) / 10)%10)), \ + ('0' + ((n) % 10)) + +/* Convert integer to hex digit literals. */ +#define HEX(n) \ + ('0' + ((n)>>28 & 0xF)), \ + ('0' + ((n)>>24 & 0xF)), \ + ('0' + ((n)>>20 & 0xF)), \ + ('0' + ((n)>>16 & 0xF)), \ + ('0' + ((n)>>12 & 0xF)), \ + ('0' + ((n)>>8 & 0xF)), \ + ('0' + ((n)>>4 & 0xF)), \ + ('0' + ((n) & 0xF)) + +/* Construct a string literal encoding the version number components. */ +#ifdef COMPILER_VERSION_MAJOR +char const info_version[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', + COMPILER_VERSION_MAJOR, +# ifdef COMPILER_VERSION_MINOR + '.', COMPILER_VERSION_MINOR, +# ifdef COMPILER_VERSION_PATCH + '.', COMPILER_VERSION_PATCH, +# ifdef COMPILER_VERSION_TWEAK + '.', COMPILER_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct a string literal encoding the internal version number. */ +#ifdef COMPILER_VERSION_INTERNAL +char const info_version_internal[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', + 'i','n','t','e','r','n','a','l','[', + COMPILER_VERSION_INTERNAL,']','\0'}; +#endif + +/* Construct a string literal encoding the version number components. */ +#ifdef SIMULATE_VERSION_MAJOR +char const info_simulate_version[] = { + 'I', 'N', 'F', 'O', ':', + 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', + SIMULATE_VERSION_MAJOR, +# ifdef SIMULATE_VERSION_MINOR + '.', SIMULATE_VERSION_MINOR, +# ifdef SIMULATE_VERSION_PATCH + '.', SIMULATE_VERSION_PATCH, +# ifdef SIMULATE_VERSION_TWEAK + '.', SIMULATE_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; +char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; + + + + +#if defined(__INTEL_COMPILER) && defined(_MSVC_LANG) && _MSVC_LANG < 201403L +# if defined(__INTEL_CXX11_MODE__) +# if defined(__cpp_aggregate_nsdmi) +# define CXX_STD 201402L +# else +# define CXX_STD 201103L +# endif +# else +# define CXX_STD 199711L +# endif +#elif defined(_MSC_VER) && defined(_MSVC_LANG) +# define CXX_STD _MSVC_LANG +#else +# define CXX_STD __cplusplus +#endif + +const char* info_language_dialect_default = "INFO" ":" "dialect_default[" +#if CXX_STD > 201703L + "20" +#elif CXX_STD >= 201703L + "17" +#elif CXX_STD >= 201402L + "14" +#elif CXX_STD >= 201103L + "11" +#else + "98" +#endif +"]"; + +/*--------------------------------------------------------------------------*/ + +int main(int argc, char* argv[]) +{ + int require = 0; + require += info_compiler[argc]; + require += info_platform[argc]; +#ifdef COMPILER_VERSION_MAJOR + require += info_version[argc]; +#endif +#ifdef COMPILER_VERSION_INTERNAL + require += info_version_internal[argc]; +#endif +#ifdef SIMULATE_ID + require += info_simulate[argc]; +#endif +#ifdef SIMULATE_VERSION_MAJOR + require += info_simulate_version[argc]; +#endif +#if defined(__CRAYXE) || defined(__CRAYXC) + require += info_cray[argc]; +#endif + require += info_language_dialect_default[argc]; + (void)argv; + return require; +} diff --git a/server/cmake-build-debug/CMakeFiles/3.17.3/CompilerIdCXX/CMakeCXXCompilerId.o b/server/cmake-build-debug/CMakeFiles/3.17.3/CompilerIdCXX/CMakeCXXCompilerId.o new file mode 100644 index 0000000000000000000000000000000000000000..ded33f1a215e23cede26bc110fed51ea8468f978 GIT binary patch literal 1380 zcmb7EJ%|%g5PrGST)_KDam5J+Qdn4N5*xj1jF**FPVbNe50~(GB%5Smvk9Ax20^eA z!YQP*6e}xhE1N6sIxQ`2>>^wlL{7iio#!S&1wWYmX6DVzo0oYnAHRP)T@oU(DDZ)t zfxKP7Ckp}2LoSj17mO$gIOZ5_qoyE9(jp*bU=M;wkLSZ4vVtk$v zX-HY?1-|1o*&*d@Jzb~5>zj1IDa;>9%DM_v93W+>ST4r)F{@eT5$aLNf$op}n$Taz z>%|A2@9%^Ix0v6fSa?odV2-I?yQ^w}?0b(LuP)_IX*wjwbI7uD!u`EMQC^xkvXpj9 zHhk5#qlEeX_BiPV*V{lHI_E z5-k0`FHrvr6?6FY$oN4y!>1E-*grWk#$=fXR92X^yOXsK>#4=ccvu<#*;z9t=F1g| zMr7h2kq5@OdU*TZt=&x;isRb8RqS?Md)rlBvns-suB(DZ$8TFD65HSy%WNDR`6^zu@Q-u6ZKFF;18KSSt#MR7I#d|`V_DKE63wFJ#;o{+Sun8i><@i literal 0 HcmV?d00001 diff --git a/server/cmake-build-debug/CMakeFiles/CMakeDirectoryInformation.cmake b/server/cmake-build-debug/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 0000000..7eb1087 --- /dev/null +++ b/server/cmake-build-debug/CMakeFiles/CMakeDirectoryInformation.cmake @@ -0,0 +1,16 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.17 + +# Relative path conversion top directories. +set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/Users/konstantinviesure/workspace/compLIB/server") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug") + +# Force unix paths in dependencies. +set(CMAKE_FORCE_UNIX_PATHS 1) + + +# The C and CXX include file regular expressions for this directory. +set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") +set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") +set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) +set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/server/cmake-build-debug/CMakeFiles/CMakeError.log b/server/cmake-build-debug/CMakeFiles/CMakeError.log new file mode 100644 index 0000000..b5c3aaa --- /dev/null +++ b/server/cmake-build-debug/CMakeFiles/CMakeError.log @@ -0,0 +1,22 @@ +Compiling the C compiler identification source file "CMakeCCompilerId.c" failed. +Compiler: /Library/Developer/CommandLineTools/usr/bin/cc +Build flags: +Id flags: + +The output was: +1 +ld: library not found for -lSystem +clang: error: linker command failed with exit code 1 (use -v to see invocation) + + +Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" failed. +Compiler: /Library/Developer/CommandLineTools/usr/bin/c++ +Build flags: +Id flags: + +The output was: +1 +ld: library not found for -lc++ +clang: error: linker command failed with exit code 1 (use -v to see invocation) + + diff --git a/server/cmake-build-debug/CMakeFiles/CMakeOutput.log b/server/cmake-build-debug/CMakeFiles/CMakeOutput.log new file mode 100644 index 0000000..c48fb14 --- /dev/null +++ b/server/cmake-build-debug/CMakeFiles/CMakeOutput.log @@ -0,0 +1,334 @@ +The system is: Darwin - 21.3.0 - x86_64 +Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded. +Compiler: /Library/Developer/CommandLineTools/usr/bin/cc +Build flags: +Id flags: -c + +The output was: +0 + + +Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "CMakeCCompilerId.o" + +The C compiler identification is AppleClang, found in "/Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CMakeFiles/3.17.3/CompilerIdC/CMakeCCompilerId.o" + +Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" succeeded. +Compiler: /Library/Developer/CommandLineTools/usr/bin/c++ +Build flags: +Id flags: -c + +The output was: +0 + + +Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "CMakeCXXCompilerId.o" + +The CXX compiler identification is AppleClang, found in "/Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CMakeFiles/3.17.3/CompilerIdCXX/CMakeCXXCompilerId.o" + +Determining if the C compiler works passed with the following output: +Change Dir: /Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command(s):/usr/bin/make cmTC_32f82/fast && /Library/Developer/CommandLineTools/usr/bin/make -f CMakeFiles/cmTC_32f82.dir/build.make CMakeFiles/cmTC_32f82.dir/build +Building C object CMakeFiles/cmTC_32f82.dir/testCCompiler.c.o +/Library/Developer/CommandLineTools/usr/bin/cc -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk -o CMakeFiles/cmTC_32f82.dir/testCCompiler.c.o -c /Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CMakeFiles/CMakeTmp/testCCompiler.c +Linking C executable cmTC_32f82 +/Applications/CLion.app/Contents/bin/cmake/mac/bin/cmake -E cmake_link_script CMakeFiles/cmTC_32f82.dir/link.txt --verbose=1 +/Library/Developer/CommandLineTools/usr/bin/cc -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk -Wl,-search_paths_first -Wl,-headerpad_max_install_names CMakeFiles/cmTC_32f82.dir/testCCompiler.c.o -o cmTC_32f82 + + + +Detecting C compiler ABI info compiled with the following output: +Change Dir: /Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command(s):/usr/bin/make cmTC_ab439/fast && /Library/Developer/CommandLineTools/usr/bin/make -f CMakeFiles/cmTC_ab439.dir/build.make CMakeFiles/cmTC_ab439.dir/build +Building C object CMakeFiles/cmTC_ab439.dir/CMakeCCompilerABI.c.o +/Library/Developer/CommandLineTools/usr/bin/cc -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk -v -Wl,-v -o CMakeFiles/cmTC_ab439.dir/CMakeCCompilerABI.c.o -c /Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/CMakeCCompilerABI.c +Apple clang version 12.0.0 (clang-1200.0.31.1) +Target: x86_64-apple-darwin21.3.0 +Thread model: posix +InstalledDir: /Library/Developer/CommandLineTools/usr/bin +clang: warning: -Wl,-v: 'linker' input unused [-Wunused-command-line-argument] + "/Library/Developer/CommandLineTools/usr/bin/clang" -cc1 -triple x86_64-apple-macosx11.0.0 -Wdeprecated-objc-isa-usage -Werror=deprecated-objc-isa-usage -Werror=implicit-function-declaration -emit-obj -mrelax-all -disable-free -disable-llvm-verifier -discard-value-names -main-file-name CMakeCCompilerABI.c -mrelocation-model pic -pic-level 2 -mthread-model posix -mframe-pointer=all -fno-strict-return -masm-verbose -munwind-tables -target-sdk-version=11.0 -target-cpu penryn -dwarf-column-info -debugger-tuning=lldb -target-linker-version 609 -v -resource-dir /Library/Developer/CommandLineTools/usr/lib/clang/12.0.0 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk -internal-isystem /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/local/include -internal-isystem /Library/Developer/CommandLineTools/usr/lib/clang/12.0.0/include -internal-externc-isystem /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/include -internal-externc-isystem /Library/Developer/CommandLineTools/usr/include -Wno-reorder-init-list -Wno-implicit-int-float-conversion -Wno-c99-designator -Wno-final-dtor-non-final-class -Wno-extra-semi-stmt -Wno-misleading-indentation -Wno-quoted-include-in-framework-header -Wno-implicit-fallthrough -Wno-enum-enum-conversion -Wno-enum-float-conversion -fdebug-compilation-dir /Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CMakeFiles/CMakeTmp -ferror-limit 19 -fmessage-length 0 -stack-protector 1 -fstack-check -mdarwin-stkchk-strong-link -fblocks -fencode-extended-block-signature -fregister-global-dtors-with-atexit -fgnuc-version=4.2.1 -fobjc-runtime=macosx-11.0.0 -fmax-type-align=16 -fdiagnostics-show-option -o CMakeFiles/cmTC_ab439.dir/CMakeCCompilerABI.c.o -x c /Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/CMakeCCompilerABI.c +clang -cc1 version 12.0.0 (clang-1200.0.31.1) default target x86_64-apple-darwin21.3.0 +ignoring nonexistent directory "/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/local/include" +ignoring nonexistent directory "/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/Library/Frameworks" +#include "..." search starts here: +#include <...> search starts here: + /Library/Developer/CommandLineTools/usr/lib/clang/12.0.0/include + /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/include + /Library/Developer/CommandLineTools/usr/include + /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/System/Library/Frameworks (framework directory) +End of search list. +Linking C executable cmTC_ab439 +/Applications/CLion.app/Contents/bin/cmake/mac/bin/cmake -E cmake_link_script CMakeFiles/cmTC_ab439.dir/link.txt --verbose=1 +/Library/Developer/CommandLineTools/usr/bin/cc -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk -Wl,-search_paths_first -Wl,-headerpad_max_install_names -v -Wl,-v CMakeFiles/cmTC_ab439.dir/CMakeCCompilerABI.c.o -o cmTC_ab439 +Apple clang version 12.0.0 (clang-1200.0.31.1) +Target: x86_64-apple-darwin21.3.0 +Thread model: posix +InstalledDir: /Library/Developer/CommandLineTools/usr/bin + "/Library/Developer/CommandLineTools/usr/bin/ld" -demangle -lto_library /Library/Developer/CommandLineTools/usr/lib/libLTO.dylib -dynamic -arch x86_64 -platform_version macos 11.0.0 11.0 -syslibroot /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk -o cmTC_ab439 -search_paths_first -headerpad_max_install_names -v CMakeFiles/cmTC_ab439.dir/CMakeCCompilerABI.c.o -lSystem /Library/Developer/CommandLineTools/usr/lib/clang/12.0.0/lib/darwin/libclang_rt.osx.a +@(#)PROGRAM:ld PROJECT:ld64-609 +BUILD 04:42:03 Aug 10 2020 +configured to support archs: armv6 armv7 armv7s arm64 arm64e arm64_32 i386 x86_64 x86_64h armv6m armv7k armv7m armv7em +Library search paths: + /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/lib +Framework search paths: + /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/System/Library/Frameworks/ + + + +Parsed C implicit include dir info from above output: rv=done + found start of include info + found start of implicit include info + add: [/Library/Developer/CommandLineTools/usr/lib/clang/12.0.0/include] + add: [/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/include] + add: [/Library/Developer/CommandLineTools/usr/include] + end of search list found + collapse include dir [/Library/Developer/CommandLineTools/usr/lib/clang/12.0.0/include] ==> [/Library/Developer/CommandLineTools/usr/lib/clang/12.0.0/include] + collapse include dir [/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/include] ==> [/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/include] + collapse include dir [/Library/Developer/CommandLineTools/usr/include] ==> [/Library/Developer/CommandLineTools/usr/include] + implicit include dirs: [/Library/Developer/CommandLineTools/usr/lib/clang/12.0.0/include;/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/include;/Library/Developer/CommandLineTools/usr/include] + + +Parsed C implicit link information from above output: + link line regex: [^( *|.*[/\])(ld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\]+-)?ld|collect2)[^/\]*( |$)] + ignore line: [Change Dir: /Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CMakeFiles/CMakeTmp] + ignore line: [] + ignore line: [Run Build Command(s):/usr/bin/make cmTC_ab439/fast && /Library/Developer/CommandLineTools/usr/bin/make -f CMakeFiles/cmTC_ab439.dir/build.make CMakeFiles/cmTC_ab439.dir/build] + ignore line: [Building C object CMakeFiles/cmTC_ab439.dir/CMakeCCompilerABI.c.o] + ignore line: [/Library/Developer/CommandLineTools/usr/bin/cc -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk -v -Wl -v -o CMakeFiles/cmTC_ab439.dir/CMakeCCompilerABI.c.o -c /Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/CMakeCCompilerABI.c] + ignore line: [Apple clang version 12.0.0 (clang-1200.0.31.1)] + ignore line: [Target: x86_64-apple-darwin21.3.0] + ignore line: [Thread model: posix] + ignore line: [InstalledDir: /Library/Developer/CommandLineTools/usr/bin] + ignore line: [clang: warning: -Wl -v: 'linker' input unused [-Wunused-command-line-argument]] + ignore line: [ "/Library/Developer/CommandLineTools/usr/bin/clang" -cc1 -triple x86_64-apple-macosx11.0.0 -Wdeprecated-objc-isa-usage -Werror=deprecated-objc-isa-usage -Werror=implicit-function-declaration -emit-obj -mrelax-all -disable-free -disable-llvm-verifier -discard-value-names -main-file-name CMakeCCompilerABI.c -mrelocation-model pic -pic-level 2 -mthread-model posix -mframe-pointer=all -fno-strict-return -masm-verbose -munwind-tables -target-sdk-version=11.0 -target-cpu penryn -dwarf-column-info -debugger-tuning=lldb -target-linker-version 609 -v -resource-dir /Library/Developer/CommandLineTools/usr/lib/clang/12.0.0 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk -internal-isystem /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/local/include -internal-isystem /Library/Developer/CommandLineTools/usr/lib/clang/12.0.0/include -internal-externc-isystem /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/include -internal-externc-isystem /Library/Developer/CommandLineTools/usr/include -Wno-reorder-init-list -Wno-implicit-int-float-conversion -Wno-c99-designator -Wno-final-dtor-non-final-class -Wno-extra-semi-stmt -Wno-misleading-indentation -Wno-quoted-include-in-framework-header -Wno-implicit-fallthrough -Wno-enum-enum-conversion -Wno-enum-float-conversion -fdebug-compilation-dir /Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CMakeFiles/CMakeTmp -ferror-limit 19 -fmessage-length 0 -stack-protector 1 -fstack-check -mdarwin-stkchk-strong-link -fblocks -fencode-extended-block-signature -fregister-global-dtors-with-atexit -fgnuc-version=4.2.1 -fobjc-runtime=macosx-11.0.0 -fmax-type-align=16 -fdiagnostics-show-option -o CMakeFiles/cmTC_ab439.dir/CMakeCCompilerABI.c.o -x c /Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/CMakeCCompilerABI.c] + ignore line: [clang -cc1 version 12.0.0 (clang-1200.0.31.1) default target x86_64-apple-darwin21.3.0] + ignore line: [ignoring nonexistent directory "/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/local/include"] + ignore line: [ignoring nonexistent directory "/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/Library/Frameworks"] + ignore line: [#include "..." search starts here:] + ignore line: [#include <...> search starts here:] + ignore line: [ /Library/Developer/CommandLineTools/usr/lib/clang/12.0.0/include] + ignore line: [ /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/include] + ignore line: [ /Library/Developer/CommandLineTools/usr/include] + ignore line: [ /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/System/Library/Frameworks (framework directory)] + ignore line: [End of search list.] + ignore line: [Linking C executable cmTC_ab439] + ignore line: [/Applications/CLion.app/Contents/bin/cmake/mac/bin/cmake -E cmake_link_script CMakeFiles/cmTC_ab439.dir/link.txt --verbose=1] + ignore line: [/Library/Developer/CommandLineTools/usr/bin/cc -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk -Wl -search_paths_first -Wl -headerpad_max_install_names -v -Wl -v CMakeFiles/cmTC_ab439.dir/CMakeCCompilerABI.c.o -o cmTC_ab439 ] + ignore line: [Apple clang version 12.0.0 (clang-1200.0.31.1)] + ignore line: [Target: x86_64-apple-darwin21.3.0] + ignore line: [Thread model: posix] + ignore line: [InstalledDir: /Library/Developer/CommandLineTools/usr/bin] + link line: [ "/Library/Developer/CommandLineTools/usr/bin/ld" -demangle -lto_library /Library/Developer/CommandLineTools/usr/lib/libLTO.dylib -dynamic -arch x86_64 -platform_version macos 11.0.0 11.0 -syslibroot /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk -o cmTC_ab439 -search_paths_first -headerpad_max_install_names -v CMakeFiles/cmTC_ab439.dir/CMakeCCompilerABI.c.o -lSystem /Library/Developer/CommandLineTools/usr/lib/clang/12.0.0/lib/darwin/libclang_rt.osx.a] + arg [/Library/Developer/CommandLineTools/usr/bin/ld] ==> ignore + arg [-demangle] ==> ignore + arg [-lto_library] ==> ignore, skip following value + arg [/Library/Developer/CommandLineTools/usr/lib/libLTO.dylib] ==> skip value of -lto_library + arg [-dynamic] ==> ignore + arg [-arch] ==> ignore + arg [x86_64] ==> ignore + arg [-platform_version] ==> ignore + arg [macos] ==> ignore + arg [11.0.0] ==> ignore + arg [11.0] ==> ignore + arg [-syslibroot] ==> ignore + arg [/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk] ==> ignore + arg [-o] ==> ignore + arg [cmTC_ab439] ==> ignore + arg [-search_paths_first] ==> ignore + arg [-headerpad_max_install_names] ==> ignore + arg [-v] ==> ignore + arg [CMakeFiles/cmTC_ab439.dir/CMakeCCompilerABI.c.o] ==> ignore + arg [-lSystem] ==> lib [System] + arg [/Library/Developer/CommandLineTools/usr/lib/clang/12.0.0/lib/darwin/libclang_rt.osx.a] ==> lib [/Library/Developer/CommandLineTools/usr/lib/clang/12.0.0/lib/darwin/libclang_rt.osx.a] + Library search paths: [;/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/lib] + Framework search paths: [;/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/System/Library/Frameworks/] + remove lib [System] + remove lib [/Library/Developer/CommandLineTools/usr/lib/clang/12.0.0/lib/darwin/libclang_rt.osx.a] + collapse library dir [/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/lib] ==> [/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/lib] + collapse framework dir [/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/System/Library/Frameworks/] ==> [/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/System/Library/Frameworks] + implicit libs: [] + implicit dirs: [/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/lib] + implicit fwks: [/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/System/Library/Frameworks] + + +Determining if the CXX compiler works passed with the following output: +Change Dir: /Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command(s):/usr/bin/make cmTC_61ac6/fast && /Library/Developer/CommandLineTools/usr/bin/make -f CMakeFiles/cmTC_61ac6.dir/build.make CMakeFiles/cmTC_61ac6.dir/build +Building CXX object CMakeFiles/cmTC_61ac6.dir/testCXXCompiler.cxx.o +/Library/Developer/CommandLineTools/usr/bin/c++ -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk -o CMakeFiles/cmTC_61ac6.dir/testCXXCompiler.cxx.o -c /Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CMakeFiles/CMakeTmp/testCXXCompiler.cxx +Linking CXX executable cmTC_61ac6 +/Applications/CLion.app/Contents/bin/cmake/mac/bin/cmake -E cmake_link_script CMakeFiles/cmTC_61ac6.dir/link.txt --verbose=1 +/Library/Developer/CommandLineTools/usr/bin/c++ -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk -Wl,-search_paths_first -Wl,-headerpad_max_install_names CMakeFiles/cmTC_61ac6.dir/testCXXCompiler.cxx.o -o cmTC_61ac6 + + + +Detecting CXX compiler ABI info compiled with the following output: +Change Dir: /Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command(s):/usr/bin/make cmTC_c87a3/fast && /Library/Developer/CommandLineTools/usr/bin/make -f CMakeFiles/cmTC_c87a3.dir/build.make CMakeFiles/cmTC_c87a3.dir/build +Building CXX object CMakeFiles/cmTC_c87a3.dir/CMakeCXXCompilerABI.cpp.o +/Library/Developer/CommandLineTools/usr/bin/c++ -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk -v -Wl,-v -o CMakeFiles/cmTC_c87a3.dir/CMakeCXXCompilerABI.cpp.o -c /Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/CMakeCXXCompilerABI.cpp +Apple clang version 12.0.0 (clang-1200.0.31.1) +Target: x86_64-apple-darwin21.3.0 +Thread model: posix +InstalledDir: /Library/Developer/CommandLineTools/usr/bin +clang: warning: -Wl,-v: 'linker' input unused [-Wunused-command-line-argument] +ignoring nonexistent directory "/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/include/c++/v1" + "/Library/Developer/CommandLineTools/usr/bin/clang" -cc1 -triple x86_64-apple-macosx11.0.0 -Wdeprecated-objc-isa-usage -Werror=deprecated-objc-isa-usage -Werror=implicit-function-declaration -emit-obj -mrelax-all -disable-free -disable-llvm-verifier -discard-value-names -main-file-name CMakeCXXCompilerABI.cpp -mrelocation-model pic -pic-level 2 -mthread-model posix -mframe-pointer=all -fno-strict-return -masm-verbose -munwind-tables -target-sdk-version=11.0 -target-cpu penryn -dwarf-column-info -debugger-tuning=lldb -target-linker-version 609 -v -resource-dir /Library/Developer/CommandLineTools/usr/lib/clang/12.0.0 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk -stdlib=libc++ -internal-isystem /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1 -internal-isystem /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/local/include -internal-isystem /Library/Developer/CommandLineTools/usr/lib/clang/12.0.0/include -internal-externc-isystem /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/include -internal-externc-isystem /Library/Developer/CommandLineTools/usr/include -Wno-reorder-init-list -Wno-implicit-int-float-conversion -Wno-c99-designator -Wno-final-dtor-non-final-class -Wno-extra-semi-stmt -Wno-misleading-indentation -Wno-quoted-include-in-framework-header -Wno-implicit-fallthrough -Wno-enum-enum-conversion -Wno-enum-float-conversion -fdeprecated-macro -fdebug-compilation-dir /Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CMakeFiles/CMakeTmp -ferror-limit 19 -fmessage-length 0 -stack-protector 1 -fstack-check -mdarwin-stkchk-strong-link -fblocks -fencode-extended-block-signature -fregister-global-dtors-with-atexit -fgnuc-version=4.2.1 -fobjc-runtime=macosx-11.0.0 -fcxx-exceptions -fexceptions -fmax-type-align=16 -fdiagnostics-show-option -o CMakeFiles/cmTC_c87a3.dir/CMakeCXXCompilerABI.cpp.o -x c++ /Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/CMakeCXXCompilerABI.cpp +clang -cc1 version 12.0.0 (clang-1200.0.31.1) default target x86_64-apple-darwin21.3.0 +ignoring nonexistent directory "/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/local/include" +ignoring nonexistent directory "/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/Library/Frameworks" +#include "..." search starts here: +#include <...> search starts here: + /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1 + /Library/Developer/CommandLineTools/usr/lib/clang/12.0.0/include + /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/include + /Library/Developer/CommandLineTools/usr/include + /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/System/Library/Frameworks (framework directory) +End of search list. +Linking CXX executable cmTC_c87a3 +/Applications/CLion.app/Contents/bin/cmake/mac/bin/cmake -E cmake_link_script CMakeFiles/cmTC_c87a3.dir/link.txt --verbose=1 +/Library/Developer/CommandLineTools/usr/bin/c++ -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk -Wl,-search_paths_first -Wl,-headerpad_max_install_names -v -Wl,-v CMakeFiles/cmTC_c87a3.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_c87a3 +Apple clang version 12.0.0 (clang-1200.0.31.1) +Target: x86_64-apple-darwin21.3.0 +Thread model: posix +InstalledDir: /Library/Developer/CommandLineTools/usr/bin + "/Library/Developer/CommandLineTools/usr/bin/ld" -demangle -lto_library /Library/Developer/CommandLineTools/usr/lib/libLTO.dylib -dynamic -arch x86_64 -platform_version macos 11.0.0 11.0 -syslibroot /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk -o cmTC_c87a3 -search_paths_first -headerpad_max_install_names -v CMakeFiles/cmTC_c87a3.dir/CMakeCXXCompilerABI.cpp.o -lc++ -lSystem /Library/Developer/CommandLineTools/usr/lib/clang/12.0.0/lib/darwin/libclang_rt.osx.a +@(#)PROGRAM:ld PROJECT:ld64-609 +BUILD 04:42:03 Aug 10 2020 +configured to support archs: armv6 armv7 armv7s arm64 arm64e arm64_32 i386 x86_64 x86_64h armv6m armv7k armv7m armv7em +Library search paths: + /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/lib +Framework search paths: + /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/System/Library/Frameworks/ + + + +Parsed CXX implicit include dir info from above output: rv=done + found start of include info + found start of implicit include info + add: [/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1] + add: [/Library/Developer/CommandLineTools/usr/lib/clang/12.0.0/include] + add: [/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/include] + add: [/Library/Developer/CommandLineTools/usr/include] + end of search list found + collapse include dir [/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1] ==> [/Library/Developer/CommandLineTools/usr/include/c++/v1] + collapse include dir [/Library/Developer/CommandLineTools/usr/lib/clang/12.0.0/include] ==> [/Library/Developer/CommandLineTools/usr/lib/clang/12.0.0/include] + collapse include dir [/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/include] ==> [/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/include] + collapse include dir [/Library/Developer/CommandLineTools/usr/include] ==> [/Library/Developer/CommandLineTools/usr/include] + implicit include dirs: [/Library/Developer/CommandLineTools/usr/include/c++/v1;/Library/Developer/CommandLineTools/usr/lib/clang/12.0.0/include;/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/include;/Library/Developer/CommandLineTools/usr/include] + + +Parsed CXX implicit link information from above output: + link line regex: [^( *|.*[/\])(ld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\]+-)?ld|collect2)[^/\]*( |$)] + ignore line: [Change Dir: /Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CMakeFiles/CMakeTmp] + ignore line: [] + ignore line: [Run Build Command(s):/usr/bin/make cmTC_c87a3/fast && /Library/Developer/CommandLineTools/usr/bin/make -f CMakeFiles/cmTC_c87a3.dir/build.make CMakeFiles/cmTC_c87a3.dir/build] + ignore line: [Building CXX object CMakeFiles/cmTC_c87a3.dir/CMakeCXXCompilerABI.cpp.o] + ignore line: [/Library/Developer/CommandLineTools/usr/bin/c++ -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk -v -Wl -v -o CMakeFiles/cmTC_c87a3.dir/CMakeCXXCompilerABI.cpp.o -c /Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/CMakeCXXCompilerABI.cpp] + ignore line: [Apple clang version 12.0.0 (clang-1200.0.31.1)] + ignore line: [Target: x86_64-apple-darwin21.3.0] + ignore line: [Thread model: posix] + ignore line: [InstalledDir: /Library/Developer/CommandLineTools/usr/bin] + ignore line: [clang: warning: -Wl -v: 'linker' input unused [-Wunused-command-line-argument]] + ignore line: [ignoring nonexistent directory "/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/include/c++/v1"] + ignore line: [ "/Library/Developer/CommandLineTools/usr/bin/clang" -cc1 -triple x86_64-apple-macosx11.0.0 -Wdeprecated-objc-isa-usage -Werror=deprecated-objc-isa-usage -Werror=implicit-function-declaration -emit-obj -mrelax-all -disable-free -disable-llvm-verifier -discard-value-names -main-file-name CMakeCXXCompilerABI.cpp -mrelocation-model pic -pic-level 2 -mthread-model posix -mframe-pointer=all -fno-strict-return -masm-verbose -munwind-tables -target-sdk-version=11.0 -target-cpu penryn -dwarf-column-info -debugger-tuning=lldb -target-linker-version 609 -v -resource-dir /Library/Developer/CommandLineTools/usr/lib/clang/12.0.0 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk -stdlib=libc++ -internal-isystem /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1 -internal-isystem /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/local/include -internal-isystem /Library/Developer/CommandLineTools/usr/lib/clang/12.0.0/include -internal-externc-isystem /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/include -internal-externc-isystem /Library/Developer/CommandLineTools/usr/include -Wno-reorder-init-list -Wno-implicit-int-float-conversion -Wno-c99-designator -Wno-final-dtor-non-final-class -Wno-extra-semi-stmt -Wno-misleading-indentation -Wno-quoted-include-in-framework-header -Wno-implicit-fallthrough -Wno-enum-enum-conversion -Wno-enum-float-conversion -fdeprecated-macro -fdebug-compilation-dir /Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CMakeFiles/CMakeTmp -ferror-limit 19 -fmessage-length 0 -stack-protector 1 -fstack-check -mdarwin-stkchk-strong-link -fblocks -fencode-extended-block-signature -fregister-global-dtors-with-atexit -fgnuc-version=4.2.1 -fobjc-runtime=macosx-11.0.0 -fcxx-exceptions -fexceptions -fmax-type-align=16 -fdiagnostics-show-option -o CMakeFiles/cmTC_c87a3.dir/CMakeCXXCompilerABI.cpp.o -x c++ /Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/CMakeCXXCompilerABI.cpp] + ignore line: [clang -cc1 version 12.0.0 (clang-1200.0.31.1) default target x86_64-apple-darwin21.3.0] + ignore line: [ignoring nonexistent directory "/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/local/include"] + ignore line: [ignoring nonexistent directory "/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/Library/Frameworks"] + ignore line: [#include "..." search starts here:] + ignore line: [#include <...> search starts here:] + ignore line: [ /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1] + ignore line: [ /Library/Developer/CommandLineTools/usr/lib/clang/12.0.0/include] + ignore line: [ /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/include] + ignore line: [ /Library/Developer/CommandLineTools/usr/include] + ignore line: [ /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/System/Library/Frameworks (framework directory)] + ignore line: [End of search list.] + ignore line: [Linking CXX executable cmTC_c87a3] + ignore line: [/Applications/CLion.app/Contents/bin/cmake/mac/bin/cmake -E cmake_link_script CMakeFiles/cmTC_c87a3.dir/link.txt --verbose=1] + ignore line: [/Library/Developer/CommandLineTools/usr/bin/c++ -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk -Wl -search_paths_first -Wl -headerpad_max_install_names -v -Wl -v CMakeFiles/cmTC_c87a3.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_c87a3 ] + ignore line: [Apple clang version 12.0.0 (clang-1200.0.31.1)] + ignore line: [Target: x86_64-apple-darwin21.3.0] + ignore line: [Thread model: posix] + ignore line: [InstalledDir: /Library/Developer/CommandLineTools/usr/bin] + link line: [ "/Library/Developer/CommandLineTools/usr/bin/ld" -demangle -lto_library /Library/Developer/CommandLineTools/usr/lib/libLTO.dylib -dynamic -arch x86_64 -platform_version macos 11.0.0 11.0 -syslibroot /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk -o cmTC_c87a3 -search_paths_first -headerpad_max_install_names -v CMakeFiles/cmTC_c87a3.dir/CMakeCXXCompilerABI.cpp.o -lc++ -lSystem /Library/Developer/CommandLineTools/usr/lib/clang/12.0.0/lib/darwin/libclang_rt.osx.a] + arg [/Library/Developer/CommandLineTools/usr/bin/ld] ==> ignore + arg [-demangle] ==> ignore + arg [-lto_library] ==> ignore, skip following value + arg [/Library/Developer/CommandLineTools/usr/lib/libLTO.dylib] ==> skip value of -lto_library + arg [-dynamic] ==> ignore + arg [-arch] ==> ignore + arg [x86_64] ==> ignore + arg [-platform_version] ==> ignore + arg [macos] ==> ignore + arg [11.0.0] ==> ignore + arg [11.0] ==> ignore + arg [-syslibroot] ==> ignore + arg [/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk] ==> ignore + arg [-o] ==> ignore + arg [cmTC_c87a3] ==> ignore + arg [-search_paths_first] ==> ignore + arg [-headerpad_max_install_names] ==> ignore + arg [-v] ==> ignore + arg [CMakeFiles/cmTC_c87a3.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore + arg [-lc++] ==> lib [c++] + arg [-lSystem] ==> lib [System] + arg [/Library/Developer/CommandLineTools/usr/lib/clang/12.0.0/lib/darwin/libclang_rt.osx.a] ==> lib [/Library/Developer/CommandLineTools/usr/lib/clang/12.0.0/lib/darwin/libclang_rt.osx.a] + Library search paths: [;/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/lib] + Framework search paths: [;/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/System/Library/Frameworks/] + remove lib [System] + remove lib [/Library/Developer/CommandLineTools/usr/lib/clang/12.0.0/lib/darwin/libclang_rt.osx.a] + collapse library dir [/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/lib] ==> [/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/lib] + collapse framework dir [/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/System/Library/Frameworks/] ==> [/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/System/Library/Frameworks] + implicit libs: [c++] + implicit dirs: [/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/lib] + implicit fwks: [/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/System/Library/Frameworks] + + +Determining if the include file pthread.h exists passed with the following output: +Change Dir: /Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command(s):/usr/bin/make cmTC_d9087/fast && /Library/Developer/CommandLineTools/usr/bin/make -f CMakeFiles/cmTC_d9087.dir/build.make CMakeFiles/cmTC_d9087.dir/build +Building C object CMakeFiles/cmTC_d9087.dir/CheckIncludeFile.c.o +/Library/Developer/CommandLineTools/usr/bin/cc -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk -o CMakeFiles/cmTC_d9087.dir/CheckIncludeFile.c.o -c /Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CMakeFiles/CMakeTmp/CheckIncludeFile.c +Linking C executable cmTC_d9087 +/Applications/CLion.app/Contents/bin/cmake/mac/bin/cmake -E cmake_link_script CMakeFiles/cmTC_d9087.dir/link.txt --verbose=1 +/Library/Developer/CommandLineTools/usr/bin/cc -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk -Wl,-search_paths_first -Wl,-headerpad_max_install_names CMakeFiles/cmTC_d9087.dir/CheckIncludeFile.c.o -o cmTC_d9087 + + + +Performing C SOURCE FILE Test CMAKE_HAVE_LIBC_PTHREAD succeeded with the following output: +Change Dir: /Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command(s):/usr/bin/make cmTC_f391b/fast && /Library/Developer/CommandLineTools/usr/bin/make -f CMakeFiles/cmTC_f391b.dir/build.make CMakeFiles/cmTC_f391b.dir/build +Building C object CMakeFiles/cmTC_f391b.dir/src.c.o +/Library/Developer/CommandLineTools/usr/bin/cc -DCMAKE_HAVE_LIBC_PTHREAD -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk -o CMakeFiles/cmTC_f391b.dir/src.c.o -c /Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CMakeFiles/CMakeTmp/src.c +Linking C executable cmTC_f391b +/Applications/CLion.app/Contents/bin/cmake/mac/bin/cmake -E cmake_link_script CMakeFiles/cmTC_f391b.dir/link.txt --verbose=1 +/Library/Developer/CommandLineTools/usr/bin/cc -DCMAKE_HAVE_LIBC_PTHREAD -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk -Wl,-search_paths_first -Wl,-headerpad_max_install_names CMakeFiles/cmTC_f391b.dir/src.c.o -o cmTC_f391b + + +Source file was: +#include + +void* test_func(void* data) +{ + return data; +} + +int main(void) +{ + pthread_t thread; + pthread_create(&thread, NULL, test_func, NULL); + pthread_detach(thread); + pthread_cancel(thread); + pthread_join(thread, NULL); + pthread_atfork(NULL, NULL, NULL); + pthread_exit(NULL); + + return 0; +} + diff --git a/server/cmake-build-debug/CMakeFiles/CMakeRuleHashes.txt b/server/cmake-build-debug/CMakeFiles/CMakeRuleHashes.txt new file mode 100644 index 0000000..1a4e1ba --- /dev/null +++ b/server/cmake-build-debug/CMakeFiles/CMakeRuleHashes.txt @@ -0,0 +1,2 @@ +# Hashes of file build rules. +5913e48a20eface1ffb15536ae350601 CompLib.pb.h diff --git a/server/cmake-build-debug/CMakeFiles/Makefile.cmake b/server/cmake-build-debug/CMakeFiles/Makefile.cmake new file mode 100644 index 0000000..e61f812 --- /dev/null +++ b/server/cmake-build-debug/CMakeFiles/Makefile.cmake @@ -0,0 +1,64 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.17 + +# The generator used is: +set(CMAKE_DEPENDS_GENERATOR "Unix Makefiles") + +# The top level Makefile was generated from the following files: +set(CMAKE_MAKEFILE_DEPENDS + "CMakeCache.txt" + "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/CMakeCInformation.cmake" + "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/CMakeCXXInformation.cmake" + "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/CMakeCheckCompilerFlagCommonPatterns.cmake" + "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/CMakeCommonLanguageInclude.cmake" + "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/CMakeExtraGeneratorDetermineCompilerMacrosAndIncludeDirs.cmake" + "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/CMakeFindCodeBlocks.cmake" + "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/CMakeGenericSystem.cmake" + "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/CMakeInitializeConfigs.cmake" + "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/CMakeLanguageInformation.cmake" + "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/CMakeSystemSpecificInformation.cmake" + "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/CMakeSystemSpecificInitialize.cmake" + "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/CheckCSourceCompiles.cmake" + "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/CheckIncludeFile.cmake" + "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/CheckLibraryExists.cmake" + "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/Compiler/AppleClang-C.cmake" + "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/Compiler/AppleClang-CXX.cmake" + "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/Compiler/CMakeCommonCompilerMacros.cmake" + "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/Compiler/Clang.cmake" + "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/Compiler/GNU.cmake" + "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake" + "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/FindPackageMessage.cmake" + "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/FindProtobuf.cmake" + "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/FindThreads.cmake" + "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/Internal/CMakeCheckCompilerFlag.cmake" + "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/Platform/Apple-AppleClang-C.cmake" + "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/Platform/Apple-AppleClang-CXX.cmake" + "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/Platform/Apple-Clang-C.cmake" + "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/Platform/Apple-Clang-CXX.cmake" + "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/Platform/Apple-Clang.cmake" + "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/Platform/Darwin-Initialize.cmake" + "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/Platform/Darwin.cmake" + "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/Platform/UnixPaths.cmake" + "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/ProcessorCount.cmake" + "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/SelectLibraryConfigurations.cmake" + "../CMakeLists.txt" + "CMakeFiles/3.17.3/CMakeCCompiler.cmake" + "CMakeFiles/3.17.3/CMakeCXXCompiler.cmake" + "CMakeFiles/3.17.3/CMakeSystem.cmake" + ) + +# The corresponding makefile is: +set(CMAKE_MAKEFILE_OUTPUTS + "Makefile" + "CMakeFiles/cmake.check_cache" + ) + +# Byproducts of CMake generate step: +set(CMAKE_MAKEFILE_PRODUCTS + "CMakeFiles/CMakeDirectoryInformation.cmake" + ) + +# Dependency information for all targets: +set(CMAKE_DEPEND_INFO_FILES + "CMakeFiles/compLib_server.dir/DependInfo.cmake" + ) diff --git a/server/cmake-build-debug/CMakeFiles/Makefile2 b/server/cmake-build-debug/CMakeFiles/Makefile2 new file mode 100644 index 0000000..904cb34 --- /dev/null +++ b/server/cmake-build-debug/CMakeFiles/Makefile2 @@ -0,0 +1,126 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.17 + +# Default target executed when no arguments are given to make. +default_target: all + +.PHONY : default_target + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Disable VCS-based implicit rules. +% : %,v + + +# Disable VCS-based implicit rules. +% : RCS/% + + +# Disable VCS-based implicit rules. +% : RCS/%,v + + +# Disable VCS-based implicit rules. +% : SCCS/s.% + + +# Disable VCS-based implicit rules. +% : s.% + + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /Applications/CLion.app/Contents/bin/cmake/mac/bin/cmake + +# The command to remove a file. +RM = /Applications/CLion.app/Contents/bin/cmake/mac/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /Users/konstantinviesure/workspace/compLIB/server + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug + +#============================================================================= +# Directory level rules for the build root directory + +# The main recursive "all" target. +all: CMakeFiles/compLib_server.dir/all + +.PHONY : all + +# The main recursive "preinstall" target. +preinstall: + +.PHONY : preinstall + +# The main recursive "clean" target. +clean: CMakeFiles/compLib_server.dir/clean + +.PHONY : clean + +#============================================================================= +# Target rules for target CMakeFiles/compLib_server.dir + +# All Build rule for target. +CMakeFiles/compLib_server.dir/all: + $(MAKE) $(MAKESILENT) -f CMakeFiles/compLib_server.dir/build.make CMakeFiles/compLib_server.dir/depend + $(MAKE) $(MAKESILENT) -f CMakeFiles/compLib_server.dir/build.make CMakeFiles/compLib_server.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CMakeFiles --progress-num=1,2,3,4,5 "Built target compLib_server" +.PHONY : CMakeFiles/compLib_server.dir/all + +# Build rule for subdir invocation for target. +CMakeFiles/compLib_server.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CMakeFiles 5 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 CMakeFiles/compLib_server.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CMakeFiles 0 +.PHONY : CMakeFiles/compLib_server.dir/rule + +# Convenience name for target. +compLib_server: CMakeFiles/compLib_server.dir/rule + +.PHONY : compLib_server + +# clean rule for target. +CMakeFiles/compLib_server.dir/clean: + $(MAKE) $(MAKESILENT) -f CMakeFiles/compLib_server.dir/build.make CMakeFiles/compLib_server.dir/clean +.PHONY : CMakeFiles/compLib_server.dir/clean + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/server/cmake-build-debug/CMakeFiles/TargetDirectories.txt b/server/cmake-build-debug/CMakeFiles/TargetDirectories.txt new file mode 100644 index 0000000..1dbc010 --- /dev/null +++ b/server/cmake-build-debug/CMakeFiles/TargetDirectories.txt @@ -0,0 +1,3 @@ +/Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CMakeFiles/rebuild_cache.dir +/Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CMakeFiles/edit_cache.dir +/Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CMakeFiles/compLib_server.dir diff --git a/server/cmake-build-debug/CMakeFiles/clion-environment.txt b/server/cmake-build-debug/CMakeFiles/clion-environment.txt new file mode 100644 index 0000000..270d93c --- /dev/null +++ b/server/cmake-build-debug/CMakeFiles/clion-environment.txt @@ -0,0 +1,3 @@ +ToolSet: 1.0 (local)Options: + +Options: \ No newline at end of file diff --git a/server/cmake-build-debug/CMakeFiles/clion-log.txt b/server/cmake-build-debug/CMakeFiles/clion-log.txt new file mode 100644 index 0000000..95a55a6 --- /dev/null +++ b/server/cmake-build-debug/CMakeFiles/clion-log.txt @@ -0,0 +1,4 @@ +/Applications/CLion.app/Contents/bin/cmake/mac/bin/cmake -DCMAKE_BUILD_TYPE=Debug -G "CodeBlocks - Unix Makefiles" /Users/konstantinviesure/workspace/compLIB/server +-- Configuring done +-- Generating done +-- Build files have been written to: /Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug diff --git a/server/cmake-build-debug/CMakeFiles/cmake.check_cache b/server/cmake-build-debug/CMakeFiles/cmake.check_cache new file mode 100644 index 0000000..3dccd73 --- /dev/null +++ b/server/cmake-build-debug/CMakeFiles/cmake.check_cache @@ -0,0 +1 @@ +# This file is generated by cmake for dependency checking of the CMakeCache.txt file diff --git a/server/cmake-build-debug/CMakeFiles/compLib_server.dir/CXX.includecache b/server/cmake-build-debug/CMakeFiles/compLib_server.dir/CXX.includecache new file mode 100644 index 0000000..dec4c63 --- /dev/null +++ b/server/cmake-build-debug/CMakeFiles/compLib_server.dir/CXX.includecache @@ -0,0 +1,958 @@ +#IncludeRegexLine: ^[ ]*[#%][ ]*(include|import)[ ]*[<"]([^">]+)([">]) + +#IncludeRegexScan: ^.*$ + +#IncludeRegexComplain: ^$ + +#IncludeRegexTransform: + +../include/errorMessages.hpp + +../include/messageBuilder.hpp +CompLib.pb.h +- + +/Users/konstantinviesure/workspace/compLIB/server/src/main.cpp +iostream +- +CompLib.pb.h +- +sys/un.h +- +sys/socket.h +- +zconf.h +- +include/messageBuilder.hpp +/Users/konstantinviesure/workspace/compLIB/server/src/include/messageBuilder.hpp +include/errorMessages.hpp +/Users/konstantinviesure/workspace/compLIB/server/src/include/errorMessages.hpp + +/usr/local/include/google/protobuf/any.h +string +- +google/protobuf/stubs/common.h +- +google/protobuf/arenastring.h +- +google/protobuf/message_lite.h +- +google/protobuf/port_def.inc +- +google/protobuf/port_undef.inc +- + +/usr/local/include/google/protobuf/arena.h +limits +- +type_traits +- +utility +- +exception +- +typeinfo +- +typeinfo +- +type_traits +- +google/protobuf/arena_impl.h +- +google/protobuf/port.h +- +google/protobuf/port_def.inc +- +google/protobuf/port_undef.inc +- + +/usr/local/include/google/protobuf/arena_impl.h +atomic +- +limits +- +typeinfo +- +google/protobuf/stubs/common.h +- +google/protobuf/stubs/logging.h +- +sanitizer/asan_interface.h +- +google/protobuf/port_def.inc +- +google/protobuf/port_undef.inc +- + +/usr/local/include/google/protobuf/arenastring.h +string +- +type_traits +- +utility +- +google/protobuf/stubs/logging.h +- +google/protobuf/stubs/common.h +- +google/protobuf/arena.h +- +google/protobuf/port.h +- +google/protobuf/port_def.inc +- +google/protobuf/port_undef.inc +- + +/usr/local/include/google/protobuf/descriptor.h +atomic +- +map +- +memory +- +set +- +string +- +vector +- +google/protobuf/stubs/common.h +- +google/protobuf/stubs/logging.h +- +google/protobuf/stubs/mutex.h +- +google/protobuf/stubs/once.h +- +google/protobuf/port.h +- +google/protobuf/port_def.inc +- +google/protobuf/port_undef.inc +- + +/usr/local/include/google/protobuf/explicitly_constructed.h +stdint.h +- +utility +- +google/protobuf/stubs/logging.h +- +google/protobuf/stubs/common.h +- +google/protobuf/port_def.inc +- +google/protobuf/port_undef.inc +- + +/usr/local/include/google/protobuf/extension_set.h +algorithm +- +cassert +- +map +- +string +- +utility +- +vector +- +google/protobuf/stubs/common.h +- +google/protobuf/stubs/logging.h +- +google/protobuf/parse_context.h +- +google/protobuf/io/coded_stream.h +- +google/protobuf/port.h +- +google/protobuf/repeated_field.h +- +google/protobuf/wire_format_lite.h +- +google/protobuf/port_def.inc +- +google/protobuf/port_undef.inc +- + +/usr/local/include/google/protobuf/generated_enum_reflection.h +string +- +google/protobuf/generated_enum_util.h +- +google/protobuf/port.h +- +google/protobuf/stubs/strutil.h +- +google/protobuf/port_def.inc +- +google/protobuf/port_undef.inc +- + +/usr/local/include/google/protobuf/generated_enum_util.h +type_traits +- +google/protobuf/message_lite.h +- +google/protobuf/stubs/strutil.h +- +google/protobuf/port_def.inc +- +google/protobuf/port_undef.inc +- + +/usr/local/include/google/protobuf/generated_message_reflection.h +string +- +vector +- +google/protobuf/stubs/casts.h +- +google/protobuf/stubs/common.h +- +google/protobuf/descriptor.h +- +google/protobuf/generated_enum_reflection.h +- +google/protobuf/stubs/once.h +- +google/protobuf/port.h +- +google/protobuf/unknown_field_set.h +- +google/protobuf/port_def.inc +- +google/protobuf/port_undef.inc +- + +/usr/local/include/google/protobuf/generated_message_table_driven.h +google/protobuf/map.h +- +google/protobuf/map_entry_lite.h +- +google/protobuf/map_field_lite.h +- +google/protobuf/message_lite.h +- +google/protobuf/wire_format_lite.h +- +google/protobuf/port_def.inc +- +google/protobuf/port_undef.inc +- + +/usr/local/include/google/protobuf/generated_message_util.h +assert.h +- +atomic +- +climits +- +string +- +vector +- +google/protobuf/stubs/common.h +- +google/protobuf/any.h +- +google/protobuf/has_bits.h +- +google/protobuf/implicit_weak_message.h +- +google/protobuf/message_lite.h +- +google/protobuf/stubs/once.h +- +google/protobuf/port.h +- +google/protobuf/repeated_field.h +- +google/protobuf/wire_format_lite.h +- +google/protobuf/stubs/strutil.h +- +google/protobuf/stubs/casts.h +- +google/protobuf/port_def.inc +- +google/protobuf/port_undef.inc +- + +/usr/local/include/google/protobuf/has_bits.h +google/protobuf/stubs/common.h +- +google/protobuf/port.h +- +google/protobuf/port_def.inc +- +google/protobuf/port_undef.inc +- + +/usr/local/include/google/protobuf/implicit_weak_message.h +string +- +google/protobuf/io/coded_stream.h +- +google/protobuf/arena.h +- +google/protobuf/message_lite.h +- +google/protobuf/repeated_field.h +- +google/protobuf/port_def.inc +- +google/protobuf/port_undef.inc +- + +/usr/local/include/google/protobuf/inlined_string_field.h +string +- +utility +- +google/protobuf/stubs/logging.h +- +google/protobuf/stubs/common.h +- +google/protobuf/arenastring.h +- +google/protobuf/message_lite.h +- +google/protobuf/port.h +- +google/protobuf/stubs/strutil.h +- +google/protobuf/port_def.inc +- +google/protobuf/port_undef.inc +- + +/usr/local/include/google/protobuf/io/coded_stream.h +assert.h +- +atomic +- +climits +- +cstddef +- +cstring +- +limits +- +string +- +type_traits +- +utility +- +machine/endian.h +- +sys/endian.h +- +sys/isa_defs.h +- +sys/machine.h +- +endian.h +- +google/protobuf/stubs/common.h +- +google/protobuf/stubs/logging.h +- +google/protobuf/stubs/strutil.h +- +google/protobuf/port.h +- +google/protobuf/stubs/port.h +- +google/protobuf/port_def.inc +- +google/protobuf/port_undef.inc +- + +/usr/local/include/google/protobuf/io/zero_copy_stream.h +string +- +google/protobuf/stubs/common.h +- +google/protobuf/port_def.inc +- +google/protobuf/port_undef.inc +- + +/usr/local/include/google/protobuf/io/zero_copy_stream_impl_lite.h +iosfwd +- +memory +- +string +- +google/protobuf/stubs/callback.h +- +google/protobuf/stubs/common.h +- +google/protobuf/io/zero_copy_stream.h +- +google/protobuf/stubs/stl_util.h +- +google/protobuf/port_def.inc +- +google/protobuf/port_undef.inc +- + +/usr/local/include/google/protobuf/map.h +functional +- +initializer_list +- +iterator +- +limits +- +map +- +string +- +type_traits +- +utility +- +string_view +- +mach/mach_time.h +- +google/protobuf/stubs/common.h +- +google/protobuf/arena.h +- +google/protobuf/generated_enum_util.h +- +google/protobuf/map_type_handler.h +- +google/protobuf/stubs/hash.h +- +google/protobuf/port_def.inc +- +google/protobuf/port_undef.inc +- + +/usr/local/include/google/protobuf/map_entry_lite.h +assert.h +- +string +- +google/protobuf/stubs/casts.h +- +google/protobuf/parse_context.h +- +google/protobuf/io/coded_stream.h +- +google/protobuf/arena.h +- +google/protobuf/arenastring.h +- +google/protobuf/generated_message_util.h +- +google/protobuf/map.h +- +google/protobuf/map_type_handler.h +- +google/protobuf/port.h +- +google/protobuf/wire_format_lite.h +- +google/protobuf/port_def.inc +- +google/protobuf/port_undef.inc +- + +/usr/local/include/google/protobuf/map_field_lite.h +type_traits +- +google/protobuf/parse_context.h +- +google/protobuf/io/coded_stream.h +- +google/protobuf/map.h +- +google/protobuf/map_entry_lite.h +- +google/protobuf/port.h +- +google/protobuf/wire_format_lite.h +- +google/protobuf/port_def.inc +- +google/protobuf/port_undef.inc +- + +/usr/local/include/google/protobuf/map_type_handler.h +google/protobuf/parse_context.h +- +google/protobuf/io/coded_stream.h +- +google/protobuf/arena.h +- +google/protobuf/wire_format_lite.h +- + +/usr/local/include/google/protobuf/message.h +iosfwd +- +string +- +type_traits +- +vector +- +google/protobuf/stubs/casts.h +- +google/protobuf/stubs/common.h +- +google/protobuf/arena.h +- +google/protobuf/descriptor.h +- +google/protobuf/generated_message_reflection.h +- +google/protobuf/generated_message_util.h +- +google/protobuf/message_lite.h +- +google/protobuf/port.h +- +google/protobuf/port_def.inc +- +google/protobuf/port_undef.inc +- + +/usr/local/include/google/protobuf/message_lite.h +climits +- +string +- +google/protobuf/stubs/common.h +- +google/protobuf/stubs/logging.h +- +google/protobuf/io/coded_stream.h +- +google/protobuf/arena.h +- +google/protobuf/explicitly_constructed.h +- +google/protobuf/metadata_lite.h +- +google/protobuf/stubs/once.h +- +google/protobuf/port.h +- +google/protobuf/stubs/strutil.h +- +google/protobuf/port_def.inc +- +google/protobuf/port_undef.inc +- + +/usr/local/include/google/protobuf/metadata_lite.h +string +- +google/protobuf/stubs/common.h +- +google/protobuf/arena.h +- +google/protobuf/port.h +- +google/protobuf/port_def.inc +- +google/protobuf/port_undef.inc +- + +/usr/local/include/google/protobuf/parse_context.h +cstdint +- +cstring +- +string +- +google/protobuf/io/coded_stream.h +- +google/protobuf/io/zero_copy_stream.h +- +google/protobuf/arena.h +- +google/protobuf/arenastring.h +- +google/protobuf/implicit_weak_message.h +- +google/protobuf/inlined_string_field.h +- +google/protobuf/metadata_lite.h +- +google/protobuf/port.h +- +google/protobuf/repeated_field.h +- +google/protobuf/wire_format_lite.h +- +google/protobuf/stubs/strutil.h +- +google/protobuf/port_def.inc +- +google/protobuf/port_undef.inc +- + +/usr/local/include/google/protobuf/port.h + +/usr/local/include/google/protobuf/port_def.inc + +/usr/local/include/google/protobuf/port_undef.inc + +/usr/local/include/google/protobuf/repeated_field.h +utility +- +algorithm +- +iterator +- +limits +- +string +- +type_traits +- +google/protobuf/stubs/logging.h +- +google/protobuf/stubs/common.h +- +google/protobuf/repeated_ptr_field.h +- +google/protobuf/arena.h +- +google/protobuf/message_lite.h +- +google/protobuf/port.h +- +google/protobuf/port_def.inc +- +google/protobuf/port_undef.inc +- + +/usr/local/include/google/protobuf/repeated_ptr_field.h +utility +- +algorithm +- +iterator +- +limits +- +string +- +type_traits +- +google/protobuf/stubs/logging.h +- +google/protobuf/stubs/common.h +- +google/protobuf/arena.h +- +google/protobuf/message_lite.h +- +google/protobuf/port.h +- +google/protobuf/port_def.inc +- +google/protobuf/port_undef.inc +- + +/usr/local/include/google/protobuf/stubs/callback.h +type_traits +- +google/protobuf/stubs/macros.h +- +google/protobuf/port_def.inc +- +google/protobuf/port_undef.inc +- + +/usr/local/include/google/protobuf/stubs/casts.h +google/protobuf/stubs/common.h +- +google/protobuf/port_def.inc +- +type_traits +- +google/protobuf/port_undef.inc +- + +/usr/local/include/google/protobuf/stubs/common.h +algorithm +- +iostream +- +map +- +memory +- +set +- +string +- +vector +- +google/protobuf/stubs/macros.h +- +google/protobuf/stubs/platform_macros.h +- +google/protobuf/stubs/port.h +- +google/protobuf/stubs/stringpiece.h +- +exception +- +TargetConditionals.h +- +pthread.h +- +google/protobuf/port_def.inc +- +google/protobuf/port_undef.inc +- + +/usr/local/include/google/protobuf/stubs/hash.h +cstring +- +string +- +unordered_map +- +unordered_set +- + +/usr/local/include/google/protobuf/stubs/logging.h +google/protobuf/stubs/macros.h +- +google/protobuf/stubs/port.h +- +google/protobuf/stubs/status.h +- +google/protobuf/stubs/stringpiece.h +- +google/protobuf/port_def.inc +- +google/protobuf/port_undef.inc +- + +/usr/local/include/google/protobuf/stubs/macros.h + +/usr/local/include/google/protobuf/stubs/mutex.h +mutex +- +windows.h +- +google/protobuf/stubs/macros.h +- +google/protobuf/port_def.inc +- +google/protobuf/port_undef.inc +- + +/usr/local/include/google/protobuf/stubs/once.h +mutex +- +utility +- +google/protobuf/port_def.inc +- +google/protobuf/port_undef.inc +- + +/usr/local/include/google/protobuf/stubs/platform_macros.h +Availability.h +- +TargetConditionals.h +- + +/usr/local/include/google/protobuf/stubs/port.h +assert.h +- +cstdint +- +stdlib.h +- +cstddef +- +string +- +string.h +- +google/protobuf/stubs/platform_macros.h +- +google/protobuf/port_def.inc +- +machine/endian.h +- +sys/endian.h +- +sys/isa_defs.h +- +sys/machine.h +- +endian.h +- +stdlib.h +- +intrin.h +- +libkern/OSByteOrder.h +- +byteswap.h +- +google/protobuf/port_undef.inc +- + +/usr/local/include/google/protobuf/stubs/status.h +string +- +google/protobuf/stubs/stringpiece.h +- +google/protobuf/port_def.inc +- +google/protobuf/port_undef.inc +- + +/usr/local/include/google/protobuf/stubs/stl_util.h +google/protobuf/stubs/common.h +- +algorithm +- + +/usr/local/include/google/protobuf/stubs/stringpiece.h +assert.h +- +stddef.h +- +string.h +- +iosfwd +- +limits +- +string +- +string_view +- +google/protobuf/stubs/hash.h +- +google/protobuf/port_def.inc +- +google/protobuf/port_undef.inc +- + +/usr/local/include/google/protobuf/stubs/strutil.h +google/protobuf/stubs/common.h +- +google/protobuf/stubs/stringpiece.h +- +stdlib.h +- +cstring +- +google/protobuf/port_def.inc +- +vector +- +google/protobuf/port_undef.inc +- + +/usr/local/include/google/protobuf/unknown_field_set.h +assert.h +- +string +- +vector +- +google/protobuf/stubs/common.h +- +google/protobuf/stubs/logging.h +- +google/protobuf/parse_context.h +- +google/protobuf/io/coded_stream.h +- +google/protobuf/io/zero_copy_stream_impl_lite.h +- +google/protobuf/message_lite.h +- +google/protobuf/port.h +- +google/protobuf/port_def.inc +- +google/protobuf/port_undef.inc +- + +/usr/local/include/google/protobuf/wire_format_lite.h +string +- +google/protobuf/stubs/common.h +- +google/protobuf/stubs/logging.h +- +google/protobuf/io/coded_stream.h +- +google/protobuf/arenastring.h +- +google/protobuf/message_lite.h +- +google/protobuf/port.h +- +google/protobuf/repeated_field.h +- +google/protobuf/stubs/casts.h +- +google/protobuf/port_def.inc +- +google/protobuf/port_undef.inc +- + +CompLib.pb.h +limits +- +string +- +google/protobuf/port_def.inc +- +google/protobuf/port_undef.inc +- +google/protobuf/io/coded_stream.h +- +google/protobuf/arena.h +- +google/protobuf/arenastring.h +- +google/protobuf/generated_message_table_driven.h +- +google/protobuf/generated_message_util.h +- +google/protobuf/metadata_lite.h +- +google/protobuf/generated_message_reflection.h +- +google/protobuf/message.h +- +google/protobuf/repeated_field.h +- +google/protobuf/extension_set.h +- +google/protobuf/unknown_field_set.h +- +google/protobuf/port_def.inc +- +google/protobuf/port_undef.inc +- + diff --git a/server/cmake-build-debug/CMakeFiles/compLib_server.dir/CompLib.pb.cc.o b/server/cmake-build-debug/CMakeFiles/compLib_server.dir/CompLib.pb.cc.o new file mode 100644 index 0000000000000000000000000000000000000000..e87eceb8f004de905d242db7ad2c90c016a0460d GIT binary patch literal 746364 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ȟnIWCFcT6c7G6q1-DKO!mt=`I^jZ)tU&TD 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%0Dc5C$$ed-?eA3+D8##?AcE3BfOQ9FIW3$ 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 CMakeFiles/compLib_server.dir/src/main.cpp.i + +CMakeFiles/compLib_server.dir/src/main.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/compLib_server.dir/src/main.cpp.s" + /Library/Developer/CommandLineTools/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /Users/konstantinviesure/workspace/compLIB/server/src/main.cpp -o CMakeFiles/compLib_server.dir/src/main.cpp.s + +CMakeFiles/compLib_server.dir/src/Spi.cpp.o: CMakeFiles/compLib_server.dir/flags.make +CMakeFiles/compLib_server.dir/src/Spi.cpp.o: ../src/Spi.cpp + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_3) "Building CXX object CMakeFiles/compLib_server.dir/src/Spi.cpp.o" + /Library/Developer/CommandLineTools/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/compLib_server.dir/src/Spi.cpp.o -c /Users/konstantinviesure/workspace/compLIB/server/src/Spi.cpp + +CMakeFiles/compLib_server.dir/src/Spi.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/compLib_server.dir/src/Spi.cpp.i" + /Library/Developer/CommandLineTools/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /Users/konstantinviesure/workspace/compLIB/server/src/Spi.cpp > CMakeFiles/compLib_server.dir/src/Spi.cpp.i + +CMakeFiles/compLib_server.dir/src/Spi.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/compLib_server.dir/src/Spi.cpp.s" + /Library/Developer/CommandLineTools/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /Users/konstantinviesure/workspace/compLIB/server/src/Spi.cpp -o CMakeFiles/compLib_server.dir/src/Spi.cpp.s + +CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: CMakeFiles/compLib_server.dir/flags.make +CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: CompLib.pb.cc + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_4) "Building CXX object CMakeFiles/compLib_server.dir/CompLib.pb.cc.o" + /Library/Developer/CommandLineTools/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/compLib_server.dir/CompLib.pb.cc.o -c /Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CompLib.pb.cc + +CMakeFiles/compLib_server.dir/CompLib.pb.cc.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/compLib_server.dir/CompLib.pb.cc.i" + /Library/Developer/CommandLineTools/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CompLib.pb.cc > CMakeFiles/compLib_server.dir/CompLib.pb.cc.i + +CMakeFiles/compLib_server.dir/CompLib.pb.cc.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/compLib_server.dir/CompLib.pb.cc.s" + /Library/Developer/CommandLineTools/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CompLib.pb.cc -o CMakeFiles/compLib_server.dir/CompLib.pb.cc.s + +# Object files for target compLib_server +compLib_server_OBJECTS = \ +"CMakeFiles/compLib_server.dir/src/main.cpp.o" \ +"CMakeFiles/compLib_server.dir/src/Spi.cpp.o" \ +"CMakeFiles/compLib_server.dir/CompLib.pb.cc.o" + +# External object files for target compLib_server +compLib_server_EXTERNAL_OBJECTS = + +compLib_server: CMakeFiles/compLib_server.dir/src/main.cpp.o +compLib_server: CMakeFiles/compLib_server.dir/src/Spi.cpp.o +compLib_server: CMakeFiles/compLib_server.dir/CompLib.pb.cc.o +compLib_server: CMakeFiles/compLib_server.dir/build.make +compLib_server: /usr/local/lib/libprotobuf.dylib +compLib_server: CMakeFiles/compLib_server.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_5) "Linking CXX executable compLib_server" + $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/compLib_server.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +CMakeFiles/compLib_server.dir/build: compLib_server + +.PHONY : CMakeFiles/compLib_server.dir/build + +CMakeFiles/compLib_server.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/compLib_server.dir/cmake_clean.cmake +.PHONY : CMakeFiles/compLib_server.dir/clean + +CMakeFiles/compLib_server.dir/depend: CompLib.pb.h +CMakeFiles/compLib_server.dir/depend: CompLib.pb.cc + cd /Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /Users/konstantinviesure/workspace/compLIB/server /Users/konstantinviesure/workspace/compLIB/server /Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug /Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug /Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CMakeFiles/compLib_server.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : CMakeFiles/compLib_server.dir/depend + diff --git a/server/cmake-build-debug/CMakeFiles/compLib_server.dir/cmake_clean.cmake b/server/cmake-build-debug/CMakeFiles/compLib_server.dir/cmake_clean.cmake new file mode 100644 index 0000000..f78f2b6 --- /dev/null +++ b/server/cmake-build-debug/CMakeFiles/compLib_server.dir/cmake_clean.cmake @@ -0,0 +1,14 @@ +file(REMOVE_RECURSE + "CMakeFiles/compLib_server.dir/CompLib.pb.cc.o" + "CMakeFiles/compLib_server.dir/src/Spi.cpp.o" + "CMakeFiles/compLib_server.dir/src/main.cpp.o" + "CompLib.pb.cc" + "CompLib.pb.h" + "compLib_server" + "compLib_server.pdb" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/compLib_server.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/server/cmake-build-debug/CMakeFiles/compLib_server.dir/depend.internal b/server/cmake-build-debug/CMakeFiles/compLib_server.dir/depend.internal new file mode 100644 index 0000000..bd43152 --- /dev/null +++ b/server/cmake-build-debug/CMakeFiles/compLib_server.dir/depend.internal @@ -0,0 +1,107 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.17 + +CMakeFiles/compLib_server.dir/CompLib.pb.cc.o + /Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CompLib.pb.cc + /Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CompLib.pb.h + /usr/local/include/google/protobuf/any.h + /usr/local/include/google/protobuf/arena.h + /usr/local/include/google/protobuf/arena_impl.h + /usr/local/include/google/protobuf/arenastring.h + /usr/local/include/google/protobuf/descriptor.h + /usr/local/include/google/protobuf/explicitly_constructed.h + /usr/local/include/google/protobuf/extension_set.h + /usr/local/include/google/protobuf/generated_enum_reflection.h + /usr/local/include/google/protobuf/generated_enum_util.h + /usr/local/include/google/protobuf/generated_message_reflection.h + /usr/local/include/google/protobuf/generated_message_table_driven.h + /usr/local/include/google/protobuf/generated_message_util.h + /usr/local/include/google/protobuf/has_bits.h + /usr/local/include/google/protobuf/implicit_weak_message.h + /usr/local/include/google/protobuf/inlined_string_field.h + /usr/local/include/google/protobuf/io/coded_stream.h + /usr/local/include/google/protobuf/io/zero_copy_stream.h + /usr/local/include/google/protobuf/io/zero_copy_stream_impl_lite.h + /usr/local/include/google/protobuf/map.h + /usr/local/include/google/protobuf/map_entry_lite.h + /usr/local/include/google/protobuf/map_field_lite.h + /usr/local/include/google/protobuf/map_type_handler.h + /usr/local/include/google/protobuf/message.h + /usr/local/include/google/protobuf/message_lite.h + /usr/local/include/google/protobuf/metadata_lite.h + /usr/local/include/google/protobuf/parse_context.h + /usr/local/include/google/protobuf/port.h + /usr/local/include/google/protobuf/port_def.inc + /usr/local/include/google/protobuf/port_undef.inc + /usr/local/include/google/protobuf/reflection_ops.h + /usr/local/include/google/protobuf/repeated_field.h + /usr/local/include/google/protobuf/repeated_ptr_field.h + /usr/local/include/google/protobuf/stubs/callback.h + /usr/local/include/google/protobuf/stubs/casts.h + /usr/local/include/google/protobuf/stubs/common.h + /usr/local/include/google/protobuf/stubs/hash.h + /usr/local/include/google/protobuf/stubs/logging.h + /usr/local/include/google/protobuf/stubs/macros.h + /usr/local/include/google/protobuf/stubs/mutex.h + /usr/local/include/google/protobuf/stubs/once.h + /usr/local/include/google/protobuf/stubs/platform_macros.h + /usr/local/include/google/protobuf/stubs/port.h + /usr/local/include/google/protobuf/stubs/status.h + /usr/local/include/google/protobuf/stubs/stl_util.h + /usr/local/include/google/protobuf/stubs/stringpiece.h + /usr/local/include/google/protobuf/stubs/strutil.h + /usr/local/include/google/protobuf/unknown_field_set.h + /usr/local/include/google/protobuf/wire_format.h + /usr/local/include/google/protobuf/wire_format_lite.h +CMakeFiles/compLib_server.dir/src/main.cpp.o + ../include/errorMessages.hpp + ../include/messageBuilder.hpp + /Users/konstantinviesure/workspace/compLIB/server/src/main.cpp + /usr/local/include/google/protobuf/any.h + /usr/local/include/google/protobuf/arena.h + /usr/local/include/google/protobuf/arena_impl.h + /usr/local/include/google/protobuf/arenastring.h + /usr/local/include/google/protobuf/descriptor.h + /usr/local/include/google/protobuf/explicitly_constructed.h + /usr/local/include/google/protobuf/extension_set.h + /usr/local/include/google/protobuf/generated_enum_reflection.h + /usr/local/include/google/protobuf/generated_enum_util.h + /usr/local/include/google/protobuf/generated_message_reflection.h + /usr/local/include/google/protobuf/generated_message_table_driven.h + /usr/local/include/google/protobuf/generated_message_util.h + /usr/local/include/google/protobuf/has_bits.h + /usr/local/include/google/protobuf/implicit_weak_message.h + /usr/local/include/google/protobuf/inlined_string_field.h + /usr/local/include/google/protobuf/io/coded_stream.h + /usr/local/include/google/protobuf/io/zero_copy_stream.h + /usr/local/include/google/protobuf/io/zero_copy_stream_impl_lite.h + /usr/local/include/google/protobuf/map.h + /usr/local/include/google/protobuf/map_entry_lite.h + /usr/local/include/google/protobuf/map_field_lite.h + /usr/local/include/google/protobuf/map_type_handler.h + /usr/local/include/google/protobuf/message.h + /usr/local/include/google/protobuf/message_lite.h + /usr/local/include/google/protobuf/metadata_lite.h + /usr/local/include/google/protobuf/parse_context.h + /usr/local/include/google/protobuf/port.h + /usr/local/include/google/protobuf/port_def.inc + /usr/local/include/google/protobuf/port_undef.inc + /usr/local/include/google/protobuf/repeated_field.h + /usr/local/include/google/protobuf/repeated_ptr_field.h + /usr/local/include/google/protobuf/stubs/callback.h + /usr/local/include/google/protobuf/stubs/casts.h + /usr/local/include/google/protobuf/stubs/common.h + /usr/local/include/google/protobuf/stubs/hash.h + /usr/local/include/google/protobuf/stubs/logging.h + /usr/local/include/google/protobuf/stubs/macros.h + /usr/local/include/google/protobuf/stubs/mutex.h + /usr/local/include/google/protobuf/stubs/once.h + /usr/local/include/google/protobuf/stubs/platform_macros.h + /usr/local/include/google/protobuf/stubs/port.h + /usr/local/include/google/protobuf/stubs/status.h + /usr/local/include/google/protobuf/stubs/stl_util.h + /usr/local/include/google/protobuf/stubs/stringpiece.h + /usr/local/include/google/protobuf/stubs/strutil.h + /usr/local/include/google/protobuf/unknown_field_set.h + /usr/local/include/google/protobuf/wire_format_lite.h + CompLib.pb.h diff --git a/server/cmake-build-debug/CMakeFiles/compLib_server.dir/depend.make b/server/cmake-build-debug/CMakeFiles/compLib_server.dir/depend.make new file mode 100644 index 0000000..3d50325 --- /dev/null +++ b/server/cmake-build-debug/CMakeFiles/compLib_server.dir/depend.make @@ -0,0 +1,107 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.17 + +CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: CompLib.pb.cc +CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: CompLib.pb.h +CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/any.h +CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/arena.h +CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/arena_impl.h +CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/arenastring.h +CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/descriptor.h +CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/explicitly_constructed.h +CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/extension_set.h +CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/generated_enum_reflection.h +CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/generated_enum_util.h +CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/generated_message_reflection.h +CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/generated_message_table_driven.h +CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/generated_message_util.h +CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/has_bits.h +CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/implicit_weak_message.h +CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/inlined_string_field.h +CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/io/coded_stream.h +CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/io/zero_copy_stream.h +CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/io/zero_copy_stream_impl_lite.h +CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/map.h +CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/map_entry_lite.h +CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/map_field_lite.h +CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/map_type_handler.h +CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/message.h +CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/message_lite.h +CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/metadata_lite.h +CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/parse_context.h +CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/port.h +CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/port_def.inc +CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/port_undef.inc +CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/reflection_ops.h +CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/repeated_field.h +CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/repeated_ptr_field.h +CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/stubs/callback.h +CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/stubs/casts.h +CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/stubs/common.h +CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/stubs/hash.h +CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/stubs/logging.h +CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/stubs/macros.h +CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/stubs/mutex.h +CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/stubs/once.h +CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/stubs/platform_macros.h +CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/stubs/port.h +CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/stubs/status.h +CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/stubs/stl_util.h +CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/stubs/stringpiece.h +CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/stubs/strutil.h +CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/unknown_field_set.h +CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/wire_format.h +CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/wire_format_lite.h + +CMakeFiles/compLib_server.dir/src/main.cpp.o: ../include/errorMessages.hpp +CMakeFiles/compLib_server.dir/src/main.cpp.o: ../include/messageBuilder.hpp +CMakeFiles/compLib_server.dir/src/main.cpp.o: ../src/main.cpp +CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/any.h +CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/arena.h +CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/arena_impl.h +CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/arenastring.h +CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/descriptor.h +CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/explicitly_constructed.h +CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/extension_set.h +CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/generated_enum_reflection.h +CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/generated_enum_util.h +CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/generated_message_reflection.h +CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/generated_message_table_driven.h +CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/generated_message_util.h +CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/has_bits.h +CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/implicit_weak_message.h +CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/inlined_string_field.h +CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/io/coded_stream.h +CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/io/zero_copy_stream.h +CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/io/zero_copy_stream_impl_lite.h +CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/map.h +CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/map_entry_lite.h +CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/map_field_lite.h +CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/map_type_handler.h +CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/message.h +CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/message_lite.h +CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/metadata_lite.h +CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/parse_context.h +CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/port.h +CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/port_def.inc +CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/port_undef.inc +CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/repeated_field.h +CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/repeated_ptr_field.h +CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/stubs/callback.h +CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/stubs/casts.h +CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/stubs/common.h +CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/stubs/hash.h +CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/stubs/logging.h +CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/stubs/macros.h +CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/stubs/mutex.h +CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/stubs/once.h +CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/stubs/platform_macros.h +CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/stubs/port.h +CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/stubs/status.h +CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/stubs/stl_util.h +CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/stubs/stringpiece.h +CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/stubs/strutil.h +CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/unknown_field_set.h +CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/wire_format_lite.h +CMakeFiles/compLib_server.dir/src/main.cpp.o: CompLib.pb.h + diff --git a/server/cmake-build-debug/CMakeFiles/compLib_server.dir/flags.make b/server/cmake-build-debug/CMakeFiles/compLib_server.dir/flags.make new file mode 100644 index 0000000..b077e13 --- /dev/null +++ b/server/cmake-build-debug/CMakeFiles/compLib_server.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.17 + +# compile CXX with /Library/Developer/CommandLineTools/usr/bin/c++ +CXX_FLAGS = -g -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk -std=gnu++17 + +CXX_DEFINES = + +CXX_INCLUDES = -I/Users/konstantinviesure/workspace/compLIB/server/third_party/asio -I/Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug -I/Users/konstantinviesure/workspace/compLIB/server -I/usr/local/include + diff --git a/server/cmake-build-debug/CMakeFiles/compLib_server.dir/link.txt b/server/cmake-build-debug/CMakeFiles/compLib_server.dir/link.txt new file mode 100644 index 0000000..2ad5a89 --- /dev/null +++ b/server/cmake-build-debug/CMakeFiles/compLib_server.dir/link.txt @@ -0,0 +1 @@ +/Library/Developer/CommandLineTools/usr/bin/c++ -g -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk -Wl,-search_paths_first -Wl,-headerpad_max_install_names CMakeFiles/compLib_server.dir/src/main.cpp.o CMakeFiles/compLib_server.dir/src/Spi.cpp.o CMakeFiles/compLib_server.dir/CompLib.pb.cc.o -o compLib_server /usr/local/lib/libprotobuf.dylib diff --git a/server/cmake-build-debug/CMakeFiles/compLib_server.dir/progress.make b/server/cmake-build-debug/CMakeFiles/compLib_server.dir/progress.make new file mode 100644 index 0000000..33e6bff --- /dev/null +++ b/server/cmake-build-debug/CMakeFiles/compLib_server.dir/progress.make @@ -0,0 +1,6 @@ +CMAKE_PROGRESS_1 = 1 +CMAKE_PROGRESS_2 = 2 +CMAKE_PROGRESS_3 = 3 +CMAKE_PROGRESS_4 = 4 +CMAKE_PROGRESS_5 = 5 + diff --git a/server/cmake-build-debug/CMakeFiles/compLib_server.dir/src/main.cpp.o b/server/cmake-build-debug/CMakeFiles/compLib_server.dir/src/main.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..0b913abc71e88be2a28fd7fe66ae09b0323eefd6 GIT binary patch literal 561916 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]+)([">]) + +#IncludeRegexScan: ^.*$ + +#IncludeRegexComplain: ^$ + +#IncludeRegexTransform: + +/Users/konstantinviesure/workspace/compLIB/server/src/main.cpp +iostream +- + diff --git a/server/cmake-build-debug/CMakeFiles/server.dir/DependInfo.cmake b/server/cmake-build-debug/CMakeFiles/server.dir/DependInfo.cmake new file mode 100644 index 0000000..27fe24b --- /dev/null +++ b/server/cmake-build-debug/CMakeFiles/server.dir/DependInfo.cmake @@ -0,0 +1,20 @@ +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + "CXX" + ) +# The set of files for implicit dependencies of each language: +set(CMAKE_DEPENDS_CHECK_CXX + "/Users/konstantinviesure/workspace/compLIB/server/src/main.cpp" "/Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CMakeFiles/server.dir/src/main.cpp.o" + ) +set(CMAKE_CXX_COMPILER_ID "AppleClang") + +# The include file search paths: +set(CMAKE_CXX_TARGET_INCLUDE_PATH + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/server/cmake-build-debug/CMakeFiles/server.dir/build.make b/server/cmake-build-debug/CMakeFiles/server.dir/build.make new file mode 100644 index 0000000..e5c3fe4 --- /dev/null +++ b/server/cmake-build-debug/CMakeFiles/server.dir/build.make @@ -0,0 +1,118 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.17 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Disable VCS-based implicit rules. +% : %,v + + +# Disable VCS-based implicit rules. +% : RCS/% + + +# Disable VCS-based implicit rules. +% : RCS/%,v + + +# Disable VCS-based implicit rules. +% : SCCS/s.% + + +# Disable VCS-based implicit rules. +% : s.% + + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /Applications/CLion.app/Contents/bin/cmake/mac/bin/cmake + +# The command to remove a file. +RM = /Applications/CLion.app/Contents/bin/cmake/mac/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /Users/konstantinviesure/workspace/compLIB/server + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug + +# Include any dependencies generated for this target. +include CMakeFiles/server.dir/depend.make + +# Include the progress variables for this target. +include CMakeFiles/server.dir/progress.make + +# Include the compile flags for this target's objects. +include CMakeFiles/server.dir/flags.make + +CMakeFiles/server.dir/src/main.cpp.o: CMakeFiles/server.dir/flags.make +CMakeFiles/server.dir/src/main.cpp.o: ../src/main.cpp + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/server.dir/src/main.cpp.o" + /Library/Developer/CommandLineTools/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/server.dir/src/main.cpp.o -c /Users/konstantinviesure/workspace/compLIB/server/src/main.cpp + +CMakeFiles/server.dir/src/main.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/server.dir/src/main.cpp.i" + /Library/Developer/CommandLineTools/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /Users/konstantinviesure/workspace/compLIB/server/src/main.cpp > CMakeFiles/server.dir/src/main.cpp.i + +CMakeFiles/server.dir/src/main.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/server.dir/src/main.cpp.s" + /Library/Developer/CommandLineTools/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /Users/konstantinviesure/workspace/compLIB/server/src/main.cpp -o CMakeFiles/server.dir/src/main.cpp.s + +# Object files for target server +server_OBJECTS = \ +"CMakeFiles/server.dir/src/main.cpp.o" + +# External object files for target server +server_EXTERNAL_OBJECTS = + +server: CMakeFiles/server.dir/src/main.cpp.o +server: CMakeFiles/server.dir/build.make +server: CMakeFiles/server.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable server" + $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/server.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +CMakeFiles/server.dir/build: server + +.PHONY : CMakeFiles/server.dir/build + +CMakeFiles/server.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/server.dir/cmake_clean.cmake +.PHONY : CMakeFiles/server.dir/clean + +CMakeFiles/server.dir/depend: + cd /Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /Users/konstantinviesure/workspace/compLIB/server /Users/konstantinviesure/workspace/compLIB/server /Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug /Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug /Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CMakeFiles/server.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : CMakeFiles/server.dir/depend + diff --git a/server/cmake-build-debug/CMakeFiles/server.dir/cmake_clean.cmake b/server/cmake-build-debug/CMakeFiles/server.dir/cmake_clean.cmake new file mode 100644 index 0000000..7c9a8b5 --- /dev/null +++ b/server/cmake-build-debug/CMakeFiles/server.dir/cmake_clean.cmake @@ -0,0 +1,10 @@ +file(REMOVE_RECURSE + "CMakeFiles/server.dir/src/main.cpp.o" + "server" + "server.pdb" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/server.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/server/cmake-build-debug/CMakeFiles/server.dir/depend.internal b/server/cmake-build-debug/CMakeFiles/server.dir/depend.internal new file mode 100644 index 0000000..6611099 --- /dev/null +++ b/server/cmake-build-debug/CMakeFiles/server.dir/depend.internal @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.17 + +CMakeFiles/server.dir/src/main.cpp.o + /Users/konstantinviesure/workspace/compLIB/server/src/main.cpp diff --git a/server/cmake-build-debug/CMakeFiles/server.dir/depend.make b/server/cmake-build-debug/CMakeFiles/server.dir/depend.make new file mode 100644 index 0000000..13b5f16 --- /dev/null +++ b/server/cmake-build-debug/CMakeFiles/server.dir/depend.make @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.17 + +CMakeFiles/server.dir/src/main.cpp.o: ../src/main.cpp + diff --git a/server/cmake-build-debug/CMakeFiles/server.dir/flags.make b/server/cmake-build-debug/CMakeFiles/server.dir/flags.make new file mode 100644 index 0000000..8b2adb6 --- /dev/null +++ b/server/cmake-build-debug/CMakeFiles/server.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.17 + +# compile CXX with /Library/Developer/CommandLineTools/usr/bin/c++ +CXX_FLAGS = -g -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk -std=gnu++17 + +CXX_DEFINES = + +CXX_INCLUDES = + diff --git a/server/cmake-build-debug/CMakeFiles/server.dir/link.txt b/server/cmake-build-debug/CMakeFiles/server.dir/link.txt new file mode 100644 index 0000000..ed0c718 --- /dev/null +++ b/server/cmake-build-debug/CMakeFiles/server.dir/link.txt @@ -0,0 +1 @@ +/Library/Developer/CommandLineTools/usr/bin/c++ -g -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk -Wl,-search_paths_first -Wl,-headerpad_max_install_names CMakeFiles/server.dir/src/main.cpp.o -o server diff --git a/server/cmake-build-debug/CMakeFiles/server.dir/progress.make b/server/cmake-build-debug/CMakeFiles/server.dir/progress.make new file mode 100644 index 0000000..abadeb0 --- /dev/null +++ b/server/cmake-build-debug/CMakeFiles/server.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 1 +CMAKE_PROGRESS_2 = 2 + diff --git a/server/cmake-build-debug/CMakeFiles/server.dir/src/main.cpp.o b/server/cmake-build-debug/CMakeFiles/server.dir/src/main.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..2aa3daf017ad625f380027b4a744f4be82102dd6 GIT binary patch literal 94116 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 HVlezKh0Dmz literal 0 HcmV?d00001 diff --git a/server/cmake-build-debug/CompLib.pb.cc b/server/cmake-build-debug/CompLib.pb.cc new file mode 100644 index 0000000..3fa4db7 --- /dev/null +++ b/server/cmake-build-debug/CompLib.pb.cc @@ -0,0 +1,1654 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: CompLib.proto + +#include "CompLib.pb.h" + +#include + +#include +#include +#include +#include +#include +#include +#include +// @@protoc_insertion_point(includes) +#include + +PROTOBUF_PRAGMA_INIT_SEG +namespace CompLib { +constexpr Header::Header( + ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized) + : message_type_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string){} +struct HeaderDefaultTypeInternal { + constexpr HeaderDefaultTypeInternal() + : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {} + ~HeaderDefaultTypeInternal() {} + union { + Header _instance; + }; +}; +PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT HeaderDefaultTypeInternal _Header_default_instance_; +constexpr Status::Status( + ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized) + : error_message_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string) + , successful_(false){} +struct StatusDefaultTypeInternal { + constexpr StatusDefaultTypeInternal() + : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {} + ~StatusDefaultTypeInternal() {} + union { + Status _instance; + }; +}; +PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT StatusDefaultTypeInternal _Status_default_instance_; +constexpr GenericRequest::GenericRequest( + ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized) + : header_(nullptr){} +struct GenericRequestDefaultTypeInternal { + constexpr GenericRequestDefaultTypeInternal() + : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {} + ~GenericRequestDefaultTypeInternal() {} + union { + GenericRequest _instance; + }; +}; +PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT GenericRequestDefaultTypeInternal _GenericRequest_default_instance_; +constexpr GenericResponse::GenericResponse( + ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized) + : header_(nullptr) + , status_(nullptr){} +struct GenericResponseDefaultTypeInternal { + constexpr GenericResponseDefaultTypeInternal() + : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {} + ~GenericResponseDefaultTypeInternal() {} + union { + GenericResponse _instance; + }; +}; +PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT GenericResponseDefaultTypeInternal _GenericResponse_default_instance_; +constexpr ReadSensorsRequest::ReadSensorsRequest( + ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized) + : header_(nullptr){} +struct ReadSensorsRequestDefaultTypeInternal { + constexpr ReadSensorsRequestDefaultTypeInternal() + : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {} + ~ReadSensorsRequestDefaultTypeInternal() {} + union { + ReadSensorsRequest _instance; + }; +}; +PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT ReadSensorsRequestDefaultTypeInternal _ReadSensorsRequest_default_instance_; +constexpr ReadSensorsResponse::ReadSensorsResponse( + ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized) + : header_(nullptr) + , status_(nullptr) + , ir_1_(0u) + , ir_2_(0u) + , ir_3_(0u) + , ir_4_(0u) + , ir_5_(0u){} +struct ReadSensorsResponseDefaultTypeInternal { + constexpr ReadSensorsResponseDefaultTypeInternal() + : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {} + ~ReadSensorsResponseDefaultTypeInternal() {} + union { + ReadSensorsResponse _instance; + }; +}; +PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT ReadSensorsResponseDefaultTypeInternal _ReadSensorsResponse_default_instance_; +} // namespace CompLib +static ::PROTOBUF_NAMESPACE_ID::Metadata file_level_metadata_CompLib_2eproto[6]; +static constexpr ::PROTOBUF_NAMESPACE_ID::EnumDescriptor const** file_level_enum_descriptors_CompLib_2eproto = nullptr; +static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const** file_level_service_descriptors_CompLib_2eproto = nullptr; + +const uint32_t TableStruct_CompLib_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::CompLib::Header, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + ~0u, // no _inlined_string_donated_ + PROTOBUF_FIELD_OFFSET(::CompLib::Header, message_type_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::CompLib::Status, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + ~0u, // no _inlined_string_donated_ + PROTOBUF_FIELD_OFFSET(::CompLib::Status, successful_), + PROTOBUF_FIELD_OFFSET(::CompLib::Status, error_message_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::CompLib::GenericRequest, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + ~0u, // no _inlined_string_donated_ + PROTOBUF_FIELD_OFFSET(::CompLib::GenericRequest, header_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::CompLib::GenericResponse, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + ~0u, // no _inlined_string_donated_ + PROTOBUF_FIELD_OFFSET(::CompLib::GenericResponse, header_), + PROTOBUF_FIELD_OFFSET(::CompLib::GenericResponse, status_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::CompLib::ReadSensorsRequest, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + ~0u, // no _inlined_string_donated_ + PROTOBUF_FIELD_OFFSET(::CompLib::ReadSensorsRequest, header_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::CompLib::ReadSensorsResponse, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + ~0u, // no _inlined_string_donated_ + PROTOBUF_FIELD_OFFSET(::CompLib::ReadSensorsResponse, header_), + PROTOBUF_FIELD_OFFSET(::CompLib::ReadSensorsResponse, status_), + PROTOBUF_FIELD_OFFSET(::CompLib::ReadSensorsResponse, ir_1_), + PROTOBUF_FIELD_OFFSET(::CompLib::ReadSensorsResponse, ir_2_), + PROTOBUF_FIELD_OFFSET(::CompLib::ReadSensorsResponse, ir_3_), + PROTOBUF_FIELD_OFFSET(::CompLib::ReadSensorsResponse, ir_4_), + PROTOBUF_FIELD_OFFSET(::CompLib::ReadSensorsResponse, ir_5_), +}; +static const ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { + { 0, -1, -1, sizeof(::CompLib::Header)}, + { 7, -1, -1, sizeof(::CompLib::Status)}, + { 15, -1, -1, sizeof(::CompLib::GenericRequest)}, + { 22, -1, -1, sizeof(::CompLib::GenericResponse)}, + { 30, -1, -1, sizeof(::CompLib::ReadSensorsRequest)}, + { 37, -1, -1, sizeof(::CompLib::ReadSensorsResponse)}, +}; + +static ::PROTOBUF_NAMESPACE_ID::Message const * const file_default_instances[] = { + reinterpret_cast(&::CompLib::_Header_default_instance_), + reinterpret_cast(&::CompLib::_Status_default_instance_), + reinterpret_cast(&::CompLib::_GenericRequest_default_instance_), + reinterpret_cast(&::CompLib::_GenericResponse_default_instance_), + reinterpret_cast(&::CompLib::_ReadSensorsRequest_default_instance_), + reinterpret_cast(&::CompLib::_ReadSensorsResponse_default_instance_), +}; + +const char descriptor_table_protodef_CompLib_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = + "\n\rCompLib.proto\022\007CompLib\"\036\n\006Header\022\024\n\014me" + "ssage_type\030\001 \001(\t\"3\n\006Status\022\022\n\nsuccessful" + "\030\001 \001(\010\022\025\n\rerror_message\030\002 \001(\t\"1\n\016Generic" + "Request\022\037\n\006header\030\001 \001(\0132\017.CompLib.Header" + "\"S\n\017GenericResponse\022\037\n\006header\030\001 \001(\0132\017.Co" + "mpLib.Header\022\037\n\006status\030\002 \001(\0132\017.CompLib.S" + "tatus\"5\n\022ReadSensorsRequest\022\037\n\006header\030\001 " + "\001(\0132\017.CompLib.Header\"\235\001\n\023ReadSensorsResp" + "onse\022\037\n\006header\030\001 \001(\0132\017.CompLib.Header\022\037\n" + "\006status\030\002 \001(\0132\017.CompLib.Status\022\014\n\004ir_1\030\003" + " \001(\r\022\014\n\004ir_2\030\004 \001(\r\022\014\n\004ir_3\030\005 \001(\r\022\014\n\004ir_4" + "\030\006 \001(\r\022\014\n\004ir_5\030\007 \001(\rb\006proto3" + ; +static ::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_CompLib_2eproto_once; +const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_CompLib_2eproto = { + false, false, 468, descriptor_table_protodef_CompLib_2eproto, "CompLib.proto", + &descriptor_table_CompLib_2eproto_once, nullptr, 0, 6, + schemas, file_default_instances, TableStruct_CompLib_2eproto::offsets, + file_level_metadata_CompLib_2eproto, file_level_enum_descriptors_CompLib_2eproto, file_level_service_descriptors_CompLib_2eproto, +}; +PROTOBUF_ATTRIBUTE_WEAK const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable* descriptor_table_CompLib_2eproto_getter() { + return &descriptor_table_CompLib_2eproto; +} + +// Force running AddDescriptors() at dynamic initialization time. +PROTOBUF_ATTRIBUTE_INIT_PRIORITY static ::PROTOBUF_NAMESPACE_ID::internal::AddDescriptorsRunner dynamic_init_dummy_CompLib_2eproto(&descriptor_table_CompLib_2eproto); +namespace CompLib { + +// =================================================================== + +class Header::_Internal { + public: +}; + +Header::Header(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned) + : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { + SharedCtor(); + if (!is_message_owned) { + RegisterArenaDtor(arena); + } + // @@protoc_insertion_point(arena_constructor:CompLib.Header) +} +Header::Header(const Header& from) + : ::PROTOBUF_NAMESPACE_ID::Message() { + _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); + message_type_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + message_type_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (!from._internal_message_type().empty()) { + message_type_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_message_type(), + GetArenaForAllocation()); + } + // @@protoc_insertion_point(copy_constructor:CompLib.Header) +} + +inline void Header::SharedCtor() { +message_type_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + message_type_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation()); +#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING +} + +Header::~Header() { + // @@protoc_insertion_point(destructor:CompLib.Header) + if (GetArenaForAllocation() != nullptr) return; + SharedDtor(); + _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); +} + +inline void Header::SharedDtor() { + GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); + message_type_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} + +void Header::ArenaDtor(void* object) { + Header* _this = reinterpret_cast< Header* >(object); + (void)_this; +} +void Header::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) { +} +void Header::SetCachedSize(int size) const { + _cached_size_.Set(size); +} + +void Header::Clear() { +// @@protoc_insertion_point(message_clear_start:CompLib.Header) + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + message_type_.ClearToEmpty(); + _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); +} + +const char* Header::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + uint32_t tag; + ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag); + switch (tag >> 3) { + // string message_type = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 10)) { + auto str = _internal_mutable_message_type(); + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); + CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "CompLib.Header.message_type")); + CHK_(ptr); + } else + goto handle_unusual; + continue; + default: + goto handle_unusual; + } // switch + handle_unusual: + if ((tag == 0) || ((tag & 7) == 4)) { + CHK_(ptr); + ctx->SetLastTag(tag); + goto message_done; + } + ptr = UnknownFieldParse( + tag, + _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), + ptr, ctx); + CHK_(ptr != nullptr); + } // while +message_done: + return ptr; +failure: + ptr = nullptr; + goto message_done; +#undef CHK_ +} + +uint8_t* Header::_InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:CompLib.Header) + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + // string message_type = 1; + if (!this->_internal_message_type().empty()) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_message_type().data(), static_cast(this->_internal_message_type().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "CompLib.Header.message_type"); + target = stream->WriteStringMaybeAliased( + 1, this->_internal_message_type(), target); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:CompLib.Header) + return target; +} + +size_t Header::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:CompLib.Header) + size_t total_size = 0; + + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // string message_type = 1; + if (!this->_internal_message_type().empty()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_message_type()); + } + + return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_); +} + +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData Header::_class_data_ = { + ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck, + Header::MergeImpl +}; +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*Header::GetClassData() const { return &_class_data_; } + +void Header::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, + const ::PROTOBUF_NAMESPACE_ID::Message& from) { + static_cast

(to)->MergeFrom( + static_cast(from)); +} + + +void Header::MergeFrom(const Header& from) { +// @@protoc_insertion_point(class_specific_merge_from_start:CompLib.Header) + GOOGLE_DCHECK_NE(&from, this); + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + if (!from._internal_message_type().empty()) { + _internal_set_message_type(from._internal_message_type()); + } + _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); +} + +void Header::CopyFrom(const Header& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:CompLib.Header) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool Header::IsInitialized() const { + return true; +} + +void Header::InternalSwap(Header* other) { + using std::swap; + auto* lhs_arena = GetArenaForAllocation(); + auto* rhs_arena = other->GetArenaForAllocation(); + _internal_metadata_.InternalSwap(&other->_internal_metadata_); + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap( + &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + &message_type_, lhs_arena, + &other->message_type_, rhs_arena + ); +} + +::PROTOBUF_NAMESPACE_ID::Metadata Header::GetMetadata() const { + return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors( + &descriptor_table_CompLib_2eproto_getter, &descriptor_table_CompLib_2eproto_once, + file_level_metadata_CompLib_2eproto[0]); +} + +// =================================================================== + +class Status::_Internal { + public: +}; + +Status::Status(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned) + : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { + SharedCtor(); + if (!is_message_owned) { + RegisterArenaDtor(arena); + } + // @@protoc_insertion_point(arena_constructor:CompLib.Status) +} +Status::Status(const Status& from) + : ::PROTOBUF_NAMESPACE_ID::Message() { + _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); + error_message_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + error_message_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (!from._internal_error_message().empty()) { + error_message_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_error_message(), + GetArenaForAllocation()); + } + successful_ = from.successful_; + // @@protoc_insertion_point(copy_constructor:CompLib.Status) +} + +inline void Status::SharedCtor() { +error_message_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + error_message_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation()); +#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING +successful_ = false; +} + +Status::~Status() { + // @@protoc_insertion_point(destructor:CompLib.Status) + if (GetArenaForAllocation() != nullptr) return; + SharedDtor(); + _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); +} + +inline void Status::SharedDtor() { + GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); + error_message_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} + +void Status::ArenaDtor(void* object) { + Status* _this = reinterpret_cast< Status* >(object); + (void)_this; +} +void Status::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) { +} +void Status::SetCachedSize(int size) const { + _cached_size_.Set(size); +} + +void Status::Clear() { +// @@protoc_insertion_point(message_clear_start:CompLib.Status) + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + error_message_.ClearToEmpty(); + successful_ = false; + _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); +} + +const char* Status::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + uint32_t tag; + ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag); + switch (tag >> 3) { + // bool successful = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 8)) { + successful_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr); + CHK_(ptr); + } else + goto handle_unusual; + continue; + // string error_message = 2; + case 2: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 18)) { + auto str = _internal_mutable_error_message(); + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); + CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "CompLib.Status.error_message")); + CHK_(ptr); + } else + goto handle_unusual; + continue; + default: + goto handle_unusual; + } // switch + handle_unusual: + if ((tag == 0) || ((tag & 7) == 4)) { + CHK_(ptr); + ctx->SetLastTag(tag); + goto message_done; + } + ptr = UnknownFieldParse( + tag, + _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), + ptr, ctx); + CHK_(ptr != nullptr); + } // while +message_done: + return ptr; +failure: + ptr = nullptr; + goto message_done; +#undef CHK_ +} + +uint8_t* Status::_InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:CompLib.Status) + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + // bool successful = 1; + if (this->_internal_successful() != 0) { + target = stream->EnsureSpace(target); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(1, this->_internal_successful(), target); + } + + // string error_message = 2; + if (!this->_internal_error_message().empty()) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_error_message().data(), static_cast(this->_internal_error_message().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "CompLib.Status.error_message"); + target = stream->WriteStringMaybeAliased( + 2, this->_internal_error_message(), target); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:CompLib.Status) + return target; +} + +size_t Status::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:CompLib.Status) + size_t total_size = 0; + + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // string error_message = 2; + if (!this->_internal_error_message().empty()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_error_message()); + } + + // bool successful = 1; + if (this->_internal_successful() != 0) { + total_size += 1 + 1; + } + + return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_); +} + +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData Status::_class_data_ = { + ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck, + Status::MergeImpl +}; +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*Status::GetClassData() const { return &_class_data_; } + +void Status::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, + const ::PROTOBUF_NAMESPACE_ID::Message& from) { + static_cast(to)->MergeFrom( + static_cast(from)); +} + + +void Status::MergeFrom(const Status& from) { +// @@protoc_insertion_point(class_specific_merge_from_start:CompLib.Status) + GOOGLE_DCHECK_NE(&from, this); + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + if (!from._internal_error_message().empty()) { + _internal_set_error_message(from._internal_error_message()); + } + if (from._internal_successful() != 0) { + _internal_set_successful(from._internal_successful()); + } + _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); +} + +void Status::CopyFrom(const Status& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:CompLib.Status) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool Status::IsInitialized() const { + return true; +} + +void Status::InternalSwap(Status* other) { + using std::swap; + auto* lhs_arena = GetArenaForAllocation(); + auto* rhs_arena = other->GetArenaForAllocation(); + _internal_metadata_.InternalSwap(&other->_internal_metadata_); + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap( + &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + &error_message_, lhs_arena, + &other->error_message_, rhs_arena + ); + swap(successful_, other->successful_); +} + +::PROTOBUF_NAMESPACE_ID::Metadata Status::GetMetadata() const { + return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors( + &descriptor_table_CompLib_2eproto_getter, &descriptor_table_CompLib_2eproto_once, + file_level_metadata_CompLib_2eproto[1]); +} + +// =================================================================== + +class GenericRequest::_Internal { + public: + static const ::CompLib::Header& header(const GenericRequest* msg); +}; + +const ::CompLib::Header& +GenericRequest::_Internal::header(const GenericRequest* msg) { + return *msg->header_; +} +GenericRequest::GenericRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned) + : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { + SharedCtor(); + if (!is_message_owned) { + RegisterArenaDtor(arena); + } + // @@protoc_insertion_point(arena_constructor:CompLib.GenericRequest) +} +GenericRequest::GenericRequest(const GenericRequest& from) + : ::PROTOBUF_NAMESPACE_ID::Message() { + _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); + if (from._internal_has_header()) { + header_ = new ::CompLib::Header(*from.header_); + } else { + header_ = nullptr; + } + // @@protoc_insertion_point(copy_constructor:CompLib.GenericRequest) +} + +inline void GenericRequest::SharedCtor() { +header_ = nullptr; +} + +GenericRequest::~GenericRequest() { + // @@protoc_insertion_point(destructor:CompLib.GenericRequest) + if (GetArenaForAllocation() != nullptr) return; + SharedDtor(); + _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); +} + +inline void GenericRequest::SharedDtor() { + GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); + if (this != internal_default_instance()) delete header_; +} + +void GenericRequest::ArenaDtor(void* object) { + GenericRequest* _this = reinterpret_cast< GenericRequest* >(object); + (void)_this; +} +void GenericRequest::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) { +} +void GenericRequest::SetCachedSize(int size) const { + _cached_size_.Set(size); +} + +void GenericRequest::Clear() { +// @@protoc_insertion_point(message_clear_start:CompLib.GenericRequest) + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + if (GetArenaForAllocation() == nullptr && header_ != nullptr) { + delete header_; + } + header_ = nullptr; + _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); +} + +const char* GenericRequest::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + uint32_t tag; + ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag); + switch (tag >> 3) { + // .CompLib.Header header = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 10)) { + ptr = ctx->ParseMessage(_internal_mutable_header(), ptr); + CHK_(ptr); + } else + goto handle_unusual; + continue; + default: + goto handle_unusual; + } // switch + handle_unusual: + if ((tag == 0) || ((tag & 7) == 4)) { + CHK_(ptr); + ctx->SetLastTag(tag); + goto message_done; + } + ptr = UnknownFieldParse( + tag, + _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), + ptr, ctx); + CHK_(ptr != nullptr); + } // while +message_done: + return ptr; +failure: + ptr = nullptr; + goto message_done; +#undef CHK_ +} + +uint8_t* GenericRequest::_InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:CompLib.GenericRequest) + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + // .CompLib.Header header = 1; + if (this->_internal_has_header()) { + target = stream->EnsureSpace(target); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: + InternalWriteMessage( + 1, _Internal::header(this), target, stream); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:CompLib.GenericRequest) + return target; +} + +size_t GenericRequest::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:CompLib.GenericRequest) + size_t total_size = 0; + + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // .CompLib.Header header = 1; + if (this->_internal_has_header()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( + *header_); + } + + return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_); +} + +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData GenericRequest::_class_data_ = { + ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck, + GenericRequest::MergeImpl +}; +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GenericRequest::GetClassData() const { return &_class_data_; } + +void GenericRequest::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, + const ::PROTOBUF_NAMESPACE_ID::Message& from) { + static_cast(to)->MergeFrom( + static_cast(from)); +} + + +void GenericRequest::MergeFrom(const GenericRequest& from) { +// @@protoc_insertion_point(class_specific_merge_from_start:CompLib.GenericRequest) + GOOGLE_DCHECK_NE(&from, this); + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + if (from._internal_has_header()) { + _internal_mutable_header()->::CompLib::Header::MergeFrom(from._internal_header()); + } + _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); +} + +void GenericRequest::CopyFrom(const GenericRequest& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:CompLib.GenericRequest) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool GenericRequest::IsInitialized() const { + return true; +} + +void GenericRequest::InternalSwap(GenericRequest* other) { + using std::swap; + _internal_metadata_.InternalSwap(&other->_internal_metadata_); + swap(header_, other->header_); +} + +::PROTOBUF_NAMESPACE_ID::Metadata GenericRequest::GetMetadata() const { + return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors( + &descriptor_table_CompLib_2eproto_getter, &descriptor_table_CompLib_2eproto_once, + file_level_metadata_CompLib_2eproto[2]); +} + +// =================================================================== + +class GenericResponse::_Internal { + public: + static const ::CompLib::Header& header(const GenericResponse* msg); + static const ::CompLib::Status& status(const GenericResponse* msg); +}; + +const ::CompLib::Header& +GenericResponse::_Internal::header(const GenericResponse* msg) { + return *msg->header_; +} +const ::CompLib::Status& +GenericResponse::_Internal::status(const GenericResponse* msg) { + return *msg->status_; +} +GenericResponse::GenericResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned) + : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { + SharedCtor(); + if (!is_message_owned) { + RegisterArenaDtor(arena); + } + // @@protoc_insertion_point(arena_constructor:CompLib.GenericResponse) +} +GenericResponse::GenericResponse(const GenericResponse& from) + : ::PROTOBUF_NAMESPACE_ID::Message() { + _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); + if (from._internal_has_header()) { + header_ = new ::CompLib::Header(*from.header_); + } else { + header_ = nullptr; + } + if (from._internal_has_status()) { + status_ = new ::CompLib::Status(*from.status_); + } else { + status_ = nullptr; + } + // @@protoc_insertion_point(copy_constructor:CompLib.GenericResponse) +} + +inline void GenericResponse::SharedCtor() { +::memset(reinterpret_cast(this) + static_cast( + reinterpret_cast(&header_) - reinterpret_cast(this)), + 0, static_cast(reinterpret_cast(&status_) - + reinterpret_cast(&header_)) + sizeof(status_)); +} + +GenericResponse::~GenericResponse() { + // @@protoc_insertion_point(destructor:CompLib.GenericResponse) + if (GetArenaForAllocation() != nullptr) return; + SharedDtor(); + _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); +} + +inline void GenericResponse::SharedDtor() { + GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); + if (this != internal_default_instance()) delete header_; + if (this != internal_default_instance()) delete status_; +} + +void GenericResponse::ArenaDtor(void* object) { + GenericResponse* _this = reinterpret_cast< GenericResponse* >(object); + (void)_this; +} +void GenericResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) { +} +void GenericResponse::SetCachedSize(int size) const { + _cached_size_.Set(size); +} + +void GenericResponse::Clear() { +// @@protoc_insertion_point(message_clear_start:CompLib.GenericResponse) + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + if (GetArenaForAllocation() == nullptr && header_ != nullptr) { + delete header_; + } + header_ = nullptr; + if (GetArenaForAllocation() == nullptr && status_ != nullptr) { + delete status_; + } + status_ = nullptr; + _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); +} + +const char* GenericResponse::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + uint32_t tag; + ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag); + switch (tag >> 3) { + // .CompLib.Header header = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 10)) { + ptr = ctx->ParseMessage(_internal_mutable_header(), ptr); + CHK_(ptr); + } else + goto handle_unusual; + continue; + // .CompLib.Status status = 2; + case 2: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 18)) { + ptr = ctx->ParseMessage(_internal_mutable_status(), ptr); + CHK_(ptr); + } else + goto handle_unusual; + continue; + default: + goto handle_unusual; + } // switch + handle_unusual: + if ((tag == 0) || ((tag & 7) == 4)) { + CHK_(ptr); + ctx->SetLastTag(tag); + goto message_done; + } + ptr = UnknownFieldParse( + tag, + _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), + ptr, ctx); + CHK_(ptr != nullptr); + } // while +message_done: + return ptr; +failure: + ptr = nullptr; + goto message_done; +#undef CHK_ +} + +uint8_t* GenericResponse::_InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:CompLib.GenericResponse) + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + // .CompLib.Header header = 1; + if (this->_internal_has_header()) { + target = stream->EnsureSpace(target); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: + InternalWriteMessage( + 1, _Internal::header(this), target, stream); + } + + // .CompLib.Status status = 2; + if (this->_internal_has_status()) { + target = stream->EnsureSpace(target); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: + InternalWriteMessage( + 2, _Internal::status(this), target, stream); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:CompLib.GenericResponse) + return target; +} + +size_t GenericResponse::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:CompLib.GenericResponse) + size_t total_size = 0; + + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // .CompLib.Header header = 1; + if (this->_internal_has_header()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( + *header_); + } + + // .CompLib.Status status = 2; + if (this->_internal_has_status()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( + *status_); + } + + return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_); +} + +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData GenericResponse::_class_data_ = { + ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck, + GenericResponse::MergeImpl +}; +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GenericResponse::GetClassData() const { return &_class_data_; } + +void GenericResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, + const ::PROTOBUF_NAMESPACE_ID::Message& from) { + static_cast(to)->MergeFrom( + static_cast(from)); +} + + +void GenericResponse::MergeFrom(const GenericResponse& from) { +// @@protoc_insertion_point(class_specific_merge_from_start:CompLib.GenericResponse) + GOOGLE_DCHECK_NE(&from, this); + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + if (from._internal_has_header()) { + _internal_mutable_header()->::CompLib::Header::MergeFrom(from._internal_header()); + } + if (from._internal_has_status()) { + _internal_mutable_status()->::CompLib::Status::MergeFrom(from._internal_status()); + } + _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); +} + +void GenericResponse::CopyFrom(const GenericResponse& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:CompLib.GenericResponse) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool GenericResponse::IsInitialized() const { + return true; +} + +void GenericResponse::InternalSwap(GenericResponse* other) { + using std::swap; + _internal_metadata_.InternalSwap(&other->_internal_metadata_); + ::PROTOBUF_NAMESPACE_ID::internal::memswap< + PROTOBUF_FIELD_OFFSET(GenericResponse, status_) + + sizeof(GenericResponse::status_) + - PROTOBUF_FIELD_OFFSET(GenericResponse, header_)>( + reinterpret_cast(&header_), + reinterpret_cast(&other->header_)); +} + +::PROTOBUF_NAMESPACE_ID::Metadata GenericResponse::GetMetadata() const { + return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors( + &descriptor_table_CompLib_2eproto_getter, &descriptor_table_CompLib_2eproto_once, + file_level_metadata_CompLib_2eproto[3]); +} + +// =================================================================== + +class ReadSensorsRequest::_Internal { + public: + static const ::CompLib::Header& header(const ReadSensorsRequest* msg); +}; + +const ::CompLib::Header& +ReadSensorsRequest::_Internal::header(const ReadSensorsRequest* msg) { + return *msg->header_; +} +ReadSensorsRequest::ReadSensorsRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned) + : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { + SharedCtor(); + if (!is_message_owned) { + RegisterArenaDtor(arena); + } + // @@protoc_insertion_point(arena_constructor:CompLib.ReadSensorsRequest) +} +ReadSensorsRequest::ReadSensorsRequest(const ReadSensorsRequest& from) + : ::PROTOBUF_NAMESPACE_ID::Message() { + _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); + if (from._internal_has_header()) { + header_ = new ::CompLib::Header(*from.header_); + } else { + header_ = nullptr; + } + // @@protoc_insertion_point(copy_constructor:CompLib.ReadSensorsRequest) +} + +inline void ReadSensorsRequest::SharedCtor() { +header_ = nullptr; +} + +ReadSensorsRequest::~ReadSensorsRequest() { + // @@protoc_insertion_point(destructor:CompLib.ReadSensorsRequest) + if (GetArenaForAllocation() != nullptr) return; + SharedDtor(); + _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); +} + +inline void ReadSensorsRequest::SharedDtor() { + GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); + if (this != internal_default_instance()) delete header_; +} + +void ReadSensorsRequest::ArenaDtor(void* object) { + ReadSensorsRequest* _this = reinterpret_cast< ReadSensorsRequest* >(object); + (void)_this; +} +void ReadSensorsRequest::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) { +} +void ReadSensorsRequest::SetCachedSize(int size) const { + _cached_size_.Set(size); +} + +void ReadSensorsRequest::Clear() { +// @@protoc_insertion_point(message_clear_start:CompLib.ReadSensorsRequest) + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + if (GetArenaForAllocation() == nullptr && header_ != nullptr) { + delete header_; + } + header_ = nullptr; + _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); +} + +const char* ReadSensorsRequest::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + uint32_t tag; + ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag); + switch (tag >> 3) { + // .CompLib.Header header = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 10)) { + ptr = ctx->ParseMessage(_internal_mutable_header(), ptr); + CHK_(ptr); + } else + goto handle_unusual; + continue; + default: + goto handle_unusual; + } // switch + handle_unusual: + if ((tag == 0) || ((tag & 7) == 4)) { + CHK_(ptr); + ctx->SetLastTag(tag); + goto message_done; + } + ptr = UnknownFieldParse( + tag, + _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), + ptr, ctx); + CHK_(ptr != nullptr); + } // while +message_done: + return ptr; +failure: + ptr = nullptr; + goto message_done; +#undef CHK_ +} + +uint8_t* ReadSensorsRequest::_InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:CompLib.ReadSensorsRequest) + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + // .CompLib.Header header = 1; + if (this->_internal_has_header()) { + target = stream->EnsureSpace(target); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: + InternalWriteMessage( + 1, _Internal::header(this), target, stream); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:CompLib.ReadSensorsRequest) + return target; +} + +size_t ReadSensorsRequest::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:CompLib.ReadSensorsRequest) + size_t total_size = 0; + + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // .CompLib.Header header = 1; + if (this->_internal_has_header()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( + *header_); + } + + return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_); +} + +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData ReadSensorsRequest::_class_data_ = { + ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck, + ReadSensorsRequest::MergeImpl +}; +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*ReadSensorsRequest::GetClassData() const { return &_class_data_; } + +void ReadSensorsRequest::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, + const ::PROTOBUF_NAMESPACE_ID::Message& from) { + static_cast(to)->MergeFrom( + static_cast(from)); +} + + +void ReadSensorsRequest::MergeFrom(const ReadSensorsRequest& from) { +// @@protoc_insertion_point(class_specific_merge_from_start:CompLib.ReadSensorsRequest) + GOOGLE_DCHECK_NE(&from, this); + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + if (from._internal_has_header()) { + _internal_mutable_header()->::CompLib::Header::MergeFrom(from._internal_header()); + } + _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); +} + +void ReadSensorsRequest::CopyFrom(const ReadSensorsRequest& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:CompLib.ReadSensorsRequest) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool ReadSensorsRequest::IsInitialized() const { + return true; +} + +void ReadSensorsRequest::InternalSwap(ReadSensorsRequest* other) { + using std::swap; + _internal_metadata_.InternalSwap(&other->_internal_metadata_); + swap(header_, other->header_); +} + +::PROTOBUF_NAMESPACE_ID::Metadata ReadSensorsRequest::GetMetadata() const { + return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors( + &descriptor_table_CompLib_2eproto_getter, &descriptor_table_CompLib_2eproto_once, + file_level_metadata_CompLib_2eproto[4]); +} + +// =================================================================== + +class ReadSensorsResponse::_Internal { + public: + static const ::CompLib::Header& header(const ReadSensorsResponse* msg); + static const ::CompLib::Status& status(const ReadSensorsResponse* msg); +}; + +const ::CompLib::Header& +ReadSensorsResponse::_Internal::header(const ReadSensorsResponse* msg) { + return *msg->header_; +} +const ::CompLib::Status& +ReadSensorsResponse::_Internal::status(const ReadSensorsResponse* msg) { + return *msg->status_; +} +ReadSensorsResponse::ReadSensorsResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned) + : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { + SharedCtor(); + if (!is_message_owned) { + RegisterArenaDtor(arena); + } + // @@protoc_insertion_point(arena_constructor:CompLib.ReadSensorsResponse) +} +ReadSensorsResponse::ReadSensorsResponse(const ReadSensorsResponse& from) + : ::PROTOBUF_NAMESPACE_ID::Message() { + _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); + if (from._internal_has_header()) { + header_ = new ::CompLib::Header(*from.header_); + } else { + header_ = nullptr; + } + if (from._internal_has_status()) { + status_ = new ::CompLib::Status(*from.status_); + } else { + status_ = nullptr; + } + ::memcpy(&ir_1_, &from.ir_1_, + static_cast(reinterpret_cast(&ir_5_) - + reinterpret_cast(&ir_1_)) + sizeof(ir_5_)); + // @@protoc_insertion_point(copy_constructor:CompLib.ReadSensorsResponse) +} + +inline void ReadSensorsResponse::SharedCtor() { +::memset(reinterpret_cast(this) + static_cast( + reinterpret_cast(&header_) - reinterpret_cast(this)), + 0, static_cast(reinterpret_cast(&ir_5_) - + reinterpret_cast(&header_)) + sizeof(ir_5_)); +} + +ReadSensorsResponse::~ReadSensorsResponse() { + // @@protoc_insertion_point(destructor:CompLib.ReadSensorsResponse) + if (GetArenaForAllocation() != nullptr) return; + SharedDtor(); + _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); +} + +inline void ReadSensorsResponse::SharedDtor() { + GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); + if (this != internal_default_instance()) delete header_; + if (this != internal_default_instance()) delete status_; +} + +void ReadSensorsResponse::ArenaDtor(void* object) { + ReadSensorsResponse* _this = reinterpret_cast< ReadSensorsResponse* >(object); + (void)_this; +} +void ReadSensorsResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) { +} +void ReadSensorsResponse::SetCachedSize(int size) const { + _cached_size_.Set(size); +} + +void ReadSensorsResponse::Clear() { +// @@protoc_insertion_point(message_clear_start:CompLib.ReadSensorsResponse) + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + if (GetArenaForAllocation() == nullptr && header_ != nullptr) { + delete header_; + } + header_ = nullptr; + if (GetArenaForAllocation() == nullptr && status_ != nullptr) { + delete status_; + } + status_ = nullptr; + ::memset(&ir_1_, 0, static_cast( + reinterpret_cast(&ir_5_) - + reinterpret_cast(&ir_1_)) + sizeof(ir_5_)); + _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); +} + +const char* ReadSensorsResponse::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + uint32_t tag; + ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag); + switch (tag >> 3) { + // .CompLib.Header header = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 10)) { + ptr = ctx->ParseMessage(_internal_mutable_header(), ptr); + CHK_(ptr); + } else + goto handle_unusual; + continue; + // .CompLib.Status status = 2; + case 2: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 18)) { + ptr = ctx->ParseMessage(_internal_mutable_status(), ptr); + CHK_(ptr); + } else + goto handle_unusual; + continue; + // uint32 ir_1 = 3; + case 3: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 24)) { + ir_1_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); + CHK_(ptr); + } else + goto handle_unusual; + continue; + // uint32 ir_2 = 4; + case 4: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 32)) { + ir_2_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); + CHK_(ptr); + } else + goto handle_unusual; + continue; + // uint32 ir_3 = 5; + case 5: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 40)) { + ir_3_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); + CHK_(ptr); + } else + goto handle_unusual; + continue; + // uint32 ir_4 = 6; + case 6: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 48)) { + ir_4_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); + CHK_(ptr); + } else + goto handle_unusual; + continue; + // uint32 ir_5 = 7; + case 7: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 56)) { + ir_5_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); + CHK_(ptr); + } else + goto handle_unusual; + continue; + default: + goto handle_unusual; + } // switch + handle_unusual: + if ((tag == 0) || ((tag & 7) == 4)) { + CHK_(ptr); + ctx->SetLastTag(tag); + goto message_done; + } + ptr = UnknownFieldParse( + tag, + _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), + ptr, ctx); + CHK_(ptr != nullptr); + } // while +message_done: + return ptr; +failure: + ptr = nullptr; + goto message_done; +#undef CHK_ +} + +uint8_t* ReadSensorsResponse::_InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:CompLib.ReadSensorsResponse) + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + // .CompLib.Header header = 1; + if (this->_internal_has_header()) { + target = stream->EnsureSpace(target); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: + InternalWriteMessage( + 1, _Internal::header(this), target, stream); + } + + // .CompLib.Status status = 2; + if (this->_internal_has_status()) { + target = stream->EnsureSpace(target); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: + InternalWriteMessage( + 2, _Internal::status(this), target, stream); + } + + // uint32 ir_1 = 3; + if (this->_internal_ir_1() != 0) { + target = stream->EnsureSpace(target); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(3, this->_internal_ir_1(), target); + } + + // uint32 ir_2 = 4; + if (this->_internal_ir_2() != 0) { + target = stream->EnsureSpace(target); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(4, this->_internal_ir_2(), target); + } + + // uint32 ir_3 = 5; + if (this->_internal_ir_3() != 0) { + target = stream->EnsureSpace(target); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(5, this->_internal_ir_3(), target); + } + + // uint32 ir_4 = 6; + if (this->_internal_ir_4() != 0) { + target = stream->EnsureSpace(target); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(6, this->_internal_ir_4(), target); + } + + // uint32 ir_5 = 7; + if (this->_internal_ir_5() != 0) { + target = stream->EnsureSpace(target); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(7, this->_internal_ir_5(), target); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:CompLib.ReadSensorsResponse) + return target; +} + +size_t ReadSensorsResponse::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:CompLib.ReadSensorsResponse) + size_t total_size = 0; + + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // .CompLib.Header header = 1; + if (this->_internal_has_header()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( + *header_); + } + + // .CompLib.Status status = 2; + if (this->_internal_has_status()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( + *status_); + } + + // uint32 ir_1 = 3; + if (this->_internal_ir_1() != 0) { + total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32SizePlusOne(this->_internal_ir_1()); + } + + // uint32 ir_2 = 4; + if (this->_internal_ir_2() != 0) { + total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32SizePlusOne(this->_internal_ir_2()); + } + + // uint32 ir_3 = 5; + if (this->_internal_ir_3() != 0) { + total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32SizePlusOne(this->_internal_ir_3()); + } + + // uint32 ir_4 = 6; + if (this->_internal_ir_4() != 0) { + total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32SizePlusOne(this->_internal_ir_4()); + } + + // uint32 ir_5 = 7; + if (this->_internal_ir_5() != 0) { + total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32SizePlusOne(this->_internal_ir_5()); + } + + return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_); +} + +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData ReadSensorsResponse::_class_data_ = { + ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck, + ReadSensorsResponse::MergeImpl +}; +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*ReadSensorsResponse::GetClassData() const { return &_class_data_; } + +void ReadSensorsResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, + const ::PROTOBUF_NAMESPACE_ID::Message& from) { + static_cast(to)->MergeFrom( + static_cast(from)); +} + + +void ReadSensorsResponse::MergeFrom(const ReadSensorsResponse& from) { +// @@protoc_insertion_point(class_specific_merge_from_start:CompLib.ReadSensorsResponse) + GOOGLE_DCHECK_NE(&from, this); + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + if (from._internal_has_header()) { + _internal_mutable_header()->::CompLib::Header::MergeFrom(from._internal_header()); + } + if (from._internal_has_status()) { + _internal_mutable_status()->::CompLib::Status::MergeFrom(from._internal_status()); + } + if (from._internal_ir_1() != 0) { + _internal_set_ir_1(from._internal_ir_1()); + } + if (from._internal_ir_2() != 0) { + _internal_set_ir_2(from._internal_ir_2()); + } + if (from._internal_ir_3() != 0) { + _internal_set_ir_3(from._internal_ir_3()); + } + if (from._internal_ir_4() != 0) { + _internal_set_ir_4(from._internal_ir_4()); + } + if (from._internal_ir_5() != 0) { + _internal_set_ir_5(from._internal_ir_5()); + } + _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); +} + +void ReadSensorsResponse::CopyFrom(const ReadSensorsResponse& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:CompLib.ReadSensorsResponse) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool ReadSensorsResponse::IsInitialized() const { + return true; +} + +void ReadSensorsResponse::InternalSwap(ReadSensorsResponse* other) { + using std::swap; + _internal_metadata_.InternalSwap(&other->_internal_metadata_); + ::PROTOBUF_NAMESPACE_ID::internal::memswap< + PROTOBUF_FIELD_OFFSET(ReadSensorsResponse, ir_5_) + + sizeof(ReadSensorsResponse::ir_5_) + - PROTOBUF_FIELD_OFFSET(ReadSensorsResponse, header_)>( + reinterpret_cast(&header_), + reinterpret_cast(&other->header_)); +} + +::PROTOBUF_NAMESPACE_ID::Metadata ReadSensorsResponse::GetMetadata() const { + return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors( + &descriptor_table_CompLib_2eproto_getter, &descriptor_table_CompLib_2eproto_once, + file_level_metadata_CompLib_2eproto[5]); +} + +// @@protoc_insertion_point(namespace_scope) +} // namespace CompLib +PROTOBUF_NAMESPACE_OPEN +template<> PROTOBUF_NOINLINE ::CompLib::Header* Arena::CreateMaybeMessage< ::CompLib::Header >(Arena* arena) { + return Arena::CreateMessageInternal< ::CompLib::Header >(arena); +} +template<> PROTOBUF_NOINLINE ::CompLib::Status* Arena::CreateMaybeMessage< ::CompLib::Status >(Arena* arena) { + return Arena::CreateMessageInternal< ::CompLib::Status >(arena); +} +template<> PROTOBUF_NOINLINE ::CompLib::GenericRequest* Arena::CreateMaybeMessage< ::CompLib::GenericRequest >(Arena* arena) { + return Arena::CreateMessageInternal< ::CompLib::GenericRequest >(arena); +} +template<> PROTOBUF_NOINLINE ::CompLib::GenericResponse* Arena::CreateMaybeMessage< ::CompLib::GenericResponse >(Arena* arena) { + return Arena::CreateMessageInternal< ::CompLib::GenericResponse >(arena); +} +template<> PROTOBUF_NOINLINE ::CompLib::ReadSensorsRequest* Arena::CreateMaybeMessage< ::CompLib::ReadSensorsRequest >(Arena* arena) { + return Arena::CreateMessageInternal< ::CompLib::ReadSensorsRequest >(arena); +} +template<> PROTOBUF_NOINLINE ::CompLib::ReadSensorsResponse* Arena::CreateMaybeMessage< ::CompLib::ReadSensorsResponse >(Arena* arena) { + return Arena::CreateMessageInternal< ::CompLib::ReadSensorsResponse >(arena); +} +PROTOBUF_NAMESPACE_CLOSE + +// @@protoc_insertion_point(global_scope) +#include diff --git a/server/cmake-build-debug/CompLib.pb.h b/server/cmake-build-debug/CompLib.pb.h new file mode 100644 index 0000000..42a4d3e --- /dev/null +++ b/server/cmake-build-debug/CompLib.pb.h @@ -0,0 +1,1928 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: CompLib.proto + +#ifndef GOOGLE_PROTOBUF_INCLUDED_CompLib_2eproto +#define GOOGLE_PROTOBUF_INCLUDED_CompLib_2eproto + +#include +#include + +#include +#if PROTOBUF_VERSION < 3019000 +#error This file was generated by a newer version of protoc which is +#error incompatible with your Protocol Buffer headers. Please update +#error your headers. +#endif +#if 3019004 < PROTOBUF_MIN_PROTOC_VERSION +#error This file was generated by an older version of protoc which is +#error incompatible with your Protocol Buffer headers. Please +#error regenerate this file with a newer version of protoc. +#endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include // IWYU pragma: export +#include // IWYU pragma: export +#include +// @@protoc_insertion_point(includes) +#include +#define PROTOBUF_INTERNAL_EXPORT_CompLib_2eproto +PROTOBUF_NAMESPACE_OPEN +namespace internal { +class AnyMetadata; +} // namespace internal +PROTOBUF_NAMESPACE_CLOSE + +// Internal implementation detail -- do not use these members. +struct TableStruct_CompLib_2eproto { + static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTableField entries[] + PROTOBUF_SECTION_VARIABLE(protodesc_cold); + static const ::PROTOBUF_NAMESPACE_ID::internal::AuxiliaryParseTableField aux[] + PROTOBUF_SECTION_VARIABLE(protodesc_cold); + static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTable schema[6] + PROTOBUF_SECTION_VARIABLE(protodesc_cold); + static const ::PROTOBUF_NAMESPACE_ID::internal::FieldMetadata field_metadata[]; + static const ::PROTOBUF_NAMESPACE_ID::internal::SerializationTable serialization_table[]; + static const uint32_t offsets[]; +}; +extern const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_CompLib_2eproto; +namespace CompLib { +class GenericRequest; +struct GenericRequestDefaultTypeInternal; +extern GenericRequestDefaultTypeInternal _GenericRequest_default_instance_; +class GenericResponse; +struct GenericResponseDefaultTypeInternal; +extern GenericResponseDefaultTypeInternal _GenericResponse_default_instance_; +class Header; +struct HeaderDefaultTypeInternal; +extern HeaderDefaultTypeInternal _Header_default_instance_; +class ReadSensorsRequest; +struct ReadSensorsRequestDefaultTypeInternal; +extern ReadSensorsRequestDefaultTypeInternal _ReadSensorsRequest_default_instance_; +class ReadSensorsResponse; +struct ReadSensorsResponseDefaultTypeInternal; +extern ReadSensorsResponseDefaultTypeInternal _ReadSensorsResponse_default_instance_; +class Status; +struct StatusDefaultTypeInternal; +extern StatusDefaultTypeInternal _Status_default_instance_; +} // namespace CompLib +PROTOBUF_NAMESPACE_OPEN +template<> ::CompLib::GenericRequest* Arena::CreateMaybeMessage<::CompLib::GenericRequest>(Arena*); +template<> ::CompLib::GenericResponse* Arena::CreateMaybeMessage<::CompLib::GenericResponse>(Arena*); +template<> ::CompLib::Header* Arena::CreateMaybeMessage<::CompLib::Header>(Arena*); +template<> ::CompLib::ReadSensorsRequest* Arena::CreateMaybeMessage<::CompLib::ReadSensorsRequest>(Arena*); +template<> ::CompLib::ReadSensorsResponse* Arena::CreateMaybeMessage<::CompLib::ReadSensorsResponse>(Arena*); +template<> ::CompLib::Status* Arena::CreateMaybeMessage<::CompLib::Status>(Arena*); +PROTOBUF_NAMESPACE_CLOSE +namespace CompLib { + +// =================================================================== + +class Header final : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:CompLib.Header) */ { + public: + inline Header() : Header(nullptr) {} + ~Header() override; + explicit constexpr Header(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); + + Header(const Header& from); + Header(Header&& from) noexcept + : Header() { + *this = ::std::move(from); + } + + inline Header& operator=(const Header& from) { + CopyFrom(from); + return *this; + } + inline Header& operator=(Header&& from) noexcept { + if (this == &from) return *this; + if (GetOwningArena() == from.GetOwningArena() + #ifdef PROTOBUF_FORCE_COPY_IN_MOVE + && GetOwningArena() != nullptr + #endif // !PROTOBUF_FORCE_COPY_IN_MOVE + ) { + InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return default_instance().GetMetadata().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return default_instance().GetMetadata().reflection; + } + static const Header& default_instance() { + return *internal_default_instance(); + } + static inline const Header* internal_default_instance() { + return reinterpret_cast( + &_Header_default_instance_); + } + static constexpr int kIndexInFileMessages = + 0; + + friend void swap(Header& a, Header& b) { + a.Swap(&b); + } + inline void Swap(Header* other) { + if (other == this) return; + #ifdef PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() != nullptr && + GetOwningArena() == other->GetOwningArena()) { + #else // PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() == other->GetOwningArena()) { + #endif // !PROTOBUF_FORCE_COPY_IN_SWAP + InternalSwap(other); + } else { + ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); + } + } + void UnsafeArenaSwap(Header* other) { + if (other == this) return; + GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + Header* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { + return CreateMaybeMessage
(arena); + } + using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; + void CopyFrom(const Header& from); + using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; + void MergeFrom(const Header& from); + private: + static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from); + public: + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + uint8_t* _InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _cached_size_.Get(); } + + private: + void SharedCtor(); + void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(Header* other); + + private: + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "CompLib.Header"; + } + protected: + explicit Header(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned = false); + private: + static void ArenaDtor(void* object); + inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena); + public: + + static const ClassData _class_data_; + const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kMessageTypeFieldNumber = 1, + }; + // string message_type = 1; + void clear_message_type(); + const std::string& message_type() const; + template + void set_message_type(ArgT0&& arg0, ArgT... args); + std::string* mutable_message_type(); + PROTOBUF_NODISCARD std::string* release_message_type(); + void set_allocated_message_type(std::string* message_type); + private: + const std::string& _internal_message_type() const; + inline PROTOBUF_ALWAYS_INLINE void _internal_set_message_type(const std::string& value); + std::string* _internal_mutable_message_type(); + public: + + // @@protoc_insertion_point(class_scope:CompLib.Header) + private: + class _Internal; + + template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; + typedef void InternalArenaConstructable_; + typedef void DestructorSkippable_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr message_type_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + friend struct ::TableStruct_CompLib_2eproto; +}; +// ------------------------------------------------------------------- + +class Status final : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:CompLib.Status) */ { + public: + inline Status() : Status(nullptr) {} + ~Status() override; + explicit constexpr Status(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); + + Status(const Status& from); + Status(Status&& from) noexcept + : Status() { + *this = ::std::move(from); + } + + inline Status& operator=(const Status& from) { + CopyFrom(from); + return *this; + } + inline Status& operator=(Status&& from) noexcept { + if (this == &from) return *this; + if (GetOwningArena() == from.GetOwningArena() + #ifdef PROTOBUF_FORCE_COPY_IN_MOVE + && GetOwningArena() != nullptr + #endif // !PROTOBUF_FORCE_COPY_IN_MOVE + ) { + InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return default_instance().GetMetadata().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return default_instance().GetMetadata().reflection; + } + static const Status& default_instance() { + return *internal_default_instance(); + } + static inline const Status* internal_default_instance() { + return reinterpret_cast( + &_Status_default_instance_); + } + static constexpr int kIndexInFileMessages = + 1; + + friend void swap(Status& a, Status& b) { + a.Swap(&b); + } + inline void Swap(Status* other) { + if (other == this) return; + #ifdef PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() != nullptr && + GetOwningArena() == other->GetOwningArena()) { + #else // PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() == other->GetOwningArena()) { + #endif // !PROTOBUF_FORCE_COPY_IN_SWAP + InternalSwap(other); + } else { + ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); + } + } + void UnsafeArenaSwap(Status* other) { + if (other == this) return; + GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + Status* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { + return CreateMaybeMessage(arena); + } + using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; + void CopyFrom(const Status& from); + using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; + void MergeFrom(const Status& from); + private: + static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from); + public: + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + uint8_t* _InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _cached_size_.Get(); } + + private: + void SharedCtor(); + void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(Status* other); + + private: + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "CompLib.Status"; + } + protected: + explicit Status(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned = false); + private: + static void ArenaDtor(void* object); + inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena); + public: + + static const ClassData _class_data_; + const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kErrorMessageFieldNumber = 2, + kSuccessfulFieldNumber = 1, + }; + // string error_message = 2; + void clear_error_message(); + const std::string& error_message() const; + template + void set_error_message(ArgT0&& arg0, ArgT... args); + std::string* mutable_error_message(); + PROTOBUF_NODISCARD std::string* release_error_message(); + void set_allocated_error_message(std::string* error_message); + private: + const std::string& _internal_error_message() const; + inline PROTOBUF_ALWAYS_INLINE void _internal_set_error_message(const std::string& value); + std::string* _internal_mutable_error_message(); + public: + + // bool successful = 1; + void clear_successful(); + bool successful() const; + void set_successful(bool value); + private: + bool _internal_successful() const; + void _internal_set_successful(bool value); + public: + + // @@protoc_insertion_point(class_scope:CompLib.Status) + private: + class _Internal; + + template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; + typedef void InternalArenaConstructable_; + typedef void DestructorSkippable_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr error_message_; + bool successful_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + friend struct ::TableStruct_CompLib_2eproto; +}; +// ------------------------------------------------------------------- + +class GenericRequest final : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:CompLib.GenericRequest) */ { + public: + inline GenericRequest() : GenericRequest(nullptr) {} + ~GenericRequest() override; + explicit constexpr GenericRequest(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); + + GenericRequest(const GenericRequest& from); + GenericRequest(GenericRequest&& from) noexcept + : GenericRequest() { + *this = ::std::move(from); + } + + inline GenericRequest& operator=(const GenericRequest& from) { + CopyFrom(from); + return *this; + } + inline GenericRequest& operator=(GenericRequest&& from) noexcept { + if (this == &from) return *this; + if (GetOwningArena() == from.GetOwningArena() + #ifdef PROTOBUF_FORCE_COPY_IN_MOVE + && GetOwningArena() != nullptr + #endif // !PROTOBUF_FORCE_COPY_IN_MOVE + ) { + InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return default_instance().GetMetadata().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return default_instance().GetMetadata().reflection; + } + static const GenericRequest& default_instance() { + return *internal_default_instance(); + } + static inline const GenericRequest* internal_default_instance() { + return reinterpret_cast( + &_GenericRequest_default_instance_); + } + static constexpr int kIndexInFileMessages = + 2; + + friend void swap(GenericRequest& a, GenericRequest& b) { + a.Swap(&b); + } + inline void Swap(GenericRequest* other) { + if (other == this) return; + #ifdef PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() != nullptr && + GetOwningArena() == other->GetOwningArena()) { + #else // PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() == other->GetOwningArena()) { + #endif // !PROTOBUF_FORCE_COPY_IN_SWAP + InternalSwap(other); + } else { + ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); + } + } + void UnsafeArenaSwap(GenericRequest* other) { + if (other == this) return; + GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + GenericRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { + return CreateMaybeMessage(arena); + } + using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; + void CopyFrom(const GenericRequest& from); + using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; + void MergeFrom(const GenericRequest& from); + private: + static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from); + public: + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + uint8_t* _InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _cached_size_.Get(); } + + private: + void SharedCtor(); + void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(GenericRequest* other); + + private: + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "CompLib.GenericRequest"; + } + protected: + explicit GenericRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned = false); + private: + static void ArenaDtor(void* object); + inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena); + public: + + static const ClassData _class_data_; + const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kHeaderFieldNumber = 1, + }; + // .CompLib.Header header = 1; + bool has_header() const; + private: + bool _internal_has_header() const; + public: + void clear_header(); + const ::CompLib::Header& header() const; + PROTOBUF_NODISCARD ::CompLib::Header* release_header(); + ::CompLib::Header* mutable_header(); + void set_allocated_header(::CompLib::Header* header); + private: + const ::CompLib::Header& _internal_header() const; + ::CompLib::Header* _internal_mutable_header(); + public: + void unsafe_arena_set_allocated_header( + ::CompLib::Header* header); + ::CompLib::Header* unsafe_arena_release_header(); + + // @@protoc_insertion_point(class_scope:CompLib.GenericRequest) + private: + class _Internal; + + template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; + typedef void InternalArenaConstructable_; + typedef void DestructorSkippable_; + ::CompLib::Header* header_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + friend struct ::TableStruct_CompLib_2eproto; +}; +// ------------------------------------------------------------------- + +class GenericResponse final : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:CompLib.GenericResponse) */ { + public: + inline GenericResponse() : GenericResponse(nullptr) {} + ~GenericResponse() override; + explicit constexpr GenericResponse(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); + + GenericResponse(const GenericResponse& from); + GenericResponse(GenericResponse&& from) noexcept + : GenericResponse() { + *this = ::std::move(from); + } + + inline GenericResponse& operator=(const GenericResponse& from) { + CopyFrom(from); + return *this; + } + inline GenericResponse& operator=(GenericResponse&& from) noexcept { + if (this == &from) return *this; + if (GetOwningArena() == from.GetOwningArena() + #ifdef PROTOBUF_FORCE_COPY_IN_MOVE + && GetOwningArena() != nullptr + #endif // !PROTOBUF_FORCE_COPY_IN_MOVE + ) { + InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return default_instance().GetMetadata().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return default_instance().GetMetadata().reflection; + } + static const GenericResponse& default_instance() { + return *internal_default_instance(); + } + static inline const GenericResponse* internal_default_instance() { + return reinterpret_cast( + &_GenericResponse_default_instance_); + } + static constexpr int kIndexInFileMessages = + 3; + + friend void swap(GenericResponse& a, GenericResponse& b) { + a.Swap(&b); + } + inline void Swap(GenericResponse* other) { + if (other == this) return; + #ifdef PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() != nullptr && + GetOwningArena() == other->GetOwningArena()) { + #else // PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() == other->GetOwningArena()) { + #endif // !PROTOBUF_FORCE_COPY_IN_SWAP + InternalSwap(other); + } else { + ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); + } + } + void UnsafeArenaSwap(GenericResponse* other) { + if (other == this) return; + GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + GenericResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { + return CreateMaybeMessage(arena); + } + using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; + void CopyFrom(const GenericResponse& from); + using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; + void MergeFrom(const GenericResponse& from); + private: + static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from); + public: + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + uint8_t* _InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _cached_size_.Get(); } + + private: + void SharedCtor(); + void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(GenericResponse* other); + + private: + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "CompLib.GenericResponse"; + } + protected: + explicit GenericResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned = false); + private: + static void ArenaDtor(void* object); + inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena); + public: + + static const ClassData _class_data_; + const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kHeaderFieldNumber = 1, + kStatusFieldNumber = 2, + }; + // .CompLib.Header header = 1; + bool has_header() const; + private: + bool _internal_has_header() const; + public: + void clear_header(); + const ::CompLib::Header& header() const; + PROTOBUF_NODISCARD ::CompLib::Header* release_header(); + ::CompLib::Header* mutable_header(); + void set_allocated_header(::CompLib::Header* header); + private: + const ::CompLib::Header& _internal_header() const; + ::CompLib::Header* _internal_mutable_header(); + public: + void unsafe_arena_set_allocated_header( + ::CompLib::Header* header); + ::CompLib::Header* unsafe_arena_release_header(); + + // .CompLib.Status status = 2; + bool has_status() const; + private: + bool _internal_has_status() const; + public: + void clear_status(); + const ::CompLib::Status& status() const; + PROTOBUF_NODISCARD ::CompLib::Status* release_status(); + ::CompLib::Status* mutable_status(); + void set_allocated_status(::CompLib::Status* status); + private: + const ::CompLib::Status& _internal_status() const; + ::CompLib::Status* _internal_mutable_status(); + public: + void unsafe_arena_set_allocated_status( + ::CompLib::Status* status); + ::CompLib::Status* unsafe_arena_release_status(); + + // @@protoc_insertion_point(class_scope:CompLib.GenericResponse) + private: + class _Internal; + + template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; + typedef void InternalArenaConstructable_; + typedef void DestructorSkippable_; + ::CompLib::Header* header_; + ::CompLib::Status* status_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + friend struct ::TableStruct_CompLib_2eproto; +}; +// ------------------------------------------------------------------- + +class ReadSensorsRequest final : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:CompLib.ReadSensorsRequest) */ { + public: + inline ReadSensorsRequest() : ReadSensorsRequest(nullptr) {} + ~ReadSensorsRequest() override; + explicit constexpr ReadSensorsRequest(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); + + ReadSensorsRequest(const ReadSensorsRequest& from); + ReadSensorsRequest(ReadSensorsRequest&& from) noexcept + : ReadSensorsRequest() { + *this = ::std::move(from); + } + + inline ReadSensorsRequest& operator=(const ReadSensorsRequest& from) { + CopyFrom(from); + return *this; + } + inline ReadSensorsRequest& operator=(ReadSensorsRequest&& from) noexcept { + if (this == &from) return *this; + if (GetOwningArena() == from.GetOwningArena() + #ifdef PROTOBUF_FORCE_COPY_IN_MOVE + && GetOwningArena() != nullptr + #endif // !PROTOBUF_FORCE_COPY_IN_MOVE + ) { + InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return default_instance().GetMetadata().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return default_instance().GetMetadata().reflection; + } + static const ReadSensorsRequest& default_instance() { + return *internal_default_instance(); + } + static inline const ReadSensorsRequest* internal_default_instance() { + return reinterpret_cast( + &_ReadSensorsRequest_default_instance_); + } + static constexpr int kIndexInFileMessages = + 4; + + friend void swap(ReadSensorsRequest& a, ReadSensorsRequest& b) { + a.Swap(&b); + } + inline void Swap(ReadSensorsRequest* other) { + if (other == this) return; + #ifdef PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() != nullptr && + GetOwningArena() == other->GetOwningArena()) { + #else // PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() == other->GetOwningArena()) { + #endif // !PROTOBUF_FORCE_COPY_IN_SWAP + InternalSwap(other); + } else { + ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); + } + } + void UnsafeArenaSwap(ReadSensorsRequest* other) { + if (other == this) return; + GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + ReadSensorsRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { + return CreateMaybeMessage(arena); + } + using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; + void CopyFrom(const ReadSensorsRequest& from); + using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; + void MergeFrom(const ReadSensorsRequest& from); + private: + static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from); + public: + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + uint8_t* _InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _cached_size_.Get(); } + + private: + void SharedCtor(); + void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(ReadSensorsRequest* other); + + private: + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "CompLib.ReadSensorsRequest"; + } + protected: + explicit ReadSensorsRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned = false); + private: + static void ArenaDtor(void* object); + inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena); + public: + + static const ClassData _class_data_; + const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kHeaderFieldNumber = 1, + }; + // .CompLib.Header header = 1; + bool has_header() const; + private: + bool _internal_has_header() const; + public: + void clear_header(); + const ::CompLib::Header& header() const; + PROTOBUF_NODISCARD ::CompLib::Header* release_header(); + ::CompLib::Header* mutable_header(); + void set_allocated_header(::CompLib::Header* header); + private: + const ::CompLib::Header& _internal_header() const; + ::CompLib::Header* _internal_mutable_header(); + public: + void unsafe_arena_set_allocated_header( + ::CompLib::Header* header); + ::CompLib::Header* unsafe_arena_release_header(); + + // @@protoc_insertion_point(class_scope:CompLib.ReadSensorsRequest) + private: + class _Internal; + + template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; + typedef void InternalArenaConstructable_; + typedef void DestructorSkippable_; + ::CompLib::Header* header_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + friend struct ::TableStruct_CompLib_2eproto; +}; +// ------------------------------------------------------------------- + +class ReadSensorsResponse final : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:CompLib.ReadSensorsResponse) */ { + public: + inline ReadSensorsResponse() : ReadSensorsResponse(nullptr) {} + ~ReadSensorsResponse() override; + explicit constexpr ReadSensorsResponse(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); + + ReadSensorsResponse(const ReadSensorsResponse& from); + ReadSensorsResponse(ReadSensorsResponse&& from) noexcept + : ReadSensorsResponse() { + *this = ::std::move(from); + } + + inline ReadSensorsResponse& operator=(const ReadSensorsResponse& from) { + CopyFrom(from); + return *this; + } + inline ReadSensorsResponse& operator=(ReadSensorsResponse&& from) noexcept { + if (this == &from) return *this; + if (GetOwningArena() == from.GetOwningArena() + #ifdef PROTOBUF_FORCE_COPY_IN_MOVE + && GetOwningArena() != nullptr + #endif // !PROTOBUF_FORCE_COPY_IN_MOVE + ) { + InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return default_instance().GetMetadata().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return default_instance().GetMetadata().reflection; + } + static const ReadSensorsResponse& default_instance() { + return *internal_default_instance(); + } + static inline const ReadSensorsResponse* internal_default_instance() { + return reinterpret_cast( + &_ReadSensorsResponse_default_instance_); + } + static constexpr int kIndexInFileMessages = + 5; + + friend void swap(ReadSensorsResponse& a, ReadSensorsResponse& b) { + a.Swap(&b); + } + inline void Swap(ReadSensorsResponse* other) { + if (other == this) return; + #ifdef PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() != nullptr && + GetOwningArena() == other->GetOwningArena()) { + #else // PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() == other->GetOwningArena()) { + #endif // !PROTOBUF_FORCE_COPY_IN_SWAP + InternalSwap(other); + } else { + ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); + } + } + void UnsafeArenaSwap(ReadSensorsResponse* other) { + if (other == this) return; + GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + ReadSensorsResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { + return CreateMaybeMessage(arena); + } + using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; + void CopyFrom(const ReadSensorsResponse& from); + using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; + void MergeFrom(const ReadSensorsResponse& from); + private: + static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from); + public: + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + uint8_t* _InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _cached_size_.Get(); } + + private: + void SharedCtor(); + void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(ReadSensorsResponse* other); + + private: + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "CompLib.ReadSensorsResponse"; + } + protected: + explicit ReadSensorsResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned = false); + private: + static void ArenaDtor(void* object); + inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena); + public: + + static const ClassData _class_data_; + const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kHeaderFieldNumber = 1, + kStatusFieldNumber = 2, + kIr1FieldNumber = 3, + kIr2FieldNumber = 4, + kIr3FieldNumber = 5, + kIr4FieldNumber = 6, + kIr5FieldNumber = 7, + }; + // .CompLib.Header header = 1; + bool has_header() const; + private: + bool _internal_has_header() const; + public: + void clear_header(); + const ::CompLib::Header& header() const; + PROTOBUF_NODISCARD ::CompLib::Header* release_header(); + ::CompLib::Header* mutable_header(); + void set_allocated_header(::CompLib::Header* header); + private: + const ::CompLib::Header& _internal_header() const; + ::CompLib::Header* _internal_mutable_header(); + public: + void unsafe_arena_set_allocated_header( + ::CompLib::Header* header); + ::CompLib::Header* unsafe_arena_release_header(); + + // .CompLib.Status status = 2; + bool has_status() const; + private: + bool _internal_has_status() const; + public: + void clear_status(); + const ::CompLib::Status& status() const; + PROTOBUF_NODISCARD ::CompLib::Status* release_status(); + ::CompLib::Status* mutable_status(); + void set_allocated_status(::CompLib::Status* status); + private: + const ::CompLib::Status& _internal_status() const; + ::CompLib::Status* _internal_mutable_status(); + public: + void unsafe_arena_set_allocated_status( + ::CompLib::Status* status); + ::CompLib::Status* unsafe_arena_release_status(); + + // uint32 ir_1 = 3; + void clear_ir_1(); + uint32_t ir_1() const; + void set_ir_1(uint32_t value); + private: + uint32_t _internal_ir_1() const; + void _internal_set_ir_1(uint32_t value); + public: + + // uint32 ir_2 = 4; + void clear_ir_2(); + uint32_t ir_2() const; + void set_ir_2(uint32_t value); + private: + uint32_t _internal_ir_2() const; + void _internal_set_ir_2(uint32_t value); + public: + + // uint32 ir_3 = 5; + void clear_ir_3(); + uint32_t ir_3() const; + void set_ir_3(uint32_t value); + private: + uint32_t _internal_ir_3() const; + void _internal_set_ir_3(uint32_t value); + public: + + // uint32 ir_4 = 6; + void clear_ir_4(); + uint32_t ir_4() const; + void set_ir_4(uint32_t value); + private: + uint32_t _internal_ir_4() const; + void _internal_set_ir_4(uint32_t value); + public: + + // uint32 ir_5 = 7; + void clear_ir_5(); + uint32_t ir_5() const; + void set_ir_5(uint32_t value); + private: + uint32_t _internal_ir_5() const; + void _internal_set_ir_5(uint32_t value); + public: + + // @@protoc_insertion_point(class_scope:CompLib.ReadSensorsResponse) + private: + class _Internal; + + template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; + typedef void InternalArenaConstructable_; + typedef void DestructorSkippable_; + ::CompLib::Header* header_; + ::CompLib::Status* status_; + uint32_t ir_1_; + uint32_t ir_2_; + uint32_t ir_3_; + uint32_t ir_4_; + uint32_t ir_5_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + friend struct ::TableStruct_CompLib_2eproto; +}; +// =================================================================== + + +// =================================================================== + +#ifdef __GNUC__ + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wstrict-aliasing" +#endif // __GNUC__ +// Header + +// string message_type = 1; +inline void Header::clear_message_type() { + message_type_.ClearToEmpty(); +} +inline const std::string& Header::message_type() const { + // @@protoc_insertion_point(field_get:CompLib.Header.message_type) + return _internal_message_type(); +} +template +inline PROTOBUF_ALWAYS_INLINE +void Header::set_message_type(ArgT0&& arg0, ArgT... args) { + + message_type_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, static_cast(arg0), args..., GetArenaForAllocation()); + // @@protoc_insertion_point(field_set:CompLib.Header.message_type) +} +inline std::string* Header::mutable_message_type() { + std::string* _s = _internal_mutable_message_type(); + // @@protoc_insertion_point(field_mutable:CompLib.Header.message_type) + return _s; +} +inline const std::string& Header::_internal_message_type() const { + return message_type_.Get(); +} +inline void Header::_internal_set_message_type(const std::string& value) { + + message_type_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, value, GetArenaForAllocation()); +} +inline std::string* Header::_internal_mutable_message_type() { + + return message_type_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation()); +} +inline std::string* Header::release_message_type() { + // @@protoc_insertion_point(field_release:CompLib.Header.message_type) + return message_type_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaForAllocation()); +} +inline void Header::set_allocated_message_type(std::string* message_type) { + if (message_type != nullptr) { + + } else { + + } + message_type_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), message_type, + GetArenaForAllocation()); +#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (message_type_.IsDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited())) { + message_type_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation()); + } +#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + // @@protoc_insertion_point(field_set_allocated:CompLib.Header.message_type) +} + +// ------------------------------------------------------------------- + +// Status + +// bool successful = 1; +inline void Status::clear_successful() { + successful_ = false; +} +inline bool Status::_internal_successful() const { + return successful_; +} +inline bool Status::successful() const { + // @@protoc_insertion_point(field_get:CompLib.Status.successful) + return _internal_successful(); +} +inline void Status::_internal_set_successful(bool value) { + + successful_ = value; +} +inline void Status::set_successful(bool value) { + _internal_set_successful(value); + // @@protoc_insertion_point(field_set:CompLib.Status.successful) +} + +// string error_message = 2; +inline void Status::clear_error_message() { + error_message_.ClearToEmpty(); +} +inline const std::string& Status::error_message() const { + // @@protoc_insertion_point(field_get:CompLib.Status.error_message) + return _internal_error_message(); +} +template +inline PROTOBUF_ALWAYS_INLINE +void Status::set_error_message(ArgT0&& arg0, ArgT... args) { + + error_message_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, static_cast(arg0), args..., GetArenaForAllocation()); + // @@protoc_insertion_point(field_set:CompLib.Status.error_message) +} +inline std::string* Status::mutable_error_message() { + std::string* _s = _internal_mutable_error_message(); + // @@protoc_insertion_point(field_mutable:CompLib.Status.error_message) + return _s; +} +inline const std::string& Status::_internal_error_message() const { + return error_message_.Get(); +} +inline void Status::_internal_set_error_message(const std::string& value) { + + error_message_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, value, GetArenaForAllocation()); +} +inline std::string* Status::_internal_mutable_error_message() { + + return error_message_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation()); +} +inline std::string* Status::release_error_message() { + // @@protoc_insertion_point(field_release:CompLib.Status.error_message) + return error_message_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaForAllocation()); +} +inline void Status::set_allocated_error_message(std::string* error_message) { + if (error_message != nullptr) { + + } else { + + } + error_message_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), error_message, + GetArenaForAllocation()); +#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (error_message_.IsDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited())) { + error_message_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation()); + } +#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + // @@protoc_insertion_point(field_set_allocated:CompLib.Status.error_message) +} + +// ------------------------------------------------------------------- + +// GenericRequest + +// .CompLib.Header header = 1; +inline bool GenericRequest::_internal_has_header() const { + return this != internal_default_instance() && header_ != nullptr; +} +inline bool GenericRequest::has_header() const { + return _internal_has_header(); +} +inline void GenericRequest::clear_header() { + if (GetArenaForAllocation() == nullptr && header_ != nullptr) { + delete header_; + } + header_ = nullptr; +} +inline const ::CompLib::Header& GenericRequest::_internal_header() const { + const ::CompLib::Header* p = header_; + return p != nullptr ? *p : reinterpret_cast( + ::CompLib::_Header_default_instance_); +} +inline const ::CompLib::Header& GenericRequest::header() const { + // @@protoc_insertion_point(field_get:CompLib.GenericRequest.header) + return _internal_header(); +} +inline void GenericRequest::unsafe_arena_set_allocated_header( + ::CompLib::Header* header) { + if (GetArenaForAllocation() == nullptr) { + delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(header_); + } + header_ = header; + if (header) { + + } else { + + } + // @@protoc_insertion_point(field_unsafe_arena_set_allocated:CompLib.GenericRequest.header) +} +inline ::CompLib::Header* GenericRequest::release_header() { + + ::CompLib::Header* temp = header_; + header_ = nullptr; +#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE + auto* old = reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp); + temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); + if (GetArenaForAllocation() == nullptr) { delete old; } +#else // PROTOBUF_FORCE_COPY_IN_RELEASE + if (GetArenaForAllocation() != nullptr) { + temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); + } +#endif // !PROTOBUF_FORCE_COPY_IN_RELEASE + return temp; +} +inline ::CompLib::Header* GenericRequest::unsafe_arena_release_header() { + // @@protoc_insertion_point(field_release:CompLib.GenericRequest.header) + + ::CompLib::Header* temp = header_; + header_ = nullptr; + return temp; +} +inline ::CompLib::Header* GenericRequest::_internal_mutable_header() { + + if (header_ == nullptr) { + auto* p = CreateMaybeMessage<::CompLib::Header>(GetArenaForAllocation()); + header_ = p; + } + return header_; +} +inline ::CompLib::Header* GenericRequest::mutable_header() { + ::CompLib::Header* _msg = _internal_mutable_header(); + // @@protoc_insertion_point(field_mutable:CompLib.GenericRequest.header) + return _msg; +} +inline void GenericRequest::set_allocated_header(::CompLib::Header* header) { + ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation(); + if (message_arena == nullptr) { + delete header_; + } + if (header) { + ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = + ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::CompLib::Header>::GetOwningArena(header); + if (message_arena != submessage_arena) { + header = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage( + message_arena, header, submessage_arena); + } + + } else { + + } + header_ = header; + // @@protoc_insertion_point(field_set_allocated:CompLib.GenericRequest.header) +} + +// ------------------------------------------------------------------- + +// GenericResponse + +// .CompLib.Header header = 1; +inline bool GenericResponse::_internal_has_header() const { + return this != internal_default_instance() && header_ != nullptr; +} +inline bool GenericResponse::has_header() const { + return _internal_has_header(); +} +inline void GenericResponse::clear_header() { + if (GetArenaForAllocation() == nullptr && header_ != nullptr) { + delete header_; + } + header_ = nullptr; +} +inline const ::CompLib::Header& GenericResponse::_internal_header() const { + const ::CompLib::Header* p = header_; + return p != nullptr ? *p : reinterpret_cast( + ::CompLib::_Header_default_instance_); +} +inline const ::CompLib::Header& GenericResponse::header() const { + // @@protoc_insertion_point(field_get:CompLib.GenericResponse.header) + return _internal_header(); +} +inline void GenericResponse::unsafe_arena_set_allocated_header( + ::CompLib::Header* header) { + if (GetArenaForAllocation() == nullptr) { + delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(header_); + } + header_ = header; + if (header) { + + } else { + + } + // @@protoc_insertion_point(field_unsafe_arena_set_allocated:CompLib.GenericResponse.header) +} +inline ::CompLib::Header* GenericResponse::release_header() { + + ::CompLib::Header* temp = header_; + header_ = nullptr; +#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE + auto* old = reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp); + temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); + if (GetArenaForAllocation() == nullptr) { delete old; } +#else // PROTOBUF_FORCE_COPY_IN_RELEASE + if (GetArenaForAllocation() != nullptr) { + temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); + } +#endif // !PROTOBUF_FORCE_COPY_IN_RELEASE + return temp; +} +inline ::CompLib::Header* GenericResponse::unsafe_arena_release_header() { + // @@protoc_insertion_point(field_release:CompLib.GenericResponse.header) + + ::CompLib::Header* temp = header_; + header_ = nullptr; + return temp; +} +inline ::CompLib::Header* GenericResponse::_internal_mutable_header() { + + if (header_ == nullptr) { + auto* p = CreateMaybeMessage<::CompLib::Header>(GetArenaForAllocation()); + header_ = p; + } + return header_; +} +inline ::CompLib::Header* GenericResponse::mutable_header() { + ::CompLib::Header* _msg = _internal_mutable_header(); + // @@protoc_insertion_point(field_mutable:CompLib.GenericResponse.header) + return _msg; +} +inline void GenericResponse::set_allocated_header(::CompLib::Header* header) { + ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation(); + if (message_arena == nullptr) { + delete header_; + } + if (header) { + ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = + ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::CompLib::Header>::GetOwningArena(header); + if (message_arena != submessage_arena) { + header = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage( + message_arena, header, submessage_arena); + } + + } else { + + } + header_ = header; + // @@protoc_insertion_point(field_set_allocated:CompLib.GenericResponse.header) +} + +// .CompLib.Status status = 2; +inline bool GenericResponse::_internal_has_status() const { + return this != internal_default_instance() && status_ != nullptr; +} +inline bool GenericResponse::has_status() const { + return _internal_has_status(); +} +inline void GenericResponse::clear_status() { + if (GetArenaForAllocation() == nullptr && status_ != nullptr) { + delete status_; + } + status_ = nullptr; +} +inline const ::CompLib::Status& GenericResponse::_internal_status() const { + const ::CompLib::Status* p = status_; + return p != nullptr ? *p : reinterpret_cast( + ::CompLib::_Status_default_instance_); +} +inline const ::CompLib::Status& GenericResponse::status() const { + // @@protoc_insertion_point(field_get:CompLib.GenericResponse.status) + return _internal_status(); +} +inline void GenericResponse::unsafe_arena_set_allocated_status( + ::CompLib::Status* status) { + if (GetArenaForAllocation() == nullptr) { + delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(status_); + } + status_ = status; + if (status) { + + } else { + + } + // @@protoc_insertion_point(field_unsafe_arena_set_allocated:CompLib.GenericResponse.status) +} +inline ::CompLib::Status* GenericResponse::release_status() { + + ::CompLib::Status* temp = status_; + status_ = nullptr; +#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE + auto* old = reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp); + temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); + if (GetArenaForAllocation() == nullptr) { delete old; } +#else // PROTOBUF_FORCE_COPY_IN_RELEASE + if (GetArenaForAllocation() != nullptr) { + temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); + } +#endif // !PROTOBUF_FORCE_COPY_IN_RELEASE + return temp; +} +inline ::CompLib::Status* GenericResponse::unsafe_arena_release_status() { + // @@protoc_insertion_point(field_release:CompLib.GenericResponse.status) + + ::CompLib::Status* temp = status_; + status_ = nullptr; + return temp; +} +inline ::CompLib::Status* GenericResponse::_internal_mutable_status() { + + if (status_ == nullptr) { + auto* p = CreateMaybeMessage<::CompLib::Status>(GetArenaForAllocation()); + status_ = p; + } + return status_; +} +inline ::CompLib::Status* GenericResponse::mutable_status() { + ::CompLib::Status* _msg = _internal_mutable_status(); + // @@protoc_insertion_point(field_mutable:CompLib.GenericResponse.status) + return _msg; +} +inline void GenericResponse::set_allocated_status(::CompLib::Status* status) { + ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation(); + if (message_arena == nullptr) { + delete status_; + } + if (status) { + ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = + ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::CompLib::Status>::GetOwningArena(status); + if (message_arena != submessage_arena) { + status = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage( + message_arena, status, submessage_arena); + } + + } else { + + } + status_ = status; + // @@protoc_insertion_point(field_set_allocated:CompLib.GenericResponse.status) +} + +// ------------------------------------------------------------------- + +// ReadSensorsRequest + +// .CompLib.Header header = 1; +inline bool ReadSensorsRequest::_internal_has_header() const { + return this != internal_default_instance() && header_ != nullptr; +} +inline bool ReadSensorsRequest::has_header() const { + return _internal_has_header(); +} +inline void ReadSensorsRequest::clear_header() { + if (GetArenaForAllocation() == nullptr && header_ != nullptr) { + delete header_; + } + header_ = nullptr; +} +inline const ::CompLib::Header& ReadSensorsRequest::_internal_header() const { + const ::CompLib::Header* p = header_; + return p != nullptr ? *p : reinterpret_cast( + ::CompLib::_Header_default_instance_); +} +inline const ::CompLib::Header& ReadSensorsRequest::header() const { + // @@protoc_insertion_point(field_get:CompLib.ReadSensorsRequest.header) + return _internal_header(); +} +inline void ReadSensorsRequest::unsafe_arena_set_allocated_header( + ::CompLib::Header* header) { + if (GetArenaForAllocation() == nullptr) { + delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(header_); + } + header_ = header; + if (header) { + + } else { + + } + // @@protoc_insertion_point(field_unsafe_arena_set_allocated:CompLib.ReadSensorsRequest.header) +} +inline ::CompLib::Header* ReadSensorsRequest::release_header() { + + ::CompLib::Header* temp = header_; + header_ = nullptr; +#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE + auto* old = reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp); + temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); + if (GetArenaForAllocation() == nullptr) { delete old; } +#else // PROTOBUF_FORCE_COPY_IN_RELEASE + if (GetArenaForAllocation() != nullptr) { + temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); + } +#endif // !PROTOBUF_FORCE_COPY_IN_RELEASE + return temp; +} +inline ::CompLib::Header* ReadSensorsRequest::unsafe_arena_release_header() { + // @@protoc_insertion_point(field_release:CompLib.ReadSensorsRequest.header) + + ::CompLib::Header* temp = header_; + header_ = nullptr; + return temp; +} +inline ::CompLib::Header* ReadSensorsRequest::_internal_mutable_header() { + + if (header_ == nullptr) { + auto* p = CreateMaybeMessage<::CompLib::Header>(GetArenaForAllocation()); + header_ = p; + } + return header_; +} +inline ::CompLib::Header* ReadSensorsRequest::mutable_header() { + ::CompLib::Header* _msg = _internal_mutable_header(); + // @@protoc_insertion_point(field_mutable:CompLib.ReadSensorsRequest.header) + return _msg; +} +inline void ReadSensorsRequest::set_allocated_header(::CompLib::Header* header) { + ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation(); + if (message_arena == nullptr) { + delete header_; + } + if (header) { + ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = + ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::CompLib::Header>::GetOwningArena(header); + if (message_arena != submessage_arena) { + header = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage( + message_arena, header, submessage_arena); + } + + } else { + + } + header_ = header; + // @@protoc_insertion_point(field_set_allocated:CompLib.ReadSensorsRequest.header) +} + +// ------------------------------------------------------------------- + +// ReadSensorsResponse + +// .CompLib.Header header = 1; +inline bool ReadSensorsResponse::_internal_has_header() const { + return this != internal_default_instance() && header_ != nullptr; +} +inline bool ReadSensorsResponse::has_header() const { + return _internal_has_header(); +} +inline void ReadSensorsResponse::clear_header() { + if (GetArenaForAllocation() == nullptr && header_ != nullptr) { + delete header_; + } + header_ = nullptr; +} +inline const ::CompLib::Header& ReadSensorsResponse::_internal_header() const { + const ::CompLib::Header* p = header_; + return p != nullptr ? *p : reinterpret_cast( + ::CompLib::_Header_default_instance_); +} +inline const ::CompLib::Header& ReadSensorsResponse::header() const { + // @@protoc_insertion_point(field_get:CompLib.ReadSensorsResponse.header) + return _internal_header(); +} +inline void ReadSensorsResponse::unsafe_arena_set_allocated_header( + ::CompLib::Header* header) { + if (GetArenaForAllocation() == nullptr) { + delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(header_); + } + header_ = header; + if (header) { + + } else { + + } + // @@protoc_insertion_point(field_unsafe_arena_set_allocated:CompLib.ReadSensorsResponse.header) +} +inline ::CompLib::Header* ReadSensorsResponse::release_header() { + + ::CompLib::Header* temp = header_; + header_ = nullptr; +#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE + auto* old = reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp); + temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); + if (GetArenaForAllocation() == nullptr) { delete old; } +#else // PROTOBUF_FORCE_COPY_IN_RELEASE + if (GetArenaForAllocation() != nullptr) { + temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); + } +#endif // !PROTOBUF_FORCE_COPY_IN_RELEASE + return temp; +} +inline ::CompLib::Header* ReadSensorsResponse::unsafe_arena_release_header() { + // @@protoc_insertion_point(field_release:CompLib.ReadSensorsResponse.header) + + ::CompLib::Header* temp = header_; + header_ = nullptr; + return temp; +} +inline ::CompLib::Header* ReadSensorsResponse::_internal_mutable_header() { + + if (header_ == nullptr) { + auto* p = CreateMaybeMessage<::CompLib::Header>(GetArenaForAllocation()); + header_ = p; + } + return header_; +} +inline ::CompLib::Header* ReadSensorsResponse::mutable_header() { + ::CompLib::Header* _msg = _internal_mutable_header(); + // @@protoc_insertion_point(field_mutable:CompLib.ReadSensorsResponse.header) + return _msg; +} +inline void ReadSensorsResponse::set_allocated_header(::CompLib::Header* header) { + ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation(); + if (message_arena == nullptr) { + delete header_; + } + if (header) { + ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = + ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::CompLib::Header>::GetOwningArena(header); + if (message_arena != submessage_arena) { + header = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage( + message_arena, header, submessage_arena); + } + + } else { + + } + header_ = header; + // @@protoc_insertion_point(field_set_allocated:CompLib.ReadSensorsResponse.header) +} + +// .CompLib.Status status = 2; +inline bool ReadSensorsResponse::_internal_has_status() const { + return this != internal_default_instance() && status_ != nullptr; +} +inline bool ReadSensorsResponse::has_status() const { + return _internal_has_status(); +} +inline void ReadSensorsResponse::clear_status() { + if (GetArenaForAllocation() == nullptr && status_ != nullptr) { + delete status_; + } + status_ = nullptr; +} +inline const ::CompLib::Status& ReadSensorsResponse::_internal_status() const { + const ::CompLib::Status* p = status_; + return p != nullptr ? *p : reinterpret_cast( + ::CompLib::_Status_default_instance_); +} +inline const ::CompLib::Status& ReadSensorsResponse::status() const { + // @@protoc_insertion_point(field_get:CompLib.ReadSensorsResponse.status) + return _internal_status(); +} +inline void ReadSensorsResponse::unsafe_arena_set_allocated_status( + ::CompLib::Status* status) { + if (GetArenaForAllocation() == nullptr) { + delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(status_); + } + status_ = status; + if (status) { + + } else { + + } + // @@protoc_insertion_point(field_unsafe_arena_set_allocated:CompLib.ReadSensorsResponse.status) +} +inline ::CompLib::Status* ReadSensorsResponse::release_status() { + + ::CompLib::Status* temp = status_; + status_ = nullptr; +#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE + auto* old = reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp); + temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); + if (GetArenaForAllocation() == nullptr) { delete old; } +#else // PROTOBUF_FORCE_COPY_IN_RELEASE + if (GetArenaForAllocation() != nullptr) { + temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); + } +#endif // !PROTOBUF_FORCE_COPY_IN_RELEASE + return temp; +} +inline ::CompLib::Status* ReadSensorsResponse::unsafe_arena_release_status() { + // @@protoc_insertion_point(field_release:CompLib.ReadSensorsResponse.status) + + ::CompLib::Status* temp = status_; + status_ = nullptr; + return temp; +} +inline ::CompLib::Status* ReadSensorsResponse::_internal_mutable_status() { + + if (status_ == nullptr) { + auto* p = CreateMaybeMessage<::CompLib::Status>(GetArenaForAllocation()); + status_ = p; + } + return status_; +} +inline ::CompLib::Status* ReadSensorsResponse::mutable_status() { + ::CompLib::Status* _msg = _internal_mutable_status(); + // @@protoc_insertion_point(field_mutable:CompLib.ReadSensorsResponse.status) + return _msg; +} +inline void ReadSensorsResponse::set_allocated_status(::CompLib::Status* status) { + ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation(); + if (message_arena == nullptr) { + delete status_; + } + if (status) { + ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = + ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::CompLib::Status>::GetOwningArena(status); + if (message_arena != submessage_arena) { + status = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage( + message_arena, status, submessage_arena); + } + + } else { + + } + status_ = status; + // @@protoc_insertion_point(field_set_allocated:CompLib.ReadSensorsResponse.status) +} + +// uint32 ir_1 = 3; +inline void ReadSensorsResponse::clear_ir_1() { + ir_1_ = 0u; +} +inline uint32_t ReadSensorsResponse::_internal_ir_1() const { + return ir_1_; +} +inline uint32_t ReadSensorsResponse::ir_1() const { + // @@protoc_insertion_point(field_get:CompLib.ReadSensorsResponse.ir_1) + return _internal_ir_1(); +} +inline void ReadSensorsResponse::_internal_set_ir_1(uint32_t value) { + + ir_1_ = value; +} +inline void ReadSensorsResponse::set_ir_1(uint32_t value) { + _internal_set_ir_1(value); + // @@protoc_insertion_point(field_set:CompLib.ReadSensorsResponse.ir_1) +} + +// uint32 ir_2 = 4; +inline void ReadSensorsResponse::clear_ir_2() { + ir_2_ = 0u; +} +inline uint32_t ReadSensorsResponse::_internal_ir_2() const { + return ir_2_; +} +inline uint32_t ReadSensorsResponse::ir_2() const { + // @@protoc_insertion_point(field_get:CompLib.ReadSensorsResponse.ir_2) + return _internal_ir_2(); +} +inline void ReadSensorsResponse::_internal_set_ir_2(uint32_t value) { + + ir_2_ = value; +} +inline void ReadSensorsResponse::set_ir_2(uint32_t value) { + _internal_set_ir_2(value); + // @@protoc_insertion_point(field_set:CompLib.ReadSensorsResponse.ir_2) +} + +// uint32 ir_3 = 5; +inline void ReadSensorsResponse::clear_ir_3() { + ir_3_ = 0u; +} +inline uint32_t ReadSensorsResponse::_internal_ir_3() const { + return ir_3_; +} +inline uint32_t ReadSensorsResponse::ir_3() const { + // @@protoc_insertion_point(field_get:CompLib.ReadSensorsResponse.ir_3) + return _internal_ir_3(); +} +inline void ReadSensorsResponse::_internal_set_ir_3(uint32_t value) { + + ir_3_ = value; +} +inline void ReadSensorsResponse::set_ir_3(uint32_t value) { + _internal_set_ir_3(value); + // @@protoc_insertion_point(field_set:CompLib.ReadSensorsResponse.ir_3) +} + +// uint32 ir_4 = 6; +inline void ReadSensorsResponse::clear_ir_4() { + ir_4_ = 0u; +} +inline uint32_t ReadSensorsResponse::_internal_ir_4() const { + return ir_4_; +} +inline uint32_t ReadSensorsResponse::ir_4() const { + // @@protoc_insertion_point(field_get:CompLib.ReadSensorsResponse.ir_4) + return _internal_ir_4(); +} +inline void ReadSensorsResponse::_internal_set_ir_4(uint32_t value) { + + ir_4_ = value; +} +inline void ReadSensorsResponse::set_ir_4(uint32_t value) { + _internal_set_ir_4(value); + // @@protoc_insertion_point(field_set:CompLib.ReadSensorsResponse.ir_4) +} + +// uint32 ir_5 = 7; +inline void ReadSensorsResponse::clear_ir_5() { + ir_5_ = 0u; +} +inline uint32_t ReadSensorsResponse::_internal_ir_5() const { + return ir_5_; +} +inline uint32_t ReadSensorsResponse::ir_5() const { + // @@protoc_insertion_point(field_get:CompLib.ReadSensorsResponse.ir_5) + return _internal_ir_5(); +} +inline void ReadSensorsResponse::_internal_set_ir_5(uint32_t value) { + + ir_5_ = value; +} +inline void ReadSensorsResponse::set_ir_5(uint32_t value) { + _internal_set_ir_5(value); + // @@protoc_insertion_point(field_set:CompLib.ReadSensorsResponse.ir_5) +} + +#ifdef __GNUC__ + #pragma GCC diagnostic pop +#endif // __GNUC__ +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + + +// @@protoc_insertion_point(namespace_scope) + +} // namespace CompLib + +// @@protoc_insertion_point(global_scope) + +#include +#endif // GOOGLE_PROTOBUF_INCLUDED_GOOGLE_PROTOBUF_INCLUDED_CompLib_2eproto diff --git a/server/cmake-build-debug/Makefile b/server/cmake-build-debug/Makefile new file mode 100644 index 0000000..ca82548 --- /dev/null +++ b/server/cmake-build-debug/Makefile @@ -0,0 +1,258 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.17 + +# Default target executed when no arguments are given to make. +default_target: all + +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Disable VCS-based implicit rules. +% : %,v + + +# Disable VCS-based implicit rules. +% : RCS/% + + +# Disable VCS-based implicit rules. +% : RCS/%,v + + +# Disable VCS-based implicit rules. +% : SCCS/s.% + + +# Disable VCS-based implicit rules. +% : s.% + + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /Applications/CLion.app/Contents/bin/cmake/mac/bin/cmake + +# The command to remove a file. +RM = /Applications/CLion.app/Contents/bin/cmake/mac/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /Users/konstantinviesure/workspace/compLIB/server + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." + /Applications/CLion.app/Contents/bin/cmake/mac/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache + +.PHONY : rebuild_cache/fast + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..." + /Applications/CLion.app/Contents/bin/cmake/mac/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache + +.PHONY : edit_cache/fast + +# The main all target +all: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CMakeFiles /Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CMakeFiles/progress.marks + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 all + $(CMAKE_COMMAND) -E cmake_progress_start /Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CMakeFiles 0 +.PHONY : all + +# The main clean target +clean: + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 clean +.PHONY : clean + +# The main clean target +clean/fast: clean + +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +#============================================================================= +# Target rules for targets named compLib_server + +# Build rule for target. +compLib_server: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 compLib_server +.PHONY : compLib_server + +# fast build rule for target. +compLib_server/fast: + $(MAKE) $(MAKESILENT) -f CMakeFiles/compLib_server.dir/build.make CMakeFiles/compLib_server.dir/build +.PHONY : compLib_server/fast + +CompLib.pb.o: CompLib.pb.cc.o + +.PHONY : CompLib.pb.o + +# target to build an object file +CompLib.pb.cc.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/compLib_server.dir/build.make CMakeFiles/compLib_server.dir/CompLib.pb.cc.o +.PHONY : CompLib.pb.cc.o + +CompLib.pb.i: CompLib.pb.cc.i + +.PHONY : CompLib.pb.i + +# target to preprocess a source file +CompLib.pb.cc.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/compLib_server.dir/build.make CMakeFiles/compLib_server.dir/CompLib.pb.cc.i +.PHONY : CompLib.pb.cc.i + +CompLib.pb.s: CompLib.pb.cc.s + +.PHONY : CompLib.pb.s + +# target to generate assembly for a file +CompLib.pb.cc.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/compLib_server.dir/build.make CMakeFiles/compLib_server.dir/CompLib.pb.cc.s +.PHONY : CompLib.pb.cc.s + +src/Spi.o: src/Spi.cpp.o + +.PHONY : src/Spi.o + +# target to build an object file +src/Spi.cpp.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/compLib_server.dir/build.make CMakeFiles/compLib_server.dir/src/Spi.cpp.o +.PHONY : src/Spi.cpp.o + +src/Spi.i: src/Spi.cpp.i + +.PHONY : src/Spi.i + +# target to preprocess a source file +src/Spi.cpp.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/compLib_server.dir/build.make CMakeFiles/compLib_server.dir/src/Spi.cpp.i +.PHONY : src/Spi.cpp.i + +src/Spi.s: src/Spi.cpp.s + +.PHONY : src/Spi.s + +# target to generate assembly for a file +src/Spi.cpp.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/compLib_server.dir/build.make CMakeFiles/compLib_server.dir/src/Spi.cpp.s +.PHONY : src/Spi.cpp.s + +src/main.o: src/main.cpp.o + +.PHONY : src/main.o + +# target to build an object file +src/main.cpp.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/compLib_server.dir/build.make CMakeFiles/compLib_server.dir/src/main.cpp.o +.PHONY : src/main.cpp.o + +src/main.i: src/main.cpp.i + +.PHONY : src/main.i + +# target to preprocess a source file +src/main.cpp.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/compLib_server.dir/build.make CMakeFiles/compLib_server.dir/src/main.cpp.i +.PHONY : src/main.cpp.i + +src/main.s: src/main.cpp.s + +.PHONY : src/main.s + +# target to generate assembly for a file +src/main.cpp.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/compLib_server.dir/build.make CMakeFiles/compLib_server.dir/src/main.cpp.s +.PHONY : src/main.cpp.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... edit_cache" + @echo "... rebuild_cache" + @echo "... compLib_server" + @echo "... CompLib.pb.o" + @echo "... CompLib.pb.i" + @echo "... CompLib.pb.s" + @echo "... src/Spi.o" + @echo "... src/Spi.i" + @echo "... src/Spi.s" + @echo "... src/main.o" + @echo "... src/main.i" + @echo "... src/main.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/server/cmake-build-debug/cmake_install.cmake b/server/cmake-build-debug/cmake_install.cmake new file mode 100644 index 0000000..756ed47 --- /dev/null +++ b/server/cmake-build-debug/cmake_install.cmake @@ -0,0 +1,44 @@ +# Install script for directory: /Users/konstantinviesure/workspace/compLIB/server + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "Debug") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "FALSE") +endif() + +if(CMAKE_INSTALL_COMPONENT) + set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt") +else() + set(CMAKE_INSTALL_MANIFEST "install_manifest.txt") +endif() + +string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT + "${CMAKE_INSTALL_MANIFEST_FILES}") +file(WRITE "/Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/${CMAKE_INSTALL_MANIFEST}" + "${CMAKE_INSTALL_MANIFEST_CONTENT}") diff --git a/server/cmake-build-debug/compLib_server b/server/cmake-build-debug/compLib_server new file mode 100755 index 0000000000000000000000000000000000000000..0663f10505c18ab2856a32f1119095889702fa9d GIT binary patch literal 254888 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
(to)->MergeFrom( - static_cast(from)); -} - - -void Header::MergeFrom(const Header& from) { -// @@protoc_insertion_point(class_specific_merge_from_start:CompLib.Header) - GOOGLE_DCHECK_NE(&from, this); - uint32_t cached_has_bits = 0; - (void) cached_has_bits; - - if (!from._internal_message_type().empty()) { - _internal_set_message_type(from._internal_message_type()); - } - _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); -} - -void Header::CopyFrom(const Header& from) { -// @@protoc_insertion_point(class_specific_copy_from_start:CompLib.Header) - if (&from == this) return; - Clear(); - MergeFrom(from); -} - -bool Header::IsInitialized() const { - return true; -} - -void Header::InternalSwap(Header* other) { - using std::swap; - auto* lhs_arena = GetArenaForAllocation(); - auto* rhs_arena = other->GetArenaForAllocation(); - _internal_metadata_.InternalSwap(&other->_internal_metadata_); - ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap( - &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), - &message_type_, lhs_arena, - &other->message_type_, rhs_arena - ); -} - -::PROTOBUF_NAMESPACE_ID::Metadata Header::GetMetadata() const { - return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors( - &descriptor_table_CompLib_2eproto_getter, &descriptor_table_CompLib_2eproto_once, - file_level_metadata_CompLib_2eproto[0]); -} - -// =================================================================== - -class Status::_Internal { - public: -}; - -Status::Status(::PROTOBUF_NAMESPACE_ID::Arena* arena, - bool is_message_owned) - : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { - SharedCtor(); - if (!is_message_owned) { - RegisterArenaDtor(arena); - } - // @@protoc_insertion_point(arena_constructor:CompLib.Status) -} -Status::Status(const Status& from) - : ::PROTOBUF_NAMESPACE_ID::Message() { - _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); - error_message_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); - #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING - error_message_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation()); - #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING - if (!from._internal_error_message().empty()) { - error_message_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_error_message(), - GetArenaForAllocation()); - } - successful_ = from.successful_; - // @@protoc_insertion_point(copy_constructor:CompLib.Status) -} - -inline void Status::SharedCtor() { -error_message_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); -#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING - error_message_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation()); -#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING -successful_ = false; -} - -Status::~Status() { - // @@protoc_insertion_point(destructor:CompLib.Status) - if (GetArenaForAllocation() != nullptr) return; - SharedDtor(); - _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); -} - -inline void Status::SharedDtor() { - GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); - error_message_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); -} - -void Status::ArenaDtor(void* object) { - Status* _this = reinterpret_cast< Status* >(object); - (void)_this; -} -void Status::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) { -} -void Status::SetCachedSize(int size) const { - _cached_size_.Set(size); -} - -void Status::Clear() { -// @@protoc_insertion_point(message_clear_start:CompLib.Status) - uint32_t cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - error_message_.ClearToEmpty(); - successful_ = false; - _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); -} - -const char* Status::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) { -#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure - while (!ctx->Done(&ptr)) { - uint32_t tag; - ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag); - switch (tag >> 3) { - // bool successful = 1; - case 1: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 8)) { - successful_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // string error_message = 2; - case 2: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 18)) { - auto str = _internal_mutable_error_message(); - ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); - CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "CompLib.Status.error_message")); - CHK_(ptr); - } else - goto handle_unusual; - continue; - default: - goto handle_unusual; - } // switch - handle_unusual: - if ((tag == 0) || ((tag & 7) == 4)) { - CHK_(ptr); - ctx->SetLastTag(tag); - goto message_done; - } - ptr = UnknownFieldParse( - tag, - _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), - ptr, ctx); - CHK_(ptr != nullptr); - } // while -message_done: - return ptr; -failure: - ptr = nullptr; - goto message_done; -#undef CHK_ -} - -uint8_t* Status::_InternalSerialize( - uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { - // @@protoc_insertion_point(serialize_to_array_start:CompLib.Status) - uint32_t cached_has_bits = 0; - (void) cached_has_bits; - - // bool successful = 1; - if (this->_internal_successful() != 0) { - target = stream->EnsureSpace(target); - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(1, this->_internal_successful(), target); - } - - // string error_message = 2; - if (!this->_internal_error_message().empty()) { - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( - this->_internal_error_message().data(), static_cast(this->_internal_error_message().length()), - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, - "CompLib.Status.error_message"); - target = stream->WriteStringMaybeAliased( - 2, this->_internal_error_message(), target); - } - - if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray( - _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); - } - // @@protoc_insertion_point(serialize_to_array_end:CompLib.Status) - return target; -} - -size_t Status::ByteSizeLong() const { -// @@protoc_insertion_point(message_byte_size_start:CompLib.Status) - size_t total_size = 0; - - uint32_t cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - // string error_message = 2; - if (!this->_internal_error_message().empty()) { - total_size += 1 + - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( - this->_internal_error_message()); - } - - // bool successful = 1; - if (this->_internal_successful() != 0) { - total_size += 1 + 1; - } - - return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_); -} - -const ::PROTOBUF_NAMESPACE_ID::Message::ClassData Status::_class_data_ = { - ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck, - Status::MergeImpl -}; -const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*Status::GetClassData() const { return &_class_data_; } - -void Status::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, - const ::PROTOBUF_NAMESPACE_ID::Message& from) { - static_cast(to)->MergeFrom( - static_cast(from)); -} - - -void Status::MergeFrom(const Status& from) { -// @@protoc_insertion_point(class_specific_merge_from_start:CompLib.Status) - GOOGLE_DCHECK_NE(&from, this); - uint32_t cached_has_bits = 0; - (void) cached_has_bits; - - if (!from._internal_error_message().empty()) { - _internal_set_error_message(from._internal_error_message()); - } - if (from._internal_successful() != 0) { - _internal_set_successful(from._internal_successful()); - } - _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); -} - -void Status::CopyFrom(const Status& from) { -// @@protoc_insertion_point(class_specific_copy_from_start:CompLib.Status) - if (&from == this) return; - Clear(); - MergeFrom(from); -} - -bool Status::IsInitialized() const { - return true; -} - -void Status::InternalSwap(Status* other) { - using std::swap; - auto* lhs_arena = GetArenaForAllocation(); - auto* rhs_arena = other->GetArenaForAllocation(); - _internal_metadata_.InternalSwap(&other->_internal_metadata_); - ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap( - &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), - &error_message_, lhs_arena, - &other->error_message_, rhs_arena - ); - swap(successful_, other->successful_); -} - -::PROTOBUF_NAMESPACE_ID::Metadata Status::GetMetadata() const { - return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors( - &descriptor_table_CompLib_2eproto_getter, &descriptor_table_CompLib_2eproto_once, - file_level_metadata_CompLib_2eproto[1]); -} - -// =================================================================== - -class GenericRequest::_Internal { - public: - static const ::CompLib::Header& header(const GenericRequest* msg); -}; - -const ::CompLib::Header& -GenericRequest::_Internal::header(const GenericRequest* msg) { - return *msg->header_; -} -GenericRequest::GenericRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena, - bool is_message_owned) - : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { - SharedCtor(); - if (!is_message_owned) { - RegisterArenaDtor(arena); - } - // @@protoc_insertion_point(arena_constructor:CompLib.GenericRequest) -} -GenericRequest::GenericRequest(const GenericRequest& from) - : ::PROTOBUF_NAMESPACE_ID::Message() { - _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); - if (from._internal_has_header()) { - header_ = new ::CompLib::Header(*from.header_); - } else { - header_ = nullptr; - } - // @@protoc_insertion_point(copy_constructor:CompLib.GenericRequest) -} - -inline void GenericRequest::SharedCtor() { -header_ = nullptr; -} - -GenericRequest::~GenericRequest() { - // @@protoc_insertion_point(destructor:CompLib.GenericRequest) - if (GetArenaForAllocation() != nullptr) return; - SharedDtor(); - _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); -} - -inline void GenericRequest::SharedDtor() { - GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); - if (this != internal_default_instance()) delete header_; -} - -void GenericRequest::ArenaDtor(void* object) { - GenericRequest* _this = reinterpret_cast< GenericRequest* >(object); - (void)_this; -} -void GenericRequest::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) { -} -void GenericRequest::SetCachedSize(int size) const { - _cached_size_.Set(size); -} - -void GenericRequest::Clear() { -// @@protoc_insertion_point(message_clear_start:CompLib.GenericRequest) - uint32_t cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - if (GetArenaForAllocation() == nullptr && header_ != nullptr) { - delete header_; - } - header_ = nullptr; - _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); -} - -const char* GenericRequest::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) { -#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure - while (!ctx->Done(&ptr)) { - uint32_t tag; - ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag); - switch (tag >> 3) { - // .CompLib.Header header = 1; - case 1: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 10)) { - ptr = ctx->ParseMessage(_internal_mutable_header(), ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - default: - goto handle_unusual; - } // switch - handle_unusual: - if ((tag == 0) || ((tag & 7) == 4)) { - CHK_(ptr); - ctx->SetLastTag(tag); - goto message_done; - } - ptr = UnknownFieldParse( - tag, - _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), - ptr, ctx); - CHK_(ptr != nullptr); - } // while -message_done: - return ptr; -failure: - ptr = nullptr; - goto message_done; -#undef CHK_ -} - -uint8_t* GenericRequest::_InternalSerialize( - uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { - // @@protoc_insertion_point(serialize_to_array_start:CompLib.GenericRequest) - uint32_t cached_has_bits = 0; - (void) cached_has_bits; - - // .CompLib.Header header = 1; - if (this->_internal_has_header()) { - target = stream->EnsureSpace(target); - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: - InternalWriteMessage( - 1, _Internal::header(this), target, stream); - } - - if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray( - _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); - } - // @@protoc_insertion_point(serialize_to_array_end:CompLib.GenericRequest) - return target; -} - -size_t GenericRequest::ByteSizeLong() const { -// @@protoc_insertion_point(message_byte_size_start:CompLib.GenericRequest) - size_t total_size = 0; - - uint32_t cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - // .CompLib.Header header = 1; - if (this->_internal_has_header()) { - total_size += 1 + - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( - *header_); - } - - return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_); -} - -const ::PROTOBUF_NAMESPACE_ID::Message::ClassData GenericRequest::_class_data_ = { - ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck, - GenericRequest::MergeImpl -}; -const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GenericRequest::GetClassData() const { return &_class_data_; } - -void GenericRequest::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, - const ::PROTOBUF_NAMESPACE_ID::Message& from) { - static_cast(to)->MergeFrom( - static_cast(from)); -} - - -void GenericRequest::MergeFrom(const GenericRequest& from) { -// @@protoc_insertion_point(class_specific_merge_from_start:CompLib.GenericRequest) - GOOGLE_DCHECK_NE(&from, this); - uint32_t cached_has_bits = 0; - (void) cached_has_bits; - - if (from._internal_has_header()) { - _internal_mutable_header()->::CompLib::Header::MergeFrom(from._internal_header()); - } - _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); -} - -void GenericRequest::CopyFrom(const GenericRequest& from) { -// @@protoc_insertion_point(class_specific_copy_from_start:CompLib.GenericRequest) - if (&from == this) return; - Clear(); - MergeFrom(from); -} - -bool GenericRequest::IsInitialized() const { - return true; -} - -void GenericRequest::InternalSwap(GenericRequest* other) { - using std::swap; - _internal_metadata_.InternalSwap(&other->_internal_metadata_); - swap(header_, other->header_); -} - -::PROTOBUF_NAMESPACE_ID::Metadata GenericRequest::GetMetadata() const { - return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors( - &descriptor_table_CompLib_2eproto_getter, &descriptor_table_CompLib_2eproto_once, - file_level_metadata_CompLib_2eproto[2]); -} - -// =================================================================== - -class GenericResponse::_Internal { - public: - static const ::CompLib::Header& header(const GenericResponse* msg); - static const ::CompLib::Status& status(const GenericResponse* msg); -}; - -const ::CompLib::Header& -GenericResponse::_Internal::header(const GenericResponse* msg) { - return *msg->header_; -} -const ::CompLib::Status& -GenericResponse::_Internal::status(const GenericResponse* msg) { - return *msg->status_; -} -GenericResponse::GenericResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena, - bool is_message_owned) - : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { - SharedCtor(); - if (!is_message_owned) { - RegisterArenaDtor(arena); - } - // @@protoc_insertion_point(arena_constructor:CompLib.GenericResponse) -} -GenericResponse::GenericResponse(const GenericResponse& from) - : ::PROTOBUF_NAMESPACE_ID::Message() { - _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); - if (from._internal_has_header()) { - header_ = new ::CompLib::Header(*from.header_); - } else { - header_ = nullptr; - } - if (from._internal_has_status()) { - status_ = new ::CompLib::Status(*from.status_); - } else { - status_ = nullptr; - } - // @@protoc_insertion_point(copy_constructor:CompLib.GenericResponse) -} - -inline void GenericResponse::SharedCtor() { -::memset(reinterpret_cast(this) + static_cast( - reinterpret_cast(&header_) - reinterpret_cast(this)), - 0, static_cast(reinterpret_cast(&status_) - - reinterpret_cast(&header_)) + sizeof(status_)); -} - -GenericResponse::~GenericResponse() { - // @@protoc_insertion_point(destructor:CompLib.GenericResponse) - if (GetArenaForAllocation() != nullptr) return; - SharedDtor(); - _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); -} - -inline void GenericResponse::SharedDtor() { - GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); - if (this != internal_default_instance()) delete header_; - if (this != internal_default_instance()) delete status_; -} - -void GenericResponse::ArenaDtor(void* object) { - GenericResponse* _this = reinterpret_cast< GenericResponse* >(object); - (void)_this; -} -void GenericResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) { -} -void GenericResponse::SetCachedSize(int size) const { - _cached_size_.Set(size); -} - -void GenericResponse::Clear() { -// @@protoc_insertion_point(message_clear_start:CompLib.GenericResponse) - uint32_t cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - if (GetArenaForAllocation() == nullptr && header_ != nullptr) { - delete header_; - } - header_ = nullptr; - if (GetArenaForAllocation() == nullptr && status_ != nullptr) { - delete status_; - } - status_ = nullptr; - _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); -} - -const char* GenericResponse::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) { -#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure - while (!ctx->Done(&ptr)) { - uint32_t tag; - ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag); - switch (tag >> 3) { - // .CompLib.Header header = 1; - case 1: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 10)) { - ptr = ctx->ParseMessage(_internal_mutable_header(), ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // .CompLib.Status status = 2; - case 2: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 18)) { - ptr = ctx->ParseMessage(_internal_mutable_status(), ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - default: - goto handle_unusual; - } // switch - handle_unusual: - if ((tag == 0) || ((tag & 7) == 4)) { - CHK_(ptr); - ctx->SetLastTag(tag); - goto message_done; - } - ptr = UnknownFieldParse( - tag, - _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), - ptr, ctx); - CHK_(ptr != nullptr); - } // while -message_done: - return ptr; -failure: - ptr = nullptr; - goto message_done; -#undef CHK_ -} - -uint8_t* GenericResponse::_InternalSerialize( - uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { - // @@protoc_insertion_point(serialize_to_array_start:CompLib.GenericResponse) - uint32_t cached_has_bits = 0; - (void) cached_has_bits; - - // .CompLib.Header header = 1; - if (this->_internal_has_header()) { - target = stream->EnsureSpace(target); - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: - InternalWriteMessage( - 1, _Internal::header(this), target, stream); - } - - // .CompLib.Status status = 2; - if (this->_internal_has_status()) { - target = stream->EnsureSpace(target); - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: - InternalWriteMessage( - 2, _Internal::status(this), target, stream); - } - - if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray( - _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); - } - // @@protoc_insertion_point(serialize_to_array_end:CompLib.GenericResponse) - return target; -} - -size_t GenericResponse::ByteSizeLong() const { -// @@protoc_insertion_point(message_byte_size_start:CompLib.GenericResponse) - size_t total_size = 0; - - uint32_t cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - // .CompLib.Header header = 1; - if (this->_internal_has_header()) { - total_size += 1 + - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( - *header_); - } - - // .CompLib.Status status = 2; - if (this->_internal_has_status()) { - total_size += 1 + - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( - *status_); - } - - return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_); -} - -const ::PROTOBUF_NAMESPACE_ID::Message::ClassData GenericResponse::_class_data_ = { - ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck, - GenericResponse::MergeImpl -}; -const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GenericResponse::GetClassData() const { return &_class_data_; } - -void GenericResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, - const ::PROTOBUF_NAMESPACE_ID::Message& from) { - static_cast(to)->MergeFrom( - static_cast(from)); -} - - -void GenericResponse::MergeFrom(const GenericResponse& from) { -// @@protoc_insertion_point(class_specific_merge_from_start:CompLib.GenericResponse) - GOOGLE_DCHECK_NE(&from, this); - uint32_t cached_has_bits = 0; - (void) cached_has_bits; - - if (from._internal_has_header()) { - _internal_mutable_header()->::CompLib::Header::MergeFrom(from._internal_header()); - } - if (from._internal_has_status()) { - _internal_mutable_status()->::CompLib::Status::MergeFrom(from._internal_status()); - } - _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); -} - -void GenericResponse::CopyFrom(const GenericResponse& from) { -// @@protoc_insertion_point(class_specific_copy_from_start:CompLib.GenericResponse) - if (&from == this) return; - Clear(); - MergeFrom(from); -} - -bool GenericResponse::IsInitialized() const { - return true; -} - -void GenericResponse::InternalSwap(GenericResponse* other) { - using std::swap; - _internal_metadata_.InternalSwap(&other->_internal_metadata_); - ::PROTOBUF_NAMESPACE_ID::internal::memswap< - PROTOBUF_FIELD_OFFSET(GenericResponse, status_) - + sizeof(GenericResponse::status_) - - PROTOBUF_FIELD_OFFSET(GenericResponse, header_)>( - reinterpret_cast(&header_), - reinterpret_cast(&other->header_)); -} - -::PROTOBUF_NAMESPACE_ID::Metadata GenericResponse::GetMetadata() const { - return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors( - &descriptor_table_CompLib_2eproto_getter, &descriptor_table_CompLib_2eproto_once, - file_level_metadata_CompLib_2eproto[3]); -} - -// =================================================================== - -class ReadSensorsRequest::_Internal { - public: - static const ::CompLib::Header& header(const ReadSensorsRequest* msg); -}; - -const ::CompLib::Header& -ReadSensorsRequest::_Internal::header(const ReadSensorsRequest* msg) { - return *msg->header_; -} -ReadSensorsRequest::ReadSensorsRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena, - bool is_message_owned) - : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { - SharedCtor(); - if (!is_message_owned) { - RegisterArenaDtor(arena); - } - // @@protoc_insertion_point(arena_constructor:CompLib.ReadSensorsRequest) -} -ReadSensorsRequest::ReadSensorsRequest(const ReadSensorsRequest& from) - : ::PROTOBUF_NAMESPACE_ID::Message() { - _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); - if (from._internal_has_header()) { - header_ = new ::CompLib::Header(*from.header_); - } else { - header_ = nullptr; - } - // @@protoc_insertion_point(copy_constructor:CompLib.ReadSensorsRequest) -} - -inline void ReadSensorsRequest::SharedCtor() { -header_ = nullptr; -} - -ReadSensorsRequest::~ReadSensorsRequest() { - // @@protoc_insertion_point(destructor:CompLib.ReadSensorsRequest) - if (GetArenaForAllocation() != nullptr) return; - SharedDtor(); - _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); -} - -inline void ReadSensorsRequest::SharedDtor() { - GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); - if (this != internal_default_instance()) delete header_; -} - -void ReadSensorsRequest::ArenaDtor(void* object) { - ReadSensorsRequest* _this = reinterpret_cast< ReadSensorsRequest* >(object); - (void)_this; -} -void ReadSensorsRequest::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) { -} -void ReadSensorsRequest::SetCachedSize(int size) const { - _cached_size_.Set(size); -} - -void ReadSensorsRequest::Clear() { -// @@protoc_insertion_point(message_clear_start:CompLib.ReadSensorsRequest) - uint32_t cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - if (GetArenaForAllocation() == nullptr && header_ != nullptr) { - delete header_; - } - header_ = nullptr; - _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); -} - -const char* ReadSensorsRequest::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) { -#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure - while (!ctx->Done(&ptr)) { - uint32_t tag; - ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag); - switch (tag >> 3) { - // .CompLib.Header header = 1; - case 1: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 10)) { - ptr = ctx->ParseMessage(_internal_mutable_header(), ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - default: - goto handle_unusual; - } // switch - handle_unusual: - if ((tag == 0) || ((tag & 7) == 4)) { - CHK_(ptr); - ctx->SetLastTag(tag); - goto message_done; - } - ptr = UnknownFieldParse( - tag, - _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), - ptr, ctx); - CHK_(ptr != nullptr); - } // while -message_done: - return ptr; -failure: - ptr = nullptr; - goto message_done; -#undef CHK_ -} - -uint8_t* ReadSensorsRequest::_InternalSerialize( - uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { - // @@protoc_insertion_point(serialize_to_array_start:CompLib.ReadSensorsRequest) - uint32_t cached_has_bits = 0; - (void) cached_has_bits; - - // .CompLib.Header header = 1; - if (this->_internal_has_header()) { - target = stream->EnsureSpace(target); - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: - InternalWriteMessage( - 1, _Internal::header(this), target, stream); - } - - if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray( - _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); - } - // @@protoc_insertion_point(serialize_to_array_end:CompLib.ReadSensorsRequest) - return target; -} - -size_t ReadSensorsRequest::ByteSizeLong() const { -// @@protoc_insertion_point(message_byte_size_start:CompLib.ReadSensorsRequest) - size_t total_size = 0; - - uint32_t cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - // .CompLib.Header header = 1; - if (this->_internal_has_header()) { - total_size += 1 + - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( - *header_); - } - - return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_); -} - -const ::PROTOBUF_NAMESPACE_ID::Message::ClassData ReadSensorsRequest::_class_data_ = { - ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck, - ReadSensorsRequest::MergeImpl -}; -const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*ReadSensorsRequest::GetClassData() const { return &_class_data_; } - -void ReadSensorsRequest::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, - const ::PROTOBUF_NAMESPACE_ID::Message& from) { - static_cast(to)->MergeFrom( - static_cast(from)); -} - - -void ReadSensorsRequest::MergeFrom(const ReadSensorsRequest& from) { -// @@protoc_insertion_point(class_specific_merge_from_start:CompLib.ReadSensorsRequest) - GOOGLE_DCHECK_NE(&from, this); - uint32_t cached_has_bits = 0; - (void) cached_has_bits; - - if (from._internal_has_header()) { - _internal_mutable_header()->::CompLib::Header::MergeFrom(from._internal_header()); - } - _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); -} - -void ReadSensorsRequest::CopyFrom(const ReadSensorsRequest& from) { -// @@protoc_insertion_point(class_specific_copy_from_start:CompLib.ReadSensorsRequest) - if (&from == this) return; - Clear(); - MergeFrom(from); -} - -bool ReadSensorsRequest::IsInitialized() const { - return true; -} - -void ReadSensorsRequest::InternalSwap(ReadSensorsRequest* other) { - using std::swap; - _internal_metadata_.InternalSwap(&other->_internal_metadata_); - swap(header_, other->header_); -} - -::PROTOBUF_NAMESPACE_ID::Metadata ReadSensorsRequest::GetMetadata() const { - return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors( - &descriptor_table_CompLib_2eproto_getter, &descriptor_table_CompLib_2eproto_once, - file_level_metadata_CompLib_2eproto[4]); -} - -// =================================================================== - -class ReadSensorsResponse::_Internal { - public: - static const ::CompLib::Header& header(const ReadSensorsResponse* msg); - static const ::CompLib::Status& status(const ReadSensorsResponse* msg); -}; - -const ::CompLib::Header& -ReadSensorsResponse::_Internal::header(const ReadSensorsResponse* msg) { - return *msg->header_; -} -const ::CompLib::Status& -ReadSensorsResponse::_Internal::status(const ReadSensorsResponse* msg) { - return *msg->status_; -} -ReadSensorsResponse::ReadSensorsResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena, - bool is_message_owned) - : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { - SharedCtor(); - if (!is_message_owned) { - RegisterArenaDtor(arena); - } - // @@protoc_insertion_point(arena_constructor:CompLib.ReadSensorsResponse) -} -ReadSensorsResponse::ReadSensorsResponse(const ReadSensorsResponse& from) - : ::PROTOBUF_NAMESPACE_ID::Message() { - _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); - if (from._internal_has_header()) { - header_ = new ::CompLib::Header(*from.header_); - } else { - header_ = nullptr; - } - if (from._internal_has_status()) { - status_ = new ::CompLib::Status(*from.status_); - } else { - status_ = nullptr; - } - ::memcpy(&ir_1_, &from.ir_1_, - static_cast(reinterpret_cast(&ir_5_) - - reinterpret_cast(&ir_1_)) + sizeof(ir_5_)); - // @@protoc_insertion_point(copy_constructor:CompLib.ReadSensorsResponse) -} - -inline void ReadSensorsResponse::SharedCtor() { -::memset(reinterpret_cast(this) + static_cast( - reinterpret_cast(&header_) - reinterpret_cast(this)), - 0, static_cast(reinterpret_cast(&ir_5_) - - reinterpret_cast(&header_)) + sizeof(ir_5_)); -} - -ReadSensorsResponse::~ReadSensorsResponse() { - // @@protoc_insertion_point(destructor:CompLib.ReadSensorsResponse) - if (GetArenaForAllocation() != nullptr) return; - SharedDtor(); - _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); -} - -inline void ReadSensorsResponse::SharedDtor() { - GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); - if (this != internal_default_instance()) delete header_; - if (this != internal_default_instance()) delete status_; -} - -void ReadSensorsResponse::ArenaDtor(void* object) { - ReadSensorsResponse* _this = reinterpret_cast< ReadSensorsResponse* >(object); - (void)_this; -} -void ReadSensorsResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) { -} -void ReadSensorsResponse::SetCachedSize(int size) const { - _cached_size_.Set(size); -} - -void ReadSensorsResponse::Clear() { -// @@protoc_insertion_point(message_clear_start:CompLib.ReadSensorsResponse) - uint32_t cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - if (GetArenaForAllocation() == nullptr && header_ != nullptr) { - delete header_; - } - header_ = nullptr; - if (GetArenaForAllocation() == nullptr && status_ != nullptr) { - delete status_; - } - status_ = nullptr; - ::memset(&ir_1_, 0, static_cast( - reinterpret_cast(&ir_5_) - - reinterpret_cast(&ir_1_)) + sizeof(ir_5_)); - _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); -} - -const char* ReadSensorsResponse::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) { -#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure - while (!ctx->Done(&ptr)) { - uint32_t tag; - ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag); - switch (tag >> 3) { - // .CompLib.Header header = 1; - case 1: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 10)) { - ptr = ctx->ParseMessage(_internal_mutable_header(), ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // .CompLib.Status status = 2; - case 2: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 18)) { - ptr = ctx->ParseMessage(_internal_mutable_status(), ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // uint32 ir_1 = 3; - case 3: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 24)) { - ir_1_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // uint32 ir_2 = 4; - case 4: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 32)) { - ir_2_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // uint32 ir_3 = 5; - case 5: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 40)) { - ir_3_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // uint32 ir_4 = 6; - case 6: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 48)) { - ir_4_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // uint32 ir_5 = 7; - case 7: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 56)) { - ir_5_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - default: - goto handle_unusual; - } // switch - handle_unusual: - if ((tag == 0) || ((tag & 7) == 4)) { - CHK_(ptr); - ctx->SetLastTag(tag); - goto message_done; - } - ptr = UnknownFieldParse( - tag, - _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), - ptr, ctx); - CHK_(ptr != nullptr); - } // while -message_done: - return ptr; -failure: - ptr = nullptr; - goto message_done; -#undef CHK_ -} - -uint8_t* ReadSensorsResponse::_InternalSerialize( - uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { - // @@protoc_insertion_point(serialize_to_array_start:CompLib.ReadSensorsResponse) - uint32_t cached_has_bits = 0; - (void) cached_has_bits; - - // .CompLib.Header header = 1; - if (this->_internal_has_header()) { - target = stream->EnsureSpace(target); - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: - InternalWriteMessage( - 1, _Internal::header(this), target, stream); - } - - // .CompLib.Status status = 2; - if (this->_internal_has_status()) { - target = stream->EnsureSpace(target); - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: - InternalWriteMessage( - 2, _Internal::status(this), target, stream); - } - - // uint32 ir_1 = 3; - if (this->_internal_ir_1() != 0) { - target = stream->EnsureSpace(target); - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(3, this->_internal_ir_1(), target); - } - - // uint32 ir_2 = 4; - if (this->_internal_ir_2() != 0) { - target = stream->EnsureSpace(target); - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(4, this->_internal_ir_2(), target); - } - - // uint32 ir_3 = 5; - if (this->_internal_ir_3() != 0) { - target = stream->EnsureSpace(target); - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(5, this->_internal_ir_3(), target); - } - - // uint32 ir_4 = 6; - if (this->_internal_ir_4() != 0) { - target = stream->EnsureSpace(target); - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(6, this->_internal_ir_4(), target); - } - - // uint32 ir_5 = 7; - if (this->_internal_ir_5() != 0) { - target = stream->EnsureSpace(target); - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(7, this->_internal_ir_5(), target); - } - - if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray( - _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); - } - // @@protoc_insertion_point(serialize_to_array_end:CompLib.ReadSensorsResponse) - return target; -} - -size_t ReadSensorsResponse::ByteSizeLong() const { -// @@protoc_insertion_point(message_byte_size_start:CompLib.ReadSensorsResponse) - size_t total_size = 0; - - uint32_t cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - // .CompLib.Header header = 1; - if (this->_internal_has_header()) { - total_size += 1 + - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( - *header_); - } - - // .CompLib.Status status = 2; - if (this->_internal_has_status()) { - total_size += 1 + - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( - *status_); - } - - // uint32 ir_1 = 3; - if (this->_internal_ir_1() != 0) { - total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32SizePlusOne(this->_internal_ir_1()); - } - - // uint32 ir_2 = 4; - if (this->_internal_ir_2() != 0) { - total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32SizePlusOne(this->_internal_ir_2()); - } - - // uint32 ir_3 = 5; - if (this->_internal_ir_3() != 0) { - total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32SizePlusOne(this->_internal_ir_3()); - } - - // uint32 ir_4 = 6; - if (this->_internal_ir_4() != 0) { - total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32SizePlusOne(this->_internal_ir_4()); - } - - // uint32 ir_5 = 7; - if (this->_internal_ir_5() != 0) { - total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32SizePlusOne(this->_internal_ir_5()); - } - - return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_); -} - -const ::PROTOBUF_NAMESPACE_ID::Message::ClassData ReadSensorsResponse::_class_data_ = { - ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck, - ReadSensorsResponse::MergeImpl -}; -const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*ReadSensorsResponse::GetClassData() const { return &_class_data_; } - -void ReadSensorsResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, - const ::PROTOBUF_NAMESPACE_ID::Message& from) { - static_cast(to)->MergeFrom( - static_cast(from)); -} - - -void ReadSensorsResponse::MergeFrom(const ReadSensorsResponse& from) { -// @@protoc_insertion_point(class_specific_merge_from_start:CompLib.ReadSensorsResponse) - GOOGLE_DCHECK_NE(&from, this); - uint32_t cached_has_bits = 0; - (void) cached_has_bits; - - if (from._internal_has_header()) { - _internal_mutable_header()->::CompLib::Header::MergeFrom(from._internal_header()); - } - if (from._internal_has_status()) { - _internal_mutable_status()->::CompLib::Status::MergeFrom(from._internal_status()); - } - if (from._internal_ir_1() != 0) { - _internal_set_ir_1(from._internal_ir_1()); - } - if (from._internal_ir_2() != 0) { - _internal_set_ir_2(from._internal_ir_2()); - } - if (from._internal_ir_3() != 0) { - _internal_set_ir_3(from._internal_ir_3()); - } - if (from._internal_ir_4() != 0) { - _internal_set_ir_4(from._internal_ir_4()); - } - if (from._internal_ir_5() != 0) { - _internal_set_ir_5(from._internal_ir_5()); - } - _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); -} - -void ReadSensorsResponse::CopyFrom(const ReadSensorsResponse& from) { -// @@protoc_insertion_point(class_specific_copy_from_start:CompLib.ReadSensorsResponse) - if (&from == this) return; - Clear(); - MergeFrom(from); -} - -bool ReadSensorsResponse::IsInitialized() const { - return true; -} - -void ReadSensorsResponse::InternalSwap(ReadSensorsResponse* other) { - using std::swap; - _internal_metadata_.InternalSwap(&other->_internal_metadata_); - ::PROTOBUF_NAMESPACE_ID::internal::memswap< - PROTOBUF_FIELD_OFFSET(ReadSensorsResponse, ir_5_) - + sizeof(ReadSensorsResponse::ir_5_) - - PROTOBUF_FIELD_OFFSET(ReadSensorsResponse, header_)>( - reinterpret_cast(&header_), - reinterpret_cast(&other->header_)); -} - -::PROTOBUF_NAMESPACE_ID::Metadata ReadSensorsResponse::GetMetadata() const { - return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors( - &descriptor_table_CompLib_2eproto_getter, &descriptor_table_CompLib_2eproto_once, - file_level_metadata_CompLib_2eproto[5]); -} - -// @@protoc_insertion_point(namespace_scope) -} // namespace CompLib -PROTOBUF_NAMESPACE_OPEN -template<> PROTOBUF_NOINLINE ::CompLib::Header* Arena::CreateMaybeMessage< ::CompLib::Header >(Arena* arena) { - return Arena::CreateMessageInternal< ::CompLib::Header >(arena); -} -template<> PROTOBUF_NOINLINE ::CompLib::Status* Arena::CreateMaybeMessage< ::CompLib::Status >(Arena* arena) { - return Arena::CreateMessageInternal< ::CompLib::Status >(arena); -} -template<> PROTOBUF_NOINLINE ::CompLib::GenericRequest* Arena::CreateMaybeMessage< ::CompLib::GenericRequest >(Arena* arena) { - return Arena::CreateMessageInternal< ::CompLib::GenericRequest >(arena); -} -template<> PROTOBUF_NOINLINE ::CompLib::GenericResponse* Arena::CreateMaybeMessage< ::CompLib::GenericResponse >(Arena* arena) { - return Arena::CreateMessageInternal< ::CompLib::GenericResponse >(arena); -} -template<> PROTOBUF_NOINLINE ::CompLib::ReadSensorsRequest* Arena::CreateMaybeMessage< ::CompLib::ReadSensorsRequest >(Arena* arena) { - return Arena::CreateMessageInternal< ::CompLib::ReadSensorsRequest >(arena); -} -template<> PROTOBUF_NOINLINE ::CompLib::ReadSensorsResponse* Arena::CreateMaybeMessage< ::CompLib::ReadSensorsResponse >(Arena* arena) { - return Arena::CreateMessageInternal< ::CompLib::ReadSensorsResponse >(arena); -} -PROTOBUF_NAMESPACE_CLOSE - -// @@protoc_insertion_point(global_scope) -#include diff --git a/server/cmake-build-debug/CompLib.pb.h b/server/cmake-build-debug/CompLib.pb.h deleted file mode 100644 index 42a4d3e..0000000 --- a/server/cmake-build-debug/CompLib.pb.h +++ /dev/null @@ -1,1928 +0,0 @@ -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: CompLib.proto - -#ifndef GOOGLE_PROTOBUF_INCLUDED_CompLib_2eproto -#define GOOGLE_PROTOBUF_INCLUDED_CompLib_2eproto - -#include -#include - -#include -#if PROTOBUF_VERSION < 3019000 -#error This file was generated by a newer version of protoc which is -#error incompatible with your Protocol Buffer headers. Please update -#error your headers. -#endif -#if 3019004 < PROTOBUF_MIN_PROTOC_VERSION -#error This file was generated by an older version of protoc which is -#error incompatible with your Protocol Buffer headers. Please -#error regenerate this file with a newer version of protoc. -#endif - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include // IWYU pragma: export -#include // IWYU pragma: export -#include -// @@protoc_insertion_point(includes) -#include -#define PROTOBUF_INTERNAL_EXPORT_CompLib_2eproto -PROTOBUF_NAMESPACE_OPEN -namespace internal { -class AnyMetadata; -} // namespace internal -PROTOBUF_NAMESPACE_CLOSE - -// Internal implementation detail -- do not use these members. -struct TableStruct_CompLib_2eproto { - static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTableField entries[] - PROTOBUF_SECTION_VARIABLE(protodesc_cold); - static const ::PROTOBUF_NAMESPACE_ID::internal::AuxiliaryParseTableField aux[] - PROTOBUF_SECTION_VARIABLE(protodesc_cold); - static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTable schema[6] - PROTOBUF_SECTION_VARIABLE(protodesc_cold); - static const ::PROTOBUF_NAMESPACE_ID::internal::FieldMetadata field_metadata[]; - static const ::PROTOBUF_NAMESPACE_ID::internal::SerializationTable serialization_table[]; - static const uint32_t offsets[]; -}; -extern const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_CompLib_2eproto; -namespace CompLib { -class GenericRequest; -struct GenericRequestDefaultTypeInternal; -extern GenericRequestDefaultTypeInternal _GenericRequest_default_instance_; -class GenericResponse; -struct GenericResponseDefaultTypeInternal; -extern GenericResponseDefaultTypeInternal _GenericResponse_default_instance_; -class Header; -struct HeaderDefaultTypeInternal; -extern HeaderDefaultTypeInternal _Header_default_instance_; -class ReadSensorsRequest; -struct ReadSensorsRequestDefaultTypeInternal; -extern ReadSensorsRequestDefaultTypeInternal _ReadSensorsRequest_default_instance_; -class ReadSensorsResponse; -struct ReadSensorsResponseDefaultTypeInternal; -extern ReadSensorsResponseDefaultTypeInternal _ReadSensorsResponse_default_instance_; -class Status; -struct StatusDefaultTypeInternal; -extern StatusDefaultTypeInternal _Status_default_instance_; -} // namespace CompLib -PROTOBUF_NAMESPACE_OPEN -template<> ::CompLib::GenericRequest* Arena::CreateMaybeMessage<::CompLib::GenericRequest>(Arena*); -template<> ::CompLib::GenericResponse* Arena::CreateMaybeMessage<::CompLib::GenericResponse>(Arena*); -template<> ::CompLib::Header* Arena::CreateMaybeMessage<::CompLib::Header>(Arena*); -template<> ::CompLib::ReadSensorsRequest* Arena::CreateMaybeMessage<::CompLib::ReadSensorsRequest>(Arena*); -template<> ::CompLib::ReadSensorsResponse* Arena::CreateMaybeMessage<::CompLib::ReadSensorsResponse>(Arena*); -template<> ::CompLib::Status* Arena::CreateMaybeMessage<::CompLib::Status>(Arena*); -PROTOBUF_NAMESPACE_CLOSE -namespace CompLib { - -// =================================================================== - -class Header final : - public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:CompLib.Header) */ { - public: - inline Header() : Header(nullptr) {} - ~Header() override; - explicit constexpr Header(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); - - Header(const Header& from); - Header(Header&& from) noexcept - : Header() { - *this = ::std::move(from); - } - - inline Header& operator=(const Header& from) { - CopyFrom(from); - return *this; - } - inline Header& operator=(Header&& from) noexcept { - if (this == &from) return *this; - if (GetOwningArena() == from.GetOwningArena() - #ifdef PROTOBUF_FORCE_COPY_IN_MOVE - && GetOwningArena() != nullptr - #endif // !PROTOBUF_FORCE_COPY_IN_MOVE - ) { - InternalSwap(&from); - } else { - CopyFrom(from); - } - return *this; - } - - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { - return GetDescriptor(); - } - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { - return default_instance().GetMetadata().descriptor; - } - static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { - return default_instance().GetMetadata().reflection; - } - static const Header& default_instance() { - return *internal_default_instance(); - } - static inline const Header* internal_default_instance() { - return reinterpret_cast( - &_Header_default_instance_); - } - static constexpr int kIndexInFileMessages = - 0; - - friend void swap(Header& a, Header& b) { - a.Swap(&b); - } - inline void Swap(Header* other) { - if (other == this) return; - #ifdef PROTOBUF_FORCE_COPY_IN_SWAP - if (GetOwningArena() != nullptr && - GetOwningArena() == other->GetOwningArena()) { - #else // PROTOBUF_FORCE_COPY_IN_SWAP - if (GetOwningArena() == other->GetOwningArena()) { - #endif // !PROTOBUF_FORCE_COPY_IN_SWAP - InternalSwap(other); - } else { - ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); - } - } - void UnsafeArenaSwap(Header* other) { - if (other == this) return; - GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); - InternalSwap(other); - } - - // implements Message ---------------------------------------------- - - Header* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { - return CreateMaybeMessage
(arena); - } - using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; - void CopyFrom(const Header& from); - using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; - void MergeFrom(const Header& from); - private: - static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from); - public: - PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; - bool IsInitialized() const final; - - size_t ByteSizeLong() const final; - const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; - uint8_t* _InternalSerialize( - uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; - int GetCachedSize() const final { return _cached_size_.Get(); } - - private: - void SharedCtor(); - void SharedDtor(); - void SetCachedSize(int size) const final; - void InternalSwap(Header* other); - - private: - friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; - static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { - return "CompLib.Header"; - } - protected: - explicit Header(::PROTOBUF_NAMESPACE_ID::Arena* arena, - bool is_message_owned = false); - private: - static void ArenaDtor(void* object); - inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena); - public: - - static const ClassData _class_data_; - const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; - - ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; - - // nested types ---------------------------------------------------- - - // accessors ------------------------------------------------------- - - enum : int { - kMessageTypeFieldNumber = 1, - }; - // string message_type = 1; - void clear_message_type(); - const std::string& message_type() const; - template - void set_message_type(ArgT0&& arg0, ArgT... args); - std::string* mutable_message_type(); - PROTOBUF_NODISCARD std::string* release_message_type(); - void set_allocated_message_type(std::string* message_type); - private: - const std::string& _internal_message_type() const; - inline PROTOBUF_ALWAYS_INLINE void _internal_set_message_type(const std::string& value); - std::string* _internal_mutable_message_type(); - public: - - // @@protoc_insertion_point(class_scope:CompLib.Header) - private: - class _Internal; - - template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; - typedef void InternalArenaConstructable_; - typedef void DestructorSkippable_; - ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr message_type_; - mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; - friend struct ::TableStruct_CompLib_2eproto; -}; -// ------------------------------------------------------------------- - -class Status final : - public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:CompLib.Status) */ { - public: - inline Status() : Status(nullptr) {} - ~Status() override; - explicit constexpr Status(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); - - Status(const Status& from); - Status(Status&& from) noexcept - : Status() { - *this = ::std::move(from); - } - - inline Status& operator=(const Status& from) { - CopyFrom(from); - return *this; - } - inline Status& operator=(Status&& from) noexcept { - if (this == &from) return *this; - if (GetOwningArena() == from.GetOwningArena() - #ifdef PROTOBUF_FORCE_COPY_IN_MOVE - && GetOwningArena() != nullptr - #endif // !PROTOBUF_FORCE_COPY_IN_MOVE - ) { - InternalSwap(&from); - } else { - CopyFrom(from); - } - return *this; - } - - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { - return GetDescriptor(); - } - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { - return default_instance().GetMetadata().descriptor; - } - static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { - return default_instance().GetMetadata().reflection; - } - static const Status& default_instance() { - return *internal_default_instance(); - } - static inline const Status* internal_default_instance() { - return reinterpret_cast( - &_Status_default_instance_); - } - static constexpr int kIndexInFileMessages = - 1; - - friend void swap(Status& a, Status& b) { - a.Swap(&b); - } - inline void Swap(Status* other) { - if (other == this) return; - #ifdef PROTOBUF_FORCE_COPY_IN_SWAP - if (GetOwningArena() != nullptr && - GetOwningArena() == other->GetOwningArena()) { - #else // PROTOBUF_FORCE_COPY_IN_SWAP - if (GetOwningArena() == other->GetOwningArena()) { - #endif // !PROTOBUF_FORCE_COPY_IN_SWAP - InternalSwap(other); - } else { - ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); - } - } - void UnsafeArenaSwap(Status* other) { - if (other == this) return; - GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); - InternalSwap(other); - } - - // implements Message ---------------------------------------------- - - Status* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { - return CreateMaybeMessage(arena); - } - using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; - void CopyFrom(const Status& from); - using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; - void MergeFrom(const Status& from); - private: - static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from); - public: - PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; - bool IsInitialized() const final; - - size_t ByteSizeLong() const final; - const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; - uint8_t* _InternalSerialize( - uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; - int GetCachedSize() const final { return _cached_size_.Get(); } - - private: - void SharedCtor(); - void SharedDtor(); - void SetCachedSize(int size) const final; - void InternalSwap(Status* other); - - private: - friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; - static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { - return "CompLib.Status"; - } - protected: - explicit Status(::PROTOBUF_NAMESPACE_ID::Arena* arena, - bool is_message_owned = false); - private: - static void ArenaDtor(void* object); - inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena); - public: - - static const ClassData _class_data_; - const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; - - ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; - - // nested types ---------------------------------------------------- - - // accessors ------------------------------------------------------- - - enum : int { - kErrorMessageFieldNumber = 2, - kSuccessfulFieldNumber = 1, - }; - // string error_message = 2; - void clear_error_message(); - const std::string& error_message() const; - template - void set_error_message(ArgT0&& arg0, ArgT... args); - std::string* mutable_error_message(); - PROTOBUF_NODISCARD std::string* release_error_message(); - void set_allocated_error_message(std::string* error_message); - private: - const std::string& _internal_error_message() const; - inline PROTOBUF_ALWAYS_INLINE void _internal_set_error_message(const std::string& value); - std::string* _internal_mutable_error_message(); - public: - - // bool successful = 1; - void clear_successful(); - bool successful() const; - void set_successful(bool value); - private: - bool _internal_successful() const; - void _internal_set_successful(bool value); - public: - - // @@protoc_insertion_point(class_scope:CompLib.Status) - private: - class _Internal; - - template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; - typedef void InternalArenaConstructable_; - typedef void DestructorSkippable_; - ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr error_message_; - bool successful_; - mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; - friend struct ::TableStruct_CompLib_2eproto; -}; -// ------------------------------------------------------------------- - -class GenericRequest final : - public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:CompLib.GenericRequest) */ { - public: - inline GenericRequest() : GenericRequest(nullptr) {} - ~GenericRequest() override; - explicit constexpr GenericRequest(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); - - GenericRequest(const GenericRequest& from); - GenericRequest(GenericRequest&& from) noexcept - : GenericRequest() { - *this = ::std::move(from); - } - - inline GenericRequest& operator=(const GenericRequest& from) { - CopyFrom(from); - return *this; - } - inline GenericRequest& operator=(GenericRequest&& from) noexcept { - if (this == &from) return *this; - if (GetOwningArena() == from.GetOwningArena() - #ifdef PROTOBUF_FORCE_COPY_IN_MOVE - && GetOwningArena() != nullptr - #endif // !PROTOBUF_FORCE_COPY_IN_MOVE - ) { - InternalSwap(&from); - } else { - CopyFrom(from); - } - return *this; - } - - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { - return GetDescriptor(); - } - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { - return default_instance().GetMetadata().descriptor; - } - static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { - return default_instance().GetMetadata().reflection; - } - static const GenericRequest& default_instance() { - return *internal_default_instance(); - } - static inline const GenericRequest* internal_default_instance() { - return reinterpret_cast( - &_GenericRequest_default_instance_); - } - static constexpr int kIndexInFileMessages = - 2; - - friend void swap(GenericRequest& a, GenericRequest& b) { - a.Swap(&b); - } - inline void Swap(GenericRequest* other) { - if (other == this) return; - #ifdef PROTOBUF_FORCE_COPY_IN_SWAP - if (GetOwningArena() != nullptr && - GetOwningArena() == other->GetOwningArena()) { - #else // PROTOBUF_FORCE_COPY_IN_SWAP - if (GetOwningArena() == other->GetOwningArena()) { - #endif // !PROTOBUF_FORCE_COPY_IN_SWAP - InternalSwap(other); - } else { - ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); - } - } - void UnsafeArenaSwap(GenericRequest* other) { - if (other == this) return; - GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); - InternalSwap(other); - } - - // implements Message ---------------------------------------------- - - GenericRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { - return CreateMaybeMessage(arena); - } - using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; - void CopyFrom(const GenericRequest& from); - using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; - void MergeFrom(const GenericRequest& from); - private: - static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from); - public: - PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; - bool IsInitialized() const final; - - size_t ByteSizeLong() const final; - const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; - uint8_t* _InternalSerialize( - uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; - int GetCachedSize() const final { return _cached_size_.Get(); } - - private: - void SharedCtor(); - void SharedDtor(); - void SetCachedSize(int size) const final; - void InternalSwap(GenericRequest* other); - - private: - friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; - static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { - return "CompLib.GenericRequest"; - } - protected: - explicit GenericRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena, - bool is_message_owned = false); - private: - static void ArenaDtor(void* object); - inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena); - public: - - static const ClassData _class_data_; - const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; - - ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; - - // nested types ---------------------------------------------------- - - // accessors ------------------------------------------------------- - - enum : int { - kHeaderFieldNumber = 1, - }; - // .CompLib.Header header = 1; - bool has_header() const; - private: - bool _internal_has_header() const; - public: - void clear_header(); - const ::CompLib::Header& header() const; - PROTOBUF_NODISCARD ::CompLib::Header* release_header(); - ::CompLib::Header* mutable_header(); - void set_allocated_header(::CompLib::Header* header); - private: - const ::CompLib::Header& _internal_header() const; - ::CompLib::Header* _internal_mutable_header(); - public: - void unsafe_arena_set_allocated_header( - ::CompLib::Header* header); - ::CompLib::Header* unsafe_arena_release_header(); - - // @@protoc_insertion_point(class_scope:CompLib.GenericRequest) - private: - class _Internal; - - template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; - typedef void InternalArenaConstructable_; - typedef void DestructorSkippable_; - ::CompLib::Header* header_; - mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; - friend struct ::TableStruct_CompLib_2eproto; -}; -// ------------------------------------------------------------------- - -class GenericResponse final : - public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:CompLib.GenericResponse) */ { - public: - inline GenericResponse() : GenericResponse(nullptr) {} - ~GenericResponse() override; - explicit constexpr GenericResponse(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); - - GenericResponse(const GenericResponse& from); - GenericResponse(GenericResponse&& from) noexcept - : GenericResponse() { - *this = ::std::move(from); - } - - inline GenericResponse& operator=(const GenericResponse& from) { - CopyFrom(from); - return *this; - } - inline GenericResponse& operator=(GenericResponse&& from) noexcept { - if (this == &from) return *this; - if (GetOwningArena() == from.GetOwningArena() - #ifdef PROTOBUF_FORCE_COPY_IN_MOVE - && GetOwningArena() != nullptr - #endif // !PROTOBUF_FORCE_COPY_IN_MOVE - ) { - InternalSwap(&from); - } else { - CopyFrom(from); - } - return *this; - } - - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { - return GetDescriptor(); - } - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { - return default_instance().GetMetadata().descriptor; - } - static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { - return default_instance().GetMetadata().reflection; - } - static const GenericResponse& default_instance() { - return *internal_default_instance(); - } - static inline const GenericResponse* internal_default_instance() { - return reinterpret_cast( - &_GenericResponse_default_instance_); - } - static constexpr int kIndexInFileMessages = - 3; - - friend void swap(GenericResponse& a, GenericResponse& b) { - a.Swap(&b); - } - inline void Swap(GenericResponse* other) { - if (other == this) return; - #ifdef PROTOBUF_FORCE_COPY_IN_SWAP - if (GetOwningArena() != nullptr && - GetOwningArena() == other->GetOwningArena()) { - #else // PROTOBUF_FORCE_COPY_IN_SWAP - if (GetOwningArena() == other->GetOwningArena()) { - #endif // !PROTOBUF_FORCE_COPY_IN_SWAP - InternalSwap(other); - } else { - ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); - } - } - void UnsafeArenaSwap(GenericResponse* other) { - if (other == this) return; - GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); - InternalSwap(other); - } - - // implements Message ---------------------------------------------- - - GenericResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { - return CreateMaybeMessage(arena); - } - using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; - void CopyFrom(const GenericResponse& from); - using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; - void MergeFrom(const GenericResponse& from); - private: - static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from); - public: - PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; - bool IsInitialized() const final; - - size_t ByteSizeLong() const final; - const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; - uint8_t* _InternalSerialize( - uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; - int GetCachedSize() const final { return _cached_size_.Get(); } - - private: - void SharedCtor(); - void SharedDtor(); - void SetCachedSize(int size) const final; - void InternalSwap(GenericResponse* other); - - private: - friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; - static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { - return "CompLib.GenericResponse"; - } - protected: - explicit GenericResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena, - bool is_message_owned = false); - private: - static void ArenaDtor(void* object); - inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena); - public: - - static const ClassData _class_data_; - const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; - - ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; - - // nested types ---------------------------------------------------- - - // accessors ------------------------------------------------------- - - enum : int { - kHeaderFieldNumber = 1, - kStatusFieldNumber = 2, - }; - // .CompLib.Header header = 1; - bool has_header() const; - private: - bool _internal_has_header() const; - public: - void clear_header(); - const ::CompLib::Header& header() const; - PROTOBUF_NODISCARD ::CompLib::Header* release_header(); - ::CompLib::Header* mutable_header(); - void set_allocated_header(::CompLib::Header* header); - private: - const ::CompLib::Header& _internal_header() const; - ::CompLib::Header* _internal_mutable_header(); - public: - void unsafe_arena_set_allocated_header( - ::CompLib::Header* header); - ::CompLib::Header* unsafe_arena_release_header(); - - // .CompLib.Status status = 2; - bool has_status() const; - private: - bool _internal_has_status() const; - public: - void clear_status(); - const ::CompLib::Status& status() const; - PROTOBUF_NODISCARD ::CompLib::Status* release_status(); - ::CompLib::Status* mutable_status(); - void set_allocated_status(::CompLib::Status* status); - private: - const ::CompLib::Status& _internal_status() const; - ::CompLib::Status* _internal_mutable_status(); - public: - void unsafe_arena_set_allocated_status( - ::CompLib::Status* status); - ::CompLib::Status* unsafe_arena_release_status(); - - // @@protoc_insertion_point(class_scope:CompLib.GenericResponse) - private: - class _Internal; - - template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; - typedef void InternalArenaConstructable_; - typedef void DestructorSkippable_; - ::CompLib::Header* header_; - ::CompLib::Status* status_; - mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; - friend struct ::TableStruct_CompLib_2eproto; -}; -// ------------------------------------------------------------------- - -class ReadSensorsRequest final : - public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:CompLib.ReadSensorsRequest) */ { - public: - inline ReadSensorsRequest() : ReadSensorsRequest(nullptr) {} - ~ReadSensorsRequest() override; - explicit constexpr ReadSensorsRequest(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); - - ReadSensorsRequest(const ReadSensorsRequest& from); - ReadSensorsRequest(ReadSensorsRequest&& from) noexcept - : ReadSensorsRequest() { - *this = ::std::move(from); - } - - inline ReadSensorsRequest& operator=(const ReadSensorsRequest& from) { - CopyFrom(from); - return *this; - } - inline ReadSensorsRequest& operator=(ReadSensorsRequest&& from) noexcept { - if (this == &from) return *this; - if (GetOwningArena() == from.GetOwningArena() - #ifdef PROTOBUF_FORCE_COPY_IN_MOVE - && GetOwningArena() != nullptr - #endif // !PROTOBUF_FORCE_COPY_IN_MOVE - ) { - InternalSwap(&from); - } else { - CopyFrom(from); - } - return *this; - } - - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { - return GetDescriptor(); - } - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { - return default_instance().GetMetadata().descriptor; - } - static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { - return default_instance().GetMetadata().reflection; - } - static const ReadSensorsRequest& default_instance() { - return *internal_default_instance(); - } - static inline const ReadSensorsRequest* internal_default_instance() { - return reinterpret_cast( - &_ReadSensorsRequest_default_instance_); - } - static constexpr int kIndexInFileMessages = - 4; - - friend void swap(ReadSensorsRequest& a, ReadSensorsRequest& b) { - a.Swap(&b); - } - inline void Swap(ReadSensorsRequest* other) { - if (other == this) return; - #ifdef PROTOBUF_FORCE_COPY_IN_SWAP - if (GetOwningArena() != nullptr && - GetOwningArena() == other->GetOwningArena()) { - #else // PROTOBUF_FORCE_COPY_IN_SWAP - if (GetOwningArena() == other->GetOwningArena()) { - #endif // !PROTOBUF_FORCE_COPY_IN_SWAP - InternalSwap(other); - } else { - ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); - } - } - void UnsafeArenaSwap(ReadSensorsRequest* other) { - if (other == this) return; - GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); - InternalSwap(other); - } - - // implements Message ---------------------------------------------- - - ReadSensorsRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { - return CreateMaybeMessage(arena); - } - using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; - void CopyFrom(const ReadSensorsRequest& from); - using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; - void MergeFrom(const ReadSensorsRequest& from); - private: - static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from); - public: - PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; - bool IsInitialized() const final; - - size_t ByteSizeLong() const final; - const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; - uint8_t* _InternalSerialize( - uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; - int GetCachedSize() const final { return _cached_size_.Get(); } - - private: - void SharedCtor(); - void SharedDtor(); - void SetCachedSize(int size) const final; - void InternalSwap(ReadSensorsRequest* other); - - private: - friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; - static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { - return "CompLib.ReadSensorsRequest"; - } - protected: - explicit ReadSensorsRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena, - bool is_message_owned = false); - private: - static void ArenaDtor(void* object); - inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena); - public: - - static const ClassData _class_data_; - const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; - - ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; - - // nested types ---------------------------------------------------- - - // accessors ------------------------------------------------------- - - enum : int { - kHeaderFieldNumber = 1, - }; - // .CompLib.Header header = 1; - bool has_header() const; - private: - bool _internal_has_header() const; - public: - void clear_header(); - const ::CompLib::Header& header() const; - PROTOBUF_NODISCARD ::CompLib::Header* release_header(); - ::CompLib::Header* mutable_header(); - void set_allocated_header(::CompLib::Header* header); - private: - const ::CompLib::Header& _internal_header() const; - ::CompLib::Header* _internal_mutable_header(); - public: - void unsafe_arena_set_allocated_header( - ::CompLib::Header* header); - ::CompLib::Header* unsafe_arena_release_header(); - - // @@protoc_insertion_point(class_scope:CompLib.ReadSensorsRequest) - private: - class _Internal; - - template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; - typedef void InternalArenaConstructable_; - typedef void DestructorSkippable_; - ::CompLib::Header* header_; - mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; - friend struct ::TableStruct_CompLib_2eproto; -}; -// ------------------------------------------------------------------- - -class ReadSensorsResponse final : - public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:CompLib.ReadSensorsResponse) */ { - public: - inline ReadSensorsResponse() : ReadSensorsResponse(nullptr) {} - ~ReadSensorsResponse() override; - explicit constexpr ReadSensorsResponse(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); - - ReadSensorsResponse(const ReadSensorsResponse& from); - ReadSensorsResponse(ReadSensorsResponse&& from) noexcept - : ReadSensorsResponse() { - *this = ::std::move(from); - } - - inline ReadSensorsResponse& operator=(const ReadSensorsResponse& from) { - CopyFrom(from); - return *this; - } - inline ReadSensorsResponse& operator=(ReadSensorsResponse&& from) noexcept { - if (this == &from) return *this; - if (GetOwningArena() == from.GetOwningArena() - #ifdef PROTOBUF_FORCE_COPY_IN_MOVE - && GetOwningArena() != nullptr - #endif // !PROTOBUF_FORCE_COPY_IN_MOVE - ) { - InternalSwap(&from); - } else { - CopyFrom(from); - } - return *this; - } - - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { - return GetDescriptor(); - } - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { - return default_instance().GetMetadata().descriptor; - } - static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { - return default_instance().GetMetadata().reflection; - } - static const ReadSensorsResponse& default_instance() { - return *internal_default_instance(); - } - static inline const ReadSensorsResponse* internal_default_instance() { - return reinterpret_cast( - &_ReadSensorsResponse_default_instance_); - } - static constexpr int kIndexInFileMessages = - 5; - - friend void swap(ReadSensorsResponse& a, ReadSensorsResponse& b) { - a.Swap(&b); - } - inline void Swap(ReadSensorsResponse* other) { - if (other == this) return; - #ifdef PROTOBUF_FORCE_COPY_IN_SWAP - if (GetOwningArena() != nullptr && - GetOwningArena() == other->GetOwningArena()) { - #else // PROTOBUF_FORCE_COPY_IN_SWAP - if (GetOwningArena() == other->GetOwningArena()) { - #endif // !PROTOBUF_FORCE_COPY_IN_SWAP - InternalSwap(other); - } else { - ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); - } - } - void UnsafeArenaSwap(ReadSensorsResponse* other) { - if (other == this) return; - GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); - InternalSwap(other); - } - - // implements Message ---------------------------------------------- - - ReadSensorsResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { - return CreateMaybeMessage(arena); - } - using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; - void CopyFrom(const ReadSensorsResponse& from); - using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; - void MergeFrom(const ReadSensorsResponse& from); - private: - static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from); - public: - PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; - bool IsInitialized() const final; - - size_t ByteSizeLong() const final; - const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; - uint8_t* _InternalSerialize( - uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; - int GetCachedSize() const final { return _cached_size_.Get(); } - - private: - void SharedCtor(); - void SharedDtor(); - void SetCachedSize(int size) const final; - void InternalSwap(ReadSensorsResponse* other); - - private: - friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; - static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { - return "CompLib.ReadSensorsResponse"; - } - protected: - explicit ReadSensorsResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena, - bool is_message_owned = false); - private: - static void ArenaDtor(void* object); - inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena); - public: - - static const ClassData _class_data_; - const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; - - ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; - - // nested types ---------------------------------------------------- - - // accessors ------------------------------------------------------- - - enum : int { - kHeaderFieldNumber = 1, - kStatusFieldNumber = 2, - kIr1FieldNumber = 3, - kIr2FieldNumber = 4, - kIr3FieldNumber = 5, - kIr4FieldNumber = 6, - kIr5FieldNumber = 7, - }; - // .CompLib.Header header = 1; - bool has_header() const; - private: - bool _internal_has_header() const; - public: - void clear_header(); - const ::CompLib::Header& header() const; - PROTOBUF_NODISCARD ::CompLib::Header* release_header(); - ::CompLib::Header* mutable_header(); - void set_allocated_header(::CompLib::Header* header); - private: - const ::CompLib::Header& _internal_header() const; - ::CompLib::Header* _internal_mutable_header(); - public: - void unsafe_arena_set_allocated_header( - ::CompLib::Header* header); - ::CompLib::Header* unsafe_arena_release_header(); - - // .CompLib.Status status = 2; - bool has_status() const; - private: - bool _internal_has_status() const; - public: - void clear_status(); - const ::CompLib::Status& status() const; - PROTOBUF_NODISCARD ::CompLib::Status* release_status(); - ::CompLib::Status* mutable_status(); - void set_allocated_status(::CompLib::Status* status); - private: - const ::CompLib::Status& _internal_status() const; - ::CompLib::Status* _internal_mutable_status(); - public: - void unsafe_arena_set_allocated_status( - ::CompLib::Status* status); - ::CompLib::Status* unsafe_arena_release_status(); - - // uint32 ir_1 = 3; - void clear_ir_1(); - uint32_t ir_1() const; - void set_ir_1(uint32_t value); - private: - uint32_t _internal_ir_1() const; - void _internal_set_ir_1(uint32_t value); - public: - - // uint32 ir_2 = 4; - void clear_ir_2(); - uint32_t ir_2() const; - void set_ir_2(uint32_t value); - private: - uint32_t _internal_ir_2() const; - void _internal_set_ir_2(uint32_t value); - public: - - // uint32 ir_3 = 5; - void clear_ir_3(); - uint32_t ir_3() const; - void set_ir_3(uint32_t value); - private: - uint32_t _internal_ir_3() const; - void _internal_set_ir_3(uint32_t value); - public: - - // uint32 ir_4 = 6; - void clear_ir_4(); - uint32_t ir_4() const; - void set_ir_4(uint32_t value); - private: - uint32_t _internal_ir_4() const; - void _internal_set_ir_4(uint32_t value); - public: - - // uint32 ir_5 = 7; - void clear_ir_5(); - uint32_t ir_5() const; - void set_ir_5(uint32_t value); - private: - uint32_t _internal_ir_5() const; - void _internal_set_ir_5(uint32_t value); - public: - - // @@protoc_insertion_point(class_scope:CompLib.ReadSensorsResponse) - private: - class _Internal; - - template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; - typedef void InternalArenaConstructable_; - typedef void DestructorSkippable_; - ::CompLib::Header* header_; - ::CompLib::Status* status_; - uint32_t ir_1_; - uint32_t ir_2_; - uint32_t ir_3_; - uint32_t ir_4_; - uint32_t ir_5_; - mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; - friend struct ::TableStruct_CompLib_2eproto; -}; -// =================================================================== - - -// =================================================================== - -#ifdef __GNUC__ - #pragma GCC diagnostic push - #pragma GCC diagnostic ignored "-Wstrict-aliasing" -#endif // __GNUC__ -// Header - -// string message_type = 1; -inline void Header::clear_message_type() { - message_type_.ClearToEmpty(); -} -inline const std::string& Header::message_type() const { - // @@protoc_insertion_point(field_get:CompLib.Header.message_type) - return _internal_message_type(); -} -template -inline PROTOBUF_ALWAYS_INLINE -void Header::set_message_type(ArgT0&& arg0, ArgT... args) { - - message_type_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, static_cast(arg0), args..., GetArenaForAllocation()); - // @@protoc_insertion_point(field_set:CompLib.Header.message_type) -} -inline std::string* Header::mutable_message_type() { - std::string* _s = _internal_mutable_message_type(); - // @@protoc_insertion_point(field_mutable:CompLib.Header.message_type) - return _s; -} -inline const std::string& Header::_internal_message_type() const { - return message_type_.Get(); -} -inline void Header::_internal_set_message_type(const std::string& value) { - - message_type_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, value, GetArenaForAllocation()); -} -inline std::string* Header::_internal_mutable_message_type() { - - return message_type_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation()); -} -inline std::string* Header::release_message_type() { - // @@protoc_insertion_point(field_release:CompLib.Header.message_type) - return message_type_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaForAllocation()); -} -inline void Header::set_allocated_message_type(std::string* message_type) { - if (message_type != nullptr) { - - } else { - - } - message_type_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), message_type, - GetArenaForAllocation()); -#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING - if (message_type_.IsDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited())) { - message_type_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation()); - } -#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING - // @@protoc_insertion_point(field_set_allocated:CompLib.Header.message_type) -} - -// ------------------------------------------------------------------- - -// Status - -// bool successful = 1; -inline void Status::clear_successful() { - successful_ = false; -} -inline bool Status::_internal_successful() const { - return successful_; -} -inline bool Status::successful() const { - // @@protoc_insertion_point(field_get:CompLib.Status.successful) - return _internal_successful(); -} -inline void Status::_internal_set_successful(bool value) { - - successful_ = value; -} -inline void Status::set_successful(bool value) { - _internal_set_successful(value); - // @@protoc_insertion_point(field_set:CompLib.Status.successful) -} - -// string error_message = 2; -inline void Status::clear_error_message() { - error_message_.ClearToEmpty(); -} -inline const std::string& Status::error_message() const { - // @@protoc_insertion_point(field_get:CompLib.Status.error_message) - return _internal_error_message(); -} -template -inline PROTOBUF_ALWAYS_INLINE -void Status::set_error_message(ArgT0&& arg0, ArgT... args) { - - error_message_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, static_cast(arg0), args..., GetArenaForAllocation()); - // @@protoc_insertion_point(field_set:CompLib.Status.error_message) -} -inline std::string* Status::mutable_error_message() { - std::string* _s = _internal_mutable_error_message(); - // @@protoc_insertion_point(field_mutable:CompLib.Status.error_message) - return _s; -} -inline const std::string& Status::_internal_error_message() const { - return error_message_.Get(); -} -inline void Status::_internal_set_error_message(const std::string& value) { - - error_message_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, value, GetArenaForAllocation()); -} -inline std::string* Status::_internal_mutable_error_message() { - - return error_message_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation()); -} -inline std::string* Status::release_error_message() { - // @@protoc_insertion_point(field_release:CompLib.Status.error_message) - return error_message_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaForAllocation()); -} -inline void Status::set_allocated_error_message(std::string* error_message) { - if (error_message != nullptr) { - - } else { - - } - error_message_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), error_message, - GetArenaForAllocation()); -#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING - if (error_message_.IsDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited())) { - error_message_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation()); - } -#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING - // @@protoc_insertion_point(field_set_allocated:CompLib.Status.error_message) -} - -// ------------------------------------------------------------------- - -// GenericRequest - -// .CompLib.Header header = 1; -inline bool GenericRequest::_internal_has_header() const { - return this != internal_default_instance() && header_ != nullptr; -} -inline bool GenericRequest::has_header() const { - return _internal_has_header(); -} -inline void GenericRequest::clear_header() { - if (GetArenaForAllocation() == nullptr && header_ != nullptr) { - delete header_; - } - header_ = nullptr; -} -inline const ::CompLib::Header& GenericRequest::_internal_header() const { - const ::CompLib::Header* p = header_; - return p != nullptr ? *p : reinterpret_cast( - ::CompLib::_Header_default_instance_); -} -inline const ::CompLib::Header& GenericRequest::header() const { - // @@protoc_insertion_point(field_get:CompLib.GenericRequest.header) - return _internal_header(); -} -inline void GenericRequest::unsafe_arena_set_allocated_header( - ::CompLib::Header* header) { - if (GetArenaForAllocation() == nullptr) { - delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(header_); - } - header_ = header; - if (header) { - - } else { - - } - // @@protoc_insertion_point(field_unsafe_arena_set_allocated:CompLib.GenericRequest.header) -} -inline ::CompLib::Header* GenericRequest::release_header() { - - ::CompLib::Header* temp = header_; - header_ = nullptr; -#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE - auto* old = reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp); - temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); - if (GetArenaForAllocation() == nullptr) { delete old; } -#else // PROTOBUF_FORCE_COPY_IN_RELEASE - if (GetArenaForAllocation() != nullptr) { - temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); - } -#endif // !PROTOBUF_FORCE_COPY_IN_RELEASE - return temp; -} -inline ::CompLib::Header* GenericRequest::unsafe_arena_release_header() { - // @@protoc_insertion_point(field_release:CompLib.GenericRequest.header) - - ::CompLib::Header* temp = header_; - header_ = nullptr; - return temp; -} -inline ::CompLib::Header* GenericRequest::_internal_mutable_header() { - - if (header_ == nullptr) { - auto* p = CreateMaybeMessage<::CompLib::Header>(GetArenaForAllocation()); - header_ = p; - } - return header_; -} -inline ::CompLib::Header* GenericRequest::mutable_header() { - ::CompLib::Header* _msg = _internal_mutable_header(); - // @@protoc_insertion_point(field_mutable:CompLib.GenericRequest.header) - return _msg; -} -inline void GenericRequest::set_allocated_header(::CompLib::Header* header) { - ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation(); - if (message_arena == nullptr) { - delete header_; - } - if (header) { - ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = - ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::CompLib::Header>::GetOwningArena(header); - if (message_arena != submessage_arena) { - header = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage( - message_arena, header, submessage_arena); - } - - } else { - - } - header_ = header; - // @@protoc_insertion_point(field_set_allocated:CompLib.GenericRequest.header) -} - -// ------------------------------------------------------------------- - -// GenericResponse - -// .CompLib.Header header = 1; -inline bool GenericResponse::_internal_has_header() const { - return this != internal_default_instance() && header_ != nullptr; -} -inline bool GenericResponse::has_header() const { - return _internal_has_header(); -} -inline void GenericResponse::clear_header() { - if (GetArenaForAllocation() == nullptr && header_ != nullptr) { - delete header_; - } - header_ = nullptr; -} -inline const ::CompLib::Header& GenericResponse::_internal_header() const { - const ::CompLib::Header* p = header_; - return p != nullptr ? *p : reinterpret_cast( - ::CompLib::_Header_default_instance_); -} -inline const ::CompLib::Header& GenericResponse::header() const { - // @@protoc_insertion_point(field_get:CompLib.GenericResponse.header) - return _internal_header(); -} -inline void GenericResponse::unsafe_arena_set_allocated_header( - ::CompLib::Header* header) { - if (GetArenaForAllocation() == nullptr) { - delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(header_); - } - header_ = header; - if (header) { - - } else { - - } - // @@protoc_insertion_point(field_unsafe_arena_set_allocated:CompLib.GenericResponse.header) -} -inline ::CompLib::Header* GenericResponse::release_header() { - - ::CompLib::Header* temp = header_; - header_ = nullptr; -#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE - auto* old = reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp); - temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); - if (GetArenaForAllocation() == nullptr) { delete old; } -#else // PROTOBUF_FORCE_COPY_IN_RELEASE - if (GetArenaForAllocation() != nullptr) { - temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); - } -#endif // !PROTOBUF_FORCE_COPY_IN_RELEASE - return temp; -} -inline ::CompLib::Header* GenericResponse::unsafe_arena_release_header() { - // @@protoc_insertion_point(field_release:CompLib.GenericResponse.header) - - ::CompLib::Header* temp = header_; - header_ = nullptr; - return temp; -} -inline ::CompLib::Header* GenericResponse::_internal_mutable_header() { - - if (header_ == nullptr) { - auto* p = CreateMaybeMessage<::CompLib::Header>(GetArenaForAllocation()); - header_ = p; - } - return header_; -} -inline ::CompLib::Header* GenericResponse::mutable_header() { - ::CompLib::Header* _msg = _internal_mutable_header(); - // @@protoc_insertion_point(field_mutable:CompLib.GenericResponse.header) - return _msg; -} -inline void GenericResponse::set_allocated_header(::CompLib::Header* header) { - ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation(); - if (message_arena == nullptr) { - delete header_; - } - if (header) { - ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = - ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::CompLib::Header>::GetOwningArena(header); - if (message_arena != submessage_arena) { - header = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage( - message_arena, header, submessage_arena); - } - - } else { - - } - header_ = header; - // @@protoc_insertion_point(field_set_allocated:CompLib.GenericResponse.header) -} - -// .CompLib.Status status = 2; -inline bool GenericResponse::_internal_has_status() const { - return this != internal_default_instance() && status_ != nullptr; -} -inline bool GenericResponse::has_status() const { - return _internal_has_status(); -} -inline void GenericResponse::clear_status() { - if (GetArenaForAllocation() == nullptr && status_ != nullptr) { - delete status_; - } - status_ = nullptr; -} -inline const ::CompLib::Status& GenericResponse::_internal_status() const { - const ::CompLib::Status* p = status_; - return p != nullptr ? *p : reinterpret_cast( - ::CompLib::_Status_default_instance_); -} -inline const ::CompLib::Status& GenericResponse::status() const { - // @@protoc_insertion_point(field_get:CompLib.GenericResponse.status) - return _internal_status(); -} -inline void GenericResponse::unsafe_arena_set_allocated_status( - ::CompLib::Status* status) { - if (GetArenaForAllocation() == nullptr) { - delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(status_); - } - status_ = status; - if (status) { - - } else { - - } - // @@protoc_insertion_point(field_unsafe_arena_set_allocated:CompLib.GenericResponse.status) -} -inline ::CompLib::Status* GenericResponse::release_status() { - - ::CompLib::Status* temp = status_; - status_ = nullptr; -#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE - auto* old = reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp); - temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); - if (GetArenaForAllocation() == nullptr) { delete old; } -#else // PROTOBUF_FORCE_COPY_IN_RELEASE - if (GetArenaForAllocation() != nullptr) { - temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); - } -#endif // !PROTOBUF_FORCE_COPY_IN_RELEASE - return temp; -} -inline ::CompLib::Status* GenericResponse::unsafe_arena_release_status() { - // @@protoc_insertion_point(field_release:CompLib.GenericResponse.status) - - ::CompLib::Status* temp = status_; - status_ = nullptr; - return temp; -} -inline ::CompLib::Status* GenericResponse::_internal_mutable_status() { - - if (status_ == nullptr) { - auto* p = CreateMaybeMessage<::CompLib::Status>(GetArenaForAllocation()); - status_ = p; - } - return status_; -} -inline ::CompLib::Status* GenericResponse::mutable_status() { - ::CompLib::Status* _msg = _internal_mutable_status(); - // @@protoc_insertion_point(field_mutable:CompLib.GenericResponse.status) - return _msg; -} -inline void GenericResponse::set_allocated_status(::CompLib::Status* status) { - ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation(); - if (message_arena == nullptr) { - delete status_; - } - if (status) { - ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = - ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::CompLib::Status>::GetOwningArena(status); - if (message_arena != submessage_arena) { - status = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage( - message_arena, status, submessage_arena); - } - - } else { - - } - status_ = status; - // @@protoc_insertion_point(field_set_allocated:CompLib.GenericResponse.status) -} - -// ------------------------------------------------------------------- - -// ReadSensorsRequest - -// .CompLib.Header header = 1; -inline bool ReadSensorsRequest::_internal_has_header() const { - return this != internal_default_instance() && header_ != nullptr; -} -inline bool ReadSensorsRequest::has_header() const { - return _internal_has_header(); -} -inline void ReadSensorsRequest::clear_header() { - if (GetArenaForAllocation() == nullptr && header_ != nullptr) { - delete header_; - } - header_ = nullptr; -} -inline const ::CompLib::Header& ReadSensorsRequest::_internal_header() const { - const ::CompLib::Header* p = header_; - return p != nullptr ? *p : reinterpret_cast( - ::CompLib::_Header_default_instance_); -} -inline const ::CompLib::Header& ReadSensorsRequest::header() const { - // @@protoc_insertion_point(field_get:CompLib.ReadSensorsRequest.header) - return _internal_header(); -} -inline void ReadSensorsRequest::unsafe_arena_set_allocated_header( - ::CompLib::Header* header) { - if (GetArenaForAllocation() == nullptr) { - delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(header_); - } - header_ = header; - if (header) { - - } else { - - } - // @@protoc_insertion_point(field_unsafe_arena_set_allocated:CompLib.ReadSensorsRequest.header) -} -inline ::CompLib::Header* ReadSensorsRequest::release_header() { - - ::CompLib::Header* temp = header_; - header_ = nullptr; -#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE - auto* old = reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp); - temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); - if (GetArenaForAllocation() == nullptr) { delete old; } -#else // PROTOBUF_FORCE_COPY_IN_RELEASE - if (GetArenaForAllocation() != nullptr) { - temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); - } -#endif // !PROTOBUF_FORCE_COPY_IN_RELEASE - return temp; -} -inline ::CompLib::Header* ReadSensorsRequest::unsafe_arena_release_header() { - // @@protoc_insertion_point(field_release:CompLib.ReadSensorsRequest.header) - - ::CompLib::Header* temp = header_; - header_ = nullptr; - return temp; -} -inline ::CompLib::Header* ReadSensorsRequest::_internal_mutable_header() { - - if (header_ == nullptr) { - auto* p = CreateMaybeMessage<::CompLib::Header>(GetArenaForAllocation()); - header_ = p; - } - return header_; -} -inline ::CompLib::Header* ReadSensorsRequest::mutable_header() { - ::CompLib::Header* _msg = _internal_mutable_header(); - // @@protoc_insertion_point(field_mutable:CompLib.ReadSensorsRequest.header) - return _msg; -} -inline void ReadSensorsRequest::set_allocated_header(::CompLib::Header* header) { - ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation(); - if (message_arena == nullptr) { - delete header_; - } - if (header) { - ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = - ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::CompLib::Header>::GetOwningArena(header); - if (message_arena != submessage_arena) { - header = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage( - message_arena, header, submessage_arena); - } - - } else { - - } - header_ = header; - // @@protoc_insertion_point(field_set_allocated:CompLib.ReadSensorsRequest.header) -} - -// ------------------------------------------------------------------- - -// ReadSensorsResponse - -// .CompLib.Header header = 1; -inline bool ReadSensorsResponse::_internal_has_header() const { - return this != internal_default_instance() && header_ != nullptr; -} -inline bool ReadSensorsResponse::has_header() const { - return _internal_has_header(); -} -inline void ReadSensorsResponse::clear_header() { - if (GetArenaForAllocation() == nullptr && header_ != nullptr) { - delete header_; - } - header_ = nullptr; -} -inline const ::CompLib::Header& ReadSensorsResponse::_internal_header() const { - const ::CompLib::Header* p = header_; - return p != nullptr ? *p : reinterpret_cast( - ::CompLib::_Header_default_instance_); -} -inline const ::CompLib::Header& ReadSensorsResponse::header() const { - // @@protoc_insertion_point(field_get:CompLib.ReadSensorsResponse.header) - return _internal_header(); -} -inline void ReadSensorsResponse::unsafe_arena_set_allocated_header( - ::CompLib::Header* header) { - if (GetArenaForAllocation() == nullptr) { - delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(header_); - } - header_ = header; - if (header) { - - } else { - - } - // @@protoc_insertion_point(field_unsafe_arena_set_allocated:CompLib.ReadSensorsResponse.header) -} -inline ::CompLib::Header* ReadSensorsResponse::release_header() { - - ::CompLib::Header* temp = header_; - header_ = nullptr; -#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE - auto* old = reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp); - temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); - if (GetArenaForAllocation() == nullptr) { delete old; } -#else // PROTOBUF_FORCE_COPY_IN_RELEASE - if (GetArenaForAllocation() != nullptr) { - temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); - } -#endif // !PROTOBUF_FORCE_COPY_IN_RELEASE - return temp; -} -inline ::CompLib::Header* ReadSensorsResponse::unsafe_arena_release_header() { - // @@protoc_insertion_point(field_release:CompLib.ReadSensorsResponse.header) - - ::CompLib::Header* temp = header_; - header_ = nullptr; - return temp; -} -inline ::CompLib::Header* ReadSensorsResponse::_internal_mutable_header() { - - if (header_ == nullptr) { - auto* p = CreateMaybeMessage<::CompLib::Header>(GetArenaForAllocation()); - header_ = p; - } - return header_; -} -inline ::CompLib::Header* ReadSensorsResponse::mutable_header() { - ::CompLib::Header* _msg = _internal_mutable_header(); - // @@protoc_insertion_point(field_mutable:CompLib.ReadSensorsResponse.header) - return _msg; -} -inline void ReadSensorsResponse::set_allocated_header(::CompLib::Header* header) { - ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation(); - if (message_arena == nullptr) { - delete header_; - } - if (header) { - ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = - ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::CompLib::Header>::GetOwningArena(header); - if (message_arena != submessage_arena) { - header = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage( - message_arena, header, submessage_arena); - } - - } else { - - } - header_ = header; - // @@protoc_insertion_point(field_set_allocated:CompLib.ReadSensorsResponse.header) -} - -// .CompLib.Status status = 2; -inline bool ReadSensorsResponse::_internal_has_status() const { - return this != internal_default_instance() && status_ != nullptr; -} -inline bool ReadSensorsResponse::has_status() const { - return _internal_has_status(); -} -inline void ReadSensorsResponse::clear_status() { - if (GetArenaForAllocation() == nullptr && status_ != nullptr) { - delete status_; - } - status_ = nullptr; -} -inline const ::CompLib::Status& ReadSensorsResponse::_internal_status() const { - const ::CompLib::Status* p = status_; - return p != nullptr ? *p : reinterpret_cast( - ::CompLib::_Status_default_instance_); -} -inline const ::CompLib::Status& ReadSensorsResponse::status() const { - // @@protoc_insertion_point(field_get:CompLib.ReadSensorsResponse.status) - return _internal_status(); -} -inline void ReadSensorsResponse::unsafe_arena_set_allocated_status( - ::CompLib::Status* status) { - if (GetArenaForAllocation() == nullptr) { - delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(status_); - } - status_ = status; - if (status) { - - } else { - - } - // @@protoc_insertion_point(field_unsafe_arena_set_allocated:CompLib.ReadSensorsResponse.status) -} -inline ::CompLib::Status* ReadSensorsResponse::release_status() { - - ::CompLib::Status* temp = status_; - status_ = nullptr; -#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE - auto* old = reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp); - temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); - if (GetArenaForAllocation() == nullptr) { delete old; } -#else // PROTOBUF_FORCE_COPY_IN_RELEASE - if (GetArenaForAllocation() != nullptr) { - temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); - } -#endif // !PROTOBUF_FORCE_COPY_IN_RELEASE - return temp; -} -inline ::CompLib::Status* ReadSensorsResponse::unsafe_arena_release_status() { - // @@protoc_insertion_point(field_release:CompLib.ReadSensorsResponse.status) - - ::CompLib::Status* temp = status_; - status_ = nullptr; - return temp; -} -inline ::CompLib::Status* ReadSensorsResponse::_internal_mutable_status() { - - if (status_ == nullptr) { - auto* p = CreateMaybeMessage<::CompLib::Status>(GetArenaForAllocation()); - status_ = p; - } - return status_; -} -inline ::CompLib::Status* ReadSensorsResponse::mutable_status() { - ::CompLib::Status* _msg = _internal_mutable_status(); - // @@protoc_insertion_point(field_mutable:CompLib.ReadSensorsResponse.status) - return _msg; -} -inline void ReadSensorsResponse::set_allocated_status(::CompLib::Status* status) { - ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation(); - if (message_arena == nullptr) { - delete status_; - } - if (status) { - ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = - ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::CompLib::Status>::GetOwningArena(status); - if (message_arena != submessage_arena) { - status = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage( - message_arena, status, submessage_arena); - } - - } else { - - } - status_ = status; - // @@protoc_insertion_point(field_set_allocated:CompLib.ReadSensorsResponse.status) -} - -// uint32 ir_1 = 3; -inline void ReadSensorsResponse::clear_ir_1() { - ir_1_ = 0u; -} -inline uint32_t ReadSensorsResponse::_internal_ir_1() const { - return ir_1_; -} -inline uint32_t ReadSensorsResponse::ir_1() const { - // @@protoc_insertion_point(field_get:CompLib.ReadSensorsResponse.ir_1) - return _internal_ir_1(); -} -inline void ReadSensorsResponse::_internal_set_ir_1(uint32_t value) { - - ir_1_ = value; -} -inline void ReadSensorsResponse::set_ir_1(uint32_t value) { - _internal_set_ir_1(value); - // @@protoc_insertion_point(field_set:CompLib.ReadSensorsResponse.ir_1) -} - -// uint32 ir_2 = 4; -inline void ReadSensorsResponse::clear_ir_2() { - ir_2_ = 0u; -} -inline uint32_t ReadSensorsResponse::_internal_ir_2() const { - return ir_2_; -} -inline uint32_t ReadSensorsResponse::ir_2() const { - // @@protoc_insertion_point(field_get:CompLib.ReadSensorsResponse.ir_2) - return _internal_ir_2(); -} -inline void ReadSensorsResponse::_internal_set_ir_2(uint32_t value) { - - ir_2_ = value; -} -inline void ReadSensorsResponse::set_ir_2(uint32_t value) { - _internal_set_ir_2(value); - // @@protoc_insertion_point(field_set:CompLib.ReadSensorsResponse.ir_2) -} - -// uint32 ir_3 = 5; -inline void ReadSensorsResponse::clear_ir_3() { - ir_3_ = 0u; -} -inline uint32_t ReadSensorsResponse::_internal_ir_3() const { - return ir_3_; -} -inline uint32_t ReadSensorsResponse::ir_3() const { - // @@protoc_insertion_point(field_get:CompLib.ReadSensorsResponse.ir_3) - return _internal_ir_3(); -} -inline void ReadSensorsResponse::_internal_set_ir_3(uint32_t value) { - - ir_3_ = value; -} -inline void ReadSensorsResponse::set_ir_3(uint32_t value) { - _internal_set_ir_3(value); - // @@protoc_insertion_point(field_set:CompLib.ReadSensorsResponse.ir_3) -} - -// uint32 ir_4 = 6; -inline void ReadSensorsResponse::clear_ir_4() { - ir_4_ = 0u; -} -inline uint32_t ReadSensorsResponse::_internal_ir_4() const { - return ir_4_; -} -inline uint32_t ReadSensorsResponse::ir_4() const { - // @@protoc_insertion_point(field_get:CompLib.ReadSensorsResponse.ir_4) - return _internal_ir_4(); -} -inline void ReadSensorsResponse::_internal_set_ir_4(uint32_t value) { - - ir_4_ = value; -} -inline void ReadSensorsResponse::set_ir_4(uint32_t value) { - _internal_set_ir_4(value); - // @@protoc_insertion_point(field_set:CompLib.ReadSensorsResponse.ir_4) -} - -// uint32 ir_5 = 7; -inline void ReadSensorsResponse::clear_ir_5() { - ir_5_ = 0u; -} -inline uint32_t ReadSensorsResponse::_internal_ir_5() const { - return ir_5_; -} -inline uint32_t ReadSensorsResponse::ir_5() const { - // @@protoc_insertion_point(field_get:CompLib.ReadSensorsResponse.ir_5) - return _internal_ir_5(); -} -inline void ReadSensorsResponse::_internal_set_ir_5(uint32_t value) { - - ir_5_ = value; -} -inline void ReadSensorsResponse::set_ir_5(uint32_t value) { - _internal_set_ir_5(value); - // @@protoc_insertion_point(field_set:CompLib.ReadSensorsResponse.ir_5) -} - -#ifdef __GNUC__ - #pragma GCC diagnostic pop -#endif // __GNUC__ -// ------------------------------------------------------------------- - -// ------------------------------------------------------------------- - -// ------------------------------------------------------------------- - -// ------------------------------------------------------------------- - -// ------------------------------------------------------------------- - - -// @@protoc_insertion_point(namespace_scope) - -} // namespace CompLib - -// @@protoc_insertion_point(global_scope) - -#include -#endif // GOOGLE_PROTOBUF_INCLUDED_GOOGLE_PROTOBUF_INCLUDED_CompLib_2eproto diff --git a/server/cmake-build-debug/Makefile b/server/cmake-build-debug/Makefile deleted file mode 100644 index ca82548..0000000 --- a/server/cmake-build-debug/Makefile +++ /dev/null @@ -1,258 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Unix Makefiles" Generator, CMake Version 3.17 - -# Default target executed when no arguments are given to make. -default_target: all - -.PHONY : default_target - -# Allow only one "make -f Makefile2" at a time, but pass parallelism. -.NOTPARALLEL: - - -#============================================================================= -# Special targets provided by cmake. - -# Disable implicit rules so canonical targets will work. -.SUFFIXES: - - -# Disable VCS-based implicit rules. -% : %,v - - -# Disable VCS-based implicit rules. -% : RCS/% - - -# Disable VCS-based implicit rules. -% : RCS/%,v - - -# Disable VCS-based implicit rules. -% : SCCS/s.% - - -# Disable VCS-based implicit rules. -% : s.% - - -.SUFFIXES: .hpux_make_needs_suffix_list - - -# Command-line flag to silence nested $(MAKE). -$(VERBOSE)MAKESILENT = -s - -# Suppress display of executed commands. -$(VERBOSE).SILENT: - - -# A target that is always out of date. -cmake_force: - -.PHONY : cmake_force - -#============================================================================= -# Set environment variables for the build. - -# The shell in which to execute make rules. -SHELL = /bin/sh - -# The CMake executable. -CMAKE_COMMAND = /Applications/CLion.app/Contents/bin/cmake/mac/bin/cmake - -# The command to remove a file. -RM = /Applications/CLion.app/Contents/bin/cmake/mac/bin/cmake -E rm -f - -# Escaping for special characters. -EQUALS = = - -# The top-level source directory on which CMake was run. -CMAKE_SOURCE_DIR = /Users/konstantinviesure/workspace/compLIB/server - -# The top-level build directory on which CMake was run. -CMAKE_BINARY_DIR = /Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug - -#============================================================================= -# Targets provided globally by CMake. - -# Special rule for the target rebuild_cache -rebuild_cache: - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." - /Applications/CLion.app/Contents/bin/cmake/mac/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) -.PHONY : rebuild_cache - -# Special rule for the target rebuild_cache -rebuild_cache/fast: rebuild_cache - -.PHONY : rebuild_cache/fast - -# Special rule for the target edit_cache -edit_cache: - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..." - /Applications/CLion.app/Contents/bin/cmake/mac/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. -.PHONY : edit_cache - -# Special rule for the target edit_cache -edit_cache/fast: edit_cache - -.PHONY : edit_cache/fast - -# The main all target -all: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CMakeFiles /Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CMakeFiles/progress.marks - $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 all - $(CMAKE_COMMAND) -E cmake_progress_start /Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CMakeFiles 0 -.PHONY : all - -# The main clean target -clean: - $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 clean -.PHONY : clean - -# The main clean target -clean/fast: clean - -.PHONY : clean/fast - -# Prepare targets for installation. -preinstall: all - $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 preinstall -.PHONY : preinstall - -# Prepare targets for installation. -preinstall/fast: - $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 preinstall -.PHONY : preinstall/fast - -# clear depends -depend: - $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 -.PHONY : depend - -#============================================================================= -# Target rules for targets named compLib_server - -# Build rule for target. -compLib_server: cmake_check_build_system - $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 compLib_server -.PHONY : compLib_server - -# fast build rule for target. -compLib_server/fast: - $(MAKE) $(MAKESILENT) -f CMakeFiles/compLib_server.dir/build.make CMakeFiles/compLib_server.dir/build -.PHONY : compLib_server/fast - -CompLib.pb.o: CompLib.pb.cc.o - -.PHONY : CompLib.pb.o - -# target to build an object file -CompLib.pb.cc.o: - $(MAKE) $(MAKESILENT) -f CMakeFiles/compLib_server.dir/build.make CMakeFiles/compLib_server.dir/CompLib.pb.cc.o -.PHONY : CompLib.pb.cc.o - -CompLib.pb.i: CompLib.pb.cc.i - -.PHONY : CompLib.pb.i - -# target to preprocess a source file -CompLib.pb.cc.i: - $(MAKE) $(MAKESILENT) -f CMakeFiles/compLib_server.dir/build.make CMakeFiles/compLib_server.dir/CompLib.pb.cc.i -.PHONY : CompLib.pb.cc.i - -CompLib.pb.s: CompLib.pb.cc.s - -.PHONY : CompLib.pb.s - -# target to generate assembly for a file -CompLib.pb.cc.s: - $(MAKE) $(MAKESILENT) -f CMakeFiles/compLib_server.dir/build.make CMakeFiles/compLib_server.dir/CompLib.pb.cc.s -.PHONY : CompLib.pb.cc.s - -src/Spi.o: src/Spi.cpp.o - -.PHONY : src/Spi.o - -# target to build an object file -src/Spi.cpp.o: - $(MAKE) $(MAKESILENT) -f CMakeFiles/compLib_server.dir/build.make CMakeFiles/compLib_server.dir/src/Spi.cpp.o -.PHONY : src/Spi.cpp.o - -src/Spi.i: src/Spi.cpp.i - -.PHONY : src/Spi.i - -# target to preprocess a source file -src/Spi.cpp.i: - $(MAKE) $(MAKESILENT) -f CMakeFiles/compLib_server.dir/build.make CMakeFiles/compLib_server.dir/src/Spi.cpp.i -.PHONY : src/Spi.cpp.i - -src/Spi.s: src/Spi.cpp.s - -.PHONY : src/Spi.s - -# target to generate assembly for a file -src/Spi.cpp.s: - $(MAKE) $(MAKESILENT) -f CMakeFiles/compLib_server.dir/build.make CMakeFiles/compLib_server.dir/src/Spi.cpp.s -.PHONY : src/Spi.cpp.s - -src/main.o: src/main.cpp.o - -.PHONY : src/main.o - -# target to build an object file -src/main.cpp.o: - $(MAKE) $(MAKESILENT) -f CMakeFiles/compLib_server.dir/build.make CMakeFiles/compLib_server.dir/src/main.cpp.o -.PHONY : src/main.cpp.o - -src/main.i: src/main.cpp.i - -.PHONY : src/main.i - -# target to preprocess a source file -src/main.cpp.i: - $(MAKE) $(MAKESILENT) -f CMakeFiles/compLib_server.dir/build.make CMakeFiles/compLib_server.dir/src/main.cpp.i -.PHONY : src/main.cpp.i - -src/main.s: src/main.cpp.s - -.PHONY : src/main.s - -# target to generate assembly for a file -src/main.cpp.s: - $(MAKE) $(MAKESILENT) -f CMakeFiles/compLib_server.dir/build.make CMakeFiles/compLib_server.dir/src/main.cpp.s -.PHONY : src/main.cpp.s - -# Help Target -help: - @echo "The following are some of the valid targets for this Makefile:" - @echo "... all (the default if no target is provided)" - @echo "... clean" - @echo "... depend" - @echo "... edit_cache" - @echo "... rebuild_cache" - @echo "... compLib_server" - @echo "... CompLib.pb.o" - @echo "... CompLib.pb.i" - @echo "... CompLib.pb.s" - @echo "... src/Spi.o" - @echo "... src/Spi.i" - @echo "... src/Spi.s" - @echo "... src/main.o" - @echo "... src/main.i" - @echo "... src/main.s" -.PHONY : help - - - -#============================================================================= -# Special targets to cleanup operation of make. - -# Special rule to run CMake to check the build system integrity. -# No rule that depends on this can have commands that come from listfiles -# because they might be regenerated. -cmake_check_build_system: - $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 -.PHONY : cmake_check_build_system - diff --git a/server/cmake-build-debug/cmake_install.cmake b/server/cmake-build-debug/cmake_install.cmake deleted file mode 100644 index 756ed47..0000000 --- a/server/cmake-build-debug/cmake_install.cmake +++ /dev/null @@ -1,44 +0,0 @@ -# Install script for directory: /Users/konstantinviesure/workspace/compLIB/server - -# Set the install prefix -if(NOT DEFINED CMAKE_INSTALL_PREFIX) - set(CMAKE_INSTALL_PREFIX "/usr/local") -endif() -string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") - -# Set the install configuration name. -if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) - if(BUILD_TYPE) - string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" - CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") - else() - set(CMAKE_INSTALL_CONFIG_NAME "Debug") - endif() - message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") -endif() - -# Set the component getting installed. -if(NOT CMAKE_INSTALL_COMPONENT) - if(COMPONENT) - message(STATUS "Install component: \"${COMPONENT}\"") - set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") - else() - set(CMAKE_INSTALL_COMPONENT) - endif() -endif() - -# Is this installation the result of a crosscompile? -if(NOT DEFINED CMAKE_CROSSCOMPILING) - set(CMAKE_CROSSCOMPILING "FALSE") -endif() - -if(CMAKE_INSTALL_COMPONENT) - set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt") -else() - set(CMAKE_INSTALL_MANIFEST "install_manifest.txt") -endif() - -string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT - "${CMAKE_INSTALL_MANIFEST_FILES}") -file(WRITE "/Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/${CMAKE_INSTALL_MANIFEST}" - "${CMAKE_INSTALL_MANIFEST_CONTENT}") diff --git a/server/cmake-build-debug/compLib_server b/server/cmake-build-debug/compLib_server deleted file mode 100755 index 0663f10505c18ab2856a32f1119095889702fa9d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 254888 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

JP(JqRA=@LE?pG$C8Ygn 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�AGE`}^myu_3L&&PzDZSyy72yEdfg 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 z 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 z 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

m`1zC4rR_FbeTJEdEL6ar8RYR4J+zuFY`Cl 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 diff --git a/server/cmake-build-debug/compLib_server.cbp b/server/cmake-build-debug/compLib_server.cbp deleted file mode 100644 index cfd45ce..0000000 --- a/server/cmake-build-debug/compLib_server.cbp +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - diff --git a/server/cmake-build-debug/server b/server/cmake-build-debug/server deleted file mode 100755 index fab6d72688bdbcf13af1f6d4ba1213cc2acdc3b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 62280 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 diff --git a/server/cmake-build-debug/server.cbp b/server/cmake-build-debug/server.cbp deleted file mode 100644 index b1ee125..0000000 --- a/server/cmake-build-debug/server.cbp +++ /dev/null @@ -1,90 +0,0 @@ - - - - - - diff --git a/server/cmake/modules/Findpigpio.cmake b/server/cmake/modules/Findpigpio.cmake new file mode 100644 index 0000000..1308822 --- /dev/null +++ b/server/cmake/modules/Findpigpio.cmake @@ -0,0 +1,31 @@ +################################################################################ +### Find the pigpio shared libraries. +################################################################################ + +# Find the path to the pigpio includes. +find_path(pigpio_INCLUDE_DIR + NAMES pigpio.h pigpiod_if.h pigpiod_if2.h + HINTS /usr/local/include) + +# Find the pigpio libraries. +find_library(pigpio_LIBRARY + NAMES libpigpio.so + HINTS /usr/local/lib) +find_library(pigpiod_if_LIBRARY + NAMES libpigpiod_if.so + HINTS /usr/local/lib) +find_library(pigpiod_if2_LIBRARY + NAMES libpigpiod_if2.so + HINTS /usr/local/lib) + +# Set the pigpio variables to plural form to make them accessible for +# the paramount cmake modules. +set(pigpio_INCLUDE_DIRS ${pigpio_INCLUDE_DIR}) +set(pigpio_INCLUDES ${pigpio_INCLUDE_DIR}) + +# Handle REQUIRED, QUIET, and version arguments +# and set the _FOUND variable. +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(pigpio + DEFAULT_MSG + pigpio_INCLUDE_DIR pigpio_LIBRARY pigpiod_if_LIBRARY pigpiod_if2_LIBRARY) \ No newline at end of file diff --git a/server/include/Spi.hpp b/server/include/Spi.hpp deleted file mode 100644 index 6c81b0f..0000000 --- a/server/include/Spi.hpp +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef COMPLIB_SERVER_SPI_HPP -#define COMPLIB_SERVER_SPI_HPP - - -class Spi { - -}; - - -#endif //COMPLIB_SERVER_SPI_HPP diff --git a/server/include/encoder.hpp b/server/include/encoder.hpp new file mode 100644 index 0000000..e6be5c0 --- /dev/null +++ b/server/include/encoder.hpp @@ -0,0 +1,14 @@ +#ifndef COMPLIB_SERVER_ENCODER_HPP +#define COMPLIB_SERVER_ENCODER_HPP + +#include +#include + +#define ENCODER_COUNT 4 + +class Encoder { +public: + static std::vector read_all(); +}; + +#endif // COMPLIB_SERVER_ENCODER_HPP \ No newline at end of file diff --git a/server/include/mathUtils.hpp b/server/include/mathUtils.hpp new file mode 100644 index 0000000..b4eee56 --- /dev/null +++ b/server/include/mathUtils.hpp @@ -0,0 +1,27 @@ +#ifndef COMPLIB_SERVER_MATHUTILS_HPP +#define COMPLIB_SERVER_MATHUTILS_HPP + +#include + +namespace mathUtils { + inline int int_from_bytes(uint8_t *data, int length) { + int ret = 0; + + int i = 0; + for (int j = length -1; j >= 0; j--) { + ret = ret | (data[i] << (j * 8)); + i++; + } + return ret; + } + + inline void bytes_from_int(int data, int length, uint8_t *result) { + int i = 0; + for (int j = length -1; j >= 0; j--) { + result[i] = ((data >> (j * 8)) & 0xffu); + i++; + } + } +} + +#endif // COMPLIB_SERVER_MATHUTILS_HPP \ No newline at end of file diff --git a/server/include/motor.hpp b/server/include/motor.hpp new file mode 100644 index 0000000..7d16352 --- /dev/null +++ b/server/include/motor.hpp @@ -0,0 +1,44 @@ +#ifndef COMPLIB_SERVER_MOTOR_HPP +#define COMPLIB_SERVER_MOTOR_HPP + +#include +#include +#include + +#include "include/robot.hpp" + +class Motor { +public: + enum Mode : uint8_t { + COAST = 0, + FORWARD = 1, + BACKWARD = 2, + BREAK = 3, + SERVO = 4, + NONE = 5 + }; + + static Motor& get_instance() + { + static Motor instance; + return instance; + } + + Motor(Motor const&) = delete; + void operator=(Motor const&) = delete; + + static void power(uint8_t port, double percent); + static void pwm(uint8_t port, uint16_t pwm, Mode mode); + + std::vector get_speed(); +private: + Motor(); + + int32_t last_encoder_values[MOTOR_COUNT] = {0}; + double filtered_speeds[MOTOR_COUNT] = {0}; + std::chrono::system_clock::time_point last_time_read; + + void reset_speed(); +}; + +#endif // COMPLIB_SERVER_MOTOR_HPP \ No newline at end of file diff --git a/server/include/reset.hpp b/server/include/reset.hpp new file mode 100644 index 0000000..3761606 --- /dev/null +++ b/server/include/reset.hpp @@ -0,0 +1,31 @@ +#ifndef COMPLIB_SERVER_RESET_HPP +#define COMPLIB_SERVER_RESET_HPP + +#include + +#define RESET_PIN 23 +#define BOOT_PIN 17 + +#define RESET_SLEEP_TIME_US 1000 * 100 +#define RESET_STARTUP_SLEEP_TIME_US 1000 * 500 + +namespace Reset { + void reset_robot() { + gpioInitialise(); + + gpioSetMode(BOOT_PIN, PI_OUTPUT); + gpioSetMode(RESET_PIN, PI_OUTPUT); + + gpioWrite(BOOT_PIN, 0); + gpioWrite(RESET_PIN, 0); + + usleep(RESET_SLEEP_TIME_US); + + gpioWrite(RESET_PIN, 1); + + usleep(RESET_STARTUP_SLEEP_TIME_US); + } +} + + +#endif //COMPLIB_SERVER_RESET_HPP diff --git a/server/include/robot.hpp b/server/include/robot.hpp new file mode 100644 index 0000000..ae8c5b9 --- /dev/null +++ b/server/include/robot.hpp @@ -0,0 +1,22 @@ +#ifndef COMPLIB_SERVER_ROBOT_HPP +#define COMPLIB_SERVER_ROBOT_HPP + +#define PI 3.14159265359L + +#define WHEEL_CIRCUMFERENCE_MM (71.0L * PI) +#define TICKS_PER_TURN (27.7L * 100.0L) +#define ARBOR_LENGTH_MM 139.0L +#define ARBOR_LENGTH_M (ARBOR_LENGTH_MM / 1000.0L) +#define TICKS_PER_METER (1000.0L / WHEEL_CIRCUMFERENCE_MM * TICKS_PER_TURN) + +#define MOTOR_COUNT 4 +#define MAX_MOTOR_SPEED 65535 + +#define MOTOR_MAX_DELTA_TIME_S 0.1L +#define MOTOR_FILTER_ALPHA 0.05L +#define MOTOR_FILTER_RESET_DELAY_US (1000 * 10) + +#define LEFT_PORT 3 +#define RIGHT_PORT 0 + +#endif // COMPLIB_SERVER_ROBOT_HPP \ No newline at end of file diff --git a/server/include/spi.hpp b/server/include/spi.hpp new file mode 100644 index 0000000..d7526d6 --- /dev/null +++ b/server/include/spi.hpp @@ -0,0 +1,126 @@ +#ifndef COMPLIB_SERVER_SPI_HPP +#define COMPLIB_SERVER_SPI_HPP + +//SPI_MODE_0 (0,0) CPOL = 0, CPHA = 0, Clock idle low, data is clocked in on rising edge, output data (change) on falling edge +//SPI_MODE_1 (0,1) CPOL = 0, CPHA = 1, Clock idle low, data is clocked in on falling edge, output data (change) on rising edge +//SPI_MODE_2 (1,0) CPOL = 1, CPHA = 0, Clock idle high, data is clocked in on falling edge, output data (change) on rising edge +//SPI_MODE_3 (1,1) CPOL = 1, CPHA = 1, Clock idle high, data is clocked in on rising, edge output data (change) on falling edge + +#define SPI_BUFFER_SIZE 20 +#define SPI_SPEED 4000000 // 4 MHz +#define SPI_BITS_PER_WORD 8 + +class Spi { +public: + static Spi& getInstance() + { + static Spi instance; + return instance; + } + + Spi(Spi const&) = delete; + void operator=(Spi const&) = delete; + + int read(uint8_t reg, uint8_t length); + void read_array(uint8_t reg, uint8_t length, uint8_t* data); + + void write(uint8_t reg, uint8_t length, int value); + void write_array(uint8_t reg, uint8_t length, const uint8_t* data); + + enum Register : uint8_t { + IDENTIFICATION_MODEL_ID = 1, + IDENTIFICATION_MODEL_REV_MAJOR = 2, + IDENTIFICATION_MODEL_REV_MINOR = 3, + IDENTIFICATION_MODEL_REV_PATCH = 4, + + // Motor encoder positions + MOTOR_1_POS_B3 = 10, + MOTOR_1_POS_B2 = 11, + MOTOR_1_POS_B1 = 12, + MOTOR_1_POS_B0 = 13, + MOTOR_2_POS_B3 = 14, + MOTOR_2_POS_B2 = 15, + MOTOR_2_POS_B1 = 16, + MOTOR_2_POS_B0 = 17, + MOTOR_3_POS_B3 = 18, + MOTOR_3_POS_B2 = 19, + MOTOR_3_POS_B1 = 20, + MOTOR_3_POS_B0 = 21, + MOTOR_4_POS_B3 = 22, + MOTOR_4_POS_B2 = 23, + MOTOR_4_POS_B1 = 24, + MOTOR_4_POS_B0 = 25, + + // PWM Control Modes + PWM_1_CTRL = 26, + PWM_2_CTRL = 27, + PWM_3_CTRL = 28, + PWM_4_CTRL = 29, + + // Motor pwm speed + MOTOR_1_PWM_H = 30, + MOTOR_1_PWM_L = 31, + MOTOR_2_PWM_H = 32, + MOTOR_2_PWM_L = 33, + MOTOR_3_PWM_H = 34, + MOTOR_3_PWM_L = 35, + MOTOR_4_PWM_H = 36, + MOTOR_4_PWM_L = 37, + + // Servo goal position + SERVO_1_PWM_H = 38, + SERVO_1_PWM_L = 39, + SERVO_2_PWM_H = 40, + SERVO_2_PWM_L = 41, + SERVO_3_PWM_H = 42, + SERVO_3_PWM_L = 43, + SERVO_4_PWM_H = 44, + SERVO_4_PWM_L = 45, + SERVO_5_PWM_H = 46, + SERVO_5_PWM_L = 47, + SERVO_6_PWM_H = 48, + SERVO_6_PWM_L = 49, + SERVO_7_PWM_H = 50, + SERVO_7_PWM_L = 51, + SERVO_8_PWM_H = 52, + SERVO_8_PWM_L = 53, + + // IR Sensor value + IR_1_H = 54, + IR_1_L = 55, + IR_2_H = 56, + IR_2_L = 57, + IR_3_H = 58, + IR_3_L = 59, + IR_4_H = 60, + IR_4_L = 61, + IR_5_H = 62, + IR_5_L = 63, + IR_1_LED = 64, + IR_2_LED = 65, + IR_3_LED = 66, + IR_4_LED = 67, + IR_5_LED = 68, + + // Display registers + DISPLAY_LINE_1_C0 = 69, + DISPLAY_LINE_2_C0 = 85, + DISPLAY_LINE_3_C0 = 101, + DISPLAY_LINE_4_C0 = 117 + }; + +private: + Spi(); + + int spi_file_descriptor{}; + uint8_t tx_buffer[SPI_BUFFER_SIZE] = {0}; + uint8_t rx_buffer[SPI_BUFFER_SIZE] = {0}; + + void transfer(); + void clear_buffers(); + + uint8_t calculate_checksum(uint8_t* data, uint8_t length); +}; + + +#endif //COMPLIB_SERVER_SPI_HPP diff --git a/server/src/Spi.cpp b/server/src/Spi.cpp deleted file mode 100644 index 51676ef..0000000 --- a/server/src/Spi.cpp +++ /dev/null @@ -1 +0,0 @@ -#include "Spi.hpp" diff --git a/server/src/encoder.cpp b/server/src/encoder.cpp new file mode 100644 index 0000000..4bf1e1f --- /dev/null +++ b/server/src/encoder.cpp @@ -0,0 +1,15 @@ +#include "include/encoder.hpp" +#include "include/mathUtils.hpp" +#include "include/spi.hpp" + +std::vector Encoder::read_all() { + std::vector result; + uint8_t result_bytes[ENCODER_COUNT * 4] = {0}; + + Spi::getInstance().read_array(Spi::Register::MOTOR_1_POS_B3, ENCODER_COUNT * 4, result_bytes); + + for (int i = 0; i < ENCODER_COUNT; i++) { + result.push_back(mathUtils::int_from_bytes(result_bytes + i * ENCODER_COUNT, 4)); + } + return result; +} \ No newline at end of file diff --git a/server/src/main.cpp b/server/src/main.cpp index 2f092ca..119aec9 100644 --- a/server/src/main.cpp +++ b/server/src/main.cpp @@ -5,6 +5,14 @@ #include #include "include/messageBuilder.hpp" #include "include/errorMessages.hpp" +#include +#include + +#include "include/spi.hpp" +#include "include/reset.hpp" +#include "include/encoder.hpp" +#include "include/motor.hpp" +#include "include/robot.hpp" #define SOCKET_PATH "/tmp/compLib" #define BUFFER_SIZE 64 @@ -84,7 +92,55 @@ google::protobuf::Message *processMessage(const std::string &serializedMessage) } int main() { - socketServer(); + // socketServer(); + Reset::reset_robot(); + // Spi &spi = Spi::getInstance(); + // int version = spi.read(1, 1); + + // double count = 20000; + // double start_time = std::chrono::duration_cast(std::chrono::system_clock::now().time_since_epoch()).count(); + // for (int i{0}; i < count; i++){ + // spi.read(1, 1); + // } + // double end_time = std::chrono::duration_cast(std::chrono::system_clock::now().time_since_epoch()).count(); + + double power = 0; + // int port = 0; + // long double accumulator = 0; + // long double alpha = 0.2; + while (power < 100) { + power += 0.1; + Motor::power(0, power); + Motor::power(3, power); + + auto speeds = Motor::get_instance().get_speed(); + // spdlog::info("{:05.0f} {:05.0f}", speeds.at(0), speeds.at(3)); + + // auto start_values = Encoder::read_all(); + // spdlog::info("{}", start_values.at(3)); + // auto start_time = std::chrono::high_resolution_clock::now(); + usleep(1000.0 * (1000.0 / 150.0)); + // auto end_values = Encoder::read_all(); + + // auto elapsed_time = std::chrono::high_resolution_clock::now() - start_time; + // long double elapsed_ticks = end_values.at(port) - start_values.at(port); + + // long double elapsed_us = std::chrono::duration_cast( + // elapsed_time).count(); + // long double elapsed_s = std::chrono::duration_cast( + // elapsed_time).count() / 1000000.0; + + // long double vel_ticks_s = elapsed_ticks / elapsed_s; + // long double vel_rpm = vel_ticks_s * 60.0L / TICKS_PER_TURN; + + // accumulator = (alpha * vel_rpm) + (1.0 - alpha) * accumulator; + + // spdlog::info("{:05.0f} {:05.0f} {:05.0f} {:05.0f} {:05.0f}", elapsed_us, elapsed_ticks, vel_ticks_s, vel_rpm, accumulator); + } + + + // spdlog::info(count / (end_time - start_time) * 1000.0); + // spi.write(Spi::Register::DISPLAY_LINE_1_C0, 1, 66); return 0; } diff --git a/server/src/motor.cpp b/server/src/motor.cpp new file mode 100644 index 0000000..d12ea1d --- /dev/null +++ b/server/src/motor.cpp @@ -0,0 +1,95 @@ +#include +#include + +#include "include/motor.hpp" +#include "include/spi.hpp" +#include "include/robot.hpp" +#include "include/encoder.hpp" +#include + +Motor::Motor() { + reset_speed(); +} + +void Motor::power(uint8_t port, double percent) { + if (port >= MOTOR_COUNT) { + throw std::invalid_argument("Invalid motor port specified"); + } + if (abs(percent) > 100) { + throw std::invalid_argument("Invalid motor percent specified. Should be -100 <= percent <= 100"); + } + + Mode mode = Motor::Mode::COAST; + if (percent < 0) { + mode = Motor::Mode::BACKWARD; + } else if (percent > 0) { + mode = Motor::Mode::FORWARD; + } + + uint16_t pwm = abs(percent) * (MAX_MOTOR_SPEED / 100.0); + Motor::pwm(port, pwm, mode); +} + +void Motor::pwm(uint8_t port, uint16_t pwm, Mode mode) { + if (port >= MOTOR_COUNT) { + throw std::invalid_argument("Invalid motor port specified"); + } + + if (mode > Motor::Mode::BREAK) { + throw std::invalid_argument("Invalid motor mode specified"); + } + + if (port == 0) { + Spi::getInstance().write(Spi::Register::MOTOR_1_PWM_H, 2, pwm); + Spi::getInstance().write(Spi::Register::PWM_1_CTRL, 1, mode); + } else if (port == 1) { + Spi::getInstance().write(Spi::Register::MOTOR_2_PWM_H, 2, pwm); + Spi::getInstance().write(Spi::Register::PWM_2_CTRL, 1, mode); + } else if (port == 2) { + Spi::getInstance().write(Spi::Register::MOTOR_3_PWM_H, 2, pwm); + Spi::getInstance().write(Spi::Register::PWM_3_CTRL, 1, mode); + } else if (port == 3) { + Spi::getInstance().write(Spi::Register::MOTOR_4_PWM_H, 2, pwm); + Spi::getInstance().write(Spi::Register::PWM_4_CTRL, 1, mode); + } +} + +std::vector Motor::get_speed() { + auto current_time = std::chrono::high_resolution_clock::now(); + long double delta_seconds = std::chrono::duration_cast(current_time - last_time_read).count() / 1000000.0; + + last_time_read = current_time; + + if (delta_seconds > MOTOR_MAX_DELTA_TIME_S) { + reset_speed(); + usleep(MOTOR_FILTER_RESET_DELAY_US); + return Motor::get_speed(); + } + + std::vector current_ticks = Encoder::read_all(); + std::vector velocities_rpm; + for (int i = 0; i < MOTOR_COUNT; i++) { + long double delta_ticks = current_ticks.at(i) - last_encoder_values[i]; + + long double velocity_rpm = (delta_ticks / delta_seconds) * 60.0L / TICKS_PER_TURN; + filtered_speeds[i] = (long double) ((MOTOR_FILTER_ALPHA * velocity_rpm) + (1.0 - MOTOR_FILTER_ALPHA) * filtered_speeds[i]); + velocities_rpm.push_back(filtered_speeds[i]); + + last_encoder_values[i] = current_ticks.at(i); + spdlog::info("{} {}", i, current_ticks.at(i)); + } + + return velocities_rpm; +} + +void Motor::reset_speed() { + last_time_read = std::chrono::high_resolution_clock::now(); + + spdlog::info("Reeeeeset"); + + auto current_ticks = Encoder::read_all(); + for (int i = 0; i < MOTOR_COUNT; i++) { + filtered_speeds[i] = 0; + last_encoder_values[i] = current_ticks.at(i); + } +} \ No newline at end of file diff --git a/server/src/spi.cpp b/server/src/spi.cpp new file mode 100644 index 0000000..0cd8ee1 --- /dev/null +++ b/server/src/spi.cpp @@ -0,0 +1,103 @@ +#include //Needed for SPI port +#include //Needed for SPI port +#include //Needed for SPI port +#include //Needed for SPI port +#include +#include +#include + +#include "include/spi.hpp" +#include "include/mathUtils.hpp" + +void check_for_error(int error_code, std::string error_message) { + if (error_code < 0) { + spdlog::error(error_message); + exit(1); + } +} + +Spi::Spi() { + int spi_mode = SPI_MODE_0; + int spi_bits_per_workd = SPI_BITS_PER_WORD; + int spi_speed = SPI_SPEED; + + check_for_error(spi_file_descriptor = open("/dev/spidev1.2", O_RDWR), "Could not open SPI device"); + check_for_error(ioctl(spi_file_descriptor, SPI_IOC_WR_MODE, &spi_mode), "Could not set SPI_IOC_WR_MODE"); + check_for_error(ioctl(spi_file_descriptor, SPI_IOC_RD_MODE, &spi_mode), "Could not set SPI_IOC_RD_MODE"); + check_for_error(ioctl(spi_file_descriptor, SPI_IOC_WR_BITS_PER_WORD, &spi_bits_per_workd), "Could not set SPI_IOC_WR_BITS_PER_WORD"); + check_for_error(ioctl(spi_file_descriptor, SPI_IOC_RD_BITS_PER_WORD, &spi_bits_per_workd), "Could not set SPI_IOC_RD_BITS_PER_WORD"); + check_for_error(ioctl(spi_file_descriptor, SPI_IOC_WR_MAX_SPEED_HZ, &spi_speed), "Could not set SPI_IOC_WR_MAX_SPEED_HZ"); + check_for_error(ioctl(spi_file_descriptor, SPI_IOC_RD_MAX_SPEED_HZ, &spi_mode), "Could not set SPI_IOC_RD_MAX_SPEED_HZ"); +} + +void Spi::clear_buffers() { + memset(tx_buffer, 0, SPI_BUFFER_SIZE); + memset(rx_buffer, 0, SPI_BUFFER_SIZE); +} + +uint8_t Spi::calculate_checksum(uint8_t* data, uint8_t length) { + int sum = 0; + for (int i = 0; i < length; i++) { + sum += data[i]; + } + return sum % 256; +} + +int Spi::read(uint8_t reg, uint8_t length) { + uint8_t read_buffer[SPI_BUFFER_SIZE] = {0}; + read_array(reg, length, read_buffer); + + return mathUtils::int_from_bytes(read_buffer, length); +} + +void Spi::read_array(uint8_t reg, uint8_t length, uint8_t* data) { + clear_buffers(); + tx_buffer[0] = 0; + tx_buffer[1] = reg; + tx_buffer[2] = length; + + transfer(); + + uint8_t checksum = calculate_checksum(rx_buffer, length + 3); + if (checksum != rx_buffer[length + 3]) { + spdlog::error("Received invalid checksum {}. Should be {}", rx_buffer[length +3], checksum); + } + + memcpy(data, rx_buffer + 2, length); +} + +void Spi::write(uint8_t reg, uint8_t length, int value) { + uint8_t write_buffer[SPI_BUFFER_SIZE] = {0}; + mathUtils::bytes_from_int(value, length, write_buffer); + write_array(reg, length, write_buffer); +} + +void Spi::write_array(uint8_t reg, uint8_t length, const uint8_t* data) { + clear_buffers(); + tx_buffer[0] = 1; + tx_buffer[1] = reg; + tx_buffer[2] = length; + memcpy(tx_buffer + 3, data, length); + + transfer(); +} + +void Spi::transfer() { + struct spi_ioc_transfer spi; + memset(&spi, 0, sizeof(spi)); + + spi.tx_buf = (unsigned long) tx_buffer; + spi.rx_buf = (unsigned long) rx_buffer; + spi.len = SPI_BUFFER_SIZE; + spi.delay_usecs = 0; + spi.speed_hz = SPI_SPEED; + spi.bits_per_word = SPI_BITS_PER_WORD; + spi.cs_change = 0; + + check_for_error(ioctl(spi_file_descriptor, SPI_IOC_MESSAGE(1), &spi), "Problem transmitting spi data"); + check_for_error(ioctl(spi_file_descriptor, SPI_IOC_MESSAGE(1), &spi), "Problem transmitting spi data"); + + if (tx_buffer[1] != rx_buffer[1]) { + spdlog::error("SPI error during read/write of register {}. Got reg {} instead!", tx_buffer[1], rx_buffer[1]); + } +} From 1a488065ac1cd229e1b738261eacde4a23afac7e Mon Sep 17 00:00:00 2001 From: root Date: Mon, 21 Mar 2022 18:51:16 +0000 Subject: [PATCH 158/246] Add get speed function to motor class --- server/src/main.cpp | 60 +++++++++++++++++++++++--------------------- server/src/motor.cpp | 3 --- 2 files changed, 31 insertions(+), 32 deletions(-) diff --git a/server/src/main.cpp b/server/src/main.cpp index 119aec9..6930681 100644 --- a/server/src/main.cpp +++ b/server/src/main.cpp @@ -7,6 +7,7 @@ #include "include/errorMessages.hpp" #include #include +#include #include "include/spi.hpp" #include "include/reset.hpp" @@ -88,12 +89,12 @@ google::protobuf::Message *processMessage(const std::string &serializedMessage) close(clientFileDescriptor); } - } int main() { // socketServer(); Reset::reset_robot(); + spdlog::set_pattern("%H:%M:%S.%e %^%-8l%$: %v"); // Spi &spi = Spi::getInstance(); // int version = spi.read(1, 1); @@ -104,43 +105,44 @@ int main() { // } // double end_time = std::chrono::duration_cast(std::chrono::system_clock::now().time_since_epoch()).count(); - double power = 0; + double kp = 0.5; + double ki = 5.0; + double kd = 0.025; + double setpoint = 0; + double errror_sum = 0; + double last_error = 0; // int port = 0; // long double accumulator = 0; // long double alpha = 0.2; - while (power < 100) { - power += 0.1; - Motor::power(0, power); - Motor::power(3, power); + auto last_time = std::chrono::high_resolution_clock::now(); + auto start_time = last_time; + int i = 0; + while (1 == 1) { + setpoint += 0.05; + auto current_time = std::chrono::high_resolution_clock::now(); + long double delta_seconds = std::chrono::duration_cast(current_time - last_time).count() / 1000000.0; + long double delta_seconds_total = std::chrono::duration_cast(current_time - start_time).count() / 1000000.0; + + last_time = current_time; auto speeds = Motor::get_instance().get_speed(); - // spdlog::info("{:05.0f} {:05.0f}", speeds.at(0), speeds.at(3)); + double e = setpoint - speeds.at(0); + errror_sum += e * delta_seconds; + double error_diff = (e - last_error) / delta_seconds; + last_error = e; + double u = kp * e + errror_sum * ki + error_diff * kd; + + Motor::power(0, std::min(std::max(-100.0, u), 100.0)); + + spdlog::info("{} {:05.0f} {:05.0f}", delta_seconds_total, setpoint, speeds.at(0)); - // auto start_values = Encoder::read_all(); - // spdlog::info("{}", start_values.at(3)); - // auto start_time = std::chrono::high_resolution_clock::now(); usleep(1000.0 * (1000.0 / 150.0)); - // auto end_values = Encoder::read_all(); - - // auto elapsed_time = std::chrono::high_resolution_clock::now() - start_time; - // long double elapsed_ticks = end_values.at(port) - start_values.at(port); - // long double elapsed_us = std::chrono::duration_cast( - // elapsed_time).count(); - // long double elapsed_s = std::chrono::duration_cast( - // elapsed_time).count() / 1000000.0; - - // long double vel_ticks_s = elapsed_ticks / elapsed_s; - // long double vel_rpm = vel_ticks_s * 60.0L / TICKS_PER_TURN; - - // accumulator = (alpha * vel_rpm) + (1.0 - alpha) * accumulator; - - // spdlog::info("{:05.0f} {:05.0f} {:05.0f} {:05.0f} {:05.0f}", elapsed_us, elapsed_ticks, vel_ticks_s, vel_rpm, accumulator); + i += 1; + // if (i % 1000 == 0) { + // setpoint *= -1; + // } } - - - // spdlog::info(count / (end_time - start_time) * 1000.0); - // spi.write(Spi::Register::DISPLAY_LINE_1_C0, 1, 66); return 0; } diff --git a/server/src/motor.cpp b/server/src/motor.cpp index d12ea1d..5ea9ec6 100644 --- a/server/src/motor.cpp +++ b/server/src/motor.cpp @@ -76,7 +76,6 @@ std::vector Motor::get_speed() { velocities_rpm.push_back(filtered_speeds[i]); last_encoder_values[i] = current_ticks.at(i); - spdlog::info("{} {}", i, current_ticks.at(i)); } return velocities_rpm; @@ -85,8 +84,6 @@ std::vector Motor::get_speed() { void Motor::reset_speed() { last_time_read = std::chrono::high_resolution_clock::now(); - spdlog::info("Reeeeeset"); - auto current_ticks = Encoder::read_all(); for (int i = 0; i < MOTOR_COUNT; i++) { filtered_speeds[i] = 0; From 5d8df998aeb24155a7d1b77722b9fe8a98489cfd Mon Sep 17 00:00:00 2001 From: root Date: Mon, 21 Mar 2022 22:37:13 +0000 Subject: [PATCH 159/246] Add motor speed control --- server/include/motor.hpp | 23 ++++++++-- server/include/robot.hpp | 5 ++ server/include/spi.hpp | 2 +- server/src/main.cpp | 53 +++++++++++---------- server/src/motor.cpp | 99 ++++++++++++++++++++++++++++++++++------ 5 files changed, 138 insertions(+), 44 deletions(-) diff --git a/server/include/motor.hpp b/server/include/motor.hpp index 7d16352..c728fb1 100644 --- a/server/include/motor.hpp +++ b/server/include/motor.hpp @@ -4,6 +4,7 @@ #include #include #include +#include #include "include/robot.hpp" @@ -18,6 +19,11 @@ public: NONE = 5 }; + enum Control : uint8_t { + POWER = 0, + SPEED = 1 + }; + static Motor& get_instance() { static Motor instance; @@ -27,18 +33,27 @@ public: Motor(Motor const&) = delete; void operator=(Motor const&) = delete; - static void power(uint8_t port, double percent); - static void pwm(uint8_t port, uint16_t pwm, Mode mode); + void set_speed(uint8_t port, double rpm); + void set_power(uint8_t port, double percent); + static void set_pwm(uint8_t port, uint16_t pwm, Mode mode); std::vector get_speed(); + private: Motor(); + // Speed calculation and speed filter int32_t last_encoder_values[MOTOR_COUNT] = {0}; double filtered_speeds[MOTOR_COUNT] = {0}; - std::chrono::system_clock::time_point last_time_read; - + std::chrono::system_clock::time_point last_time_encoders_read; + + // Speed control + double speed_targets[MOTOR_COUNT] = {0}; + double motor_control_modes[MOTOR_COUNT] = {0}; + std::thread speed_control_thread; + void reset_speed(); + void speed_control_loop(); }; #endif // COMPLIB_SERVER_MOTOR_HPP \ No newline at end of file diff --git a/server/include/robot.hpp b/server/include/robot.hpp index ae8c5b9..9fea841 100644 --- a/server/include/robot.hpp +++ b/server/include/robot.hpp @@ -15,6 +15,11 @@ #define MOTOR_MAX_DELTA_TIME_S 0.1L #define MOTOR_FILTER_ALPHA 0.05L #define MOTOR_FILTER_RESET_DELAY_US (1000 * 10) +#define MOTOR_SPEED_CONTROL_RESET_DELAY_S 0.01L +#define MOTOR_SPEED_CONTROL_LOOP_HZ 150 +#define MOTOR_SPEED_CONTROL_KP 0.5L +#define MOTOR_SPEED_CONTROL_KI 5.0L +#define MOTOR_SPEED_CONTROL_KD 0.025L #define LEFT_PORT 3 #define RIGHT_PORT 0 diff --git a/server/include/spi.hpp b/server/include/spi.hpp index d7526d6..b5883b7 100644 --- a/server/include/spi.hpp +++ b/server/include/spi.hpp @@ -7,7 +7,7 @@ //SPI_MODE_3 (1,1) CPOL = 1, CPHA = 1, Clock idle high, data is clocked in on rising, edge output data (change) on falling edge #define SPI_BUFFER_SIZE 20 -#define SPI_SPEED 4000000 // 4 MHz +#define SPI_SPEED 2000000 // 2 MHz #define SPI_BITS_PER_WORD 8 class Spi { diff --git a/server/src/main.cpp b/server/src/main.cpp index 6930681..f624249 100644 --- a/server/src/main.cpp +++ b/server/src/main.cpp @@ -105,43 +105,46 @@ int main() { // } // double end_time = std::chrono::duration_cast(std::chrono::system_clock::now().time_since_epoch()).count(); - double kp = 0.5; - double ki = 5.0; - double kd = 0.025; - double setpoint = 0; - double errror_sum = 0; - double last_error = 0; + // double kp = 0.5; + // double ki = 5.0; + // double kd = 0.025; + double setpoint = 50; + // double errror_sum = 0; + // double last_error = 0; // int port = 0; // long double accumulator = 0; // long double alpha = 0.2; - auto last_time = std::chrono::high_resolution_clock::now(); - auto start_time = last_time; - int i = 0; + // auto last_time = std::chrono::high_resolution_clock::now(); + // auto start_time = last_time; + // int i = 0; while (1 == 1) { - setpoint += 0.05; - auto current_time = std::chrono::high_resolution_clock::now(); - long double delta_seconds = std::chrono::duration_cast(current_time - last_time).count() / 1000000.0; - long double delta_seconds_total = std::chrono::duration_cast(current_time - start_time).count() / 1000000.0; + setpoint += 0.5; + // auto current_time = std::chrono::high_resolution_clock::now(); + // long double delta_seconds = std::chrono::duration_cast(current_time - last_time).count() / 1000000.0; + // long double delta_seconds_total = std::chrono::duration_cast(current_time - start_time).count() / 1000000.0; - last_time = current_time; + // last_time = current_time; - auto speeds = Motor::get_instance().get_speed(); - double e = setpoint - speeds.at(0); - errror_sum += e * delta_seconds; - double error_diff = (e - last_error) / delta_seconds; - last_error = e; - double u = kp * e + errror_sum * ki + error_diff * kd; + // auto speeds = Motor::get_instance().get_speed(); + // double e = setpoint - speeds.at(0); + // errror_sum += e * delta_seconds; + // double error_diff = (e - last_error) / delta_seconds; + // last_error = e; + // double u = kp * e + errror_sum * ki + error_diff * kd; - Motor::power(0, std::min(std::max(-100.0, u), 100.0)); + // Motor::power(0, std::min(std::max(-100.0, u), 100.0)); - spdlog::info("{} {:05.0f} {:05.0f}", delta_seconds_total, setpoint, speeds.at(0)); + // spdlog::info("{} {:05.0f} {:05.0f}", delta_seconds_total, setpoint, speeds.at(0)); - usleep(1000.0 * (1000.0 / 150.0)); - - i += 1; + usleep(1000.0 * (1000.0 / 10.0)); + Motor::get_instance().set_speed(0, setpoint); + Motor::get_instance().set_speed(3, -setpoint); + // i += 1; // if (i % 1000 == 0) { // setpoint *= -1; // } + auto speeds = Motor::get_instance().get_speed(); + spdlog::info("Speed: {} {} Target: {}", speeds.at(0), speeds.at(3), setpoint); } return 0; } diff --git a/server/src/motor.cpp b/server/src/motor.cpp index 5ea9ec6..3e9319f 100644 --- a/server/src/motor.cpp +++ b/server/src/motor.cpp @@ -1,5 +1,6 @@ #include #include +#include #include "include/motor.hpp" #include "include/spi.hpp" @@ -7,18 +8,34 @@ #include "include/encoder.hpp" #include -Motor::Motor() { - reset_speed(); -} - -void Motor::power(uint8_t port, double percent) { +void check_port(uint8_t port) { if (port >= MOTOR_COUNT) { throw std::invalid_argument("Invalid motor port specified"); } +} + +Motor::Motor() { + reset_speed(); + + speed_control_thread = std::thread(&Motor::speed_control_loop, this); + speed_control_thread.detach(); +} + +void Motor::set_speed(uint8_t port, double rpm) { + check_port(port); + + speed_targets[port] = rpm; + motor_control_modes[port] = Motor::Control::SPEED; +} + +void Motor::set_power(uint8_t port, double percent) { + check_port(port); if (abs(percent) > 100) { throw std::invalid_argument("Invalid motor percent specified. Should be -100 <= percent <= 100"); } + motor_control_modes[port] = Motor::Control::POWER; + Mode mode = Motor::Mode::COAST; if (percent < 0) { mode = Motor::Mode::BACKWARD; @@ -27,14 +44,11 @@ void Motor::power(uint8_t port, double percent) { } uint16_t pwm = abs(percent) * (MAX_MOTOR_SPEED / 100.0); - Motor::pwm(port, pwm, mode); + Motor::set_pwm(port, pwm, mode); } -void Motor::pwm(uint8_t port, uint16_t pwm, Mode mode) { - if (port >= MOTOR_COUNT) { - throw std::invalid_argument("Invalid motor port specified"); - } - +void Motor::set_pwm(uint8_t port, uint16_t pwm, Mode mode) { + check_port(port); if (mode > Motor::Mode::BREAK) { throw std::invalid_argument("Invalid motor mode specified"); } @@ -56,9 +70,9 @@ void Motor::pwm(uint8_t port, uint16_t pwm, Mode mode) { std::vector Motor::get_speed() { auto current_time = std::chrono::high_resolution_clock::now(); - long double delta_seconds = std::chrono::duration_cast(current_time - last_time_read).count() / 1000000.0; + long double delta_seconds = std::chrono::duration_cast(current_time - last_time_encoders_read).count() / 1000000.0; - last_time_read = current_time; + last_time_encoders_read = current_time; if (delta_seconds > MOTOR_MAX_DELTA_TIME_S) { reset_speed(); @@ -82,11 +96,68 @@ std::vector Motor::get_speed() { } void Motor::reset_speed() { - last_time_read = std::chrono::high_resolution_clock::now(); + last_time_encoders_read = std::chrono::high_resolution_clock::now(); auto current_ticks = Encoder::read_all(); for (int i = 0; i < MOTOR_COUNT; i++) { filtered_speeds[i] = 0; last_encoder_values[i] = current_ticks.at(i); } +} + +void Motor::speed_control_loop() { + double errror_sums[MOTOR_COUNT] = {0}; + double last_errors[MOTOR_COUNT] = {0}; + + auto last_run = std::chrono::high_resolution_clock::now(); + while (1 == 1) { + std::this_thread::sleep_for(std::chrono::milliseconds(1000 / MOTOR_SPEED_CONTROL_LOOP_HZ)); + + bool should_control_speed = false; + for (int i = 0; i < MOTOR_COUNT; i++) { + if (motor_control_modes[i] == Motor::Control::SPEED) { + should_control_speed = true; + } + } + + if (!should_control_speed) { + continue; + } + + auto current_time = std::chrono::high_resolution_clock::now(); + long double delta_seconds = std::chrono::duration_cast(current_time - last_run).count() / 1000000.0; + last_run = current_time; + + if (delta_seconds > MOTOR_SPEED_CONTROL_RESET_DELAY_S) { + std::fill_n(errror_sums, MOTOR_COUNT, 0); + std::fill_n(last_errors, MOTOR_COUNT, 0); + continue; + } + + auto speeds = Motor::get_instance().get_speed(); + for (int i = 0; i < MOTOR_COUNT; i++) { + if (motor_control_modes[i] == Motor::Control::SPEED) { + // P + double error = speed_targets[i] - speeds.at(i); + // I + errror_sums[i] += error * delta_seconds; + // D + if (last_errors[i] == 0) { // Needed to prevent spike on first loop iteration + last_errors[i] = error; + } + double error_diff = (error - last_errors[i]) / delta_seconds; + + double power = MOTOR_SPEED_CONTROL_KP * error + + errror_sums[i] * MOTOR_SPEED_CONTROL_KI + + error_diff * MOTOR_SPEED_CONTROL_KD; + + set_power(i, std::min(std::max(-100.0, power), 100.0)); + // spdlog::info("{:03.2f} {:03.2f} {:03.2f} {:03.2f} {:03.2f} {:03.2f} {:03.2f}", + // speed_targets[i], speeds.at(i), error, delta_seconds, last_errors[i], error_diff, power); + + last_errors[i] = error; + } + } + + } } \ No newline at end of file From 1fc400c695184ce0bc5ee8bc3ed91e281a3043f6 Mon Sep 17 00:00:00 2001 From: root Date: Sat, 2 Apr 2022 22:49:04 +0100 Subject: [PATCH 160/246] Rework PID --- server/CMakeLists.txt | 2 + server/include/motor.hpp | 2 + server/include/pid.hpp | 30 ++++++++++++ server/include/spi.hpp | 16 ++++++- server/src/encoder.cpp | 2 +- server/src/main.cpp | 18 +++++++- server/src/motor.cpp | 98 ++++++++++++++++++---------------------- server/src/pid.cpp | 64 ++++++++++++++++++++++++++ server/src/spi.cpp | 10 ++++ 9 files changed, 186 insertions(+), 56 deletions(-) create mode 100644 server/include/pid.hpp create mode 100644 server/src/pid.cpp diff --git a/server/CMakeLists.txt b/server/CMakeLists.txt index d6520a1..00c5bb0 100644 --- a/server/CMakeLists.txt +++ b/server/CMakeLists.txt @@ -27,6 +27,7 @@ set(SRC_FILES src/spi.cpp src/encoder.cpp src/motor.cpp + src/pid.cpp ) set(HDR_FILES @@ -38,6 +39,7 @@ set(HDR_FILES include/encoder.hpp include/robot.hpp include/motor.hpp + include/pid.hpp ) include_directories(third_party/asio) diff --git a/server/include/motor.hpp b/server/include/motor.hpp index c728fb1..7ee67b9 100644 --- a/server/include/motor.hpp +++ b/server/include/motor.hpp @@ -54,6 +54,8 @@ private: void reset_speed(); void speed_control_loop(); + + void _set_power(uint8_t port, double percent); }; #endif // COMPLIB_SERVER_MOTOR_HPP \ No newline at end of file diff --git a/server/include/pid.hpp b/server/include/pid.hpp new file mode 100644 index 0000000..862376b --- /dev/null +++ b/server/include/pid.hpp @@ -0,0 +1,30 @@ +#ifndef COMPLIB_SERVER_PID_HPP +#define COMPLIB_SERVER_PID_HPP + +#include + +#define PID_RESET_DELAY_S 0.1L + +class PID +{ +public: + PID(float P, float I, float D, float ramp, float limit); + ~PID() = default; + + float operator() (float setpoint, float process_variable); + void reset(); + + float P = 1; + float I = 0; + float D = 0; + float setpoint_ramp = 0; + float limit = 0; + +protected: + float error_prev = 0; + float setpoint_prev = 0; + float integral_prev = 0; + std::chrono::system_clock::time_point timestamp_prev = std::chrono::high_resolution_clock::now(); +}; + +#endif // COMPLIB_SERVER_PID_HPP \ No newline at end of file diff --git a/server/include/spi.hpp b/server/include/spi.hpp index b5883b7..c48e5a4 100644 --- a/server/include/spi.hpp +++ b/server/include/spi.hpp @@ -1,6 +1,8 @@ #ifndef COMPLIB_SERVER_SPI_HPP #define COMPLIB_SERVER_SPI_HPP +#include + //SPI_MODE_0 (0,0) CPOL = 0, CPHA = 0, Clock idle low, data is clocked in on rising edge, output data (change) on falling edge //SPI_MODE_1 (0,1) CPOL = 0, CPHA = 1, Clock idle low, data is clocked in on falling edge, output data (change) on rising edge //SPI_MODE_2 (1,0) CPOL = 1, CPHA = 0, Clock idle high, data is clocked in on falling edge, output data (change) on rising edge @@ -106,7 +108,17 @@ public: DISPLAY_LINE_1_C0 = 69, DISPLAY_LINE_2_C0 = 85, DISPLAY_LINE_3_C0 = 101, - DISPLAY_LINE_4_C0 = 117 + DISPLAY_LINE_4_C0 = 117, + + // Motor encoder velocities + MOTOR_1_VEL_H = 118, + MOTOR_1_VEL_L = 119, + MOTOR_2_VEL_H = 120, + MOTOR_2_VEL_L = 121, + MOTOR_3_VEL_H = 122, + MOTOR_3_VEL_L = 123, + MOTOR_4_VEL_H = 124, + MOTOR_4_VEL_L = 125 }; private: @@ -116,6 +128,8 @@ private: uint8_t tx_buffer[SPI_BUFFER_SIZE] = {0}; uint8_t rx_buffer[SPI_BUFFER_SIZE] = {0}; + std::recursive_mutex spi_mutex; + void transfer(); void clear_buffers(); diff --git a/server/src/encoder.cpp b/server/src/encoder.cpp index 4bf1e1f..d443fad 100644 --- a/server/src/encoder.cpp +++ b/server/src/encoder.cpp @@ -9,7 +9,7 @@ std::vector Encoder::read_all() { Spi::getInstance().read_array(Spi::Register::MOTOR_1_POS_B3, ENCODER_COUNT * 4, result_bytes); for (int i = 0; i < ENCODER_COUNT; i++) { - result.push_back(mathUtils::int_from_bytes(result_bytes + i * ENCODER_COUNT, 4)); + result.push_back(mathUtils::int_from_bytes(result_bytes + i * 4, 4)); } return result; } \ No newline at end of file diff --git a/server/src/main.cpp b/server/src/main.cpp index f624249..8c159e6 100644 --- a/server/src/main.cpp +++ b/server/src/main.cpp @@ -3,6 +3,7 @@ #include #include #include +#include "include/mathUtils.hpp" #include "include/messageBuilder.hpp" #include "include/errorMessages.hpp" #include @@ -108,7 +109,7 @@ int main() { // double kp = 0.5; // double ki = 5.0; // double kd = 0.025; - double setpoint = 50; + double setpoint = -50; // double errror_sum = 0; // double last_error = 0; // int port = 0; @@ -145,6 +146,21 @@ int main() { // } auto speeds = Motor::get_instance().get_speed(); spdlog::info("Speed: {} {} Target: {}", speeds.at(0), speeds.at(3), setpoint); + + // auto current_time = std::chrono::high_resolution_clock::now(); + // long double delta_seconds = std::chrono::duration_cast(current_time - last_time).count() / 1000000.0; + // last_time = current_time; + + // uint8_t result_bytes[2] = {0}; + // Spi::getInstance().read_array(Spi::Register::MOTOR_1_VEL_H, 2, result_bytes); + // int16_t tps = mathUtils::int_from_bytes(result_bytes, 2); + // std::vector current_ticks = Encoder::read_all(); + + // long double delta_ticks = current_ticks.at(0) - last_ticks; + + // spdlog::info("{} {}", tps, delta_ticks / delta_seconds); + + // last_ticks = current_ticks.at(0); } return 0; } diff --git a/server/src/motor.cpp b/server/src/motor.cpp index 3e9319f..44f4ccb 100644 --- a/server/src/motor.cpp +++ b/server/src/motor.cpp @@ -1,12 +1,14 @@ #include #include #include +#include #include "include/motor.hpp" #include "include/spi.hpp" #include "include/robot.hpp" #include "include/encoder.hpp" -#include +#include "include/mathUtils.hpp" +#include "include/pid.hpp" void check_port(uint8_t port) { if (port >= MOTOR_COUNT) { @@ -29,13 +31,16 @@ void Motor::set_speed(uint8_t port, double rpm) { } void Motor::set_power(uint8_t port, double percent) { + motor_control_modes[port] = Motor::Control::POWER; + _set_power(port, percent); +} + +void Motor::_set_power(uint8_t port, double percent) { check_port(port); if (abs(percent) > 100) { throw std::invalid_argument("Invalid motor percent specified. Should be -100 <= percent <= 100"); } - motor_control_modes[port] = Motor::Control::POWER; - Mode mode = Motor::Mode::COAST; if (percent < 0) { mode = Motor::Mode::BACKWARD; @@ -69,27 +74,36 @@ void Motor::set_pwm(uint8_t port, uint16_t pwm, Mode mode) { } std::vector Motor::get_speed() { - auto current_time = std::chrono::high_resolution_clock::now(); - long double delta_seconds = std::chrono::duration_cast(current_time - last_time_encoders_read).count() / 1000000.0; + // auto current_time = std::chrono::high_resolution_clock::now(); + // long double delta_seconds = std::chrono::duration_cast(current_time - last_time_encoders_read).count() / 1000000.0; - last_time_encoders_read = current_time; + // last_time_encoders_read = current_time; - if (delta_seconds > MOTOR_MAX_DELTA_TIME_S) { - reset_speed(); - usleep(MOTOR_FILTER_RESET_DELAY_US); - return Motor::get_speed(); - } + // if (delta_seconds > MOTOR_MAX_DELTA_TIME_S) { + // reset_speed(); + // usleep(MOTOR_FILTER_RESET_DELAY_US); + // return Motor::get_speed(); + // } + + // std::vector current_ticks = Encoder::read_all(); + // std::vector velocities_rpm; + // for (int i = 0; i < MOTOR_COUNT; i++) { + // long double delta_ticks = current_ticks.at(i) - last_encoder_values[i]; + + // long double velocity_rpm = (delta_ticks / delta_seconds) * 60.0L / TICKS_PER_TURN; + // filtered_speeds[i] = (long double) ((MOTOR_FILTER_ALPHA * velocity_rpm) + (1.0 - MOTOR_FILTER_ALPHA) * filtered_speeds[i]); + // velocities_rpm.push_back(filtered_speeds[i]); + + // last_encoder_values[i] = current_ticks.at(i); + // } - std::vector current_ticks = Encoder::read_all(); std::vector velocities_rpm; + uint8_t result_bytes[MOTOR_COUNT * 2] = {0}; + + Spi::getInstance().read_array(Spi::Register::MOTOR_1_VEL_H, MOTOR_COUNT * 2, result_bytes); for (int i = 0; i < MOTOR_COUNT; i++) { - long double delta_ticks = current_ticks.at(i) - last_encoder_values[i]; - - long double velocity_rpm = (delta_ticks / delta_seconds) * 60.0L / TICKS_PER_TURN; - filtered_speeds[i] = (long double) ((MOTOR_FILTER_ALPHA * velocity_rpm) + (1.0 - MOTOR_FILTER_ALPHA) * filtered_speeds[i]); - velocities_rpm.push_back(filtered_speeds[i]); - - last_encoder_values[i] = current_ticks.at(i); + int16_t ticks_per_second = mathUtils::int_from_bytes(result_bytes + i * 2, 2); + velocities_rpm.push_back(ticks_per_second * 60.0L / TICKS_PER_TURN); } return velocities_rpm; @@ -106,12 +120,17 @@ void Motor::reset_speed() { } void Motor::speed_control_loop() { - double errror_sums[MOTOR_COUNT] = {0}; - double last_errors[MOTOR_COUNT] = {0}; + std::vector pids; + + for (int i = 0; i < MOTOR_COUNT; i++) { + pids.push_back( + PID{MOTOR_SPEED_CONTROL_KP, MOTOR_SPEED_CONTROL_KI, MOTOR_SPEED_CONTROL_KD, 100.0, 100.0} + ); + } - auto last_run = std::chrono::high_resolution_clock::now(); while (1 == 1) { - std::this_thread::sleep_for(std::chrono::milliseconds(1000 / MOTOR_SPEED_CONTROL_LOOP_HZ)); + float sleep_time = std::round(1000.0 / MOTOR_SPEED_CONTROL_LOOP_HZ); + std::this_thread::sleep_for(std::chrono::microseconds((int) sleep_time * 1000)); bool should_control_speed = false; for (int i = 0; i < MOTOR_COUNT; i++) { @@ -121,43 +140,16 @@ void Motor::speed_control_loop() { } if (!should_control_speed) { - continue; - } - - auto current_time = std::chrono::high_resolution_clock::now(); - long double delta_seconds = std::chrono::duration_cast(current_time - last_run).count() / 1000000.0; - last_run = current_time; - - if (delta_seconds > MOTOR_SPEED_CONTROL_RESET_DELAY_S) { - std::fill_n(errror_sums, MOTOR_COUNT, 0); - std::fill_n(last_errors, MOTOR_COUNT, 0); + spdlog::info("continue"); continue; } auto speeds = Motor::get_instance().get_speed(); for (int i = 0; i < MOTOR_COUNT; i++) { if (motor_control_modes[i] == Motor::Control::SPEED) { - // P - double error = speed_targets[i] - speeds.at(i); - // I - errror_sums[i] += error * delta_seconds; - // D - if (last_errors[i] == 0) { // Needed to prevent spike on first loop iteration - last_errors[i] = error; - } - double error_diff = (error - last_errors[i]) / delta_seconds; - - double power = MOTOR_SPEED_CONTROL_KP * error + - errror_sums[i] * MOTOR_SPEED_CONTROL_KI + - error_diff * MOTOR_SPEED_CONTROL_KD; - - set_power(i, std::min(std::max(-100.0, power), 100.0)); - // spdlog::info("{:03.2f} {:03.2f} {:03.2f} {:03.2f} {:03.2f} {:03.2f} {:03.2f}", - // speed_targets[i], speeds.at(i), error, delta_seconds, last_errors[i], error_diff, power); - - last_errors[i] = error; + float power = pids.at(i)(speed_targets[i], speeds.at(i)); + _set_power(i, power); } } - } } \ No newline at end of file diff --git a/server/src/pid.cpp b/server/src/pid.cpp new file mode 100644 index 0000000..f795922 --- /dev/null +++ b/server/src/pid.cpp @@ -0,0 +1,64 @@ +#include "include/pid.hpp" +#include +#include +#include + +PID::PID(float P, float I, float D, float ramp, float limit) + : P(P) + , I(I) + , D(D) + , setpoint_ramp(ramp) + , limit(limit) + , error_prev(0.0f) + , setpoint_prev(0.0f) + , integral_prev(0.0f) +{ + timestamp_prev = std::chrono::high_resolution_clock::now(); +} + +float PID::operator() (float setpoint, float process_variable){ + // calculate the time from the last call + auto timestamp_now = std::chrono::high_resolution_clock::now(); + long double delta_seconds = std::chrono::duration_cast(timestamp_now - timestamp_prev).count() / 1000000.0; + + if (delta_seconds > PID_RESET_DELAY_S) { + reset(); + delta_seconds = std::chrono::duration_cast(timestamp_now - timestamp_prev).count() / 1000000.0; + } + + if(setpoint_ramp > 0){ + float setpoint_rate = (setpoint - setpoint_prev) / delta_seconds; + if (setpoint_rate > setpoint_ramp) { + setpoint = setpoint_prev + setpoint_ramp * delta_seconds; + } else if (setpoint_rate < -setpoint_ramp) { + setpoint = setpoint_prev - setpoint_ramp * delta_seconds; + } + } + + float error = setpoint - process_variable; + + float proportional = P * error; + // Tustin transform of the integral part + float integral = integral_prev + I * delta_seconds * 0.5f * (error + error_prev); + float derivative = D * ((error - error_prev) / delta_seconds); + + float output = proportional + integral + derivative; + + // antiwindup - limit the output variable + output = std::min(std::max(-limit, output), limit); + // spdlog::info("E{} P{} I{} D{} O{} EP{} DS{}", error, proportional, integral, derivative, output, error_prev, delta_seconds); + + integral_prev = integral; + setpoint_prev = setpoint; + error_prev = error; + timestamp_prev = timestamp_now; + return output; +} + +void PID::reset() { + spdlog::info("RESET"); + integral_prev = 0; + setpoint_prev = 0; + error_prev = 0; + timestamp_prev = std::chrono::high_resolution_clock::now(); +} \ No newline at end of file diff --git a/server/src/spi.cpp b/server/src/spi.cpp index 0cd8ee1..9314905 100644 --- a/server/src/spi.cpp +++ b/server/src/spi.cpp @@ -44,6 +44,8 @@ uint8_t Spi::calculate_checksum(uint8_t* data, uint8_t length) { } int Spi::read(uint8_t reg, uint8_t length) { + std::lock_guard lock(spi_mutex); + uint8_t read_buffer[SPI_BUFFER_SIZE] = {0}; read_array(reg, length, read_buffer); @@ -51,6 +53,8 @@ int Spi::read(uint8_t reg, uint8_t length) { } void Spi::read_array(uint8_t reg, uint8_t length, uint8_t* data) { + std::lock_guard lock(spi_mutex); + clear_buffers(); tx_buffer[0] = 0; tx_buffer[1] = reg; @@ -67,12 +71,16 @@ void Spi::read_array(uint8_t reg, uint8_t length, uint8_t* data) { } void Spi::write(uint8_t reg, uint8_t length, int value) { + std::lock_guard lock(spi_mutex); + uint8_t write_buffer[SPI_BUFFER_SIZE] = {0}; mathUtils::bytes_from_int(value, length, write_buffer); write_array(reg, length, write_buffer); } void Spi::write_array(uint8_t reg, uint8_t length, const uint8_t* data) { + std::lock_guard lock(spi_mutex); + clear_buffers(); tx_buffer[0] = 1; tx_buffer[1] = reg; @@ -83,6 +91,8 @@ void Spi::write_array(uint8_t reg, uint8_t length, const uint8_t* data) { } void Spi::transfer() { + std::lock_guard lock(spi_mutex); + struct spi_ioc_transfer spi; memset(&spi, 0, sizeof(spi)); From 4d5c26d10c86c8b41e94641a1781b399af6430e4 Mon Sep 17 00:00:00 2001 From: root Date: Mon, 16 May 2022 22:47:22 +0100 Subject: [PATCH 161/246] save! --- server/include/encoder.hpp | 19 ++++++++++++++++++- server/src/encoder.cpp | 21 ++++++++++++++++++++- server/src/main.cpp | 14 +++++++------- server/src/motor.cpp | 2 +- 4 files changed, 46 insertions(+), 10 deletions(-) diff --git a/server/include/encoder.hpp b/server/include/encoder.hpp index e6be5c0..eadf62b 100644 --- a/server/include/encoder.hpp +++ b/server/include/encoder.hpp @@ -3,12 +3,29 @@ #include #include +#include #define ENCODER_COUNT 4 +#define ENCODER_CACHE_DURATION_MS 4 // 200 HZ class Encoder { public: - static std::vector read_all(); + std::vector read_all(); + std::vector read_all_cached(); + + static Encoder& get_instance() + { + static Encoder instance; + return instance; + } + + Encoder(Encoder const&) = delete; + void operator=(Encoder const&) = delete; + +private: + Encoder(); + int32_t encoder_cache[ENCODER_COUNT] = {0}; + std::chrono::time_point last_read = std::chrono::system_clock::now(); }; #endif // COMPLIB_SERVER_ENCODER_HPP \ No newline at end of file diff --git a/server/src/encoder.cpp b/server/src/encoder.cpp index d443fad..3879b87 100644 --- a/server/src/encoder.cpp +++ b/server/src/encoder.cpp @@ -9,7 +9,26 @@ std::vector Encoder::read_all() { Spi::getInstance().read_array(Spi::Register::MOTOR_1_POS_B3, ENCODER_COUNT * 4, result_bytes); for (int i = 0; i < ENCODER_COUNT; i++) { - result.push_back(mathUtils::int_from_bytes(result_bytes + i * 4, 4)); + int32_t encoder_value = mathUtils::int_from_bytes(result_bytes + i * 4, 4); + result.push_back(encoder_value); + encoder_cache[i] = encoder_value; } + + last_read = std::chrono::system_clock::now(); return result; +} + +std::vector Encoder::read_all_cached() { + auto last_read_delay_ms = std::chrono::duration_cast( + std::chrono::system_clock::now() - last_read + ).count(); + + if (last_read_delay_ms > ENCODER_CACHE_DURATION_MS) { + return read_all(); + } + return std::vector(std::begin(encoder_cache), std::end(encoder_cache)); +} + +Encoder::Encoder() { + } \ No newline at end of file diff --git a/server/src/main.cpp b/server/src/main.cpp index 8c159e6..2f9429d 100644 --- a/server/src/main.cpp +++ b/server/src/main.cpp @@ -109,7 +109,7 @@ int main() { // double kp = 0.5; // double ki = 5.0; // double kd = 0.025; - double setpoint = -50; + double setpoint = 75; // double errror_sum = 0; // double last_error = 0; // int port = 0; @@ -119,7 +119,7 @@ int main() { // auto start_time = last_time; // int i = 0; while (1 == 1) { - setpoint += 0.5; + // setpoint += 0.5; // auto current_time = std::chrono::high_resolution_clock::now(); // long double delta_seconds = std::chrono::duration_cast(current_time - last_time).count() / 1000000.0; // long double delta_seconds_total = std::chrono::duration_cast(current_time - start_time).count() / 1000000.0; @@ -137,15 +137,15 @@ int main() { // spdlog::info("{} {:05.0f} {:05.0f}", delta_seconds_total, setpoint, speeds.at(0)); - usleep(1000.0 * (1000.0 / 10.0)); - Motor::get_instance().set_speed(0, setpoint); - Motor::get_instance().set_speed(3, -setpoint); + // usleep(1000.0 * (1000.0 / 10.0)); + // Motor::get_instance().set_speed(0, -setpoint); + // Motor::get_instance().set_speed(3, setpoint); // i += 1; // if (i % 1000 == 0) { // setpoint *= -1; // } - auto speeds = Motor::get_instance().get_speed(); - spdlog::info("Speed: {} {} Target: {}", speeds.at(0), speeds.at(3), setpoint); + // auto speeds = Motor::get_instance().get_speed(); + // spdlog::info("Speed: {} {} Target: {}", speeds.at(0), speeds.at(3), setpoint); // auto current_time = std::chrono::high_resolution_clock::now(); // long double delta_seconds = std::chrono::duration_cast(current_time - last_time).count() / 1000000.0; diff --git a/server/src/motor.cpp b/server/src/motor.cpp index 44f4ccb..28c534f 100644 --- a/server/src/motor.cpp +++ b/server/src/motor.cpp @@ -112,7 +112,7 @@ std::vector Motor::get_speed() { void Motor::reset_speed() { last_time_encoders_read = std::chrono::high_resolution_clock::now(); - auto current_ticks = Encoder::read_all(); + auto current_ticks = Encoder::get_instance().read_all_cached(); for (int i = 0; i < MOTOR_COUNT; i++) { filtered_speeds[i] = 0; last_encoder_values[i] = current_ticks.at(i); From e9ae1a320a654f4beb8981528029f230bf3d35b6 Mon Sep 17 00:00:00 2001 From: root Date: Sat, 21 May 2022 13:10:28 +0100 Subject: [PATCH 162/246] Start on v2 --- {server => server_prototype}/.gitignore | 0 {server => server_prototype}/.idea/.gitignore | 0 {server => server_prototype}/.idea/.name | 0 {server => server_prototype}/.idea/misc.xml | 0 .../.idea/modules.xml | 0 .../.idea/saveactions_settings.xml | 0 .../.idea/serialmonitor_settings.xml | 0 {server => server_prototype}/.idea/server.iml | 0 {server => server_prototype}/.idea/vcs.xml | 0 {server => server_prototype}/CMakeLists.txt | 0 .../cmake/modules/Findpigpio.cmake | 0 .../include/encoder.hpp | 0 .../include/errorMessages.hpp | 0 .../include/mathUtils.hpp | 0 .../include/messageBuilder.hpp | 0 .../include/motor.hpp | 0 {server => server_prototype}/include/pid.hpp | 0 .../include/reset.hpp | 0 .../include/robot.hpp | 0 {server => server_prototype}/include/spi.hpp | 0 .../protos/CompLib.proto | 0 {server => server_prototype}/src/encoder.cpp | 0 {server => server_prototype}/src/main.cpp | 6 +- {server => server_prototype}/src/motor.cpp | 2 +- {server => server_prototype}/src/pid.cpp | 0 {server => server_prototype}/src/spi.cpp | 0 server_v2/.gitignore | 106 +++++++++++++ server_v2/.idea/.gitignore | 6 + server_v2/.idea/.name | 1 + server_v2/.idea/misc.xml | 4 + server_v2/.idea/modules.xml | 8 + server_v2/.idea/saveactions_settings.xml | 15 ++ server_v2/.idea/serialmonitor_settings.xml | 4 + server_v2/.idea/server.iml | 2 + server_v2/.idea/vcs.xml | 6 + server_v2/CMakeLists.txt | 45 ++++++ server_v2/cmake/modules/Findpigpio.cmake | 31 ++++ server_v2/include/mathUtils.hpp | 27 ++++ server_v2/include/reset.hpp | 32 ++++ server_v2/include/spi.hpp | 140 ++++++++++++++++++ server_v2/protos/CompLib.proto | 36 +++++ server_v2/src/main.cpp | 28 ++++ server_v2/src/spi.cpp | 113 ++++++++++++++ 43 files changed, 608 insertions(+), 4 deletions(-) rename {server => server_prototype}/.gitignore (100%) rename {server => server_prototype}/.idea/.gitignore (100%) rename {server => server_prototype}/.idea/.name (100%) rename {server => server_prototype}/.idea/misc.xml (100%) rename {server => server_prototype}/.idea/modules.xml (100%) rename {server => server_prototype}/.idea/saveactions_settings.xml (100%) rename {server => server_prototype}/.idea/serialmonitor_settings.xml (100%) rename {server => server_prototype}/.idea/server.iml (100%) rename {server => server_prototype}/.idea/vcs.xml (100%) rename {server => server_prototype}/CMakeLists.txt (100%) rename {server => server_prototype}/cmake/modules/Findpigpio.cmake (100%) rename {server => server_prototype}/include/encoder.hpp (100%) rename {server => server_prototype}/include/errorMessages.hpp (100%) rename {server => server_prototype}/include/mathUtils.hpp (100%) rename {server => server_prototype}/include/messageBuilder.hpp (100%) rename {server => server_prototype}/include/motor.hpp (100%) rename {server => server_prototype}/include/pid.hpp (100%) rename {server => server_prototype}/include/reset.hpp (100%) rename {server => server_prototype}/include/robot.hpp (100%) rename {server => server_prototype}/include/spi.hpp (100%) rename {server => server_prototype}/protos/CompLib.proto (100%) rename {server => server_prototype}/src/encoder.cpp (100%) rename {server => server_prototype}/src/main.cpp (96%) rename {server => server_prototype}/src/motor.cpp (99%) rename {server => server_prototype}/src/pid.cpp (100%) rename {server => server_prototype}/src/spi.cpp (100%) create mode 100644 server_v2/.gitignore create mode 100644 server_v2/.idea/.gitignore create mode 100644 server_v2/.idea/.name create mode 100644 server_v2/.idea/misc.xml create mode 100644 server_v2/.idea/modules.xml create mode 100644 server_v2/.idea/saveactions_settings.xml create mode 100644 server_v2/.idea/serialmonitor_settings.xml create mode 100644 server_v2/.idea/server.iml create mode 100644 server_v2/.idea/vcs.xml create mode 100644 server_v2/CMakeLists.txt create mode 100644 server_v2/cmake/modules/Findpigpio.cmake create mode 100644 server_v2/include/mathUtils.hpp create mode 100644 server_v2/include/reset.hpp create mode 100644 server_v2/include/spi.hpp create mode 100644 server_v2/protos/CompLib.proto create mode 100644 server_v2/src/main.cpp create mode 100644 server_v2/src/spi.cpp diff --git a/server/.gitignore b/server_prototype/.gitignore similarity index 100% rename from server/.gitignore rename to server_prototype/.gitignore diff --git a/server/.idea/.gitignore b/server_prototype/.idea/.gitignore similarity index 100% rename from server/.idea/.gitignore rename to server_prototype/.idea/.gitignore diff --git a/server/.idea/.name b/server_prototype/.idea/.name similarity index 100% rename from server/.idea/.name rename to server_prototype/.idea/.name diff --git a/server/.idea/misc.xml b/server_prototype/.idea/misc.xml similarity index 100% rename from server/.idea/misc.xml rename to server_prototype/.idea/misc.xml diff --git a/server/.idea/modules.xml b/server_prototype/.idea/modules.xml similarity index 100% rename from server/.idea/modules.xml rename to server_prototype/.idea/modules.xml diff --git a/server/.idea/saveactions_settings.xml b/server_prototype/.idea/saveactions_settings.xml similarity index 100% rename from server/.idea/saveactions_settings.xml rename to server_prototype/.idea/saveactions_settings.xml diff --git a/server/.idea/serialmonitor_settings.xml b/server_prototype/.idea/serialmonitor_settings.xml similarity index 100% rename from server/.idea/serialmonitor_settings.xml rename to server_prototype/.idea/serialmonitor_settings.xml diff --git a/server/.idea/server.iml b/server_prototype/.idea/server.iml similarity index 100% rename from server/.idea/server.iml rename to server_prototype/.idea/server.iml diff --git a/server/.idea/vcs.xml b/server_prototype/.idea/vcs.xml similarity index 100% rename from server/.idea/vcs.xml rename to server_prototype/.idea/vcs.xml diff --git a/server/CMakeLists.txt b/server_prototype/CMakeLists.txt similarity index 100% rename from server/CMakeLists.txt rename to server_prototype/CMakeLists.txt diff --git a/server/cmake/modules/Findpigpio.cmake b/server_prototype/cmake/modules/Findpigpio.cmake similarity index 100% rename from server/cmake/modules/Findpigpio.cmake rename to server_prototype/cmake/modules/Findpigpio.cmake diff --git a/server/include/encoder.hpp b/server_prototype/include/encoder.hpp similarity index 100% rename from server/include/encoder.hpp rename to server_prototype/include/encoder.hpp diff --git a/server/include/errorMessages.hpp b/server_prototype/include/errorMessages.hpp similarity index 100% rename from server/include/errorMessages.hpp rename to server_prototype/include/errorMessages.hpp diff --git a/server/include/mathUtils.hpp b/server_prototype/include/mathUtils.hpp similarity index 100% rename from server/include/mathUtils.hpp rename to server_prototype/include/mathUtils.hpp diff --git a/server/include/messageBuilder.hpp b/server_prototype/include/messageBuilder.hpp similarity index 100% rename from server/include/messageBuilder.hpp rename to server_prototype/include/messageBuilder.hpp diff --git a/server/include/motor.hpp b/server_prototype/include/motor.hpp similarity index 100% rename from server/include/motor.hpp rename to server_prototype/include/motor.hpp diff --git a/server/include/pid.hpp b/server_prototype/include/pid.hpp similarity index 100% rename from server/include/pid.hpp rename to server_prototype/include/pid.hpp diff --git a/server/include/reset.hpp b/server_prototype/include/reset.hpp similarity index 100% rename from server/include/reset.hpp rename to server_prototype/include/reset.hpp diff --git a/server/include/robot.hpp b/server_prototype/include/robot.hpp similarity index 100% rename from server/include/robot.hpp rename to server_prototype/include/robot.hpp diff --git a/server/include/spi.hpp b/server_prototype/include/spi.hpp similarity index 100% rename from server/include/spi.hpp rename to server_prototype/include/spi.hpp diff --git a/server/protos/CompLib.proto b/server_prototype/protos/CompLib.proto similarity index 100% rename from server/protos/CompLib.proto rename to server_prototype/protos/CompLib.proto diff --git a/server/src/encoder.cpp b/server_prototype/src/encoder.cpp similarity index 100% rename from server/src/encoder.cpp rename to server_prototype/src/encoder.cpp diff --git a/server/src/main.cpp b/server_prototype/src/main.cpp similarity index 96% rename from server/src/main.cpp rename to server_prototype/src/main.cpp index 2f9429d..f1c4d58 100644 --- a/server/src/main.cpp +++ b/server_prototype/src/main.cpp @@ -137,15 +137,15 @@ int main() { // spdlog::info("{} {:05.0f} {:05.0f}", delta_seconds_total, setpoint, speeds.at(0)); - // usleep(1000.0 * (1000.0 / 10.0)); + usleep(1000.0 * (1000.0 / 10.0)); // Motor::get_instance().set_speed(0, -setpoint); // Motor::get_instance().set_speed(3, setpoint); // i += 1; // if (i % 1000 == 0) { // setpoint *= -1; // } - // auto speeds = Motor::get_instance().get_speed(); - // spdlog::info("Speed: {} {} Target: {}", speeds.at(0), speeds.at(3), setpoint); + auto speeds = Motor::get_instance().get_speed(); + spdlog::info("Speed: {} {} Target: {}", speeds.at(0), speeds.at(3), setpoint); // auto current_time = std::chrono::high_resolution_clock::now(); // long double delta_seconds = std::chrono::duration_cast(current_time - last_time).count() / 1000000.0; diff --git a/server/src/motor.cpp b/server_prototype/src/motor.cpp similarity index 99% rename from server/src/motor.cpp rename to server_prototype/src/motor.cpp index 28c534f..0176b5b 100644 --- a/server/src/motor.cpp +++ b/server_prototype/src/motor.cpp @@ -140,7 +140,7 @@ void Motor::speed_control_loop() { } if (!should_control_speed) { - spdlog::info("continue"); + // spdlog::info("continue"); continue; } diff --git a/server/src/pid.cpp b/server_prototype/src/pid.cpp similarity index 100% rename from server/src/pid.cpp rename to server_prototype/src/pid.cpp diff --git a/server/src/spi.cpp b/server_prototype/src/spi.cpp similarity index 100% rename from server/src/spi.cpp rename to server_prototype/src/spi.cpp diff --git a/server_v2/.gitignore b/server_v2/.gitignore new file mode 100644 index 0000000..5b4bcb6 --- /dev/null +++ b/server_v2/.gitignore @@ -0,0 +1,106 @@ + +# Created by https://www.toptal.com/developers/gitignore/api/c++,macos,linux,visualstudiocode +# Edit at https://www.toptal.com/developers/gitignore?templates=c++,macos,linux,visualstudiocode + +### C++ ### +# Prerequisites +*.d + +# Compiled Object files +*.slo +*.lo +*.o +*.obj + +# Precompiled Headers +*.gch +*.pch + +# Compiled Dynamic libraries +*.so +*.dylib +*.dll + +# Fortran module files +*.mod +*.smod + +# Compiled Static libraries +*.lai +*.la +*.a +*.lib + +# Executables +*.exe +*.out +*.app + +### Linux ### +*~ + +# temporary files which can be created if a process still has a handle open of a deleted file +.fuse_hidden* + +# KDE directory preferences +.directory + +# Linux trash folder which might appear on any partition or disk +.Trash-* + +# .nfs files are created when an open file is removed but is still being accessed +.nfs* + +### macOS ### +# General +.DS_Store +.AppleDouble +.LSOverride + +# Icon must end with two \r +Icon + + +# Thumbnails +._* + +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns +.com.apple.timemachine.donotpresent + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk + +### VisualStudioCode ### +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json +!.vscode/*.code-snippets + +# Local History for Visual Studio Code +.history/ + +# Built Visual Studio Code Extensions +*.vsix + +### VisualStudioCode Patch ### +# Ignore all local history of files +.history +.ionide + +# Support for Project snippet scope + +# End of https://www.toptal.com/developers/gitignore/api/c++,macos,linux,visualstudiocode + +build diff --git a/server_v2/.idea/.gitignore b/server_v2/.idea/.gitignore new file mode 100644 index 0000000..8bf4d45 --- /dev/null +++ b/server_v2/.idea/.gitignore @@ -0,0 +1,6 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/server_v2/.idea/.name b/server_v2/.idea/.name new file mode 100644 index 0000000..4e811b7 --- /dev/null +++ b/server_v2/.idea/.name @@ -0,0 +1 @@ +compLib_server \ No newline at end of file diff --git a/server_v2/.idea/misc.xml b/server_v2/.idea/misc.xml new file mode 100644 index 0000000..79b3c94 --- /dev/null +++ b/server_v2/.idea/misc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/server_v2/.idea/modules.xml b/server_v2/.idea/modules.xml new file mode 100644 index 0000000..fbd90b4 --- /dev/null +++ b/server_v2/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/server_v2/.idea/saveactions_settings.xml b/server_v2/.idea/saveactions_settings.xml new file mode 100644 index 0000000..b7b3f34 --- /dev/null +++ b/server_v2/.idea/saveactions_settings.xml @@ -0,0 +1,15 @@ + + + + + + \ No newline at end of file diff --git a/server_v2/.idea/serialmonitor_settings.xml b/server_v2/.idea/serialmonitor_settings.xml new file mode 100644 index 0000000..eff936b --- /dev/null +++ b/server_v2/.idea/serialmonitor_settings.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/server_v2/.idea/server.iml b/server_v2/.idea/server.iml new file mode 100644 index 0000000..f08604b --- /dev/null +++ b/server_v2/.idea/server.iml @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/server_v2/.idea/vcs.xml b/server_v2/.idea/vcs.xml new file mode 100644 index 0000000..6c0b863 --- /dev/null +++ b/server_v2/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/server_v2/CMakeLists.txt b/server_v2/CMakeLists.txt new file mode 100644 index 0000000..41eedd2 --- /dev/null +++ b/server_v2/CMakeLists.txt @@ -0,0 +1,45 @@ +cmake_minimum_required(VERSION 3.16) + +set(PROJECT_NAME compLib_server) +project(${PROJECT_NAME}) + +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules ${CMAKE_MODULE_PATH}) + +if (NOT CMAKE_BUILD_TYPE) + set(CMAKE_BUILD_TYPE Release) +endif () + +set(CMAKE_CXX_FLAGS "-Wall -Wextra -Wno-psabi") +set(CMAKE_CXX_FLAGS_DEBUG "-g") +set(CMAKE_CXX_FLAGS_RELEASE "-O3") + +find_package(Protobuf REQUIRED) +find_package(spdlog REQUIRED) +find_package(pigpio REQUIRED) + +set(PROTO_FILES + protos/CompLib.proto + ) + +set(SRC_FILES + src/main.cpp + src/spi.cpp + ) + +set(HDR_FILES + include/spi.hpp + include/reset.hpp + include/mathUtils.hpp + ) + +include_directories(third_party/asio) + +PROTOBUF_GENERATE_CPP(PROTO_SRC PROTO_HDR ${PROTO_FILES}) +add_executable(${PROJECT_NAME} ${SRC_FILES} ${HDR_FILES} ${PROTO_SRC} ${PROTO_HDR} ${PROTO_FILES}) +target_include_directories(${PROJECT_NAME} + PUBLIC ${CMAKE_CURRENT_BINARY_DIR} + PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} + PUBLIC ${PROTOBUF_INCLUDE_DIRS} + ) +target_link_libraries(${PROJECT_NAME} ${PROTOBUF_LIBRARIES} pigpio spdlog::spdlog) diff --git a/server_v2/cmake/modules/Findpigpio.cmake b/server_v2/cmake/modules/Findpigpio.cmake new file mode 100644 index 0000000..1308822 --- /dev/null +++ b/server_v2/cmake/modules/Findpigpio.cmake @@ -0,0 +1,31 @@ +################################################################################ +### Find the pigpio shared libraries. +################################################################################ + +# Find the path to the pigpio includes. +find_path(pigpio_INCLUDE_DIR + NAMES pigpio.h pigpiod_if.h pigpiod_if2.h + HINTS /usr/local/include) + +# Find the pigpio libraries. +find_library(pigpio_LIBRARY + NAMES libpigpio.so + HINTS /usr/local/lib) +find_library(pigpiod_if_LIBRARY + NAMES libpigpiod_if.so + HINTS /usr/local/lib) +find_library(pigpiod_if2_LIBRARY + NAMES libpigpiod_if2.so + HINTS /usr/local/lib) + +# Set the pigpio variables to plural form to make them accessible for +# the paramount cmake modules. +set(pigpio_INCLUDE_DIRS ${pigpio_INCLUDE_DIR}) +set(pigpio_INCLUDES ${pigpio_INCLUDE_DIR}) + +# Handle REQUIRED, QUIET, and version arguments +# and set the _FOUND variable. +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(pigpio + DEFAULT_MSG + pigpio_INCLUDE_DIR pigpio_LIBRARY pigpiod_if_LIBRARY pigpiod_if2_LIBRARY) \ No newline at end of file diff --git a/server_v2/include/mathUtils.hpp b/server_v2/include/mathUtils.hpp new file mode 100644 index 0000000..b4eee56 --- /dev/null +++ b/server_v2/include/mathUtils.hpp @@ -0,0 +1,27 @@ +#ifndef COMPLIB_SERVER_MATHUTILS_HPP +#define COMPLIB_SERVER_MATHUTILS_HPP + +#include + +namespace mathUtils { + inline int int_from_bytes(uint8_t *data, int length) { + int ret = 0; + + int i = 0; + for (int j = length -1; j >= 0; j--) { + ret = ret | (data[i] << (j * 8)); + i++; + } + return ret; + } + + inline void bytes_from_int(int data, int length, uint8_t *result) { + int i = 0; + for (int j = length -1; j >= 0; j--) { + result[i] = ((data >> (j * 8)) & 0xffu); + i++; + } + } +} + +#endif // COMPLIB_SERVER_MATHUTILS_HPP \ No newline at end of file diff --git a/server_v2/include/reset.hpp b/server_v2/include/reset.hpp new file mode 100644 index 0000000..07f1580 --- /dev/null +++ b/server_v2/include/reset.hpp @@ -0,0 +1,32 @@ +#ifndef COMPLIB_SERVER_RESET_HPP +#define COMPLIB_SERVER_RESET_HPP + +#include +#include + +#define RESET_PIN 23 +#define BOOT_PIN 17 + +#define RESET_SLEEP_TIME_US 1000 * 100 +#define RESET_STARTUP_SLEEP_TIME_US 1000 * 500 + +namespace Reset { + void reset_robot() { + gpioInitialise(); + + gpioSetMode(BOOT_PIN, PI_OUTPUT); + gpioSetMode(RESET_PIN, PI_OUTPUT); + + gpioWrite(BOOT_PIN, 0); + gpioWrite(RESET_PIN, 0); + + usleep(RESET_SLEEP_TIME_US); + + gpioWrite(RESET_PIN, 1); + + usleep(RESET_STARTUP_SLEEP_TIME_US); + } +} + + +#endif //COMPLIB_SERVER_RESET_HPP diff --git a/server_v2/include/spi.hpp b/server_v2/include/spi.hpp new file mode 100644 index 0000000..c48e5a4 --- /dev/null +++ b/server_v2/include/spi.hpp @@ -0,0 +1,140 @@ +#ifndef COMPLIB_SERVER_SPI_HPP +#define COMPLIB_SERVER_SPI_HPP + +#include + +//SPI_MODE_0 (0,0) CPOL = 0, CPHA = 0, Clock idle low, data is clocked in on rising edge, output data (change) on falling edge +//SPI_MODE_1 (0,1) CPOL = 0, CPHA = 1, Clock idle low, data is clocked in on falling edge, output data (change) on rising edge +//SPI_MODE_2 (1,0) CPOL = 1, CPHA = 0, Clock idle high, data is clocked in on falling edge, output data (change) on rising edge +//SPI_MODE_3 (1,1) CPOL = 1, CPHA = 1, Clock idle high, data is clocked in on rising, edge output data (change) on falling edge + +#define SPI_BUFFER_SIZE 20 +#define SPI_SPEED 2000000 // 2 MHz +#define SPI_BITS_PER_WORD 8 + +class Spi { +public: + static Spi& getInstance() + { + static Spi instance; + return instance; + } + + Spi(Spi const&) = delete; + void operator=(Spi const&) = delete; + + int read(uint8_t reg, uint8_t length); + void read_array(uint8_t reg, uint8_t length, uint8_t* data); + + void write(uint8_t reg, uint8_t length, int value); + void write_array(uint8_t reg, uint8_t length, const uint8_t* data); + + enum Register : uint8_t { + IDENTIFICATION_MODEL_ID = 1, + IDENTIFICATION_MODEL_REV_MAJOR = 2, + IDENTIFICATION_MODEL_REV_MINOR = 3, + IDENTIFICATION_MODEL_REV_PATCH = 4, + + // Motor encoder positions + MOTOR_1_POS_B3 = 10, + MOTOR_1_POS_B2 = 11, + MOTOR_1_POS_B1 = 12, + MOTOR_1_POS_B0 = 13, + MOTOR_2_POS_B3 = 14, + MOTOR_2_POS_B2 = 15, + MOTOR_2_POS_B1 = 16, + MOTOR_2_POS_B0 = 17, + MOTOR_3_POS_B3 = 18, + MOTOR_3_POS_B2 = 19, + MOTOR_3_POS_B1 = 20, + MOTOR_3_POS_B0 = 21, + MOTOR_4_POS_B3 = 22, + MOTOR_4_POS_B2 = 23, + MOTOR_4_POS_B1 = 24, + MOTOR_4_POS_B0 = 25, + + // PWM Control Modes + PWM_1_CTRL = 26, + PWM_2_CTRL = 27, + PWM_3_CTRL = 28, + PWM_4_CTRL = 29, + + // Motor pwm speed + MOTOR_1_PWM_H = 30, + MOTOR_1_PWM_L = 31, + MOTOR_2_PWM_H = 32, + MOTOR_2_PWM_L = 33, + MOTOR_3_PWM_H = 34, + MOTOR_3_PWM_L = 35, + MOTOR_4_PWM_H = 36, + MOTOR_4_PWM_L = 37, + + // Servo goal position + SERVO_1_PWM_H = 38, + SERVO_1_PWM_L = 39, + SERVO_2_PWM_H = 40, + SERVO_2_PWM_L = 41, + SERVO_3_PWM_H = 42, + SERVO_3_PWM_L = 43, + SERVO_4_PWM_H = 44, + SERVO_4_PWM_L = 45, + SERVO_5_PWM_H = 46, + SERVO_5_PWM_L = 47, + SERVO_6_PWM_H = 48, + SERVO_6_PWM_L = 49, + SERVO_7_PWM_H = 50, + SERVO_7_PWM_L = 51, + SERVO_8_PWM_H = 52, + SERVO_8_PWM_L = 53, + + // IR Sensor value + IR_1_H = 54, + IR_1_L = 55, + IR_2_H = 56, + IR_2_L = 57, + IR_3_H = 58, + IR_3_L = 59, + IR_4_H = 60, + IR_4_L = 61, + IR_5_H = 62, + IR_5_L = 63, + IR_1_LED = 64, + IR_2_LED = 65, + IR_3_LED = 66, + IR_4_LED = 67, + IR_5_LED = 68, + + // Display registers + DISPLAY_LINE_1_C0 = 69, + DISPLAY_LINE_2_C0 = 85, + DISPLAY_LINE_3_C0 = 101, + DISPLAY_LINE_4_C0 = 117, + + // Motor encoder velocities + MOTOR_1_VEL_H = 118, + MOTOR_1_VEL_L = 119, + MOTOR_2_VEL_H = 120, + MOTOR_2_VEL_L = 121, + MOTOR_3_VEL_H = 122, + MOTOR_3_VEL_L = 123, + MOTOR_4_VEL_H = 124, + MOTOR_4_VEL_L = 125 + }; + +private: + Spi(); + + int spi_file_descriptor{}; + uint8_t tx_buffer[SPI_BUFFER_SIZE] = {0}; + uint8_t rx_buffer[SPI_BUFFER_SIZE] = {0}; + + std::recursive_mutex spi_mutex; + + void transfer(); + void clear_buffers(); + + uint8_t calculate_checksum(uint8_t* data, uint8_t length); +}; + + +#endif //COMPLIB_SERVER_SPI_HPP diff --git a/server_v2/protos/CompLib.proto b/server_v2/protos/CompLib.proto new file mode 100644 index 0000000..77a202d --- /dev/null +++ b/server_v2/protos/CompLib.proto @@ -0,0 +1,36 @@ +syntax = "proto3"; + +package CompLib; + +message Header { + string message_type = 1; +} + +message Status { + bool successful = 1; + string error_message = 2; +} + +message GenericRequest { + Header header = 1; +} + +message GenericResponse { + Header header = 1; + Status status = 2; +} + +message ReadSensorsRequest { + Header header = 1; +} + +message ReadSensorsResponse { + Header header = 1; + Status status = 2; + uint32 ir_1 = 3; + uint32 ir_2 = 4; + uint32 ir_3 = 5; + uint32 ir_4 = 6; + uint32 ir_5 = 7; +} + diff --git a/server_v2/src/main.cpp b/server_v2/src/main.cpp new file mode 100644 index 0000000..a80d960 --- /dev/null +++ b/server_v2/src/main.cpp @@ -0,0 +1,28 @@ +#include +#include + +#include "include/reset.hpp" +#include "include/spi.hpp" + +#define SOCKET_PATH "/tmp/compLib" +#define BUFFER_SIZE 64 +#define SAMPLES 20000.0 + +using namespace std; + +int main() { + Reset::reset_robot(); + spdlog::set_pattern("%H:%M:%S.%e %^%-8l%$: %v"); + + auto start = chrono::steady_clock::now(); + for (int i = 0; i < SAMPLES; i++) { + Spi::getInstance().read(Spi::Register::IDENTIFICATION_MODEL_ID, 1); + } + auto end = chrono::steady_clock::now(); + + spdlog::info("Elapsed time in milliseconds: {}ms", chrono::duration_cast(end - start).count()); + spdlog::info("Loop rate: {}hz", SAMPLES / chrono::duration_cast(end - start).count() * 1000.0); + + return 0; +} + diff --git a/server_v2/src/spi.cpp b/server_v2/src/spi.cpp new file mode 100644 index 0000000..9314905 --- /dev/null +++ b/server_v2/src/spi.cpp @@ -0,0 +1,113 @@ +#include //Needed for SPI port +#include //Needed for SPI port +#include //Needed for SPI port +#include //Needed for SPI port +#include +#include +#include + +#include "include/spi.hpp" +#include "include/mathUtils.hpp" + +void check_for_error(int error_code, std::string error_message) { + if (error_code < 0) { + spdlog::error(error_message); + exit(1); + } +} + +Spi::Spi() { + int spi_mode = SPI_MODE_0; + int spi_bits_per_workd = SPI_BITS_PER_WORD; + int spi_speed = SPI_SPEED; + + check_for_error(spi_file_descriptor = open("/dev/spidev1.2", O_RDWR), "Could not open SPI device"); + check_for_error(ioctl(spi_file_descriptor, SPI_IOC_WR_MODE, &spi_mode), "Could not set SPI_IOC_WR_MODE"); + check_for_error(ioctl(spi_file_descriptor, SPI_IOC_RD_MODE, &spi_mode), "Could not set SPI_IOC_RD_MODE"); + check_for_error(ioctl(spi_file_descriptor, SPI_IOC_WR_BITS_PER_WORD, &spi_bits_per_workd), "Could not set SPI_IOC_WR_BITS_PER_WORD"); + check_for_error(ioctl(spi_file_descriptor, SPI_IOC_RD_BITS_PER_WORD, &spi_bits_per_workd), "Could not set SPI_IOC_RD_BITS_PER_WORD"); + check_for_error(ioctl(spi_file_descriptor, SPI_IOC_WR_MAX_SPEED_HZ, &spi_speed), "Could not set SPI_IOC_WR_MAX_SPEED_HZ"); + check_for_error(ioctl(spi_file_descriptor, SPI_IOC_RD_MAX_SPEED_HZ, &spi_mode), "Could not set SPI_IOC_RD_MAX_SPEED_HZ"); +} + +void Spi::clear_buffers() { + memset(tx_buffer, 0, SPI_BUFFER_SIZE); + memset(rx_buffer, 0, SPI_BUFFER_SIZE); +} + +uint8_t Spi::calculate_checksum(uint8_t* data, uint8_t length) { + int sum = 0; + for (int i = 0; i < length; i++) { + sum += data[i]; + } + return sum % 256; +} + +int Spi::read(uint8_t reg, uint8_t length) { + std::lock_guard lock(spi_mutex); + + uint8_t read_buffer[SPI_BUFFER_SIZE] = {0}; + read_array(reg, length, read_buffer); + + return mathUtils::int_from_bytes(read_buffer, length); +} + +void Spi::read_array(uint8_t reg, uint8_t length, uint8_t* data) { + std::lock_guard lock(spi_mutex); + + clear_buffers(); + tx_buffer[0] = 0; + tx_buffer[1] = reg; + tx_buffer[2] = length; + + transfer(); + + uint8_t checksum = calculate_checksum(rx_buffer, length + 3); + if (checksum != rx_buffer[length + 3]) { + spdlog::error("Received invalid checksum {}. Should be {}", rx_buffer[length +3], checksum); + } + + memcpy(data, rx_buffer + 2, length); +} + +void Spi::write(uint8_t reg, uint8_t length, int value) { + std::lock_guard lock(spi_mutex); + + uint8_t write_buffer[SPI_BUFFER_SIZE] = {0}; + mathUtils::bytes_from_int(value, length, write_buffer); + write_array(reg, length, write_buffer); +} + +void Spi::write_array(uint8_t reg, uint8_t length, const uint8_t* data) { + std::lock_guard lock(spi_mutex); + + clear_buffers(); + tx_buffer[0] = 1; + tx_buffer[1] = reg; + tx_buffer[2] = length; + memcpy(tx_buffer + 3, data, length); + + transfer(); +} + +void Spi::transfer() { + std::lock_guard lock(spi_mutex); + + struct spi_ioc_transfer spi; + memset(&spi, 0, sizeof(spi)); + + spi.tx_buf = (unsigned long) tx_buffer; + spi.rx_buf = (unsigned long) rx_buffer; + spi.len = SPI_BUFFER_SIZE; + spi.delay_usecs = 0; + spi.speed_hz = SPI_SPEED; + spi.bits_per_word = SPI_BITS_PER_WORD; + spi.cs_change = 0; + + check_for_error(ioctl(spi_file_descriptor, SPI_IOC_MESSAGE(1), &spi), "Problem transmitting spi data"); + check_for_error(ioctl(spi_file_descriptor, SPI_IOC_MESSAGE(1), &spi), "Problem transmitting spi data"); + + if (tx_buffer[1] != rx_buffer[1]) { + spdlog::error("SPI error during read/write of register {}. Got reg {} instead!", tx_buffer[1], rx_buffer[1]); + } +} From 0bef6035ae0b8834b32c68b4c1a0299b70db2802 Mon Sep 17 00:00:00 2001 From: Konstantin Lampalzer Date: Sat, 21 May 2022 23:29:55 +0200 Subject: [PATCH 163/246] Rework library without unix sockets for now --- server/.idea/workspace.xml | 187 +++++++++++++++ .../3.17.3/CompilerIdC/CMakeCCompilerId.o | Bin 0 -> 1400 bytes .../3.17.3/CompilerIdCXX/CMakeCXXCompilerId.o | Bin 0 -> 1380 bytes .../compLib_server.dir/CompLib.pb.cc.o | Bin 0 -> 746364 bytes .../compLib_server.dir/src/Spi.cpp.o | Bin 0 -> 680 bytes .../compLib_server.dir/src/main.cpp.o | Bin 0 -> 561916 bytes server_v2/.gitignore | 2 + server_v2/.idea/deployment.xml | 18 ++ server_v2/.idea/other.xml | 10 + server_v2/CMakeLists.txt | 19 +- server_v2/include/Cache.hpp | 23 ++ .../include/ClosedLoopMotorController.hpp | 46 ++++ server_v2/include/Encoders.hpp | 35 +++ server_v2/include/IRSensors.hpp | 37 +++ server_v2/include/Motors.hpp | 26 +++ server_v2/include/Odometry.hpp | 24 ++ server_v2/include/OdometryController.hpp | 46 ++++ server_v2/include/PID.hpp | 32 +++ server_v2/include/Robot.hpp | 31 +++ server_v2/include/mathUtils.hpp | 40 ++-- server_v2/include/spi.hpp | 213 +++++++++--------- server_v2/src/Cache.cpp | 16 ++ server_v2/src/ClosedLoopMotorController.cpp | 49 ++++ server_v2/src/Encoders.cpp | 29 +++ server_v2/src/IRSensors.cpp | 29 +++ server_v2/src/Motors.cpp | 31 +++ server_v2/src/Odometry.cpp | 21 ++ server_v2/src/OdometryController.cpp | 83 +++++++ server_v2/src/PID.cpp | 50 ++++ server_v2/src/main.cpp | 26 +-- 30 files changed, 987 insertions(+), 136 deletions(-) create mode 100644 server/.idea/workspace.xml create mode 100644 server/cmake-build-debug/CMakeFiles/3.17.3/CompilerIdC/CMakeCCompilerId.o create mode 100644 server/cmake-build-debug/CMakeFiles/3.17.3/CompilerIdCXX/CMakeCXXCompilerId.o create mode 100644 server/cmake-build-debug/CMakeFiles/compLib_server.dir/CompLib.pb.cc.o create mode 100644 server/cmake-build-debug/CMakeFiles/compLib_server.dir/src/Spi.cpp.o create mode 100644 server/cmake-build-debug/CMakeFiles/compLib_server.dir/src/main.cpp.o create mode 100644 server_v2/.idea/deployment.xml create mode 100644 server_v2/.idea/other.xml create mode 100644 server_v2/include/Cache.hpp create mode 100644 server_v2/include/ClosedLoopMotorController.hpp create mode 100644 server_v2/include/Encoders.hpp create mode 100644 server_v2/include/IRSensors.hpp create mode 100644 server_v2/include/Motors.hpp create mode 100644 server_v2/include/Odometry.hpp create mode 100644 server_v2/include/OdometryController.hpp create mode 100644 server_v2/include/PID.hpp create mode 100644 server_v2/include/Robot.hpp create mode 100644 server_v2/src/Cache.cpp create mode 100644 server_v2/src/ClosedLoopMotorController.cpp create mode 100644 server_v2/src/Encoders.cpp create mode 100644 server_v2/src/IRSensors.cpp create mode 100644 server_v2/src/Motors.cpp create mode 100644 server_v2/src/Odometry.cpp create mode 100644 server_v2/src/OdometryController.cpp create mode 100644 server_v2/src/PID.cpp diff --git a/server/.idea/workspace.xml b/server/.idea/workspace.xml new file mode 100644 index 0000000..e30254c --- /dev/null +++ b/server/.idea/workspace.xml @@ -0,0 +1,187 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/server/cmake-build-debug/CMakeFiles/3.17.3/CompilerIdC/CMakeCCompilerId.o b/server/cmake-build-debug/CMakeFiles/3.17.3/CompilerIdC/CMakeCCompilerId.o new file mode 100644 index 0000000000000000000000000000000000000000..6551d109e4b0b97fba024c98a702d4fc4b84d52e GIT binary patch literal 1400 zcmb7C&ubG=5PoTE8nCrF^w5HV96a=-NxUgSLy{6ft&{|W5T=i0lPqjDVYAU96nauZ z5&9?Stw(Qq^3p?l^Izyi@DQQLAX5EicV6=Y6&;xUX6DU&Z{E&){{HQ9QK`th!Uwtl zJ)XlS35BdfH`xD!yyYUundBHBoQgHdhY%v)+Vev@^h`vwIW=2PE&VY_vrM|pF`xG8f;N-zd8?(aQNj;5YW zWVNW_>9!RX%=Wh{MVrF6A$;Ph>llr(88gr|Xjrzyp+NXjj(ieA~7pp^-|BjdX@%cZFV9 zuI`cPUxn4Gn30z|DzX=k#FrLhN65N`_)X}+<#^wZC7Gu>^wlL{7iio#!S&1wWYmX6DVzo0oYnAHRP)T@oU(DDZ)t zfxKP7Ckp}2LoSj17mO$gIOZ5_qoyE9(jp*bU=M;wkLSZ4vVtk$v zX-HY?1-|1o*&*d@Jzb~5>zj1IDa;>9%DM_v93W+>ST4r)F{@eT5$aLNf$op}n$Taz z>%|A2@9%^Ix0v6fSa?odV2-I?yQ^w}?0b(LuP)_IX*wjwbI7uD!u`EMQC^xkvXpj9 zHhk5#qlEeX_BiPV*V{lHI_E z5-k0`FHrvr6?6FY$oN4y!>1E-*grWk#$=fXR92X^yOXsK>#4=ccvu<#*;z9t=F1g| zMr7h2kq5@OdU*TZt=&x;isRb8RqS?Md)rlBvns-suB(DZ$8TFD65HSy%WNDR`6^zu@Q-u6ZKFF;18KSSt#MR7I#d|`V_DKE63wFJ#;o{+Sun8i><@i literal 0 HcmV?d00001 diff --git a/server/cmake-build-debug/CMakeFiles/compLib_server.dir/CompLib.pb.cc.o b/server/cmake-build-debug/CMakeFiles/compLib_server.dir/CompLib.pb.cc.o new file mode 100644 index 0000000000000000000000000000000000000000..e87eceb8f004de905d242db7ad2c90c016a0460d GIT binary patch literal 746364 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ȟnIWCFcT6c7G6q1-DKO!mt=`I^jZ)tU&TD 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%0Dc5C$$ed-?eA3+D8##?AcE3BfOQ9FIW3$ zQ2Xew_F?Z6?D?1a8{c$!&&%6ee%K$RJNW?BSJh@t-c9w@OugH4v+Aok&B=SJzN#{u ze39zQ-m}@$9P3Yt?+cZ86?W{oR`nru-`4VPlKynnN2B7i-z%~DYmjX7jwj3B&$05^ z+S#{#mF3UgAKTM>jMHz<^h95^%4?;{>+!JjxA)-otWbG1$llXl|Bw2@nVz@rDveL} zUf-SpD!;V@ooqk4Z0U<;I(ezeFDn0@D!-MxIR7G*pWUOd=LwbHO2z+@%BN^s=Ra5F z*Fe1Xte3rJ>DxUfi@zwA9+h8~7ePf3xK4z5dGl+~4`1p!uSSc5TnynNELYxhML5?&;*Bc}~7na+c&Ve&=uJ zLiYS_b0=phzN=#ClWgzBEWP!TACrD&r3;@;Ia~QO4Rx~p4u#2C`#JfQK~B!t-^nv6 zH}5<_<#YZ{@>lrYxlS&kobCA&4cp?c8sg;2SlmDpl&5-@ul|J7L=Ra8GTSdRM zXMCoMFZ6p)^u4e2MHPNCm2Xyw^IsOLf6X8EJ4s&s9xMM{o!l(>Fv%H;Z+ppEl0Ww1 zXa6VpGv&8|er3<8vHFsHn(8Yw-TB*xs20Ed*t$LG(zkKOo-0&eVdZC8tiCj!{G$4* zq8#nnJ=2v(5q9l)MCH*$x!d!B>dVfp?fJdRBV#is@2T{yBpvoNcyed z%3g7-ei*0hS*P@@q}=WKP3@;1J$o)ydP2lw&!bAu+DuRM4Oe;^(6i@dwU>q+ot(3^ z>W6Ull#{+#D5cK&IpYlHe{#sl zP4fTLOJAd}VXpH(o^i2%FUGIsPM){W$qkYpEj5{RN&bm&CXbVRwEV-8FOmO3$u~!w zzEASzGo3t8@(vb%TGaRRbuRva3!QwI=?|8CiqgOKG8g~DvGiZ=&xSH{snJt$w& zV9yi#k)8m*EpU~S3-IsZ{`CGIrhUZAPtk7T<%g!Ul`l;Q|65*L{{!;d$~_rpx8EB}%pk7C@2Pv6tb)A90(1pSXF z+j##E6UuW&ZCn4o3G(BU+WMb+KwH^?A7K254}S*ZNWA=Df*eh#KYrt(js9*4`T3ak9dB=Sg8X)ZJ%2*@!HgC0 z;ooGuikAm5p2f@CB(&d;PHXFLy7BriC)o29&x_0}ty<(OEDyc>&DygoCOewEiP*^mv^u(ghLgkHD_{ovll9?s7CE3Bz zk@84w7EXIUN86xUGI?IyEmYVn50l$|=J z&Lf%Fe&bAP1o=g^)kl?-*F`X!T^!6ARasG6LTjr&w4^3Nvua8C#v08k9yYQ%Qc=~Ow`UD8=>&aN;}oen^Id+TUXP*sl0K- z8>wzzAz08RWi?fm6*Z9#)Q7bstv%H#wK>Jb!Qk-X(UFq!^2$;=*eL!W5yizbD~n6{ zJC@;z(#@VxQd3r1Of{5M%pPBQ*c8H-&MBcASC^F4){HMLEX1uq<|?brp>SAaURCX) zLf55aDQ`X%h=0<^9L$a%EEB9v$tg~>*KVT;=6cmO#Y-yPCYbGwc2g@0yEirYr6pA* zrDcg33{ti(kHwT3{WUS6UC3yAriT|7moi{hM`~&!GmEQA%4||74sKlK6c<-VstTtJ zD=r*1tE{@FwrxGpI+Efl+L*kwHJ(@)E%R}~)RNh=BQvQlvgF!lQnqqZHM*R{R##Y< zS5i~V)UFIUYuVXJ`6*`No@WIZ*K9k>VPWBm1PlY z)&|DfX@#|8w%uCF4i+w~DlenemoH+7ccXG-=B8I!PFzv88+&)Qk%DOzH6^nmV_R#m z-DndBl$^wZE;nl*LP#RwY^z0)ub6e z<=INj7Auf3gQVxcxH4}@w zjaF;`?1r*sG>lZtWWQP!8y=F1BsiJ9QpxPdq_Wybc94aew>KP9Sv}Hie9I~;Vqp^s zD87H!)RmTEXI5Rgl#}8~Jn7?v#_D|x8{!!yrE_C(Y|0p&S01UDT|1|p6trxl5?8C) z*`w|Bq;k<=m2O|m0a#H!xUr|rjR*d*@Yl<3br(3ML-Lcm;io45bZnB|GIZkS0uEU0F z`>EFLT&#Rrf+V)wj@4sLw-YTl6bC!jO5J!n36s=%Q|r4%wJ8N`XGkR#6_so%Bb?#d zYm&sWQy1mjq-7sE&yCo{wTr4^>amiRc23-iEw;5w5h`h$*3toOBAAN#!%F7GqDWE> z#!nrshs_q!-drSQ#GUhI=d@-dVjY#2QQib3{g#|K^_*a#)#V~9pq8>xU3J4+(1sdY(sikxtpCSe;3fq~tfh{WV|CP_jz;p1bW)Gw z9fnA%omASJvM|WC*W0nu+4RYvjk%T)DaA%8m`&}BDle(286B5^mJo^6)1h{(emYiC z1$C&Dx`sLql2k=0)!Xert&>iytq$WvkXN*Nq1I9)DLZ%EA!b>1@vw~vl)Ev3ayBMV zwgRW;UpEhZDoIjOyjiZ#7N&DPS1 zd)?EncAF(-yIQeYZdai-(xfX88xyAUYHYFUs&PYJmnH<=l-)#vsqSb22_`x6iGOu( z@4x3&R*d)F_O_@_?67wS+YYvHLQ~_qnp!6>*_!X3I4%Uh-GW0S3Ej%58L)r32up2Zxl z6_LpD$oxn-M=b6xZnCWuH-KI5&(6^cfXGNI%*f26%WCJ0tE`+`IB#ANXW|8R`b4&7 zRa$gOw}NCOFNG01_phj{D%=1w?Wd*7NeQ+jWxVclSVqQh+mUvk#b z0e0GMIu4%0e!ksi$2Oe;=YHY5_(V*ySKH-fGfJzf;+kusRxr=ooxNF{2v$TE6gs`c z2{1d0H#Jcw)+q)0(VsBPPT|+?F;iTzcTV9F zzoFrBmEsKzm$Q-KvNx=Rvg1o=Bclwq6J^KEDSLEfMWm&Vm6dhUS5mde95Z3_qc`*v z7ST~VGZVMkXJuyJ!sOFACfRIleXrBtt*g}>`)tPPx9+@BoDT6)waq)a#2^VPy-w7% z?(0lT2Zx>kJ_RY1xYXQ!GJ|c>zj4WQHdtJj6wipvF00_e zNNwqyPC7#37@2=`HFKsLD5r9hqPk>JVcCgA8)zmwC(g`al?>Q1TkV;$!9ID&&Cc@d zxKSl1d*h7c3`=Ds;X}5<4NO=;hc?@_);fqK7JQy(@X*T2@>nj*W^8b=2V0D^DfIRX zwKu~u?N-#(RY$!08!dzChNdRy$~~^~%j~1Bd|R&BTj|1f47Qu9U|gy;G;oeaRZw1I>wwNu6rYcv%azU$3yZuDY~x?QbirWOQGByEYtgi+ zWAeR4Nf+v11FaUd-&y!lJKGI*hEN@Rrxa z@a>+dalWN*YsV*?x)v64OgFXI>%|J*4d+}oaoM%s@f>dvgLl%^?U7if+C*cYqYk%& ztJxfR@dC}eh*mp(hPM}R$8AbPVy(6obkI#g-rzre5#NbVEF}+o;oiw~(I(u9orQC? z9?XrMm&Sg#p`&rMu+Uy=P^^55K7K+GU!mLQ@|L*yqpJ>YCxM+tlrZG}uSBAe&a8pGs(HONH~g&t|L*#o2Ua zJ1MtjK}l8eXY?(pZu8;nMt%%WH+DZ@!1XHoS(36@WGpORnf z{)?Oc)#i&@yIf26u=icv)=2s72Q}lkMmo&W)A3Y0oL^Y-dgY|DT(9GJCEqq(vm;ZB zC(X+(EU$%S`7A-y4T?&q4DY)AoV<=B26z~%i)I^HZCFz*$~ifPP#3k zYz{pCPa5$db z)MDPrCijK%ZXTbrQ#JkU)N#-Fzm2=y!7i9MKj-N@qjpxlJ1w)dvUiwRa5z6g<~|o= zdD?MrF0h&9Q0~sp9bZYSpnv9cJp}9QxDaYU3AH|vPt2`eWmbKx_1q(Arb%oSvAqmy z?KU>L;|`#`Q}FgM_WM#Lwf046Vl=TCkv7mqT{60V(j-dEBQT5KikF*eqYmVO%@+)ZN}8$9J^V55yCuJVvuZ#fRAMcrku(L#D;Ck}Z2Mb!ObQHaj?qTMM-j z9m~ct(YjekbsWk3$8ccV=aj|NRm%x&x_hj)Zf?3EiTXIJds3FN^>>r$#Jl4tAA zueKMeEhfaOS+~2sP4*5A?F@zAT57$o%~kALE)RNVi7g{kcgGy$xUy?8x2!=^yhKY{ z_Gmn936s!SI@4DV=v2)$>(10tw$)ApB{slL1EeUIHq&D#WzvzZ%A-RSR~8+qq%4OH z10hT(FYNfi-Sx_9?{N(9pCi(Cp zvF;MhcPUVcGK>p1hg&<5Y7TyqB1;%MyA-CAoV6cW2RTa$l=NFG9Za>s+_pcR+3x!- zdlgkQhNI>Ah2E09WeQ1Ae0-%Dt1Ry=vmKiyzp86ZRhtV{3FZ?@xf@NZxp${U*Gan3 zV#==7o%R#kRX5mf|9o|L{7;a(ma)itSC+IDbuEV7fUc!+Ex<0@xwg@61lim+uuGL= zt0R$_i`K3zc+@BlnI)8RL7ee>n~HMbU~++V;#>iqS-dit=8h556k9T8D7&;19s}0@PXm*%2~6xVproTQw!(h%k8{D8CJuW zXpurr+-V2A6RWIVR9snY!?8C6xuBD5b#7mF>TjpVmX1XH*g%2#@P zS64JAc`j)0?zOAv);JQHEL9(yXu8FIY)a^EvziyW*=*{`p}QkVnjyL;f_4Y-U{>pQ zl{v$csyBWLsfm5EV0Y+KUCXhihDXP(tNoNDybsLIilxT;+#%^?D>ejj{6445)=N|J z+*OeOtN7K?yDR?eyjf)n`KVTJV2ZteZbbh^N&E=xjj^e&XED;nUBB-1HDv3*{lI3& zhSyZbF5bwWw8D*@N@o{%-&oj;Q^)5-asND2jUAzLyWiSF>&i3kXJuleUSe}-bAi@n zJ5i-2_Mmr0Zy%YAteDwyXN>)r*F0m_z3gk@SZpoJ=u|rcrxdqxXkV#yxKBAMBt@6l ztCONitq>PYYK19DwcJ|R$v5i~{+%UnK1;sDuz?n|(wj7#kHHs|RNKFvk-8~)CwNDi zZ}J@}mIk^{6Tj4GF*&-T!@$hq?uL~YII+33<|ko*89upWZiMfaY{e7*!BWRova?3c zoH@GXU;e5&vaW)EJIU_P)9hHV4r}#uKdsrZxnR(~is2V0YUXgoVM-wdgps&!OJZ#) zFQTib2C0j=UT+Ca)`+4u}4|A6QQr!27xx0&mL9lvKw zQO$a-ZIfMm&)Jk%5~{!ZV~AU{u{rC;q{nt+?lML<8cx}ay1!tOnpYR2h@0Kq58}uE zp}66b-9H)0(vCBiZ11OQN4sBCwn4n(Hq)+E?^baNiyeGco15xO!QA+zs{NZS$!Us> zNjby$gf;OWGmLvd=zbi!*i9QPfpUsl{^3CHUq9?DKsFbJy?-vM3yN-J>P#^wziqnR zzhBsCsNB|scP&J!OC4NUbf*mVtG5Y7llZ&Y9qGnK@ea(X<8@>uWf$r&K;nd$N;z?y z>%!-+ykU+lUs~^LdacjeFAX*6oA4Bk*N(DMuIajxfM7Q!fWybcGHC6$Nvr=ZyydrC zO-)`&Zo1J9(wVR(=Ldtl0nFPzb}*>qq#9I`|MA3>_0*c5#IIBG+&`noZ?CkBl(dUY z`w+uRLedVp-82-8uj%Hv+ixR@+0SJY5chAZcsrU+%>39xIcPA2TXt@;UUqg0 zx2$BhU@Eu#yrd)thb6n^COZX#$!__>lC7n1%gIaD%g#=A3#M?(8J?RQM|QGXK~9p| zuw+L^w1_nlE1|R{%OhEhr#83cYAdm#&8z4RoFas(s0MZBqFh0;s1`uWi2?9ZU zd`W6W34{&dhqy+BAo%Dkn0ZLz4M=RDd5HxDIjQk^iMgr8K#BNxmvF}*H)JJXwhB}P zi+NBNLlnTw%TLNm28p1X2Qvpoo1o|hn}H$%GY{;(g2ZHW^E@EdGQiA>K+%ocypqZS ztp3e`nx_M$YY3QU1XL#h#E_`v2C_hyfx#o#(E}s~i*g>YD1^_*z{c<&2xz571Zo!~ QEwV8%15*zR&|M%q0q4d-*Z=?k literal 0 HcmV?d00001 diff --git a/server/cmake-build-debug/CMakeFiles/compLib_server.dir/src/main.cpp.o b/server/cmake-build-debug/CMakeFiles/compLib_server.dir/src/main.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..0b913abc71e88be2a28fd7fe66ae09b0323eefd6 GIT binary patch literal 561916 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 + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/server_v2/.idea/other.xml b/server_v2/.idea/other.xml new file mode 100644 index 0000000..6db1952 --- /dev/null +++ b/server_v2/.idea/other.xml @@ -0,0 +1,10 @@ + + + + + + \ No newline at end of file diff --git a/server_v2/CMakeLists.txt b/server_v2/CMakeLists.txt index 41eedd2..8da8431 100644 --- a/server_v2/CMakeLists.txt +++ b/server_v2/CMakeLists.txt @@ -25,13 +25,28 @@ set(PROTO_FILES set(SRC_FILES src/main.cpp src/spi.cpp - ) + src/IRSensors.cpp + src/Cache.cpp + src/Motors.cpp + src/Encoders.cpp + src/ClosedLoopMotorController.cpp + src/PID.cpp + src/OdometryController.cpp + src/Odometry.cpp) set(HDR_FILES include/spi.hpp include/reset.hpp include/mathUtils.hpp - ) + include/IRSensors.hpp + include/Robot.hpp + include/Cache.hpp + include/Motors.hpp + include/Encoders.hpp + include/ClosedLoopMotorController.hpp + include/PID.hpp + include/OdometryController.hpp + include/Odometry.hpp) include_directories(third_party/asio) diff --git a/server_v2/include/Cache.hpp b/server_v2/include/Cache.hpp new file mode 100644 index 0000000..c4d4dc9 --- /dev/null +++ b/server_v2/include/Cache.hpp @@ -0,0 +1,23 @@ +#ifndef COMPLIB_SERVER_CACHE_HPP +#define COMPLIB_SERVER_CACHE_HPP + +#include + +class Cache { +public: + explicit Cache(int rate_hz); + + bool is_expired(); + + void update(); + +private: + + typedef std::chrono::steady_clock clock; + + std::chrono::microseconds cache_duration{}; + std::chrono::time_point last_update{}; +}; + + +#endif //COMPLIB_SERVER_CACHE_HPP diff --git a/server_v2/include/ClosedLoopMotorController.hpp b/server_v2/include/ClosedLoopMotorController.hpp new file mode 100644 index 0000000..ded8143 --- /dev/null +++ b/server_v2/include/ClosedLoopMotorController.hpp @@ -0,0 +1,46 @@ +#ifndef COMPLIB_SERVER_CLOSEDLOOPMOTORCONTROLLER_HPP +#define COMPLIB_SERVER_CLOSEDLOOPMOTORCONTROLLER_HPP + + +#include +#include +#include + +#include "include/PID.hpp" +#include "include/Robot.hpp" + +class ClosedLoopMotorController { +public: + static ClosedLoopMotorController &getInstance() { + static ClosedLoopMotorController instance; + return instance; + } + + ClosedLoopMotorController(ClosedLoopMotorController const &) = delete; + + void operator=(ClosedLoopMotorController const &) = delete; + + void set_power(uint8_t port, double power); + + void set_speed(uint8_t port, double speed_rpm); + +private: + enum ControlMode : uint8_t { + NONE = 0, + POWER = 1, + SPEED = 2 + }; + + ClosedLoopMotorController(); + + [[noreturn]] void speed_control_loop(); + + std::array pids; + std::array control_modes{ControlMode::NONE}; + std::array speed_targets{0}; + + std::thread speed_control_thread; +}; + + +#endif //COMPLIB_SERVER_CLOSEDLOOPMOTORCONTROLLER_HPP diff --git a/server_v2/include/Encoders.hpp b/server_v2/include/Encoders.hpp new file mode 100644 index 0000000..612419c --- /dev/null +++ b/server_v2/include/Encoders.hpp @@ -0,0 +1,35 @@ +#ifndef COMPLIB_SERVER_ENCODERS_HPP +#define COMPLIB_SERVER_ENCODERS_HPP + +#include +#include +#include "include/Cache.hpp" +#include "include/Robot.hpp" + +class Encoders { +public: + static Encoders &getInstance() { + static Encoders instance; + return instance; + } + + Encoders(Encoders const &) = delete; + + void operator=(Encoders const &) = delete; + + std::array get_positions(); + + std::array get_velocities_rpm(); + +private: + Encoders() = default; + + Cache position_cache{ROBOT_ENCODER_RATE_HZ}; + Cache velocity_cache{ROBOT_ENCODER_RATE_HZ}; + + std::array cached_positions = {0}; + std::array cached_velocities_rpm = {0}; +}; + + +#endif //COMPLIB_SERVER_ENCODERS_HPP diff --git a/server_v2/include/IRSensors.hpp b/server_v2/include/IRSensors.hpp new file mode 100644 index 0000000..b41374d --- /dev/null +++ b/server_v2/include/IRSensors.hpp @@ -0,0 +1,37 @@ +#ifndef COMPLIB_SERVER_IRSENSORS_HPP +#define COMPLIB_SERVER_IRSENSORS_HPP + +#include +#include + +#include "include/Cache.hpp" +#include "include/Robot.hpp" + +class IRSensors { +public: + static IRSensors &getInstance() { + static IRSensors instance; + return instance; + } + + IRSensors(IRSensors const &) = delete; + + void operator=(IRSensors const &) = delete; + + static void enable(); + + static void disable(); + + std::array read(); + +private: + + IRSensors() = default; + + Cache cache{ROBOT_IR_RATE_HZ}; + + std::array cached_values = {0}; +}; + + +#endif //COMPLIB_SERVER_IRSENSORS_HPP diff --git a/server_v2/include/Motors.hpp b/server_v2/include/Motors.hpp new file mode 100644 index 0000000..7688804 --- /dev/null +++ b/server_v2/include/Motors.hpp @@ -0,0 +1,26 @@ +#ifndef COMPLIB_SERVER_MOTORS_HPP +#define COMPLIB_SERVER_MOTORS_HPP + +#include + +class Motors { +public: + enum Mode : uint8_t { + COAST = 0, + FORWARD = 1, + BACKWARD = 2, + BREAK = 3, + SERVO = 4, + NONE = 5 + }; + + static void set_power(uint8_t port, double percent); + + static void set_pwm(uint8_t port, uint16_t pwm, Mode mode); + +private: + + Motors() = default; +}; + +#endif //COMPLIB_SERVER_MOTORS_HPP diff --git a/server_v2/include/Odometry.hpp b/server_v2/include/Odometry.hpp new file mode 100644 index 0000000..cc51a01 --- /dev/null +++ b/server_v2/include/Odometry.hpp @@ -0,0 +1,24 @@ +#ifndef COMPLIB_SERVER_ODOMETRY_HPP +#define COMPLIB_SERVER_ODOMETRY_HPP + +class Odometry { + +public: + Odometry(); + + Odometry(double x_position, double y_position, double angular_orientation); + + double get_x_position() const; + + double get_y_position() const; + + double get_angular_orientation() const; + + +private: + double x_position; + double y_position; + double angular_orientation; +}; + +#endif //COMPLIB_SERVER_ODOMETRY_HPP diff --git a/server_v2/include/OdometryController.hpp b/server_v2/include/OdometryController.hpp new file mode 100644 index 0000000..1be1e95 --- /dev/null +++ b/server_v2/include/OdometryController.hpp @@ -0,0 +1,46 @@ +#ifndef COMPLIB_SERVER_ODOMETRYCONTROLLER_HPP +#define COMPLIB_SERVER_ODOMETRYCONTROLLER_HPP + + +#include +#include + +#include "include/Odometry.hpp" + +class OdometryController { +public: + static OdometryController &getInstance() { + static OdometryController instance; + return instance; + } + + OdometryController(OdometryController const &) = delete; + + void operator=(OdometryController const &) = delete; + + void enable(); + + void disable(); + + void reset(); + + Odometry get(); + +private: + typedef std::chrono::steady_clock clock; + + OdometryController(); + + std::thread odometry_thread; + + [[noreturn]] void odometry_loop(); + + Odometry current_odometry{}; + bool enabled = false; + double last_position_left{0}; + double last_position_right{0}; + std::chrono::time_point last_run; +}; + + +#endif //COMPLIB_SERVER_ODOMETRYCONTROLLER_HPP diff --git a/server_v2/include/PID.hpp b/server_v2/include/PID.hpp new file mode 100644 index 0000000..2422a20 --- /dev/null +++ b/server_v2/include/PID.hpp @@ -0,0 +1,32 @@ +#ifndef COMPLIB_SERVER_PID_HPP +#define COMPLIB_SERVER_PID_HPP + +#include + +class PID { +public: + PID(); + + PID(double P, double I, double D, double ramp, double limit); + + ~PID() = default; + + double operator()(double setpoint, double process_variable); + + double P = 1; + double I = 0; + double D = 0; + double setpoint_ramp = 0; + double limit = 0; + +private: + typedef std::chrono::steady_clock clock; +# + + double error_prev = 0; + double setpoint_prev = 0; + double integral_prev = 0; + clock::time_point timestamp_prev = clock::now(); +}; + +#endif // COMPLIB_SERVER_PID_HPP \ No newline at end of file diff --git a/server_v2/include/Robot.hpp b/server_v2/include/Robot.hpp new file mode 100644 index 0000000..28164eb --- /dev/null +++ b/server_v2/include/Robot.hpp @@ -0,0 +1,31 @@ +#ifndef COMPLIB_SERVER_ROBOT_HPP +#define COMPLIB_SERVER_ROBOT_HPP + +#include + +#define ROBOT_IR_SENSOR_COUNT 5 +#define ROBOT_IR_RATE_HZ 250 + +#define ROBOT_MOTOR_COUNT 4 +#define ROBOT_MOTOR_SPEED_CONTROL_KP 0.5 +#define ROBOT_MOTOR_SPEED_CONTROL_KI 5.0 +#define ROBOT_MOTOR_SPEED_CONTROL_KD 0.025 +#define ROBOT_MOTOR_SPEED_CONTROL_RAMP 100.0 +#define ROBOT_MOTOR_SPEED_CONTROL_RATE_HZ 250 + +#define ROBOT_ODOMETRY_CONTROLLER_RATE_HZ 250 +#define ROBOT_ODOMETRY_CONTROLLER_LEFT_PORT 3 +#define ROBOT_ODOMETRY_CONTROLLER_RIGHT_PORT 0 +#define ROBOT_ODOMETRY_CONTROLLER_LEFT_MULT 1.0 +#define ROBOT_ODOMETRY_CONTROLLER_RIGHT_MULT -1.0 + +#define ROBOT_ENCODER_RATE_HZ 250 + +#define ROBOT_WHEEL_CIRCUMFERENCE_MM (71.0 * M_PI) +#define ROBOT_TICKS_PER_TURN (27.7 * 100.0) +#define ROBOT_ARBOR_LENGTH_MM 139.0 +#define ROBOT_ARBOR_LENGTH_M (ROBOT_ARBOR_LENGTH_MM / 1000.0) +#define ROBOT_TICKS_PER_METER (1000.0 / ROBOT_WHEEL_CIRCUMFERENCE_MM * ROBOT_TICKS_PER_TURN) + + +#endif //COMPLIB_SERVER_ROBOT_HPP diff --git a/server_v2/include/mathUtils.hpp b/server_v2/include/mathUtils.hpp index b4eee56..603c6fd 100644 --- a/server_v2/include/mathUtils.hpp +++ b/server_v2/include/mathUtils.hpp @@ -4,24 +4,36 @@ #include namespace mathUtils { - inline int int_from_bytes(uint8_t *data, int length) { - int ret = 0; + inline int int_from_bytes(uint8_t *data, int length) { + int ret = 0; - int i = 0; - for (int j = length -1; j >= 0; j--) { - ret = ret | (data[i] << (j * 8)); - i++; - } - return ret; + int i = 0; + for (int j = length - 1; j >= 0; j--) { + ret = ret | (data[i] << (j * 8)); + i++; } + return ret; + } - inline void bytes_from_int(int data, int length, uint8_t *result) { - int i = 0; - for (int j = length -1; j >= 0; j--) { - result[i] = ((data >> (j * 8)) & 0xffu); - i++; - } + template + inline T from_bytes(const uint8_t *data, int length) { + T ret = 0; + + int i = 0; + for (int j = length - 1; j >= 0; j--) { + ret = ret | (data[i] << (j * 8)); + i++; } + return ret; + } + + inline void bytes_from_int(int data, int length, uint8_t *result) { + int i = 0; + for (int j = length - 1; j >= 0; j--) { + result[i] = ((data >> (j * 8)) & 0xffu); + i++; + } + } } #endif // COMPLIB_SERVER_MATHUTILS_HPP \ No newline at end of file diff --git a/server_v2/include/spi.hpp b/server_v2/include/spi.hpp index c48e5a4..376b222 100644 --- a/server_v2/include/spi.hpp +++ b/server_v2/include/spi.hpp @@ -14,126 +14,129 @@ class Spi { public: - static Spi& getInstance() - { - static Spi instance; - return instance; - } + static Spi &getInstance() { + static Spi instance; + return instance; + } - Spi(Spi const&) = delete; - void operator=(Spi const&) = delete; + Spi(Spi const &) = delete; - int read(uint8_t reg, uint8_t length); - void read_array(uint8_t reg, uint8_t length, uint8_t* data); - - void write(uint8_t reg, uint8_t length, int value); - void write_array(uint8_t reg, uint8_t length, const uint8_t* data); - - enum Register : uint8_t { - IDENTIFICATION_MODEL_ID = 1, - IDENTIFICATION_MODEL_REV_MAJOR = 2, - IDENTIFICATION_MODEL_REV_MINOR = 3, - IDENTIFICATION_MODEL_REV_PATCH = 4, + void operator=(Spi const &) = delete; - // Motor encoder positions - MOTOR_1_POS_B3 = 10, - MOTOR_1_POS_B2 = 11, - MOTOR_1_POS_B1 = 12, - MOTOR_1_POS_B0 = 13, - MOTOR_2_POS_B3 = 14, - MOTOR_2_POS_B2 = 15, - MOTOR_2_POS_B1 = 16, - MOTOR_2_POS_B0 = 17, - MOTOR_3_POS_B3 = 18, - MOTOR_3_POS_B2 = 19, - MOTOR_3_POS_B1 = 20, - MOTOR_3_POS_B0 = 21, - MOTOR_4_POS_B3 = 22, - MOTOR_4_POS_B2 = 23, - MOTOR_4_POS_B1 = 24, - MOTOR_4_POS_B0 = 25, + int read(uint8_t reg, uint8_t length); - // PWM Control Modes - PWM_1_CTRL = 26, - PWM_2_CTRL = 27, - PWM_3_CTRL = 28, - PWM_4_CTRL = 29, + void read_array(uint8_t reg, uint8_t length, uint8_t *data); - // Motor pwm speed - MOTOR_1_PWM_H = 30, - MOTOR_1_PWM_L = 31, - MOTOR_2_PWM_H = 32, - MOTOR_2_PWM_L = 33, - MOTOR_3_PWM_H = 34, - MOTOR_3_PWM_L = 35, - MOTOR_4_PWM_H = 36, - MOTOR_4_PWM_L = 37, + void write(uint8_t reg, uint8_t length, int value); - // Servo goal position - SERVO_1_PWM_H = 38, - SERVO_1_PWM_L = 39, - SERVO_2_PWM_H = 40, - SERVO_2_PWM_L = 41, - SERVO_3_PWM_H = 42, - SERVO_3_PWM_L = 43, - SERVO_4_PWM_H = 44, - SERVO_4_PWM_L = 45, - SERVO_5_PWM_H = 46, - SERVO_5_PWM_L = 47, - SERVO_6_PWM_H = 48, - SERVO_6_PWM_L = 49, - SERVO_7_PWM_H = 50, - SERVO_7_PWM_L = 51, - SERVO_8_PWM_H = 52, - SERVO_8_PWM_L = 53, + void write_array(uint8_t reg, uint8_t length, const uint8_t *data); - // IR Sensor value - IR_1_H = 54, - IR_1_L = 55, - IR_2_H = 56, - IR_2_L = 57, - IR_3_H = 58, - IR_3_L = 59, - IR_4_H = 60, - IR_4_L = 61, - IR_5_H = 62, - IR_5_L = 63, - IR_1_LED = 64, - IR_2_LED = 65, - IR_3_LED = 66, - IR_4_LED = 67, - IR_5_LED = 68, + enum Register : uint8_t { + IDENTIFICATION_MODEL_ID = 1, + IDENTIFICATION_MODEL_REV_MAJOR = 2, + IDENTIFICATION_MODEL_REV_MINOR = 3, + IDENTIFICATION_MODEL_REV_PATCH = 4, - // Display registers - DISPLAY_LINE_1_C0 = 69, - DISPLAY_LINE_2_C0 = 85, - DISPLAY_LINE_3_C0 = 101, - DISPLAY_LINE_4_C0 = 117, + // Motor encoder positions + MOTOR_1_POS_B3 = 10, + MOTOR_1_POS_B2 = 11, + MOTOR_1_POS_B1 = 12, + MOTOR_1_POS_B0 = 13, + MOTOR_2_POS_B3 = 14, + MOTOR_2_POS_B2 = 15, + MOTOR_2_POS_B1 = 16, + MOTOR_2_POS_B0 = 17, + MOTOR_3_POS_B3 = 18, + MOTOR_3_POS_B2 = 19, + MOTOR_3_POS_B1 = 20, + MOTOR_3_POS_B0 = 21, + MOTOR_4_POS_B3 = 22, + MOTOR_4_POS_B2 = 23, + MOTOR_4_POS_B1 = 24, + MOTOR_4_POS_B0 = 25, - // Motor encoder velocities - MOTOR_1_VEL_H = 118, - MOTOR_1_VEL_L = 119, - MOTOR_2_VEL_H = 120, - MOTOR_2_VEL_L = 121, - MOTOR_3_VEL_H = 122, - MOTOR_3_VEL_L = 123, - MOTOR_4_VEL_H = 124, - MOTOR_4_VEL_L = 125 - }; + // PWM Control Modes + PWM_1_CTRL = 26, + PWM_2_CTRL = 27, + PWM_3_CTRL = 28, + PWM_4_CTRL = 29, + + // Motor pwm speed + MOTOR_1_PWM_H = 30, + MOTOR_1_PWM_L = 31, + MOTOR_2_PWM_H = 32, + MOTOR_2_PWM_L = 33, + MOTOR_3_PWM_H = 34, + MOTOR_3_PWM_L = 35, + MOTOR_4_PWM_H = 36, + MOTOR_4_PWM_L = 37, + + // Servo goal position + SERVO_1_PWM_H = 38, + SERVO_1_PWM_L = 39, + SERVO_2_PWM_H = 40, + SERVO_2_PWM_L = 41, + SERVO_3_PWM_H = 42, + SERVO_3_PWM_L = 43, + SERVO_4_PWM_H = 44, + SERVO_4_PWM_L = 45, + SERVO_5_PWM_H = 46, + SERVO_5_PWM_L = 47, + SERVO_6_PWM_H = 48, + SERVO_6_PWM_L = 49, + SERVO_7_PWM_H = 50, + SERVO_7_PWM_L = 51, + SERVO_8_PWM_H = 52, + SERVO_8_PWM_L = 53, + + // IR Sensor value + IR_1_H = 54, + IR_1_L = 55, + IR_2_H = 56, + IR_2_L = 57, + IR_3_H = 58, + IR_3_L = 59, + IR_4_H = 60, + IR_4_L = 61, + IR_5_H = 62, + IR_5_L = 63, + IR_1_LED = 64, + IR_2_LED = 65, + IR_3_LED = 66, + IR_4_LED = 67, + IR_5_LED = 68, + + // Display registers + DISPLAY_LINE_1_C0 = 69, + DISPLAY_LINE_2_C0 = 85, + DISPLAY_LINE_3_C0 = 101, + DISPLAY_LINE_4_C0 = 117, + + // Motor encoder velocities + MOTOR_1_VEL_H = 133, + MOTOR_1_VEL_L = 134, + MOTOR_2_VEL_H = 135, + MOTOR_2_VEL_L = 136, + MOTOR_3_VEL_H = 137, + MOTOR_3_VEL_L = 138, + MOTOR_4_VEL_H = 139, + MOTOR_4_VEL_L = 140 + }; private: - Spi(); + Spi(); - int spi_file_descriptor{}; - uint8_t tx_buffer[SPI_BUFFER_SIZE] = {0}; - uint8_t rx_buffer[SPI_BUFFER_SIZE] = {0}; + int spi_file_descriptor{}; + uint8_t tx_buffer[SPI_BUFFER_SIZE] = {0}; + uint8_t rx_buffer[SPI_BUFFER_SIZE] = {0}; - std::recursive_mutex spi_mutex; + std::recursive_mutex spi_mutex; - void transfer(); - void clear_buffers(); + void transfer(); - uint8_t calculate_checksum(uint8_t* data, uint8_t length); + void clear_buffers(); + + uint8_t calculate_checksum(uint8_t *data, uint8_t length); }; diff --git a/server_v2/src/Cache.cpp b/server_v2/src/Cache.cpp new file mode 100644 index 0000000..0cd9a0b --- /dev/null +++ b/server_v2/src/Cache.cpp @@ -0,0 +1,16 @@ +#include "include/Cache.hpp" + +#define MS_IN_S 1000 +#define US_IN_S (1000 * MS_IN_S) + +Cache::Cache(int rate_hz) { + cache_duration = std::chrono::microseconds(US_IN_S / rate_hz); +} + +bool Cache::is_expired() { + return ((clock::now() - last_update) > cache_duration); +} + +void Cache::update() { + last_update = clock::now(); +} diff --git a/server_v2/src/ClosedLoopMotorController.cpp b/server_v2/src/ClosedLoopMotorController.cpp new file mode 100644 index 0000000..ea06ead --- /dev/null +++ b/server_v2/src/ClosedLoopMotorController.cpp @@ -0,0 +1,49 @@ +#include +#include "include/ClosedLoopMotorController.hpp" +#include "include/Motors.hpp" +#include "include/Encoders.hpp" + +#define MS_IN_S 1000 +#define US_IN_S (1000 * MS_IN_S) + +void ClosedLoopMotorController::set_power(uint8_t port, double power) { + control_modes.at(port) = ControlMode::POWER; + Motors::set_power(port, power); +} + +void ClosedLoopMotorController::set_speed(uint8_t port, double speed_rpm) { + speed_targets.at(port) = speed_rpm; + if (control_modes.at(port) != ControlMode::SPEED) { + pids.at(port) = PID( + ROBOT_MOTOR_SPEED_CONTROL_KP, ROBOT_MOTOR_SPEED_CONTROL_KI, ROBOT_MOTOR_SPEED_CONTROL_KD, + ROBOT_MOTOR_SPEED_CONTROL_RAMP, 100.0); + control_modes.at(port) = ControlMode::SPEED; + } +} + +ClosedLoopMotorController::ClosedLoopMotorController() { + speed_control_thread = std::thread(&ClosedLoopMotorController::speed_control_loop, this); + speed_control_thread.detach(); +} + +[[noreturn]] void ClosedLoopMotorController::speed_control_loop() { + auto sleep_duration = std::chrono::microseconds(US_IN_S / ROBOT_MOTOR_SPEED_CONTROL_RATE_HZ); + while (true) { + std::this_thread::sleep_for(sleep_duration); + + bool should_control_speed = std::find(control_modes.begin(), control_modes.end(), ControlMode::SPEED) != control_modes.end(); + if (!should_control_speed) { + continue; + } + + auto speeds = Encoders::getInstance().get_velocities_rpm(); + for (int i = 0; i < ROBOT_MOTOR_COUNT; i++) { + if (control_modes.at(i) == ControlMode::SPEED) { + double power = pids.at(i)(speed_targets.at(i), speeds.at(i)); + Motors::set_power(i, power); + } + } + } +} + + diff --git a/server_v2/src/Encoders.cpp b/server_v2/src/Encoders.cpp new file mode 100644 index 0000000..0d8ad5f --- /dev/null +++ b/server_v2/src/Encoders.cpp @@ -0,0 +1,29 @@ +#include "include/Encoders.hpp" +#include "include/spi.hpp" +#include "include/mathUtils.hpp" +#include + +std::array Encoders::get_positions() { + if (position_cache.is_expired()) { + uint8_t data[ROBOT_MOTOR_COUNT * 4] = {0}; + Spi::getInstance().read_array(Spi::MOTOR_1_POS_B3, 4 * ROBOT_MOTOR_COUNT, data); + for (int i = 0; i < ROBOT_MOTOR_COUNT; ++i) { + cached_positions.at(i) = mathUtils::from_bytes(data + i * 4, 4); + } + position_cache.update(); + } + return cached_positions; +} + +std::array Encoders::get_velocities_rpm() { + if (velocity_cache.is_expired()) { + uint8_t data[ROBOT_MOTOR_COUNT * 2] = {0}; + Spi::getInstance().read_array(Spi::MOTOR_1_VEL_H, 2 * ROBOT_MOTOR_COUNT, data); + for (int i = 0; i < ROBOT_MOTOR_COUNT; ++i) { + auto velocity_tps = mathUtils::from_bytes(data + i * 2, 2); + cached_velocities_rpm.at(i) = velocity_tps * 60.0 / ROBOT_TICKS_PER_TURN; + } + velocity_cache.update(); + } + return cached_velocities_rpm; +} diff --git a/server_v2/src/IRSensors.cpp b/server_v2/src/IRSensors.cpp new file mode 100644 index 0000000..9edd035 --- /dev/null +++ b/server_v2/src/IRSensors.cpp @@ -0,0 +1,29 @@ +#include "include/IRSensors.hpp" +#include "include/spi.hpp" +#include "include/Robot.hpp" +#include "include/mathUtils.hpp" + +void IRSensors::enable() { + uint8_t data[ROBOT_IR_SENSOR_COUNT] = {}; + std::fill_n(data, ROBOT_IR_SENSOR_COUNT, 1); + Spi::getInstance().write_array(Spi::IR_1_LED, ROBOT_IR_SENSOR_COUNT, data); +} + +void IRSensors::disable() { + uint8_t data[ROBOT_IR_SENSOR_COUNT] = {}; + std::fill_n(data, ROBOT_IR_SENSOR_COUNT, 0); + Spi::getInstance().write_array(Spi::IR_1_LED, ROBOT_IR_SENSOR_COUNT, data); +} + + +std::array IRSensors::read() { + if (cache.is_expired()) { + uint8_t data[ROBOT_IR_SENSOR_COUNT * 2] = {0}; + Spi::getInstance().read_array(Spi::IR_1_H, 2 * ROBOT_IR_SENSOR_COUNT, data); + for (int i = 0; i < ROBOT_IR_SENSOR_COUNT; ++i) { + cached_values.at(i) = mathUtils::from_bytes(data + i * 2, 2); + } + cache.update(); + } + return cached_values; +} \ No newline at end of file diff --git a/server_v2/src/Motors.cpp b/server_v2/src/Motors.cpp new file mode 100644 index 0000000..da44582 --- /dev/null +++ b/server_v2/src/Motors.cpp @@ -0,0 +1,31 @@ +#include "include/Motors.hpp" +#include "include/spi.hpp" +#include "include/Robot.hpp" +#include +#include + +void Motors::set_power(uint8_t port, double percent) { + if (fabs(percent) > 100.0) { + spdlog::error("Invalid motor percent specified. Should be -100 <= percent <= 100", percent); + } + + Mode mode = Mode::COAST; + if (percent < 0.0) { + mode = Mode::BACKWARD; + } else if (percent > 0.0) { + mode = Mode::FORWARD; + } + + auto pwm = (uint16_t) (fabs(percent) * (std::numeric_limits::max() / 100.0)); + set_pwm(port, pwm, mode); +} + +void Motors::set_pwm(uint8_t port, uint16_t pwm, Mode mode) { + if (port >= ROBOT_MOTOR_COUNT) { + spdlog::error("Invalid motor port {} specified", port); + } + + Spi::getInstance().write(Spi::MOTOR_1_PWM_H + port * 2, 2, pwm); + Spi::getInstance().write(Spi::PWM_1_CTRL + port, 1, mode); +} + diff --git a/server_v2/src/Odometry.cpp b/server_v2/src/Odometry.cpp new file mode 100644 index 0000000..7e2343b --- /dev/null +++ b/server_v2/src/Odometry.cpp @@ -0,0 +1,21 @@ +#include "include/Odometry.hpp" + +Odometry::Odometry() : x_position(0), y_position(0), angular_orientation(0) { + +} + +Odometry::Odometry(double x_position, double y_position, double angular_orientation) : x_position(x_position), y_position(y_position), angular_orientation(angular_orientation) { + +} + +double Odometry::get_x_position() const { + return x_position; +} + +double Odometry::get_y_position() const { + return y_position; +} + +double Odometry::get_angular_orientation() const { + return angular_orientation; +} diff --git a/server_v2/src/OdometryController.cpp b/server_v2/src/OdometryController.cpp new file mode 100644 index 0000000..aed8698 --- /dev/null +++ b/server_v2/src/OdometryController.cpp @@ -0,0 +1,83 @@ +#include + +#include "include/OdometryController.hpp" +#include "include/Robot.hpp" +#include "include/Encoders.hpp" +#include + +#define MS_IN_S 1000 +#define US_IN_S (1000 * MS_IN_S) + +void OdometryController::enable() { + last_run = clock::now(); + enabled = true; +} + +void OdometryController::disable() { + enabled = false; +} + +void OdometryController::reset() { + current_odometry = Odometry(); + last_position_left = 0; + last_position_right = 0; + last_run = clock::now(); +} + +Odometry OdometryController::get() { + return current_odometry; +} + + +OdometryController::OdometryController() { + odometry_thread = std::thread(&OdometryController::odometry_loop, this); + odometry_thread.detach(); +} + +[[noreturn]] void OdometryController::odometry_loop() { + auto sleep_duration = std::chrono::microseconds(US_IN_S / ROBOT_ODOMETRY_CONTROLLER_RATE_HZ); + while (true) { + std::this_thread::sleep_for(sleep_duration); + + if (enabled) { + last_run = clock::now(); + auto encoder_positions = Encoders::getInstance().get_positions(); + + auto current_position_left = encoder_positions.at(ROBOT_ODOMETRY_CONTROLLER_LEFT_PORT) * ROBOT_ODOMETRY_CONTROLLER_LEFT_MULT; + auto current_position_right = encoder_positions.at(ROBOT_ODOMETRY_CONTROLLER_RIGHT_PORT) * ROBOT_ODOMETRY_CONTROLLER_RIGHT_MULT; + auto distance_left = (current_position_left - last_position_left) / ROBOT_TICKS_PER_METER; + auto distance_right = (current_position_right - last_position_right) / ROBOT_TICKS_PER_METER; + last_position_left = current_position_left; + last_position_right = current_position_right; + + auto distance = (distance_left + distance_right) * 2.0; + auto theta = (distance_left - distance_right) / ROBOT_ARBOR_LENGTH_M; + + auto new_x_position = current_odometry.get_x_position(); + auto new_y_position = current_odometry.get_y_position(); + auto new_angular_orientation = current_odometry.get_angular_orientation(); + if (distance != 0) { + auto current_orientation = current_odometry.get_angular_orientation(); + + auto distance_x = cos(theta) * distance; + auto distance_y = -sin(theta) * distance; + + new_x_position = current_odometry.get_x_position() + + (cos(current_orientation) * distance_x - + sin(current_orientation) * distance_y); + new_y_position = current_odometry.get_y_position() + + (sin(current_orientation) * distance_x + + cos(current_orientation) * distance_y); + } + if (theta != 0) { + new_angular_orientation = current_odometry.get_angular_orientation() + theta; + } + current_odometry = Odometry(new_x_position, new_y_position, new_angular_orientation); + +// spdlog::info("{} {} {} {} {} {}", +// current_position_left, current_position_right, +// distance_left, distance_right, +// distance, theta); + } + } +} diff --git a/server_v2/src/PID.cpp b/server_v2/src/PID.cpp new file mode 100644 index 0000000..8ba5277 --- /dev/null +++ b/server_v2/src/PID.cpp @@ -0,0 +1,50 @@ +#include "include/PID.hpp" +#include +#include + +#define MS_IN_S 1000.0 +#define US_IN_S (1000.0 * MS_IN_S) + +using namespace std; + + +PID::PID() : P(0), I(0), D(0), setpoint_ramp(0), limit(0), error_prev(0.0), setpoint_prev(0.0), integral_prev(0.0) {}; + +PID::PID(double P, double I, double D, double ramp, double limit) + : P(P), I(I), D(D), setpoint_ramp(ramp), limit(limit), error_prev(0.0), setpoint_prev(0.0), integral_prev(0.0) { + timestamp_prev = clock::now(); +} + +double PID::operator()(double setpoint, double process_variable) { + // calculate the time from the last call + auto timestamp_now = clock::now(); + double delta_seconds = chrono::duration_cast>(timestamp_now - timestamp_prev).count() / US_IN_S; + + if (setpoint_ramp > 0) { + double setpoint_rate = (setpoint - setpoint_prev) / delta_seconds; + if (setpoint_rate > setpoint_ramp) { + setpoint = setpoint_prev + setpoint_ramp * delta_seconds; + } else if (setpoint_rate < -setpoint_ramp) { + setpoint = setpoint_prev - setpoint_ramp * delta_seconds; + } + } + + double error = setpoint - process_variable; + + double proportional = P * error; + // Tustin transform of the integral part + double integral = integral_prev + I * delta_seconds * 0.5f * (error + error_prev); + double derivative = D * ((error - error_prev) / delta_seconds); + + double output = proportional + integral + derivative; + + // anti-windup - limit the output variable + output = std::min(std::max(-limit, output), limit); + // spdlog::info("E{} P{} I{} D{} O{} EP{} DS{}", error, proportional, integral, derivative, output, error_prev, delta_seconds); + + integral_prev = integral; + setpoint_prev = setpoint; + error_prev = error; + timestamp_prev = timestamp_now; + return output; +} diff --git a/server_v2/src/main.cpp b/server_v2/src/main.cpp index a80d960..0dddd15 100644 --- a/server_v2/src/main.cpp +++ b/server_v2/src/main.cpp @@ -1,12 +1,9 @@ #include -#include #include "include/reset.hpp" -#include "include/spi.hpp" - -#define SOCKET_PATH "/tmp/compLib" -#define BUFFER_SIZE 64 -#define SAMPLES 20000.0 +#include "include/Encoders.hpp" +#include "include/OdometryController.hpp" +#include "include/ClosedLoopMotorController.hpp" using namespace std; @@ -14,15 +11,14 @@ int main() { Reset::reset_robot(); spdlog::set_pattern("%H:%M:%S.%e %^%-8l%$: %v"); - auto start = chrono::steady_clock::now(); - for (int i = 0; i < SAMPLES; i++) { - Spi::getInstance().read(Spi::Register::IDENTIFICATION_MODEL_ID, 1); + ClosedLoopMotorController::getInstance().set_speed(0, -125); + ClosedLoopMotorController::getInstance().set_speed(3, 125); + OdometryController::getInstance().enable(); + + for (int i = 0; i < 10000; ++i) { + auto odom = OdometryController::getInstance().get(); + spdlog::info("X {} Y {} W {}", odom.get_x_position(), odom.get_y_position(), odom.get_angular_orientation()); + usleep(1000); } - auto end = chrono::steady_clock::now(); - - spdlog::info("Elapsed time in milliseconds: {}ms", chrono::duration_cast(end - start).count()); - spdlog::info("Loop rate: {}hz", SAMPLES / chrono::duration_cast(end - start).count() * 1000.0); - return 0; } - From 1a033c8b0338b9e0d5607dd2105de442a59a9e94 Mon Sep 17 00:00:00 2001 From: Konstantin Lampalzer Date: Sun, 22 May 2022 02:30:07 +0200 Subject: [PATCH 164/246] Start on unix socket server on c++ side --- server_v2/CMakeLists.txt | 10 ++- .../include/communication/MessageBuilder.hpp | 29 +++++++++ .../communication/MessageProcessor.hpp | 15 +++++ .../communication/UnixSocketServer.hpp | 20 ++++++ server_v2/protos/CompLib.proto | 62 ++++++++++++++++--- .../src/communication/MessageBuilder.cpp | 62 +++++++++++++++++++ .../src/communication/MessageProcessor.cpp | 57 +++++++++++++++++ .../src/communication/UnixSocketServer.cpp | 54 ++++++++++++++++ 8 files changed, 300 insertions(+), 9 deletions(-) create mode 100644 server_v2/include/communication/MessageBuilder.hpp create mode 100644 server_v2/include/communication/MessageProcessor.hpp create mode 100644 server_v2/include/communication/UnixSocketServer.hpp create mode 100644 server_v2/src/communication/MessageBuilder.cpp create mode 100644 server_v2/src/communication/MessageProcessor.cpp create mode 100644 server_v2/src/communication/UnixSocketServer.cpp diff --git a/server_v2/CMakeLists.txt b/server_v2/CMakeLists.txt index 8da8431..629923a 100644 --- a/server_v2/CMakeLists.txt +++ b/server_v2/CMakeLists.txt @@ -32,7 +32,10 @@ set(SRC_FILES src/ClosedLoopMotorController.cpp src/PID.cpp src/OdometryController.cpp - src/Odometry.cpp) + src/Odometry.cpp + src/communication/MessageProcessor.cpp + src/communication/MessageBuilder.cpp + src/communication/UnixSocketServer.cpp) set(HDR_FILES include/spi.hpp @@ -46,7 +49,10 @@ set(HDR_FILES include/ClosedLoopMotorController.hpp include/PID.hpp include/OdometryController.hpp - include/Odometry.hpp) + include/Odometry.hpp + include/communication/MessageProcessor.hpp + include/communication/MessageBuilder.hpp + include/communication/UnixSocketServer.hpp) include_directories(third_party/asio) diff --git a/server_v2/include/communication/MessageBuilder.hpp b/server_v2/include/communication/MessageBuilder.hpp new file mode 100644 index 0000000..93912f4 --- /dev/null +++ b/server_v2/include/communication/MessageBuilder.hpp @@ -0,0 +1,29 @@ +#ifndef COMPLIB_SERVER_MESSAGEBUILDER_HPP +#define COMPLIB_SERVER_MESSAGEBUILDER_HPP + + +#include "CompLib.pb.h" +#include "include/Robot.hpp" + +class MessageBuilder { +public: + static CompLib::Header *header(const std::string &message_type); + + static CompLib::Status *status(bool successful, const std::string &error_message); + + static CompLib::GenericResponse *generic_response(bool successful, const std::string &error_message); + + static CompLib::Status *default_successful_status(); + + static CompLib::GenericResponse *default_successful_generic_response(); + + static CompLib::EncoderReadPositionsResponse *encoder_read_positions_response(std::array positions); + + static CompLib::EncoderReadVelocitiesResponse *encoder_read_velocities_response(std::array velocities); + + static CompLib::IRSensorsReadAllResponse *ir_sensors_read_all_response(std::array data); + +}; + + +#endif //COMPLIB_SERVER_MESSAGEBUILDER_HPP diff --git a/server_v2/include/communication/MessageProcessor.hpp b/server_v2/include/communication/MessageProcessor.hpp new file mode 100644 index 0000000..6b02888 --- /dev/null +++ b/server_v2/include/communication/MessageProcessor.hpp @@ -0,0 +1,15 @@ +#ifndef COMPLIB_SERVER_MESSAGEPROCESSOR_HPP +#define COMPLIB_SERVER_MESSAGEPROCESSOR_HPP + +#include + +#define ERROR_MESSAGE_HEADER_UNKNOWN "Header.message_type unknown" + +class MessageProcessor { +public: + static google::protobuf::Message *process_message(const std::string &serializedMessage); + +}; + + +#endif //COMPLIB_SERVER_MESSAGEPROCESSOR_HPP \ No newline at end of file diff --git a/server_v2/include/communication/UnixSocketServer.hpp b/server_v2/include/communication/UnixSocketServer.hpp new file mode 100644 index 0000000..c734db9 --- /dev/null +++ b/server_v2/include/communication/UnixSocketServer.hpp @@ -0,0 +1,20 @@ +#ifndef COMPLIB_SERVER_UNIXSOCKETSERVER_HPP +#define COMPLIB_SERVER_UNIXSOCKETSERVER_HPP + +#include + +#define SOCKET_PATH "/tmp/compLib" +#define SOCKET_BUFFER_SIZE 64 + +class UnixSocketServer { +public: + UnixSocketServer(); + +private: + [[noreturn]] void server_loop(); + + std::thread server_thread; +}; + + +#endif //COMPLIB_SERVER_UNIXSOCKETSERVER_HPP diff --git a/server_v2/protos/CompLib.proto b/server_v2/protos/CompLib.proto index 77a202d..1bb1bd0 100644 --- a/server_v2/protos/CompLib.proto +++ b/server_v2/protos/CompLib.proto @@ -20,17 +20,65 @@ message GenericResponse { Status status = 2; } -message ReadSensorsRequest { +message EncoderReadPositionsRequest { Header header = 1; } -message ReadSensorsResponse { +message EncoderReadPositionsResponse { Header header = 1; Status status = 2; - uint32 ir_1 = 3; - uint32 ir_2 = 4; - uint32 ir_3 = 5; - uint32 ir_4 = 6; - uint32 ir_5 = 7; + repeated int32 positions = 3 [packed = true]; +} + +message EncoderReadVelocitiesRequest { + Header header = 1; +} + +message EncoderReadVelocitiesResponse { + Header header = 1; + Status status = 2; + repeated double velocities = 3 [packed = true]; +} + +message IRSensorsEnableRequest { + Header header = 1; +} + +message IRSensorsDisableRequest { + Header header = 1; +} + +message IRSensorsReadAllRequest { + Header header = 1; +} + +message IRSensorsReadAllResponse { + Header header = 1; + Status status = 2; + repeated uint32 data = 3 [packed = true]; +} + +message MotorsSetPowerRequest { + Header header = 1; + uint32 port = 2; + double power = 3; +} + +message MotorsSetSpeedRequest { + Header header = 1; + uint32 port = 2; + double speed = 3; +} + +message OdometryReadRequest { + Header header = 1; +} + +message OdometryReadResponse { + Header header = 1; + Status status = 2; + double x_position = 3; + double y_position = 4; + double orientation = 5; } diff --git a/server_v2/src/communication/MessageBuilder.cpp b/server_v2/src/communication/MessageBuilder.cpp new file mode 100644 index 0000000..da69270 --- /dev/null +++ b/server_v2/src/communication/MessageBuilder.cpp @@ -0,0 +1,62 @@ +#include "include/communication/MessageBuilder.hpp" + +using namespace CompLib; + +CompLib::Header *MessageBuilder::header(const std::string &message_type) { + auto header = new CompLib::Header(); + header->set_message_type(message_type); + return header; +} + +CompLib::Status *MessageBuilder::status(bool successful, const std::string &error_message) { + auto status = new CompLib::Status(); + status->set_successful(successful); + status->set_error_message(error_message); + return status; +} + +CompLib::GenericResponse *MessageBuilder::generic_response(bool successful, const std::string &error_message) { + auto genericResponse = new CompLib::GenericResponse(); + genericResponse->set_allocated_header(header(CompLib::GenericResponse::descriptor()->full_name())); + genericResponse->set_allocated_status(status(successful, error_message)); + return genericResponse; +} + +CompLib::Status *MessageBuilder::default_successful_status() { + return status(true, ""); +} + + +CompLib::GenericResponse *MessageBuilder::default_successful_generic_response() { + return generic_response(true, ""); +} + +CompLib::EncoderReadPositionsResponse *MessageBuilder::encoder_read_positions_response(std::array positions) { + auto response = new EncoderReadPositionsResponse(); + response->set_allocated_header(header(EncoderReadPositionsResponse::descriptor()->full_name())); + response->set_allocated_status(default_successful_status()); + for (int i = 0; i < ROBOT_MOTOR_COUNT; ++i) { + response->set_positions(i, positions.at(i)); + } + return response; +} + +CompLib::EncoderReadVelocitiesResponse *MessageBuilder::encoder_read_velocities_response(std::array velocities) { + auto response = new EncoderReadVelocitiesResponse(); + response->set_allocated_header(header(EncoderReadPositionsResponse::descriptor()->full_name())); + response->set_allocated_status(default_successful_status()); + for (int i = 0; i < ROBOT_MOTOR_COUNT; ++i) { + response->set_velocities(i, velocities.at(i)); + } + return response; +} + +CompLib::IRSensorsReadAllResponse *MessageBuilder::ir_sensors_read_all_response(std::array data) { + auto response = new IRSensorsReadAllResponse(); + response->set_allocated_header(header(IRSensorsReadAllResponse::descriptor()->full_name())); + response->set_allocated_status(default_successful_status()); + for (int i = 0; i < ROBOT_IR_SENSOR_COUNT; ++i) { + response->set_data(i, data.at(i)); + } + return response; +} diff --git a/server_v2/src/communication/MessageProcessor.cpp b/server_v2/src/communication/MessageProcessor.cpp new file mode 100644 index 0000000..bb5fb03 --- /dev/null +++ b/server_v2/src/communication/MessageProcessor.cpp @@ -0,0 +1,57 @@ +#include + +#include "include/communication/MessageProcessor.hpp" +#include "include/communication/MessageBuilder.hpp" + +#include "include/Encoders.hpp" +#include "include/IRSensors.hpp" +#include "include/ClosedLoopMotorController.hpp" + +using namespace CompLib; + +google::protobuf::Message *MessageProcessor::process_message(const std::string &serializedMessage) { + CompLib::GenericRequest message; + message.ParseFromString(serializedMessage); + auto messageTypeName = message.header().message_type(); + + try { + // Encoder + if (messageTypeName == EncoderReadPositionsRequest::GetDescriptor()->full_name()) { + return MessageBuilder::encoder_read_positions_response(Encoders::getInstance().get_positions()); + } else if (messageTypeName == EncoderReadVelocitiesRequest::GetDescriptor()->full_name()) { + return MessageBuilder::encoder_read_velocities_response(Encoders::getInstance().get_velocities_rpm()); + } + + // IR Sensors + if (messageTypeName == IRSensorsEnableRequest::GetDescriptor()->full_name()) { + IRSensors::enable(); + return MessageBuilder::default_successful_generic_response(); + } else if (messageTypeName == IRSensorsDisableRequest::GetDescriptor()->full_name()) { + IRSensors::disable(); + return MessageBuilder::default_successful_generic_response(); + } else if (messageTypeName == IRSensorsReadAllRequest::GetDescriptor()->full_name()) { + return MessageBuilder::ir_sensors_read_all_response(IRSensors::getInstance().read()); + } + + // Motors + if (messageTypeName == MotorsSetPowerRequest::GetDescriptor()->full_name()) { + MotorsSetPowerRequest request; + request.ParseFromString(serializedMessage); + ClosedLoopMotorController::getInstance().set_power(request.port(), request.power()); + return MessageBuilder::default_successful_generic_response(); + } else if (messageTypeName == MotorsSetSpeedRequest::GetDescriptor()->full_name()) { + MotorsSetSpeedRequest request; + request.ParseFromString(serializedMessage); + ClosedLoopMotorController::getInstance().set_speed(request.port(), request.speed()); + return MessageBuilder::default_successful_generic_response(); + } + } catch (const std::exception &ex) { + spdlog::error("Error when processing message with header {}: {}", messageTypeName, ex.what()); + google::protobuf::Message *returnMessage = MessageBuilder::generic_response(false, ex.what()); + return returnMessage; + } + + spdlog::error("Message {} unknown!", messageTypeName); + google::protobuf::Message *returnMessage = MessageBuilder::generic_response(false, ERROR_MESSAGE_HEADER_UNKNOWN); + return returnMessage; +} diff --git a/server_v2/src/communication/UnixSocketServer.cpp b/server_v2/src/communication/UnixSocketServer.cpp new file mode 100644 index 0000000..f9b336a --- /dev/null +++ b/server_v2/src/communication/UnixSocketServer.cpp @@ -0,0 +1,54 @@ +#include +#include +#include + +#include "include/communication/UnixSocketServer.hpp" +#include "include/communication/MessageProcessor.hpp" + +UnixSocketServer::UnixSocketServer() { + server_thread = std::thread(&UnixSocketServer::server_loop, this); + server_thread.detach(); +} + +[[noreturn]] void UnixSocketServer::server_loop() { + struct sockaddr_un socket_address; + int socket_file_descriptor = socket(AF_UNIX, SOCK_STREAM, 0); + remove(SOCKET_PATH); + + memset(&socket_address, 0, sizeof(struct sockaddr_un)); + socket_address.sun_family = AF_UNIX; + strncpy(socket_address.sun_path, SOCKET_PATH, sizeof(socket_address.sun_path) - 1); + + if (bind(socket_file_descriptor, (struct sockaddr *) &socket_address, sizeof(struct sockaddr_un)) == -1) { + exit(-1); + } + + if (listen(socket_file_descriptor, 1) == -1) { + exit(-2); + } + + char read_buffer[SOCKET_BUFFER_SIZE]; + char write_buffer[SOCKET_BUFFER_SIZE]; + for (;;) { + int client_file_descriptor = accept(socket_file_descriptor, NULL, NULL); + + read(client_file_descriptor, read_buffer, 1); + uint8_t message_size = read_buffer[0]; + + read(client_file_descriptor, read_buffer, read_buffer[0]); + std::string string_message; + for (int i{}; i < message_size; i++) { + string_message += read_buffer[i]; + } + + auto response = MessageProcessor::process_message(string_message); + uint8_t response_size = response->ByteSizeLong(); + write_buffer[0] = response_size; + write(client_file_descriptor, write_buffer, 1); + + response->SerializeToArray(write_buffer, SOCKET_BUFFER_SIZE); + write(client_file_descriptor, write_buffer, response_size); + + close(client_file_descriptor); + } +} \ No newline at end of file From a484bc213792dd8e98a8c277b812086a255a2e18 Mon Sep 17 00:00:00 2001 From: Konstantin Lampalzer Date: Sun, 22 May 2022 23:00:57 +0200 Subject: [PATCH 165/246] Add complib client and TCP communication --- client_s2/.idea/.gitignore | 3 + client_s2/.idea/client_s2.iml | 8 + .../inspectionProfiles/Project_Default.xml | 12 ++ .../inspectionProfiles/profiles_settings.xml | 6 + client_s2/.idea/misc.xml | 4 + client_s2/.idea/modules.xml | 8 + client_s2/.idea/saveactions_settings.xml | 15 ++ client_s2/.idea/vcs.xml | 6 + client_s2/CompLib.proto | 62 +++++- client_s2/CompLib_pb2.py | 84 -------- .../__pycache__/CompLib_pb2.cpython-39.pyc | Bin 1923 -> 0 bytes client_s2/compLib/CompLibClient.py | 45 +++++ client_s2/compLib/CompLib_pb2.py | 190 +++++++++++++++++ client_s2/compLib/Encoder.py | 35 ++++ client_s2/compLib/IRSensor.py | 39 ++++ client_s2/compLib/Motor.py | 69 +++++++ client_s2/compLib/__init__.py | 0 .../__pycache__/CompLibClient.cpython-39.pyc | Bin 0 -> 1302 bytes .../__pycache__/CompLib_pb2.cpython-39.pyc | Bin 0 -> 4335 bytes .../__pycache__/Encoder.cpython-39.pyc | Bin 0 -> 1751 bytes .../__pycache__/IRSensor.cpython-39.pyc | Bin 0 -> 1656 bytes .../compLib/__pycache__/Motor.cpython-39.pyc | Bin 0 -> 1805 bytes .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 163 bytes client_s2/main.py | 68 ++++--- server_v2/CMakeLists.txt | 31 ++- .../include/communication/MessageBuilder.hpp | 2 + .../include/communication/TCPSocketServer.hpp | 20 ++ .../communication/UnixSocketServer.hpp | 2 +- server_v2/include/reset.hpp | 35 ++-- server_v2/include/spi.hpp | 2 +- .../src/communication/MessageBuilder.cpp | 10 +- .../src/communication/MessageProcessor.cpp | 1 + .../src/communication/TCPSocketServer.cpp | 74 +++++++ server_v2/src/main.cpp | 25 ++- server_v2/src/spi.cpp | 191 +++++++++++------- 35 files changed, 815 insertions(+), 232 deletions(-) create mode 100644 client_s2/.idea/.gitignore create mode 100644 client_s2/.idea/client_s2.iml create mode 100644 client_s2/.idea/inspectionProfiles/Project_Default.xml create mode 100644 client_s2/.idea/inspectionProfiles/profiles_settings.xml create mode 100644 client_s2/.idea/misc.xml create mode 100644 client_s2/.idea/modules.xml create mode 100644 client_s2/.idea/saveactions_settings.xml create mode 100644 client_s2/.idea/vcs.xml delete mode 100644 client_s2/CompLib_pb2.py delete mode 100644 client_s2/__pycache__/CompLib_pb2.cpython-39.pyc create mode 100644 client_s2/compLib/CompLibClient.py create mode 100644 client_s2/compLib/CompLib_pb2.py create mode 100644 client_s2/compLib/Encoder.py create mode 100644 client_s2/compLib/IRSensor.py create mode 100644 client_s2/compLib/Motor.py create mode 100644 client_s2/compLib/__init__.py create mode 100644 client_s2/compLib/__pycache__/CompLibClient.cpython-39.pyc create mode 100644 client_s2/compLib/__pycache__/CompLib_pb2.cpython-39.pyc create mode 100644 client_s2/compLib/__pycache__/Encoder.cpython-39.pyc create mode 100644 client_s2/compLib/__pycache__/IRSensor.cpython-39.pyc create mode 100644 client_s2/compLib/__pycache__/Motor.cpython-39.pyc create mode 100644 client_s2/compLib/__pycache__/__init__.cpython-39.pyc create mode 100644 server_v2/include/communication/TCPSocketServer.hpp create mode 100644 server_v2/src/communication/TCPSocketServer.cpp diff --git a/client_s2/.idea/.gitignore b/client_s2/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/client_s2/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/client_s2/.idea/client_s2.iml b/client_s2/.idea/client_s2.iml new file mode 100644 index 0000000..d0876a7 --- /dev/null +++ b/client_s2/.idea/client_s2.iml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/client_s2/.idea/inspectionProfiles/Project_Default.xml b/client_s2/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..9277599 --- /dev/null +++ b/client_s2/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,12 @@ + + + + \ No newline at end of file diff --git a/client_s2/.idea/inspectionProfiles/profiles_settings.xml b/client_s2/.idea/inspectionProfiles/profiles_settings.xml new file mode 100644 index 0000000..105ce2d --- /dev/null +++ b/client_s2/.idea/inspectionProfiles/profiles_settings.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/client_s2/.idea/misc.xml b/client_s2/.idea/misc.xml new file mode 100644 index 0000000..d56657a --- /dev/null +++ b/client_s2/.idea/misc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/client_s2/.idea/modules.xml b/client_s2/.idea/modules.xml new file mode 100644 index 0000000..8417644 --- /dev/null +++ b/client_s2/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/client_s2/.idea/saveactions_settings.xml b/client_s2/.idea/saveactions_settings.xml new file mode 100644 index 0000000..b7b3f34 --- /dev/null +++ b/client_s2/.idea/saveactions_settings.xml @@ -0,0 +1,15 @@ + + + + + + \ No newline at end of file diff --git a/client_s2/.idea/vcs.xml b/client_s2/.idea/vcs.xml new file mode 100644 index 0000000..6c0b863 --- /dev/null +++ b/client_s2/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/client_s2/CompLib.proto b/client_s2/CompLib.proto index 77a202d..1bb1bd0 100644 --- a/client_s2/CompLib.proto +++ b/client_s2/CompLib.proto @@ -20,17 +20,65 @@ message GenericResponse { Status status = 2; } -message ReadSensorsRequest { +message EncoderReadPositionsRequest { Header header = 1; } -message ReadSensorsResponse { +message EncoderReadPositionsResponse { Header header = 1; Status status = 2; - uint32 ir_1 = 3; - uint32 ir_2 = 4; - uint32 ir_3 = 5; - uint32 ir_4 = 6; - uint32 ir_5 = 7; + repeated int32 positions = 3 [packed = true]; +} + +message EncoderReadVelocitiesRequest { + Header header = 1; +} + +message EncoderReadVelocitiesResponse { + Header header = 1; + Status status = 2; + repeated double velocities = 3 [packed = true]; +} + +message IRSensorsEnableRequest { + Header header = 1; +} + +message IRSensorsDisableRequest { + Header header = 1; +} + +message IRSensorsReadAllRequest { + Header header = 1; +} + +message IRSensorsReadAllResponse { + Header header = 1; + Status status = 2; + repeated uint32 data = 3 [packed = true]; +} + +message MotorsSetPowerRequest { + Header header = 1; + uint32 port = 2; + double power = 3; +} + +message MotorsSetSpeedRequest { + Header header = 1; + uint32 port = 2; + double speed = 3; +} + +message OdometryReadRequest { + Header header = 1; +} + +message OdometryReadResponse { + Header header = 1; + Status status = 2; + double x_position = 3; + double y_position = 4; + double orientation = 5; } diff --git a/client_s2/CompLib_pb2.py b/client_s2/CompLib_pb2.py deleted file mode 100644 index ea548fd..0000000 --- a/client_s2/CompLib_pb2.py +++ /dev/null @@ -1,84 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# source: CompLib.proto -"""Generated protocol buffer code.""" -from google.protobuf import descriptor as _descriptor -from google.protobuf import descriptor_pool as _descriptor_pool -from google.protobuf import message as _message -from google.protobuf import reflection as _reflection -from google.protobuf import symbol_database as _symbol_database -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - - - -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\rCompLib.proto\x12\x07\x43ompLib\"\x1e\n\x06Header\x12\x14\n\x0cmessage_type\x18\x01 \x01(\t\"3\n\x06Status\x12\x12\n\nsuccessful\x18\x01 \x01(\x08\x12\x15\n\rerror_message\x18\x02 \x01(\t\"1\n\x0eGenericRequest\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\"S\n\x0fGenericResponse\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\x12\x1f\n\x06status\x18\x02 \x01(\x0b\x32\x0f.CompLib.Status\"5\n\x12ReadSensorsRequest\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\"\x9d\x01\n\x13ReadSensorsResponse\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\x12\x1f\n\x06status\x18\x02 \x01(\x0b\x32\x0f.CompLib.Status\x12\x0c\n\x04ir_1\x18\x03 \x01(\r\x12\x0c\n\x04ir_2\x18\x04 \x01(\r\x12\x0c\n\x04ir_3\x18\x05 \x01(\r\x12\x0c\n\x04ir_4\x18\x06 \x01(\r\x12\x0c\n\x04ir_5\x18\x07 \x01(\rb\x06proto3') - - - -_HEADER = DESCRIPTOR.message_types_by_name['Header'] -_STATUS = DESCRIPTOR.message_types_by_name['Status'] -_GENERICREQUEST = DESCRIPTOR.message_types_by_name['GenericRequest'] -_GENERICRESPONSE = DESCRIPTOR.message_types_by_name['GenericResponse'] -_READSENSORSREQUEST = DESCRIPTOR.message_types_by_name['ReadSensorsRequest'] -_READSENSORSRESPONSE = DESCRIPTOR.message_types_by_name['ReadSensorsResponse'] -Header = _reflection.GeneratedProtocolMessageType('Header', (_message.Message,), { - 'DESCRIPTOR' : _HEADER, - '__module__' : 'CompLib_pb2' - # @@protoc_insertion_point(class_scope:CompLib.Header) - }) -_sym_db.RegisterMessage(Header) - -Status = _reflection.GeneratedProtocolMessageType('Status', (_message.Message,), { - 'DESCRIPTOR' : _STATUS, - '__module__' : 'CompLib_pb2' - # @@protoc_insertion_point(class_scope:CompLib.Status) - }) -_sym_db.RegisterMessage(Status) - -GenericRequest = _reflection.GeneratedProtocolMessageType('GenericRequest', (_message.Message,), { - 'DESCRIPTOR' : _GENERICREQUEST, - '__module__' : 'CompLib_pb2' - # @@protoc_insertion_point(class_scope:CompLib.GenericRequest) - }) -_sym_db.RegisterMessage(GenericRequest) - -GenericResponse = _reflection.GeneratedProtocolMessageType('GenericResponse', (_message.Message,), { - 'DESCRIPTOR' : _GENERICRESPONSE, - '__module__' : 'CompLib_pb2' - # @@protoc_insertion_point(class_scope:CompLib.GenericResponse) - }) -_sym_db.RegisterMessage(GenericResponse) - -ReadSensorsRequest = _reflection.GeneratedProtocolMessageType('ReadSensorsRequest', (_message.Message,), { - 'DESCRIPTOR' : _READSENSORSREQUEST, - '__module__' : 'CompLib_pb2' - # @@protoc_insertion_point(class_scope:CompLib.ReadSensorsRequest) - }) -_sym_db.RegisterMessage(ReadSensorsRequest) - -ReadSensorsResponse = _reflection.GeneratedProtocolMessageType('ReadSensorsResponse', (_message.Message,), { - 'DESCRIPTOR' : _READSENSORSRESPONSE, - '__module__' : 'CompLib_pb2' - # @@protoc_insertion_point(class_scope:CompLib.ReadSensorsResponse) - }) -_sym_db.RegisterMessage(ReadSensorsResponse) - -if _descriptor._USE_C_DESCRIPTORS == False: - - DESCRIPTOR._options = None - _HEADER._serialized_start=26 - _HEADER._serialized_end=56 - _STATUS._serialized_start=58 - _STATUS._serialized_end=109 - _GENERICREQUEST._serialized_start=111 - _GENERICREQUEST._serialized_end=160 - _GENERICRESPONSE._serialized_start=162 - _GENERICRESPONSE._serialized_end=245 - _READSENSORSREQUEST._serialized_start=247 - _READSENSORSREQUEST._serialized_end=300 - _READSENSORSRESPONSE._serialized_start=303 - _READSENSORSRESPONSE._serialized_end=460 -# @@protoc_insertion_point(module_scope) diff --git a/client_s2/__pycache__/CompLib_pb2.cpython-39.pyc b/client_s2/__pycache__/CompLib_pb2.cpython-39.pyc deleted file mode 100644 index 53c4d1a54b4e7261d327b9088945377da263d826..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1923 zcmb_d&2H;N6tsCt$%Nuw>;et3CiiVu3g_aoyai5(r@{U%qqZJD%~JbH;9^LNvTS$-dS9 zv8rjmNn`dh(f9~|;%8mcnC56qXGWk84JV^Zo=N(h=9P)xwR6LKII3-wzc+Z{RNDGyAiOBF%P5A3xkdRWH11} z;e`ygZ)M`Q^q4RZ9{0yl$kD3aTXYN+mRbhgk=#T zCZ3104km#bEm%!b0nS5ClgO5#f}WB&^_srdgD)o_B5R%GzfjYtz|u~2`))nc**9%c zO+&;u90~Zx7%32HZED)thfbHg`HWaSoYjVr2)X#zYxzzm_1EJ5uLW6UlJz-#+RETI zRT68bm7TG6Te%tQ-By0ade$W z+=HfY%mWy>lOS?TibIt3o!TD5O5wg6_^*IH_XFT_GPXI}6@vD!=*S%c#=Y$B9dvt0 z?9;u|Gux@s7u}<7?{L4@{rs$JpWcNF=fuY3>_4xO( bytes: + # with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as sock: + # sock.connect((TCP_SOCKET_HOST, TCP_SOCKET_PORT)) + + with socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) as sock: + sock.connect(UNIX_SOCKET_PATH) + + sock.sendall(size.to_bytes(1, byteorder='big')) + sock.sendall(data) + + response_size_bytes = sock.recv(1) + response_size = int.from_bytes(response_size_bytes, byteorder="big") + # print(response_size) + + response_bytes = sock.recv(response_size) + # print(response_bytes.hex()) + # print(len(response_bytes)) + + CompLibClient.check_response(response_bytes) + + return response_bytes + + @staticmethod + def check_response(response_bytes: bytes) -> bool: + print(f"{response_bytes}") + res = CompLib_pb2.GenericResponse() + res.ParseFromString(response_bytes) + + if res.status.successful: + return True + + # TODO: Log error message if unsuccessful + return False diff --git a/client_s2/compLib/CompLib_pb2.py b/client_s2/compLib/CompLib_pb2.py new file mode 100644 index 0000000..eaa5fe8 --- /dev/null +++ b/client_s2/compLib/CompLib_pb2.py @@ -0,0 +1,190 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: CompLib.proto +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\rCompLib.proto\x12\x07\x43ompLib\"\x1e\n\x06Header\x12\x14\n\x0cmessage_type\x18\x01 \x01(\t\"3\n\x06Status\x12\x12\n\nsuccessful\x18\x01 \x01(\x08\x12\x15\n\rerror_message\x18\x02 \x01(\t\"1\n\x0eGenericRequest\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\"S\n\x0fGenericResponse\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\x12\x1f\n\x06status\x18\x02 \x01(\x0b\x32\x0f.CompLib.Status\">\n\x1b\x45ncoderReadPositionsRequest\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\"w\n\x1c\x45ncoderReadPositionsResponse\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\x12\x1f\n\x06status\x18\x02 \x01(\x0b\x32\x0f.CompLib.Status\x12\x15\n\tpositions\x18\x03 \x03(\x05\x42\x02\x10\x01\"?\n\x1c\x45ncoderReadVelocitiesRequest\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\"y\n\x1d\x45ncoderReadVelocitiesResponse\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\x12\x1f\n\x06status\x18\x02 \x01(\x0b\x32\x0f.CompLib.Status\x12\x16\n\nvelocities\x18\x03 \x03(\x01\x42\x02\x10\x01\"9\n\x16IRSensorsEnableRequest\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\":\n\x17IRSensorsDisableRequest\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\":\n\x17IRSensorsReadAllRequest\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\"n\n\x18IRSensorsReadAllResponse\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\x12\x1f\n\x06status\x18\x02 \x01(\x0b\x32\x0f.CompLib.Status\x12\x10\n\x04\x64\x61ta\x18\x03 \x03(\rB\x02\x10\x01\"U\n\x15MotorsSetPowerRequest\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\x12\x0c\n\x04port\x18\x02 \x01(\r\x12\r\n\x05power\x18\x03 \x01(\x01\"U\n\x15MotorsSetSpeedRequest\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\x12\x0c\n\x04port\x18\x02 \x01(\r\x12\r\n\x05speed\x18\x03 \x01(\x01\"6\n\x13OdometryReadRequest\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\"\x95\x01\n\x14OdometryReadResponse\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\x12\x1f\n\x06status\x18\x02 \x01(\x0b\x32\x0f.CompLib.Status\x12\x12\n\nx_position\x18\x03 \x01(\x01\x12\x12\n\ny_position\x18\x04 \x01(\x01\x12\x13\n\x0borientation\x18\x05 \x01(\x01\x62\x06proto3') + + + +_HEADER = DESCRIPTOR.message_types_by_name['Header'] +_STATUS = DESCRIPTOR.message_types_by_name['Status'] +_GENERICREQUEST = DESCRIPTOR.message_types_by_name['GenericRequest'] +_GENERICRESPONSE = DESCRIPTOR.message_types_by_name['GenericResponse'] +_ENCODERREADPOSITIONSREQUEST = DESCRIPTOR.message_types_by_name['EncoderReadPositionsRequest'] +_ENCODERREADPOSITIONSRESPONSE = DESCRIPTOR.message_types_by_name['EncoderReadPositionsResponse'] +_ENCODERREADVELOCITIESREQUEST = DESCRIPTOR.message_types_by_name['EncoderReadVelocitiesRequest'] +_ENCODERREADVELOCITIESRESPONSE = DESCRIPTOR.message_types_by_name['EncoderReadVelocitiesResponse'] +_IRSENSORSENABLEREQUEST = DESCRIPTOR.message_types_by_name['IRSensorsEnableRequest'] +_IRSENSORSDISABLEREQUEST = DESCRIPTOR.message_types_by_name['IRSensorsDisableRequest'] +_IRSENSORSREADALLREQUEST = DESCRIPTOR.message_types_by_name['IRSensorsReadAllRequest'] +_IRSENSORSREADALLRESPONSE = DESCRIPTOR.message_types_by_name['IRSensorsReadAllResponse'] +_MOTORSSETPOWERREQUEST = DESCRIPTOR.message_types_by_name['MotorsSetPowerRequest'] +_MOTORSSETSPEEDREQUEST = DESCRIPTOR.message_types_by_name['MotorsSetSpeedRequest'] +_ODOMETRYREADREQUEST = DESCRIPTOR.message_types_by_name['OdometryReadRequest'] +_ODOMETRYREADRESPONSE = DESCRIPTOR.message_types_by_name['OdometryReadResponse'] +Header = _reflection.GeneratedProtocolMessageType('Header', (_message.Message,), { + 'DESCRIPTOR' : _HEADER, + '__module__' : 'CompLib_pb2' + # @@protoc_insertion_point(class_scope:CompLib.Header) + }) +_sym_db.RegisterMessage(Header) + +Status = _reflection.GeneratedProtocolMessageType('Status', (_message.Message,), { + 'DESCRIPTOR' : _STATUS, + '__module__' : 'CompLib_pb2' + # @@protoc_insertion_point(class_scope:CompLib.Status) + }) +_sym_db.RegisterMessage(Status) + +GenericRequest = _reflection.GeneratedProtocolMessageType('GenericRequest', (_message.Message,), { + 'DESCRIPTOR' : _GENERICREQUEST, + '__module__' : 'CompLib_pb2' + # @@protoc_insertion_point(class_scope:CompLib.GenericRequest) + }) +_sym_db.RegisterMessage(GenericRequest) + +GenericResponse = _reflection.GeneratedProtocolMessageType('GenericResponse', (_message.Message,), { + 'DESCRIPTOR' : _GENERICRESPONSE, + '__module__' : 'CompLib_pb2' + # @@protoc_insertion_point(class_scope:CompLib.GenericResponse) + }) +_sym_db.RegisterMessage(GenericResponse) + +EncoderReadPositionsRequest = _reflection.GeneratedProtocolMessageType('EncoderReadPositionsRequest', (_message.Message,), { + 'DESCRIPTOR' : _ENCODERREADPOSITIONSREQUEST, + '__module__' : 'CompLib_pb2' + # @@protoc_insertion_point(class_scope:CompLib.EncoderReadPositionsRequest) + }) +_sym_db.RegisterMessage(EncoderReadPositionsRequest) + +EncoderReadPositionsResponse = _reflection.GeneratedProtocolMessageType('EncoderReadPositionsResponse', (_message.Message,), { + 'DESCRIPTOR' : _ENCODERREADPOSITIONSRESPONSE, + '__module__' : 'CompLib_pb2' + # @@protoc_insertion_point(class_scope:CompLib.EncoderReadPositionsResponse) + }) +_sym_db.RegisterMessage(EncoderReadPositionsResponse) + +EncoderReadVelocitiesRequest = _reflection.GeneratedProtocolMessageType('EncoderReadVelocitiesRequest', (_message.Message,), { + 'DESCRIPTOR' : _ENCODERREADVELOCITIESREQUEST, + '__module__' : 'CompLib_pb2' + # @@protoc_insertion_point(class_scope:CompLib.EncoderReadVelocitiesRequest) + }) +_sym_db.RegisterMessage(EncoderReadVelocitiesRequest) + +EncoderReadVelocitiesResponse = _reflection.GeneratedProtocolMessageType('EncoderReadVelocitiesResponse', (_message.Message,), { + 'DESCRIPTOR' : _ENCODERREADVELOCITIESRESPONSE, + '__module__' : 'CompLib_pb2' + # @@protoc_insertion_point(class_scope:CompLib.EncoderReadVelocitiesResponse) + }) +_sym_db.RegisterMessage(EncoderReadVelocitiesResponse) + +IRSensorsEnableRequest = _reflection.GeneratedProtocolMessageType('IRSensorsEnableRequest', (_message.Message,), { + 'DESCRIPTOR' : _IRSENSORSENABLEREQUEST, + '__module__' : 'CompLib_pb2' + # @@protoc_insertion_point(class_scope:CompLib.IRSensorsEnableRequest) + }) +_sym_db.RegisterMessage(IRSensorsEnableRequest) + +IRSensorsDisableRequest = _reflection.GeneratedProtocolMessageType('IRSensorsDisableRequest', (_message.Message,), { + 'DESCRIPTOR' : _IRSENSORSDISABLEREQUEST, + '__module__' : 'CompLib_pb2' + # @@protoc_insertion_point(class_scope:CompLib.IRSensorsDisableRequest) + }) +_sym_db.RegisterMessage(IRSensorsDisableRequest) + +IRSensorsReadAllRequest = _reflection.GeneratedProtocolMessageType('IRSensorsReadAllRequest', (_message.Message,), { + 'DESCRIPTOR' : _IRSENSORSREADALLREQUEST, + '__module__' : 'CompLib_pb2' + # @@protoc_insertion_point(class_scope:CompLib.IRSensorsReadAllRequest) + }) +_sym_db.RegisterMessage(IRSensorsReadAllRequest) + +IRSensorsReadAllResponse = _reflection.GeneratedProtocolMessageType('IRSensorsReadAllResponse', (_message.Message,), { + 'DESCRIPTOR' : _IRSENSORSREADALLRESPONSE, + '__module__' : 'CompLib_pb2' + # @@protoc_insertion_point(class_scope:CompLib.IRSensorsReadAllResponse) + }) +_sym_db.RegisterMessage(IRSensorsReadAllResponse) + +MotorsSetPowerRequest = _reflection.GeneratedProtocolMessageType('MotorsSetPowerRequest', (_message.Message,), { + 'DESCRIPTOR' : _MOTORSSETPOWERREQUEST, + '__module__' : 'CompLib_pb2' + # @@protoc_insertion_point(class_scope:CompLib.MotorsSetPowerRequest) + }) +_sym_db.RegisterMessage(MotorsSetPowerRequest) + +MotorsSetSpeedRequest = _reflection.GeneratedProtocolMessageType('MotorsSetSpeedRequest', (_message.Message,), { + 'DESCRIPTOR' : _MOTORSSETSPEEDREQUEST, + '__module__' : 'CompLib_pb2' + # @@protoc_insertion_point(class_scope:CompLib.MotorsSetSpeedRequest) + }) +_sym_db.RegisterMessage(MotorsSetSpeedRequest) + +OdometryReadRequest = _reflection.GeneratedProtocolMessageType('OdometryReadRequest', (_message.Message,), { + 'DESCRIPTOR' : _ODOMETRYREADREQUEST, + '__module__' : 'CompLib_pb2' + # @@protoc_insertion_point(class_scope:CompLib.OdometryReadRequest) + }) +_sym_db.RegisterMessage(OdometryReadRequest) + +OdometryReadResponse = _reflection.GeneratedProtocolMessageType('OdometryReadResponse', (_message.Message,), { + 'DESCRIPTOR' : _ODOMETRYREADRESPONSE, + '__module__' : 'CompLib_pb2' + # @@protoc_insertion_point(class_scope:CompLib.OdometryReadResponse) + }) +_sym_db.RegisterMessage(OdometryReadResponse) + +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + _ENCODERREADPOSITIONSRESPONSE.fields_by_name['positions']._options = None + _ENCODERREADPOSITIONSRESPONSE.fields_by_name['positions']._serialized_options = b'\020\001' + _ENCODERREADVELOCITIESRESPONSE.fields_by_name['velocities']._options = None + _ENCODERREADVELOCITIESRESPONSE.fields_by_name['velocities']._serialized_options = b'\020\001' + _IRSENSORSREADALLRESPONSE.fields_by_name['data']._options = None + _IRSENSORSREADALLRESPONSE.fields_by_name['data']._serialized_options = b'\020\001' + _HEADER._serialized_start=26 + _HEADER._serialized_end=56 + _STATUS._serialized_start=58 + _STATUS._serialized_end=109 + _GENERICREQUEST._serialized_start=111 + _GENERICREQUEST._serialized_end=160 + _GENERICRESPONSE._serialized_start=162 + _GENERICRESPONSE._serialized_end=245 + _ENCODERREADPOSITIONSREQUEST._serialized_start=247 + _ENCODERREADPOSITIONSREQUEST._serialized_end=309 + _ENCODERREADPOSITIONSRESPONSE._serialized_start=311 + _ENCODERREADPOSITIONSRESPONSE._serialized_end=430 + _ENCODERREADVELOCITIESREQUEST._serialized_start=432 + _ENCODERREADVELOCITIESREQUEST._serialized_end=495 + _ENCODERREADVELOCITIESRESPONSE._serialized_start=497 + _ENCODERREADVELOCITIESRESPONSE._serialized_end=618 + _IRSENSORSENABLEREQUEST._serialized_start=620 + _IRSENSORSENABLEREQUEST._serialized_end=677 + _IRSENSORSDISABLEREQUEST._serialized_start=679 + _IRSENSORSDISABLEREQUEST._serialized_end=737 + _IRSENSORSREADALLREQUEST._serialized_start=739 + _IRSENSORSREADALLREQUEST._serialized_end=797 + _IRSENSORSREADALLRESPONSE._serialized_start=799 + _IRSENSORSREADALLRESPONSE._serialized_end=909 + _MOTORSSETPOWERREQUEST._serialized_start=911 + _MOTORSSETPOWERREQUEST._serialized_end=996 + _MOTORSSETSPEEDREQUEST._serialized_start=998 + _MOTORSSETSPEEDREQUEST._serialized_end=1083 + _ODOMETRYREADREQUEST._serialized_start=1085 + _ODOMETRYREADREQUEST._serialized_end=1139 + _ODOMETRYREADRESPONSE._serialized_start=1142 + _ODOMETRYREADRESPONSE._serialized_end=1291 +# @@protoc_insertion_point(module_scope) diff --git a/client_s2/compLib/Encoder.py b/client_s2/compLib/Encoder.py new file mode 100644 index 0000000..d1cf404 --- /dev/null +++ b/client_s2/compLib/Encoder.py @@ -0,0 +1,35 @@ +import compLib.CompLib_pb2 as CompLib_pb2 +from compLib.CompLibClient import CompLibClient + + +class Encoder(object): + """Class used to read the encoders + """ + + @staticmethod + def read_all_positions(): + """Read all encoder positions. + + :return: Tuple of all current encoder positions + """ + request = CompLib_pb2.EncoderReadPositionsRequest() + request.header.message_type = request.DESCRIPTOR.full_name + + response = CompLib_pb2.EncoderReadPositionsResponse() + response.ParseFromString(CompLibClient.send(request.SerializeToString(), request.ByteSize())) + + return tuple(i for i in response.positions) + + @staticmethod + def read_all_velocities(): + """Read the velocity of all motors connected. + + :return: Tuple of all current motor velocities + """ + request = CompLib_pb2.EncoderReadVelocitiesRequest() + request.header.message_type = request.DESCRIPTOR.full_name + + response = CompLib_pb2.EncoderReadVelocitiesResponse() + response.ParseFromString(CompLibClient.send(request.SerializeToString(), request.ByteSize())) + + return tuple(i for i in response.velocities) diff --git a/client_s2/compLib/IRSensor.py b/client_s2/compLib/IRSensor.py new file mode 100644 index 0000000..840c839 --- /dev/null +++ b/client_s2/compLib/IRSensor.py @@ -0,0 +1,39 @@ +import compLib.CompLib_pb2 as CompLib_pb2 +from compLib.CompLibClient import CompLibClient + + +class IRSensor(object): + """Access the different IR Sensors of the robot + """ + + @staticmethod + def read_all(): + """Read all IR sensors at once. + + :return: Tuple of all current ir sensors + """ + request = CompLib_pb2.IRSensorsReadAllRequest() + request.header.message_type = request.DESCRIPTOR.full_name + + response = CompLib_pb2.IRSensorsReadAllResponse() + response.ParseFromString(CompLibClient.send(request.SerializeToString(), request.ByteSize())) + + return tuple(i for i in response.data) + + @staticmethod + def enable(): + """Turn on all IR emitters + """ + request = CompLib_pb2.IRSensorsEnableRequest() + request.header.message_type = request.DESCRIPTOR.full_name + + CompLibClient.send(request.SerializeToString(), request.ByteSize()) + + @staticmethod + def disable(): + """Turn off all IR emitters + """ + request = CompLib_pb2.IRSensorsDisableRequest() + request.header.message_type = request.DESCRIPTOR.full_name + + CompLibClient.send(request.SerializeToString(), request.ByteSize()) diff --git a/client_s2/compLib/Motor.py b/client_s2/compLib/Motor.py new file mode 100644 index 0000000..27ce586 --- /dev/null +++ b/client_s2/compLib/Motor.py @@ -0,0 +1,69 @@ +import compLib.CompLib_pb2 as CompLib_pb2 +from compLib.CompLibClient import CompLibClient + +MOTOR_COUNT = 4 + + +class Motor(object): + """Class used to control the motors + """ + + @staticmethod + def power(port: int, percent: float): + """Set specified motor to percentage power + + :param port: Port, which the motor is connected to. 0-3 + :param percent: Percentage of max speed. between -100 and 100 + :raises: IndexError + """ + + if port < 0 or port >= MOTOR_COUNT: + raise IndexError("Invalid Motor port specified!") + + if percent < -100 or percent > 100: + raise IndexError("Invalid Motor speed specified! Speed is between -100 and 100 percent!") + + request = CompLib_pb2.MotorsSetPowerRequest() + request.header.message_type = request.DESCRIPTOR.full_name + request.port = port + request.power = percent + + CompLibClient.send(request.SerializeToString(), request.ByteSize()) + + @staticmethod + def speed(port: int, speed: float): + """Set specified motor to percentage power + + :param port: Port, which the motor is connected to. 0-3 + :param speed: Speed at which a motor should turn in RPM + :raises: IndexError + """ + + if port < 0 or port >= MOTOR_COUNT: + raise IndexError("Invalid Motor port specified!") + + request = CompLib_pb2.MotorsSetSpeedRequest() + request.header.message_type = request.DESCRIPTOR.full_name + request.port = port + request.speed = speed + + CompLibClient.send(request.SerializeToString(), request.ByteSize()) + + # @staticmethod + # def all_off(): + # """ + # Turns of all motors + # """ + # Logging.get_logger().debug(f"Motor.all_off") + # + # for i in range(1, MOTOR_COUNT + 1): + # Motor.active_break(i) + + # @staticmethod + # def active_break(port: int): + # """ + # Actively break with a specific motor + # + # :param port: Port, which the motor is connected to. 1-4 + # """ + # Motor.pwm(port, 0, MotorMode.BREAK) diff --git a/client_s2/compLib/__init__.py b/client_s2/compLib/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/client_s2/compLib/__pycache__/CompLibClient.cpython-39.pyc b/client_s2/compLib/__pycache__/CompLibClient.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e506fdc9ae9afd48ffded9fd59becc80c966070e GIT binary patch literal 1302 zcmZux&2Aev5a!>m)@#X5?4YNfnoAcbq{v8u1PFpSLYxF`WW!R>mY2n9$;2y5y9!Aq zh#>V)=TtQ412hL2=%ug3YfpKFo;uu>0|_XJ8F7c?%s1Z*l{6Y5f-(H-x4}0aLjSmr z^}*od5s1DGN+5wph*!UOOgO}MZy#Q2PAyyUr=5XxQC+JXSj*FvwF*n zC#|#?PkzV-vqt;=L9>1LUh`J7eW#uMdK014om(G(r;2?S77}qR5GRsKCOydn{zL^4 z^aH!V+%K&)!9I}^fwKjo2GIlC=u{y)qfF)|qLzuoB$nxHCatfenW{V`YjJ&82Ou2~ z{W~awmLNk6LN3W4XA3eXOKR99#t2s491neg9hi^giw&(-K*A+nP!kNd<|W{dWWnH8 zZ4UPro(Y%RbFVz>{fG!q%V1tmjC!bz^e?v%F6Ymn1=u3i{fq$moguhSv^{;+Ng$Kk@C}ap(KE*FSx7_=4BcBF|-N>@~L+yR9ev_~fwvjMucx zMKT)Mz!b6bs5w(IeQRl!8ymh-#kevnN0i-3&t!TYE2$?%u4Uva3TEYcg)@hN?_cf3 zj^>ri#)i@EeEBRR{*BZwIQaKP>!p@Tx6Z+}Nph3rZ!@WReBfR90Q|{BbKS zYZ~i=tG;S&6uUWj4|Rsr>fl)KfkNIM4#^FW5bw~Cg=Dt3dBq)%h}wa($~9o>*uEMr zdzWh28sEXfpgH;zT|grkyd;-sf#-Nh=T-6XkPSWct$PK6Kn COGRM- literal 0 HcmV?d00001 diff --git a/client_s2/compLib/__pycache__/CompLib_pb2.cpython-39.pyc b/client_s2/compLib/__pycache__/CompLib_pb2.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5e710a8bba5d7be76f183f6169ecda4a99769213 GIT binary patch literal 4335 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 Wc57YzssQyhUPcm&u1T7<>--6MFxq7R literal 0 HcmV?d00001 diff --git a/client_s2/compLib/__pycache__/__init__.cpython-39.pyc b/client_s2/compLib/__pycache__/__init__.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f848f0aac5d443685015ee817a9d23e92f6fb880 GIT binary patch literal 163 zcmYe~<>g`kg81sLBoO@=L?8o3AjbiSi&=m~3PUi1CZpdU!Gr-U0jfuoT{IkpIhML>7<{WlbM=V5?^ct5y?!_kB`sH c%PfhH*DI*J#bJ}1pHiBWY6r66GY~TX09KMHyZ`_I literal 0 HcmV?d00001 diff --git a/client_s2/main.py b/client_s2/main.py index 5bbd783..dd3e732 100644 --- a/client_s2/main.py +++ b/client_s2/main.py @@ -1,36 +1,48 @@ -import socket -import sys -import os -import CompLib_pb2 - - SOCKET_PATH = "/tmp/compLib" -def send(data, size): - with socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) as sock: - sock.connect(SOCKET_PATH) - sock.sendall(size.to_bytes(1, byteorder='big')) - sock.sendall(data) - - responseSizeBytes = sock.recv(1) - responseSize = int.from_bytes(responseSizeBytes, byteorder="big") - print(responseSize) - - responseBytes = sock.recv(responseSize) - genericResponse = CompLib_pb2.GenericResponse() - - genericResponse.ParseFromString(responseBytes) - print(genericResponse) - - # reponseBytes = +# def send(data, size): +# with socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) as sock: +# sock.connect(SOCKET_PATH) +# sock.sendall(size.to_bytes(1, byteorder='big')) +# sock.sendall(data) +# +# response_size_bytes = sock.recv(1) +# response_size = int.from_bytes(response_size_bytes, byteorder="big") +# # print(f"Response size: {response_size}") +# +# response_bytes = sock.recv(response_size) +# generic_response = CompLib_pb2.GenericResponse() +# +# generic_response.ParseFromString(response_bytes) +# # print(f"Response: {generic_response}") +# +# # reponseBytes = def main(): - readSensorsRequest = CompLib_pb2.ReadSensorsRequest() - # readSensorsRequest.header = CompLib_pb2.Header() - readSensorsRequest.header.message_type = readSensorsRequest.DESCRIPTOR.full_name - send(readSensorsRequest.SerializeToString(), readSensorsRequest.ByteSize()) + # encoder_read_positions_request = CompLib_pb2.EncoderReadPositionsRequest() + # # readSensorsRequest.header = CompLib_pb2.Header() + # encoder_read_positions_request.header.message_type = encoder_read_positions_request.DESCRIPTOR.full_name + # + # start_time = time.time() + # for i in range(100000): + # send(encoder_read_positions_request.SerializeToString(), encoder_read_positions_request.ByteSize()) + # print("--- %s seconds ---" % (time.time() - start_time)) + + # from compLib.IRSensor import IRSensor + # IRSensor.read_all() + # + from compLib.Encoder import Encoder + Encoder.read_all_positions() + Encoder.read_all_velocities() + + # from compLib.Motor import Motor + # Motor.speed(0, 50) + # Motor.speed(3, -50) + + # time.sleep(10) -main() +if __name__ == '__main__': + main() diff --git a/server_v2/CMakeLists.txt b/server_v2/CMakeLists.txt index 629923a..a5ab68b 100644 --- a/server_v2/CMakeLists.txt +++ b/server_v2/CMakeLists.txt @@ -10,13 +10,26 @@ if (NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE Release) endif () -set(CMAKE_CXX_FLAGS "-Wall -Wextra -Wno-psabi") -set(CMAKE_CXX_FLAGS_DEBUG "-g") -set(CMAKE_CXX_FLAGS_RELEASE "-O3") - find_package(Protobuf REQUIRED) find_package(spdlog REQUIRED) -find_package(pigpio REQUIRED) + +if (APPLE) + set(CMAKE_CXX_FLAGS_DEBUG "-g -O0") + set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -gdwarf-3") + set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -Wall -Wextra -gdwarf-3") + + set(LIBRARIES "spdlog::spdlog") +elseif (UNIX) + message("Running on Raspberry Pi") + add_definitions(-DIS_RASPI) + set(CMAKE_CXX_FLAGS_RELEASE "-O3") + + find_package(pigpio REQUIRED) + set(LIBRARIES "pigpio" "spdlog::spdlog") + set(CMAKE_CXX_FLAGS "-Wall -Wextra -Wno-psabi") +endif () + +message("CMAKE_SYSTEM_PROCESSOR = ${CMAKE_SYSTEM_PROCESSOR}") set(PROTO_FILES protos/CompLib.proto @@ -35,7 +48,8 @@ set(SRC_FILES src/Odometry.cpp src/communication/MessageProcessor.cpp src/communication/MessageBuilder.cpp - src/communication/UnixSocketServer.cpp) + src/communication/UnixSocketServer.cpp + src/communication/TCPSocketServer.cpp) set(HDR_FILES include/spi.hpp @@ -52,7 +66,8 @@ set(HDR_FILES include/Odometry.hpp include/communication/MessageProcessor.hpp include/communication/MessageBuilder.hpp - include/communication/UnixSocketServer.hpp) + include/communication/UnixSocketServer.hpp + include/communication/TCPSocketServer.hpp) include_directories(third_party/asio) @@ -63,4 +78,4 @@ target_include_directories(${PROJECT_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} PUBLIC ${PROTOBUF_INCLUDE_DIRS} ) -target_link_libraries(${PROJECT_NAME} ${PROTOBUF_LIBRARIES} pigpio spdlog::spdlog) +target_link_libraries(${PROJECT_NAME} ${PROTOBUF_LIBRARIES} ${LIBRARIES}) diff --git a/server_v2/include/communication/MessageBuilder.hpp b/server_v2/include/communication/MessageBuilder.hpp index 93912f4..37106bc 100644 --- a/server_v2/include/communication/MessageBuilder.hpp +++ b/server_v2/include/communication/MessageBuilder.hpp @@ -1,6 +1,8 @@ #ifndef COMPLIB_SERVER_MESSAGEBUILDER_HPP #define COMPLIB_SERVER_MESSAGEBUILDER_HPP +#include +#include #include "CompLib.pb.h" #include "include/Robot.hpp" diff --git a/server_v2/include/communication/TCPSocketServer.hpp b/server_v2/include/communication/TCPSocketServer.hpp new file mode 100644 index 0000000..a1c0384 --- /dev/null +++ b/server_v2/include/communication/TCPSocketServer.hpp @@ -0,0 +1,20 @@ +#ifndef COMPLIB_SERVER_TCPSOCKETSERVER_HPP +#define COMPLIB_SERVER_TCPSOCKETSERVER_HPP + +#include + +#define SOCKET_PATH "/tmp/compLib" +#define SOCKET_BUFFER_SIZE 128 + +class TCPSocketServer { +public: + TCPSocketServer(); + +private: + [[noreturn]] void server_loop(); + + std::thread server_thread; +}; + + +#endif //COMPLIB_SERVER_TCPSOCKETSERVER_HPP diff --git a/server_v2/include/communication/UnixSocketServer.hpp b/server_v2/include/communication/UnixSocketServer.hpp index c734db9..bae3642 100644 --- a/server_v2/include/communication/UnixSocketServer.hpp +++ b/server_v2/include/communication/UnixSocketServer.hpp @@ -4,7 +4,7 @@ #include #define SOCKET_PATH "/tmp/compLib" -#define SOCKET_BUFFER_SIZE 64 +#define SOCKET_BUFFER_SIZE 128 class UnixSocketServer { public: diff --git a/server_v2/include/reset.hpp b/server_v2/include/reset.hpp index 07f1580..b8e9cc3 100644 --- a/server_v2/include/reset.hpp +++ b/server_v2/include/reset.hpp @@ -1,9 +1,6 @@ #ifndef COMPLIB_SERVER_RESET_HPP #define COMPLIB_SERVER_RESET_HPP -#include -#include - #define RESET_PIN 23 #define BOOT_PIN 17 @@ -11,21 +8,33 @@ #define RESET_STARTUP_SLEEP_TIME_US 1000 * 500 namespace Reset { - void reset_robot() { - gpioInitialise(); +#ifdef IS_RASPI - gpioSetMode(BOOT_PIN, PI_OUTPUT); - gpioSetMode(RESET_PIN, PI_OUTPUT); +#include +#include - gpioWrite(BOOT_PIN, 0); - gpioWrite(RESET_PIN, 0); + void reset_robot() { + gpioInitialise(); - usleep(RESET_SLEEP_TIME_US); + gpioSetMode(BOOT_PIN, PI_OUTPUT); + gpioSetMode(RESET_PIN, PI_OUTPUT); - gpioWrite(RESET_PIN, 1); + gpioWrite(BOOT_PIN, 0); + gpioWrite(RESET_PIN, 0); - usleep(RESET_STARTUP_SLEEP_TIME_US); - } + usleep(RESET_SLEEP_TIME_US); + + gpioWrite(RESET_PIN, 1); + + usleep(RESET_STARTUP_SLEEP_TIME_US); + } + +#else + + void reset_robot() { + } + +#endif } diff --git a/server_v2/include/spi.hpp b/server_v2/include/spi.hpp index 376b222..856fff0 100644 --- a/server_v2/include/spi.hpp +++ b/server_v2/include/spi.hpp @@ -136,7 +136,7 @@ private: void clear_buffers(); - uint8_t calculate_checksum(uint8_t *data, uint8_t length); + static uint8_t calculate_checksum(uint8_t *data, uint8_t length); }; diff --git a/server_v2/src/communication/MessageBuilder.cpp b/server_v2/src/communication/MessageBuilder.cpp index da69270..1fd1df5 100644 --- a/server_v2/src/communication/MessageBuilder.cpp +++ b/server_v2/src/communication/MessageBuilder.cpp @@ -1,3 +1,5 @@ +#include + #include "include/communication/MessageBuilder.hpp" using namespace CompLib; @@ -36,17 +38,17 @@ CompLib::EncoderReadPositionsResponse *MessageBuilder::encoder_read_positions_re response->set_allocated_header(header(EncoderReadPositionsResponse::descriptor()->full_name())); response->set_allocated_status(default_successful_status()); for (int i = 0; i < ROBOT_MOTOR_COUNT; ++i) { - response->set_positions(i, positions.at(i)); + response->add_positions(positions.at(i)); } return response; } CompLib::EncoderReadVelocitiesResponse *MessageBuilder::encoder_read_velocities_response(std::array velocities) { auto response = new EncoderReadVelocitiesResponse(); - response->set_allocated_header(header(EncoderReadPositionsResponse::descriptor()->full_name())); + response->set_allocated_header(header(EncoderReadVelocitiesResponse::descriptor()->full_name())); response->set_allocated_status(default_successful_status()); for (int i = 0; i < ROBOT_MOTOR_COUNT; ++i) { - response->set_velocities(i, velocities.at(i)); + response->add_velocities(velocities.at(i)); } return response; } @@ -56,7 +58,7 @@ CompLib::IRSensorsReadAllResponse *MessageBuilder::ir_sensors_read_all_response( response->set_allocated_header(header(IRSensorsReadAllResponse::descriptor()->full_name())); response->set_allocated_status(default_successful_status()); for (int i = 0; i < ROBOT_IR_SENSOR_COUNT; ++i) { - response->set_data(i, data.at(i)); + response->add_data(data.at(i)); } return response; } diff --git a/server_v2/src/communication/MessageProcessor.cpp b/server_v2/src/communication/MessageProcessor.cpp index bb5fb03..f5e7898 100644 --- a/server_v2/src/communication/MessageProcessor.cpp +++ b/server_v2/src/communication/MessageProcessor.cpp @@ -13,6 +13,7 @@ google::protobuf::Message *MessageProcessor::process_message(const std::string & CompLib::GenericRequest message; message.ParseFromString(serializedMessage); auto messageTypeName = message.header().message_type(); + spdlog::debug("Got request with type {}", messageTypeName); try { // Encoder diff --git a/server_v2/src/communication/TCPSocketServer.cpp b/server_v2/src/communication/TCPSocketServer.cpp new file mode 100644 index 0000000..405123d --- /dev/null +++ b/server_v2/src/communication/TCPSocketServer.cpp @@ -0,0 +1,74 @@ +#include +#include +#include +#include + +#include + +#include "include/communication/TCPSocketServer.hpp" +#include "include/communication/MessageProcessor.hpp" + +#define SERVER_PORT 9090 +#define TCP_LISTEN_BACKLOG 5 + +TCPSocketServer::TCPSocketServer() { + server_thread = std::thread(&TCPSocketServer::server_loop, this); + server_thread.detach(); +} + +[[noreturn]] void TCPSocketServer::server_loop() { + struct sockaddr_in address; + int socket_file_descriptor = socket(AF_INET, SOCK_STREAM, 0); + if (socket_file_descriptor == 0) { + spdlog::error("TCP socket initialization failed!"); + exit(EXIT_FAILURE); + } + + int opt = 1; + if (int err = setsockopt(socket_file_descriptor, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt))) { + spdlog::error("TCP setsockopt failed! Err: {}", err); + exit(EXIT_FAILURE); + } + address.sin_family = AF_INET; + address.sin_addr.s_addr = INADDR_ANY; + address.sin_port = htons(SERVER_PORT); + + if (bind(socket_file_descriptor, (struct sockaddr *) &address, sizeof(address)) < 0) { + spdlog::error("TCP bind failed!"); + exit(EXIT_FAILURE); + } + + if (listen(socket_file_descriptor, TCP_LISTEN_BACKLOG) < 0) { + spdlog::error("TCP listen failed!"); + exit(EXIT_FAILURE); + } + + char read_buffer[SOCKET_BUFFER_SIZE]; + char write_buffer[SOCKET_BUFFER_SIZE]; + for (;;) { + int client_file_descriptor = accept(socket_file_descriptor, NULL, NULL); + if (client_file_descriptor < 0) { + spdlog::error("TCP accept failed!"); + continue; + } + + read(client_file_descriptor, read_buffer, 1); + uint8_t message_size = read_buffer[0]; + + read(client_file_descriptor, read_buffer, read_buffer[0]); + std::string string_message; + for (int i{}; i < message_size; i++) { + string_message += read_buffer[i]; + } + + auto response = MessageProcessor::process_message(string_message); + uint8_t response_size = response->ByteSizeLong(); + write_buffer[0] = response_size; + write(client_file_descriptor, write_buffer, 1); + + response->SerializeToArray(write_buffer, SOCKET_BUFFER_SIZE); + write(client_file_descriptor, write_buffer, response_size); + + close(client_file_descriptor); + } +} \ No newline at end of file diff --git a/server_v2/src/main.cpp b/server_v2/src/main.cpp index 0dddd15..157dda9 100644 --- a/server_v2/src/main.cpp +++ b/server_v2/src/main.cpp @@ -1,24 +1,31 @@ #include +#include #include "include/reset.hpp" -#include "include/Encoders.hpp" #include "include/OdometryController.hpp" #include "include/ClosedLoopMotorController.hpp" +#include "include/communication/UnixSocketServer.hpp" +#include "include/communication/TCPSocketServer.hpp" using namespace std; int main() { Reset::reset_robot(); spdlog::set_pattern("%H:%M:%S.%e %^%-8l%$: %v"); + spdlog::set_level(spdlog::level::debug); - ClosedLoopMotorController::getInstance().set_speed(0, -125); - ClosedLoopMotorController::getInstance().set_speed(3, 125); - OdometryController::getInstance().enable(); + UnixSocketServer unixSocketServer; + TCPSocketServer tcpSocketServer; - for (int i = 0; i < 10000; ++i) { - auto odom = OdometryController::getInstance().get(); - spdlog::info("X {} Y {} W {}", odom.get_x_position(), odom.get_y_position(), odom.get_angular_orientation()); - usleep(1000); - } +// ClosedLoopMotorController::getInstance().set_speed(0, -125); +// ClosedLoopMotorController::getInstance().set_speed(3, 125); +// OdometryController::getInstance().enable(); + +// for (int i = 0; i < 10000; ++i) { +// auto odom = OdometryController::getInstance().get(); +// spdlog::info("X {} Y {} W {}", odom.get_x_position(), odom.get_y_position(), odom.get_angular_orientation()); +// usleep(1000); +// } + std::this_thread::sleep_for(std::chrono::hours(12)); return 0; } diff --git a/server_v2/src/spi.cpp b/server_v2/src/spi.cpp index 9314905..1374925 100644 --- a/server_v2/src/spi.cpp +++ b/server_v2/src/spi.cpp @@ -1,8 +1,3 @@ -#include //Needed for SPI port -#include //Needed for SPI port -#include //Needed for SPI port -#include //Needed for SPI port -#include #include #include @@ -10,104 +5,146 @@ #include "include/mathUtils.hpp" void check_for_error(int error_code, std::string error_message) { - if (error_code < 0) { - spdlog::error(error_message); - exit(1); - } -} - -Spi::Spi() { - int spi_mode = SPI_MODE_0; - int spi_bits_per_workd = SPI_BITS_PER_WORD; - int spi_speed = SPI_SPEED; - - check_for_error(spi_file_descriptor = open("/dev/spidev1.2", O_RDWR), "Could not open SPI device"); - check_for_error(ioctl(spi_file_descriptor, SPI_IOC_WR_MODE, &spi_mode), "Could not set SPI_IOC_WR_MODE"); - check_for_error(ioctl(spi_file_descriptor, SPI_IOC_RD_MODE, &spi_mode), "Could not set SPI_IOC_RD_MODE"); - check_for_error(ioctl(spi_file_descriptor, SPI_IOC_WR_BITS_PER_WORD, &spi_bits_per_workd), "Could not set SPI_IOC_WR_BITS_PER_WORD"); - check_for_error(ioctl(spi_file_descriptor, SPI_IOC_RD_BITS_PER_WORD, &spi_bits_per_workd), "Could not set SPI_IOC_RD_BITS_PER_WORD"); - check_for_error(ioctl(spi_file_descriptor, SPI_IOC_WR_MAX_SPEED_HZ, &spi_speed), "Could not set SPI_IOC_WR_MAX_SPEED_HZ"); - check_for_error(ioctl(spi_file_descriptor, SPI_IOC_RD_MAX_SPEED_HZ, &spi_mode), "Could not set SPI_IOC_RD_MAX_SPEED_HZ"); + if (error_code < 0) { + spdlog::error(error_message); + exit(1); + } } void Spi::clear_buffers() { - memset(tx_buffer, 0, SPI_BUFFER_SIZE); - memset(rx_buffer, 0, SPI_BUFFER_SIZE); + memset(tx_buffer, 0, SPI_BUFFER_SIZE); + memset(rx_buffer, 0, SPI_BUFFER_SIZE); } -uint8_t Spi::calculate_checksum(uint8_t* data, uint8_t length) { - int sum = 0; - for (int i = 0; i < length; i++) { - sum += data[i]; - } - return sum % 256; +uint8_t Spi::calculate_checksum(uint8_t *data, uint8_t length) { + int sum = 0; + for (int i = 0; i < length; i++) { + sum += data[i]; + } + return sum % 256; +} + +#ifdef IS_RASPI + +#include //Needed for SPI port +#include //Needed for SPI port +#include //Needed for SPI port +#include //Needed for SPI port + +Spi::Spi() { + int spi_mode = SPI_MODE_0; + int spi_bits_per_workd = SPI_BITS_PER_WORD; + int spi_speed = SPI_SPEED; + + check_for_error(spi_file_descriptor = open("/dev/spidev1.2", O_RDWR), "Could not open SPI device"); + check_for_error(ioctl(spi_file_descriptor, SPI_IOC_WR_MODE, &spi_mode), "Could not set SPI_IOC_WR_MODE"); + check_for_error(ioctl(spi_file_descriptor, SPI_IOC_RD_MODE, &spi_mode), "Could not set SPI_IOC_RD_MODE"); + check_for_error(ioctl(spi_file_descriptor, SPI_IOC_WR_BITS_PER_WORD, &spi_bits_per_workd), "Could not set SPI_IOC_WR_BITS_PER_WORD"); + check_for_error(ioctl(spi_file_descriptor, SPI_IOC_RD_BITS_PER_WORD, &spi_bits_per_workd), "Could not set SPI_IOC_RD_BITS_PER_WORD"); + check_for_error(ioctl(spi_file_descriptor, SPI_IOC_WR_MAX_SPEED_HZ, &spi_speed), "Could not set SPI_IOC_WR_MAX_SPEED_HZ"); + check_for_error(ioctl(spi_file_descriptor, SPI_IOC_RD_MAX_SPEED_HZ, &spi_mode), "Could not set SPI_IOC_RD_MAX_SPEED_HZ"); } int Spi::read(uint8_t reg, uint8_t length) { - std::lock_guard lock(spi_mutex); + std::lock_guard lock(spi_mutex); - uint8_t read_buffer[SPI_BUFFER_SIZE] = {0}; - read_array(reg, length, read_buffer); + uint8_t read_buffer[SPI_BUFFER_SIZE] = {0}; + read_array(reg, length, read_buffer); - return mathUtils::int_from_bytes(read_buffer, length); + return mathUtils::int_from_bytes(read_buffer, length); } -void Spi::read_array(uint8_t reg, uint8_t length, uint8_t* data) { - std::lock_guard lock(spi_mutex); +void Spi::read_array(uint8_t reg, uint8_t length, uint8_t *data) { + std::lock_guard lock(spi_mutex); - clear_buffers(); - tx_buffer[0] = 0; - tx_buffer[1] = reg; - tx_buffer[2] = length; + clear_buffers(); + tx_buffer[0] = 0; + tx_buffer[1] = reg; + tx_buffer[2] = length; - transfer(); + transfer(); - uint8_t checksum = calculate_checksum(rx_buffer, length + 3); - if (checksum != rx_buffer[length + 3]) { - spdlog::error("Received invalid checksum {}. Should be {}", rx_buffer[length +3], checksum); - } + uint8_t checksum = calculate_checksum(rx_buffer, length + 3); + if (checksum != rx_buffer[length + 3]) { + spdlog::error("Received invalid checksum {}. Should be {}", rx_buffer[length + 3], checksum); + } - memcpy(data, rx_buffer + 2, length); + memcpy(data, rx_buffer + 2, length); } void Spi::write(uint8_t reg, uint8_t length, int value) { - std::lock_guard lock(spi_mutex); + std::lock_guard lock(spi_mutex); - uint8_t write_buffer[SPI_BUFFER_SIZE] = {0}; - mathUtils::bytes_from_int(value, length, write_buffer); - write_array(reg, length, write_buffer); + uint8_t write_buffer[SPI_BUFFER_SIZE] = {0}; + mathUtils::bytes_from_int(value, length, write_buffer); + write_array(reg, length, write_buffer); } -void Spi::write_array(uint8_t reg, uint8_t length, const uint8_t* data) { - std::lock_guard lock(spi_mutex); +void Spi::write_array(uint8_t reg, uint8_t length, const uint8_t *data) { + std::lock_guard lock(spi_mutex); - clear_buffers(); - tx_buffer[0] = 1; - tx_buffer[1] = reg; - tx_buffer[2] = length; - memcpy(tx_buffer + 3, data, length); + clear_buffers(); + tx_buffer[0] = 1; + tx_buffer[1] = reg; + tx_buffer[2] = length; + memcpy(tx_buffer + 3, data, length); - transfer(); + transfer(); } void Spi::transfer() { - std::lock_guard lock(spi_mutex); - - struct spi_ioc_transfer spi; - memset(&spi, 0, sizeof(spi)); - - spi.tx_buf = (unsigned long) tx_buffer; - spi.rx_buf = (unsigned long) rx_buffer; - spi.len = SPI_BUFFER_SIZE; - spi.delay_usecs = 0; - spi.speed_hz = SPI_SPEED; - spi.bits_per_word = SPI_BITS_PER_WORD; - spi.cs_change = 0; - - check_for_error(ioctl(spi_file_descriptor, SPI_IOC_MESSAGE(1), &spi), "Problem transmitting spi data"); - check_for_error(ioctl(spi_file_descriptor, SPI_IOC_MESSAGE(1), &spi), "Problem transmitting spi data"); + std::lock_guard lock(spi_mutex); - if (tx_buffer[1] != rx_buffer[1]) { - spdlog::error("SPI error during read/write of register {}. Got reg {} instead!", tx_buffer[1], rx_buffer[1]); - } + struct spi_ioc_transfer spi; + memset(&spi, 0, sizeof(spi)); + + spi.tx_buf = (unsigned long) tx_buffer; + spi.rx_buf = (unsigned long) rx_buffer; + spi.len = SPI_BUFFER_SIZE; + spi.delay_usecs = 0; + spi.speed_hz = SPI_SPEED; + spi.bits_per_word = SPI_BITS_PER_WORD; + spi.cs_change = 0; + + check_for_error(ioctl(spi_file_descriptor, SPI_IOC_MESSAGE(1), &spi), "Problem transmitting spi data"); + check_for_error(ioctl(spi_file_descriptor, SPI_IOC_MESSAGE(1), &spi), "Problem transmitting spi data"); + + if (tx_buffer[1] != rx_buffer[1]) { + spdlog::error("SPI error during read/write of register {}. Got reg {} instead!", tx_buffer[1], rx_buffer[1]); + } } + +#else + +Spi::Spi() {} + +int Spi::read(uint8_t reg, uint8_t length) { + std::lock_guard lock(spi_mutex); + spdlog::warn("Calling SPI without actual interface."); + + return 0; +} + +void Spi::read_array(uint8_t reg, uint8_t length, uint8_t *data) { + std::lock_guard lock(spi_mutex); + spdlog::warn("Calling SPI without actual interface."); + clear_buffers(); + memcpy(data, rx_buffer, length); +} + +void Spi::write(uint8_t reg, uint8_t length, int value) { + std::lock_guard lock(spi_mutex); + spdlog::warn("Calling SPI without actual interface."); +} + +void Spi::write_array(uint8_t reg, uint8_t length, const uint8_t *data) { + std::lock_guard lock(spi_mutex); + spdlog::warn("Calling SPI without actual interface."); +} + +void Spi::transfer() { + std::lock_guard lock(spi_mutex); + spdlog::warn("Calling SPI without actual interface."); +} + +#endif \ No newline at end of file From 6a1ac72912459d7e9fb7884d1786a4b81ffd4db3 Mon Sep 17 00:00:00 2001 From: Konstantin Lampalzer Date: Thu, 26 May 2022 18:55:57 +0200 Subject: [PATCH 166/246] Change RPM to M/S --- .../include/ClosedLoopMotorController.hpp | 6 +- server_v2/include/Encoders.hpp | 4 +- server_v2/include/Robot.hpp | 9 +- server_v2/src/ClosedLoopMotorController.cpp | 96 ++++++++++++++++++- server_v2/src/Encoders.cpp | 7 +- .../src/communication/MessageProcessor.cpp | 2 +- server_v2/src/main.cpp | 2 + 7 files changed, 111 insertions(+), 15 deletions(-) diff --git a/server_v2/include/ClosedLoopMotorController.hpp b/server_v2/include/ClosedLoopMotorController.hpp index ded8143..5e05ff8 100644 --- a/server_v2/include/ClosedLoopMotorController.hpp +++ b/server_v2/include/ClosedLoopMotorController.hpp @@ -22,7 +22,11 @@ public: void set_power(uint8_t port, double power); - void set_speed(uint8_t port, double speed_rpm); + void set_speed(uint8_t port, double speed_ms); + + void generate_step_response_data(); + + void generate_tuned_step_response_data(); private: enum ControlMode : uint8_t { diff --git a/server_v2/include/Encoders.hpp b/server_v2/include/Encoders.hpp index 612419c..f2b29fc 100644 --- a/server_v2/include/Encoders.hpp +++ b/server_v2/include/Encoders.hpp @@ -19,7 +19,7 @@ public: std::array get_positions(); - std::array get_velocities_rpm(); + std::array get_velocities_ms(); private: Encoders() = default; @@ -28,7 +28,7 @@ private: Cache velocity_cache{ROBOT_ENCODER_RATE_HZ}; std::array cached_positions = {0}; - std::array cached_velocities_rpm = {0}; + std::array cached_velocities_ms = {0}; }; diff --git a/server_v2/include/Robot.hpp b/server_v2/include/Robot.hpp index 28164eb..9400f0f 100644 --- a/server_v2/include/Robot.hpp +++ b/server_v2/include/Robot.hpp @@ -7,10 +7,10 @@ #define ROBOT_IR_RATE_HZ 250 #define ROBOT_MOTOR_COUNT 4 -#define ROBOT_MOTOR_SPEED_CONTROL_KP 0.5 -#define ROBOT_MOTOR_SPEED_CONTROL_KI 5.0 -#define ROBOT_MOTOR_SPEED_CONTROL_KD 0.025 -#define ROBOT_MOTOR_SPEED_CONTROL_RAMP 100.0 +#define ROBOT_MOTOR_SPEED_CONTROL_KP 222.0 +#define ROBOT_MOTOR_SPEED_CONTROL_KI 2110.0 +#define ROBOT_MOTOR_SPEED_CONTROL_KD 2.22 +#define ROBOT_MOTOR_SPEED_CONTROL_RAMP 0.2 #define ROBOT_MOTOR_SPEED_CONTROL_RATE_HZ 250 #define ROBOT_ODOMETRY_CONTROLLER_RATE_HZ 250 @@ -22,6 +22,7 @@ #define ROBOT_ENCODER_RATE_HZ 250 #define ROBOT_WHEEL_CIRCUMFERENCE_MM (71.0 * M_PI) +#define ROBOT_WHEEL_CIRCUMFERENCE_M (ROBOT_WHEEL_CIRCUMFERENCE_MM / 1000.0) #define ROBOT_TICKS_PER_TURN (27.7 * 100.0) #define ROBOT_ARBOR_LENGTH_MM 139.0 #define ROBOT_ARBOR_LENGTH_M (ROBOT_ARBOR_LENGTH_MM / 1000.0) diff --git a/server_v2/src/ClosedLoopMotorController.cpp b/server_v2/src/ClosedLoopMotorController.cpp index ea06ead..4e33a88 100644 --- a/server_v2/src/ClosedLoopMotorController.cpp +++ b/server_v2/src/ClosedLoopMotorController.cpp @@ -1,4 +1,8 @@ #include + +#include +#include + #include "include/ClosedLoopMotorController.hpp" #include "include/Motors.hpp" #include "include/Encoders.hpp" @@ -11,8 +15,8 @@ void ClosedLoopMotorController::set_power(uint8_t port, double power) { Motors::set_power(port, power); } -void ClosedLoopMotorController::set_speed(uint8_t port, double speed_rpm) { - speed_targets.at(port) = speed_rpm; +void ClosedLoopMotorController::set_speed(uint8_t port, double speed_ms) { + speed_targets.at(port) = speed_ms; if (control_modes.at(port) != ControlMode::SPEED) { pids.at(port) = PID( ROBOT_MOTOR_SPEED_CONTROL_KP, ROBOT_MOTOR_SPEED_CONTROL_KI, ROBOT_MOTOR_SPEED_CONTROL_KD, @@ -36,14 +40,98 @@ ClosedLoopMotorController::ClosedLoopMotorController() { continue; } - auto speeds = Encoders::getInstance().get_velocities_rpm(); + auto speeds_ms = Encoders::getInstance().get_velocities_ms(); for (int i = 0; i < ROBOT_MOTOR_COUNT; i++) { if (control_modes.at(i) == ControlMode::SPEED) { - double power = pids.at(i)(speed_targets.at(i), speeds.at(i)); + double power = pids.at(i)(speed_targets.at(i), speeds_ms.at(i)); Motors::set_power(i, power); } } } } +void ClosedLoopMotorController::generate_step_response_data() { + auto console = spdlog::stdout_color_mt("generate_step_response_data"); + console->set_pattern("%v"); + auto port = ROBOT_ODOMETRY_CONTROLLER_LEFT_PORT; + auto input = 25.0; + + speed_targets.at(port) = input; + pids.at(port) = PID( + 1.0, 0.0, 0.0, + 1000.0, 100.0); + control_modes.at(port) = ControlMode::SPEED; + + std::this_thread::sleep_for(std::chrono::seconds(2)); + + auto start_time = std::chrono::steady_clock::now(); + + for (int i = 0; i < 500; ++i) { + std::this_thread::sleep_for(std::chrono::milliseconds(10)); + double delta_seconds = std::chrono::duration_cast>(std::chrono::steady_clock::now() - start_time).count() / US_IN_S; + auto output = Encoders::getInstance().get_velocities_ms().at(port); + console->debug("{:03.4f}; {:03.4f}; {:03.4f}", delta_seconds, input, output); + } + + input = 50.0; + speed_targets.at(port) = input; + for (int i = 0; i < 500; ++i) { + std::this_thread::sleep_for(std::chrono::milliseconds(10)); + double delta_seconds = std::chrono::duration_cast>(std::chrono::steady_clock::now() - start_time).count() / US_IN_S; + auto output = Encoders::getInstance().get_velocities_ms().at(port); + console->debug("{:03.4f}; {:03.4f}; {:03.4f}", delta_seconds, input, output); + } + + speed_targets.at(port) = 0.0; + control_modes.at(port) = ControlMode::NONE; +} + +void ClosedLoopMotorController::generate_tuned_step_response_data() { + auto console = spdlog::stdout_color_mt("generate_tuned_step_response_data"); + console->set_pattern("%v"); + + auto port = ROBOT_ODOMETRY_CONTROLLER_LEFT_PORT; + auto input = 0.25; + + speed_targets.at(port) = input; + pids.at(port) = PID( + 221.0, 2110.0, 2.21, + 0.2, 100.0); + control_modes.at(port) = ControlMode::SPEED; + + std::this_thread::sleep_for(std::chrono::seconds(2)); + + auto start_time = std::chrono::steady_clock::now(); + + for (int i = 0; i < 500; ++i) { + std::this_thread::sleep_for(std::chrono::milliseconds(10)); + double delta_seconds = std::chrono::duration_cast>(std::chrono::steady_clock::now() - start_time).count() / US_IN_S; + auto output = Encoders::getInstance().get_velocities_ms().at(port); + console->debug("{:03.4f}; {:03.4f}; {:03.4f}", delta_seconds, input, output); + } + + input = 0.35; + speed_targets.at(port) = input; + for (int i = 0; i < 500; ++i) { + std::this_thread::sleep_for(std::chrono::milliseconds(10)); + double delta_seconds = std::chrono::duration_cast>(std::chrono::steady_clock::now() - start_time).count() / US_IN_S; + auto output = Encoders::getInstance().get_velocities_ms().at(port); + console->debug("{:03.4f}; {:03.4f}; {:03.4f}", delta_seconds, input, output); + } + + input = 0.1; + speed_targets.at(port) = input; + for (int i = 0; i < 500; ++i) { + std::this_thread::sleep_for(std::chrono::milliseconds(10)); + double delta_seconds = std::chrono::duration_cast>(std::chrono::steady_clock::now() - start_time).count() / US_IN_S; + auto output = Encoders::getInstance().get_velocities_ms().at(port); + console->debug("{:03.4f}; {:03.4f}; {:03.4f}", delta_seconds, input, output); + + input += 0.001; + speed_targets.at(port) = input; + } + + speed_targets.at(port) = 0.0; + control_modes.at(port) = ControlMode::NONE; +} diff --git a/server_v2/src/Encoders.cpp b/server_v2/src/Encoders.cpp index 0d8ad5f..78aba7c 100644 --- a/server_v2/src/Encoders.cpp +++ b/server_v2/src/Encoders.cpp @@ -15,15 +15,16 @@ std::array Encoders::get_positions() { return cached_positions; } -std::array Encoders::get_velocities_rpm() { +std::array Encoders::get_velocities_ms() { if (velocity_cache.is_expired()) { uint8_t data[ROBOT_MOTOR_COUNT * 2] = {0}; Spi::getInstance().read_array(Spi::MOTOR_1_VEL_H, 2 * ROBOT_MOTOR_COUNT, data); for (int i = 0; i < ROBOT_MOTOR_COUNT; ++i) { auto velocity_tps = mathUtils::from_bytes(data + i * 2, 2); - cached_velocities_rpm.at(i) = velocity_tps * 60.0 / ROBOT_TICKS_PER_TURN; + auto velocity_rps = velocity_tps / ROBOT_TICKS_PER_TURN; + cached_velocities_ms.at(i) = velocity_rps * ROBOT_WHEEL_CIRCUMFERENCE_M; } velocity_cache.update(); } - return cached_velocities_rpm; + return cached_velocities_ms; } diff --git a/server_v2/src/communication/MessageProcessor.cpp b/server_v2/src/communication/MessageProcessor.cpp index f5e7898..a7b02e9 100644 --- a/server_v2/src/communication/MessageProcessor.cpp +++ b/server_v2/src/communication/MessageProcessor.cpp @@ -20,7 +20,7 @@ google::protobuf::Message *MessageProcessor::process_message(const std::string & if (messageTypeName == EncoderReadPositionsRequest::GetDescriptor()->full_name()) { return MessageBuilder::encoder_read_positions_response(Encoders::getInstance().get_positions()); } else if (messageTypeName == EncoderReadVelocitiesRequest::GetDescriptor()->full_name()) { - return MessageBuilder::encoder_read_velocities_response(Encoders::getInstance().get_velocities_rpm()); + return MessageBuilder::encoder_read_velocities_response(Encoders::getInstance().get_velocities_ms()); } // IR Sensors diff --git a/server_v2/src/main.cpp b/server_v2/src/main.cpp index 157dda9..8c4f330 100644 --- a/server_v2/src/main.cpp +++ b/server_v2/src/main.cpp @@ -26,6 +26,8 @@ int main() { // spdlog::info("X {} Y {} W {}", odom.get_x_position(), odom.get_y_position(), odom.get_angular_orientation()); // usleep(1000); // } + + ClosedLoopMotorController::getInstance().generate_tuned_step_response_data(); std::this_thread::sleep_for(std::chrono::hours(12)); return 0; } From 92d42be8b8252754bf97e775b3a9f95d196d2e4a Mon Sep 17 00:00:00 2001 From: Konstantin Lampalzer Date: Fri, 27 May 2022 02:44:52 +0200 Subject: [PATCH 167/246] Continue on go to goal behaviour --- server_v2/CMakeLists.txt | 6 +- .../include/ClosedLoopMotorController.hpp | 2 +- server_v2/include/Encoders.hpp | 4 +- server_v2/include/GoToGoalController.hpp | 29 +++++++++ server_v2/include/OdometryController.hpp | 3 + server_v2/include/Robot.hpp | 15 +++-- server_v2/include/mathUtils.hpp | 6 ++ server_v2/src/ClosedLoopMotorController.cpp | 28 ++++---- server_v2/src/Encoders.cpp | 11 ++-- server_v2/src/GoToGoalController.cpp | 64 +++++++++++++++++++ server_v2/src/OdometryController.cpp | 8 ++- .../src/communication/MessageProcessor.cpp | 2 +- server_v2/src/main.cpp | 18 +++++- 13 files changed, 161 insertions(+), 35 deletions(-) create mode 100644 server_v2/include/GoToGoalController.hpp create mode 100644 server_v2/src/GoToGoalController.cpp diff --git a/server_v2/CMakeLists.txt b/server_v2/CMakeLists.txt index a5ab68b..f26d0d7 100644 --- a/server_v2/CMakeLists.txt +++ b/server_v2/CMakeLists.txt @@ -49,7 +49,8 @@ set(SRC_FILES src/communication/MessageProcessor.cpp src/communication/MessageBuilder.cpp src/communication/UnixSocketServer.cpp - src/communication/TCPSocketServer.cpp) + src/communication/TCPSocketServer.cpp + src/GoToGoalController.cpp) set(HDR_FILES include/spi.hpp @@ -67,7 +68,8 @@ set(HDR_FILES include/communication/MessageProcessor.hpp include/communication/MessageBuilder.hpp include/communication/UnixSocketServer.hpp - include/communication/TCPSocketServer.hpp) + include/communication/TCPSocketServer.hpp + include/GoToGoalController.hpp) include_directories(third_party/asio) diff --git a/server_v2/include/ClosedLoopMotorController.hpp b/server_v2/include/ClosedLoopMotorController.hpp index 5e05ff8..b5a5805 100644 --- a/server_v2/include/ClosedLoopMotorController.hpp +++ b/server_v2/include/ClosedLoopMotorController.hpp @@ -22,7 +22,7 @@ public: void set_power(uint8_t port, double power); - void set_speed(uint8_t port, double speed_ms); + void set_speed(uint8_t port, double speed_rad_s); void generate_step_response_data(); diff --git a/server_v2/include/Encoders.hpp b/server_v2/include/Encoders.hpp index f2b29fc..bbde700 100644 --- a/server_v2/include/Encoders.hpp +++ b/server_v2/include/Encoders.hpp @@ -19,7 +19,7 @@ public: std::array get_positions(); - std::array get_velocities_ms(); + std::array get_velocities_rad_s(); private: Encoders() = default; @@ -28,7 +28,7 @@ private: Cache velocity_cache{ROBOT_ENCODER_RATE_HZ}; std::array cached_positions = {0}; - std::array cached_velocities_ms = {0}; + std::array cached_velocities_rad_s = {0}; }; diff --git a/server_v2/include/GoToGoalController.hpp b/server_v2/include/GoToGoalController.hpp new file mode 100644 index 0000000..33ec68d --- /dev/null +++ b/server_v2/include/GoToGoalController.hpp @@ -0,0 +1,29 @@ +// +// Created by KonstantinViesure on 26.05.22. +// + +#ifndef COMPLIB_SERVER_GOTOGOALCONTROLLER_HPP +#define COMPLIB_SERVER_GOTOGOALCONTROLLER_HPP + + +class GoToGoalController { +public: + static GoToGoalController &getInstance() { + static GoToGoalController instance; + return instance; + } + + GoToGoalController(GoToGoalController const &) = delete; + + void operator=(GoToGoalController const &) = delete; + + static void go_to_point(double goal_x, double goal_y, double v_ms); + + static void diff_drive_inverse_kinematics(double v_m_s, double w_rad_s); + +private: + GoToGoalController() = default; +}; + + +#endif //COMPLIB_SERVER_GOTOGOALCONTROLLER_HPP diff --git a/server_v2/include/OdometryController.hpp b/server_v2/include/OdometryController.hpp index 1be1e95..570a603 100644 --- a/server_v2/include/OdometryController.hpp +++ b/server_v2/include/OdometryController.hpp @@ -26,6 +26,8 @@ public: Odometry get(); + [[nodiscard]] bool is_enabled() const; + private: typedef std::chrono::steady_clock clock; @@ -40,6 +42,7 @@ private: double last_position_left{0}; double last_position_right{0}; std::chrono::time_point last_run; + }; diff --git a/server_v2/include/Robot.hpp b/server_v2/include/Robot.hpp index 9400f0f..11f8f6e 100644 --- a/server_v2/include/Robot.hpp +++ b/server_v2/include/Robot.hpp @@ -7,10 +7,10 @@ #define ROBOT_IR_RATE_HZ 250 #define ROBOT_MOTOR_COUNT 4 -#define ROBOT_MOTOR_SPEED_CONTROL_KP 222.0 -#define ROBOT_MOTOR_SPEED_CONTROL_KI 2110.0 -#define ROBOT_MOTOR_SPEED_CONTROL_KD 2.22 -#define ROBOT_MOTOR_SPEED_CONTROL_RAMP 0.2 +#define ROBOT_MOTOR_SPEED_CONTROL_KP 2.5 +#define ROBOT_MOTOR_SPEED_CONTROL_KI 19.0 +#define ROBOT_MOTOR_SPEED_CONTROL_KD 0.07 +#define ROBOT_MOTOR_SPEED_CONTROL_RAMP 4 * M_PI #define ROBOT_MOTOR_SPEED_CONTROL_RATE_HZ 250 #define ROBOT_ODOMETRY_CONTROLLER_RATE_HZ 250 @@ -21,12 +21,15 @@ #define ROBOT_ENCODER_RATE_HZ 250 -#define ROBOT_WHEEL_CIRCUMFERENCE_MM (71.0 * M_PI) -#define ROBOT_WHEEL_CIRCUMFERENCE_M (ROBOT_WHEEL_CIRCUMFERENCE_MM / 1000.0) +#define ROBOT_WHEEL_RADIUS_MM 35.5 +#define ROBOT_WHEEL_RADIUS_M (ROBOT_WHEEL_RADIUS_MM / 1000.0) +#define ROBOT_WHEEL_CIRCUMFERENCE_MM (2 * ROBOT_WHEEL_RADIUS_MM * M_PI) +#define ROBOT_WHEEL_CIRCUMFERENCE_M (2 * ROBOT_WHEEL_RADIUS_M * M_PI) #define ROBOT_TICKS_PER_TURN (27.7 * 100.0) #define ROBOT_ARBOR_LENGTH_MM 139.0 #define ROBOT_ARBOR_LENGTH_M (ROBOT_ARBOR_LENGTH_MM / 1000.0) #define ROBOT_TICKS_PER_METER (1000.0 / ROBOT_WHEEL_CIRCUMFERENCE_MM * ROBOT_TICKS_PER_TURN) +#define ROBOT_GO_TO_GOAL_K 0.99 // Between 0.5 and 1 #endif //COMPLIB_SERVER_ROBOT_HPP diff --git a/server_v2/include/mathUtils.hpp b/server_v2/include/mathUtils.hpp index 603c6fd..9e16e4b 100644 --- a/server_v2/include/mathUtils.hpp +++ b/server_v2/include/mathUtils.hpp @@ -2,6 +2,7 @@ #define COMPLIB_SERVER_MATHUTILS_HPP #include +#include namespace mathUtils { inline int int_from_bytes(uint8_t *data, int length) { @@ -34,6 +35,11 @@ namespace mathUtils { i++; } } + + template + inline T wrap_angle_to_pi(T angle) { + return atan2(sin(angle), cos(angle)); + } } #endif // COMPLIB_SERVER_MATHUTILS_HPP \ No newline at end of file diff --git a/server_v2/src/ClosedLoopMotorController.cpp b/server_v2/src/ClosedLoopMotorController.cpp index 4e33a88..cc2ed36 100644 --- a/server_v2/src/ClosedLoopMotorController.cpp +++ b/server_v2/src/ClosedLoopMotorController.cpp @@ -40,7 +40,7 @@ ClosedLoopMotorController::ClosedLoopMotorController() { continue; } - auto speeds_ms = Encoders::getInstance().get_velocities_ms(); + auto speeds_ms = Encoders::getInstance().get_velocities_rad_s(); for (int i = 0; i < ROBOT_MOTOR_COUNT; i++) { if (control_modes.at(i) == ControlMode::SPEED) { double power = pids.at(i)(speed_targets.at(i), speeds_ms.at(i)); @@ -55,7 +55,7 @@ void ClosedLoopMotorController::generate_step_response_data() { console->set_pattern("%v"); auto port = ROBOT_ODOMETRY_CONTROLLER_LEFT_PORT; - auto input = 25.0; + auto input = 10.0; speed_targets.at(port) = input; pids.at(port) = PID( @@ -70,16 +70,16 @@ void ClosedLoopMotorController::generate_step_response_data() { for (int i = 0; i < 500; ++i) { std::this_thread::sleep_for(std::chrono::milliseconds(10)); double delta_seconds = std::chrono::duration_cast>(std::chrono::steady_clock::now() - start_time).count() / US_IN_S; - auto output = Encoders::getInstance().get_velocities_ms().at(port); + auto output = Encoders::getInstance().get_velocities_rad_s().at(port); console->debug("{:03.4f}; {:03.4f}; {:03.4f}", delta_seconds, input, output); } - input = 50.0; + input = 20.0; speed_targets.at(port) = input; for (int i = 0; i < 500; ++i) { std::this_thread::sleep_for(std::chrono::milliseconds(10)); double delta_seconds = std::chrono::duration_cast>(std::chrono::steady_clock::now() - start_time).count() / US_IN_S; - auto output = Encoders::getInstance().get_velocities_ms().at(port); + auto output = Encoders::getInstance().get_velocities_rad_s().at(port); console->debug("{:03.4f}; {:03.4f}; {:03.4f}", delta_seconds, input, output); } @@ -92,12 +92,12 @@ void ClosedLoopMotorController::generate_tuned_step_response_data() { console->set_pattern("%v"); auto port = ROBOT_ODOMETRY_CONTROLLER_LEFT_PORT; - auto input = 0.25; + auto input = 2 * M_PI; speed_targets.at(port) = input; pids.at(port) = PID( - 221.0, 2110.0, 2.21, - 0.2, 100.0); + 2.5, 19.0, 0.07, + 4 * M_PI, 100.0); control_modes.at(port) = ControlMode::SPEED; std::this_thread::sleep_for(std::chrono::seconds(2)); @@ -107,28 +107,28 @@ void ClosedLoopMotorController::generate_tuned_step_response_data() { for (int i = 0; i < 500; ++i) { std::this_thread::sleep_for(std::chrono::milliseconds(10)); double delta_seconds = std::chrono::duration_cast>(std::chrono::steady_clock::now() - start_time).count() / US_IN_S; - auto output = Encoders::getInstance().get_velocities_ms().at(port); + auto output = Encoders::getInstance().get_velocities_rad_s().at(port); console->debug("{:03.4f}; {:03.4f}; {:03.4f}", delta_seconds, input, output); } - input = 0.35; + input = 4 * M_PI; speed_targets.at(port) = input; for (int i = 0; i < 500; ++i) { std::this_thread::sleep_for(std::chrono::milliseconds(10)); double delta_seconds = std::chrono::duration_cast>(std::chrono::steady_clock::now() - start_time).count() / US_IN_S; - auto output = Encoders::getInstance().get_velocities_ms().at(port); + auto output = Encoders::getInstance().get_velocities_rad_s().at(port); console->debug("{:03.4f}; {:03.4f}; {:03.4f}", delta_seconds, input, output); } - input = 0.1; + input = M_PI; speed_targets.at(port) = input; for (int i = 0; i < 500; ++i) { std::this_thread::sleep_for(std::chrono::milliseconds(10)); double delta_seconds = std::chrono::duration_cast>(std::chrono::steady_clock::now() - start_time).count() / US_IN_S; - auto output = Encoders::getInstance().get_velocities_ms().at(port); + auto output = Encoders::getInstance().get_velocities_rad_s().at(port); console->debug("{:03.4f}; {:03.4f}; {:03.4f}", delta_seconds, input, output); - input += 0.001; + input += 0.01; speed_targets.at(port) = input; } diff --git a/server_v2/src/Encoders.cpp b/server_v2/src/Encoders.cpp index 78aba7c..921d552 100644 --- a/server_v2/src/Encoders.cpp +++ b/server_v2/src/Encoders.cpp @@ -15,16 +15,17 @@ std::array Encoders::get_positions() { return cached_positions; } -std::array Encoders::get_velocities_ms() { +std::array Encoders::get_velocities_rad_s() { if (velocity_cache.is_expired()) { uint8_t data[ROBOT_MOTOR_COUNT * 2] = {0}; Spi::getInstance().read_array(Spi::MOTOR_1_VEL_H, 2 * ROBOT_MOTOR_COUNT, data); for (int i = 0; i < ROBOT_MOTOR_COUNT; ++i) { - auto velocity_tps = mathUtils::from_bytes(data + i * 2, 2); - auto velocity_rps = velocity_tps / ROBOT_TICKS_PER_TURN; - cached_velocities_ms.at(i) = velocity_rps * ROBOT_WHEEL_CIRCUMFERENCE_M; + auto velocity_ticks_s = mathUtils::from_bytes(data + i * 2, 2); + auto velocity_rot_s = velocity_ticks_s / ROBOT_TICKS_PER_TURN; + auto velocity_rad_s = velocity_rot_s * 2 * M_PI; + cached_velocities_rad_s.at(i) = velocity_rad_s; } velocity_cache.update(); } - return cached_velocities_ms; + return cached_velocities_rad_s; } diff --git a/server_v2/src/GoToGoalController.cpp b/server_v2/src/GoToGoalController.cpp new file mode 100644 index 0000000..3d6aafb --- /dev/null +++ b/server_v2/src/GoToGoalController.cpp @@ -0,0 +1,64 @@ +#include + +#include "include/GoToGoalController.hpp" +#include "include/Robot.hpp" +#include "include/ClosedLoopMotorController.hpp" +#include "include/OdometryController.hpp" +#include "include/mathUtils.hpp" + +#define MS_IN_S 1000 +#define US_IN_S (1000 * MS_IN_S) + +// Source: http://faculty.salina.k-state.edu/tim/robot_prog/MobileBot/Steering/unicycle.html#calculating-wheel-velocities +// Source: https://www.roboticsbook.org/S52_diffdrive_actions.html#kinematics-in-code +void GoToGoalController::diff_drive_inverse_kinematics(double v_m_s, double w_rad_s) { + auto vr_rad_s = (2 * v_m_s - w_rad_s * ROBOT_ARBOR_LENGTH_M) / (2.0 * ROBOT_WHEEL_RADIUS_M) * ROBOT_ODOMETRY_CONTROLLER_RIGHT_MULT; + auto vl_rad_s = (2 * v_m_s + w_rad_s * ROBOT_ARBOR_LENGTH_M) / (2.0 * ROBOT_WHEEL_RADIUS_M) * ROBOT_ODOMETRY_CONTROLLER_LEFT_MULT; + + ClosedLoopMotorController::getInstance().set_speed(ROBOT_ODOMETRY_CONTROLLER_RIGHT_PORT, vr_rad_s); + ClosedLoopMotorController::getInstance().set_speed(ROBOT_ODOMETRY_CONTROLLER_LEFT_PORT, vl_rad_s); +} + +void GoToGoalController::go_to_point(double goal_x, double goal_y, double v_ms) { + auto was_enabled = OdometryController::getInstance().is_enabled(); + OdometryController::getInstance().enable(); + auto start_pos = OdometryController::getInstance().get(); + + auto sleep_duration = std::chrono::microseconds(US_IN_S / ROBOT_MOTOR_SPEED_CONTROL_RATE_HZ); + + auto abs_distance = fabs(sqrt( + pow(goal_x - start_pos.get_x_position(), 2) + pow(goal_y - start_pos.get_y_position(), 2) + )); + while (abs_distance > 0.05) { + auto current_pos = OdometryController::getInstance().get(); + auto alpha = mathUtils::wrap_angle_to_pi( + (atan2(goal_x - current_pos.get_x_position(), goal_y - current_pos.get_y_position()) - (current_pos.get_angular_orientation() + M_PI_2)) + ); + + auto vr_ms = v_ms * (cos(alpha) - ROBOT_GO_TO_GOAL_K * sin(alpha)); + auto vl_ms = v_ms * (cos(alpha) + ROBOT_GO_TO_GOAL_K * sin(alpha)); + auto vr_rad_s = vr_ms / ROBOT_WHEEL_RADIUS_M * ROBOT_ODOMETRY_CONTROLLER_RIGHT_MULT; + auto vl_rad_s = vl_ms / ROBOT_WHEEL_RADIUS_M * ROBOT_ODOMETRY_CONTROLLER_LEFT_MULT; + + ClosedLoopMotorController::getInstance().set_speed(ROBOT_ODOMETRY_CONTROLLER_RIGHT_PORT, vr_rad_s); + ClosedLoopMotorController::getInstance().set_speed(ROBOT_ODOMETRY_CONTROLLER_LEFT_PORT, vl_rad_s); + + abs_distance = fabs(sqrt( + pow(goal_x - current_pos.get_x_position(), 2) + pow(goal_y - current_pos.get_y_position(), 2) + )); + spdlog::debug("{:03.4f}; {:03.4f}; {:03.4f}; {:03.4f}; {:03.4f}; {:03.4f}; {:03.4f}; {:03.4f}; {:03.4f}; {:03.4f}", + current_pos.get_x_position(), current_pos.get_y_position(), current_pos.get_angular_orientation(), + goal_x - current_pos.get_x_position(), goal_y - current_pos.get_y_position(), atan2(goal_x - current_pos.get_x_position(), goal_y - current_pos.get_y_position()), + current_pos.get_angular_orientation() + M_PI_2, alpha, + vr_rad_s, vl_rad_s); + + std::this_thread::sleep_for(sleep_duration); + } + + ClosedLoopMotorController::getInstance().set_speed(ROBOT_ODOMETRY_CONTROLLER_RIGHT_PORT, 0); + ClosedLoopMotorController::getInstance().set_speed(ROBOT_ODOMETRY_CONTROLLER_LEFT_PORT, 0); + + if (!was_enabled) { + OdometryController::getInstance().disable(); + } +} diff --git a/server_v2/src/OdometryController.cpp b/server_v2/src/OdometryController.cpp index aed8698..379401c 100644 --- a/server_v2/src/OdometryController.cpp +++ b/server_v2/src/OdometryController.cpp @@ -4,10 +4,15 @@ #include "include/Robot.hpp" #include "include/Encoders.hpp" #include +#include "include/mathUtils.hpp" #define MS_IN_S 1000 #define US_IN_S (1000 * MS_IN_S) +bool OdometryController::is_enabled() const { + return enabled; +} + void OdometryController::enable() { last_run = clock::now(); enabled = true; @@ -15,6 +20,7 @@ void OdometryController::enable() { void OdometryController::disable() { enabled = false; + OdometryController::reset(); } void OdometryController::reset() { @@ -70,7 +76,7 @@ OdometryController::OdometryController() { cos(current_orientation) * distance_y); } if (theta != 0) { - new_angular_orientation = current_odometry.get_angular_orientation() + theta; + new_angular_orientation = mathUtils::wrap_angle_to_pi(current_odometry.get_angular_orientation() + theta); } current_odometry = Odometry(new_x_position, new_y_position, new_angular_orientation); diff --git a/server_v2/src/communication/MessageProcessor.cpp b/server_v2/src/communication/MessageProcessor.cpp index a7b02e9..0cbc171 100644 --- a/server_v2/src/communication/MessageProcessor.cpp +++ b/server_v2/src/communication/MessageProcessor.cpp @@ -20,7 +20,7 @@ google::protobuf::Message *MessageProcessor::process_message(const std::string & if (messageTypeName == EncoderReadPositionsRequest::GetDescriptor()->full_name()) { return MessageBuilder::encoder_read_positions_response(Encoders::getInstance().get_positions()); } else if (messageTypeName == EncoderReadVelocitiesRequest::GetDescriptor()->full_name()) { - return MessageBuilder::encoder_read_velocities_response(Encoders::getInstance().get_velocities_ms()); + return MessageBuilder::encoder_read_velocities_response(Encoders::getInstance().get_velocities_rad_s()); } // IR Sensors diff --git a/server_v2/src/main.cpp b/server_v2/src/main.cpp index 8c4f330..104e8d4 100644 --- a/server_v2/src/main.cpp +++ b/server_v2/src/main.cpp @@ -6,6 +6,7 @@ #include "include/ClosedLoopMotorController.hpp" #include "include/communication/UnixSocketServer.hpp" #include "include/communication/TCPSocketServer.hpp" +#include "include/GoToGoalController.hpp" using namespace std; @@ -17,8 +18,8 @@ int main() { UnixSocketServer unixSocketServer; TCPSocketServer tcpSocketServer; -// ClosedLoopMotorController::getInstance().set_speed(0, -125); -// ClosedLoopMotorController::getInstance().set_speed(3, 125); +// ClosedLoopMotorController::getInstance().set_speed(ROBOT_ODOMETRY_CONTROLLER_RIGHT_PORT, M_PI * ROBOT_ODOMETRY_CONTROLLER_RIGHT_MULT); +// ClosedLoopMotorController::getInstance().set_speed(ROBOT_ODOMETRY_CONTROLLER_LEFT_PORT, M_PI_4 * ROBOT_ODOMETRY_CONTROLLER_LEFT_MULT); // OdometryController::getInstance().enable(); // for (int i = 0; i < 10000; ++i) { @@ -27,7 +28,18 @@ int main() { // usleep(1000); // } - ClosedLoopMotorController::getInstance().generate_tuned_step_response_data(); +// OdometryController::getInstance().enable(); +// GoToGoalController::diff_drive_inverse_kinematics(0.2, -M_PI_4); +// for (int i = 0; i < 800; ++i) { +// std::this_thread::sleep_for(std::chrono::milliseconds(10)); +// auto odom = OdometryController::getInstance().get(); +// spdlog::debug("{:03.4f}; {:03.4f}; {:03.4f}", odom.get_x_position(), odom.get_y_position(), odom.get_angular_orientation()); +// } + + GoToGoalController::go_to_point(2, 0, 0.2); + +// ClosedLoopMotorController::getInstance().generate_step_response_data(); +// ClosedLoopMotorController::getInstance().generate_tuned_step_response_data(); std::this_thread::sleep_for(std::chrono::hours(12)); return 0; } From 4be754c1dbfea1fbc88f891645ea12cd983bcf07 Mon Sep 17 00:00:00 2001 From: Konstantin Lampalzer Date: Sat, 28 May 2022 01:09:34 +0200 Subject: [PATCH 168/246] Finish drive distance, finish turn_angle --- server_v2/CMakeLists.txt | 4 +- server_v2/include/GoToController.hpp | 33 +++++ server_v2/include/GoToGoalController.hpp | 29 ---- server_v2/include/OdometryController.hpp | 2 + server_v2/include/Robot.hpp | 10 +- server_v2/src/ClosedLoopMotorController.cpp | 72 ++++++---- server_v2/src/GoToController.cpp | 143 ++++++++++++++++++++ server_v2/src/GoToGoalController.cpp | 64 --------- server_v2/src/OdometryController.cpp | 6 +- server_v2/src/main.cpp | 18 ++- 10 files changed, 249 insertions(+), 132 deletions(-) create mode 100644 server_v2/include/GoToController.hpp delete mode 100644 server_v2/include/GoToGoalController.hpp create mode 100644 server_v2/src/GoToController.cpp delete mode 100644 server_v2/src/GoToGoalController.cpp diff --git a/server_v2/CMakeLists.txt b/server_v2/CMakeLists.txt index f26d0d7..186acf1 100644 --- a/server_v2/CMakeLists.txt +++ b/server_v2/CMakeLists.txt @@ -50,7 +50,7 @@ set(SRC_FILES src/communication/MessageBuilder.cpp src/communication/UnixSocketServer.cpp src/communication/TCPSocketServer.cpp - src/GoToGoalController.cpp) + src/GoToController.cpp) set(HDR_FILES include/spi.hpp @@ -69,7 +69,7 @@ set(HDR_FILES include/communication/MessageBuilder.hpp include/communication/UnixSocketServer.hpp include/communication/TCPSocketServer.hpp - include/GoToGoalController.hpp) + include/GoToController.hpp) include_directories(third_party/asio) diff --git a/server_v2/include/GoToController.hpp b/server_v2/include/GoToController.hpp new file mode 100644 index 0000000..4eb7236 --- /dev/null +++ b/server_v2/include/GoToController.hpp @@ -0,0 +1,33 @@ +// +// Created by KonstantinViesure on 26.05.22. +// + +#ifndef COMPLIB_SERVER_GOTOCONTROLLER_HPP +#define COMPLIB_SERVER_GOTOCONTROLLER_HPP + + +class GoToController { +public: + static GoToController &getInstance() { + static GoToController instance; + return instance; + } + + GoToController(GoToController const &) = delete; + + void operator=(GoToController const &) = delete; + + static void drive_distance(double distance_m, double v_ms); + + static void turn_degrees(double angle_deg, double v_rad_s); + + static void go_to_point(double goal_x, double goal_y, double v_ms); + + static void diff_drive_inverse_kinematics(double v_m_s, double w_rad_s); + +private: + GoToController() = default; +}; + + +#endif //COMPLIB_SERVER_GOTOCONTROLLER_HPP diff --git a/server_v2/include/GoToGoalController.hpp b/server_v2/include/GoToGoalController.hpp deleted file mode 100644 index 33ec68d..0000000 --- a/server_v2/include/GoToGoalController.hpp +++ /dev/null @@ -1,29 +0,0 @@ -// -// Created by KonstantinViesure on 26.05.22. -// - -#ifndef COMPLIB_SERVER_GOTOGOALCONTROLLER_HPP -#define COMPLIB_SERVER_GOTOGOALCONTROLLER_HPP - - -class GoToGoalController { -public: - static GoToGoalController &getInstance() { - static GoToGoalController instance; - return instance; - } - - GoToGoalController(GoToGoalController const &) = delete; - - void operator=(GoToGoalController const &) = delete; - - static void go_to_point(double goal_x, double goal_y, double v_ms); - - static void diff_drive_inverse_kinematics(double v_m_s, double w_rad_s); - -private: - GoToGoalController() = default; -}; - - -#endif //COMPLIB_SERVER_GOTOGOALCONTROLLER_HPP diff --git a/server_v2/include/OdometryController.hpp b/server_v2/include/OdometryController.hpp index 570a603..f588cae 100644 --- a/server_v2/include/OdometryController.hpp +++ b/server_v2/include/OdometryController.hpp @@ -3,6 +3,7 @@ #include +#include #include #include "include/Odometry.hpp" @@ -34,6 +35,7 @@ private: OdometryController(); std::thread odometry_thread; + std::recursive_mutex odometry_mutex; [[noreturn]] void odometry_loop(); diff --git a/server_v2/include/Robot.hpp b/server_v2/include/Robot.hpp index 11f8f6e..7e94738 100644 --- a/server_v2/include/Robot.hpp +++ b/server_v2/include/Robot.hpp @@ -7,9 +7,9 @@ #define ROBOT_IR_RATE_HZ 250 #define ROBOT_MOTOR_COUNT 4 -#define ROBOT_MOTOR_SPEED_CONTROL_KP 2.5 -#define ROBOT_MOTOR_SPEED_CONTROL_KI 19.0 -#define ROBOT_MOTOR_SPEED_CONTROL_KD 0.07 +#define ROBOT_MOTOR_SPEED_CONTROL_KP 8.5 +#define ROBOT_MOTOR_SPEED_CONTROL_KI 31.0 +#define ROBOT_MOTOR_SPEED_CONTROL_KD 0.085 #define ROBOT_MOTOR_SPEED_CONTROL_RAMP 4 * M_PI #define ROBOT_MOTOR_SPEED_CONTROL_RATE_HZ 250 @@ -31,5 +31,9 @@ #define ROBOT_TICKS_PER_METER (1000.0 / ROBOT_WHEEL_CIRCUMFERENCE_MM * ROBOT_TICKS_PER_TURN) #define ROBOT_GO_TO_GOAL_K 0.99 // Between 0.5 and 1 +#define ROBOT_GO_TO_DISTANCE_ALPHA_P 2.0 +#define ROBOT_GO_TO_DISTANCE_VELOCITY_P 5.0 +#define ROBOT_GO_TO_DISTANCE_END_M 0.01 // stop approx 1 cm before target +#define ROBOT_GO_TO_ANGLE_END_RAD (0.5 * (M_PI / 180.0)) // stop 0.5 deg before target #endif //COMPLIB_SERVER_ROBOT_HPP diff --git a/server_v2/src/ClosedLoopMotorController.cpp b/server_v2/src/ClosedLoopMotorController.cpp index cc2ed36..a2ef426 100644 --- a/server_v2/src/ClosedLoopMotorController.cpp +++ b/server_v2/src/ClosedLoopMotorController.cpp @@ -54,84 +54,98 @@ void ClosedLoopMotorController::generate_step_response_data() { auto console = spdlog::stdout_color_mt("generate_step_response_data"); console->set_pattern("%v"); - auto port = ROBOT_ODOMETRY_CONTROLLER_LEFT_PORT; - auto input = 10.0; + auto input = 25.0; - speed_targets.at(port) = input; - pids.at(port) = PID( + speed_targets.at(ROBOT_ODOMETRY_CONTROLLER_LEFT_PORT) = input * ROBOT_ODOMETRY_CONTROLLER_LEFT_MULT; + speed_targets.at(ROBOT_ODOMETRY_CONTROLLER_RIGHT_PORT) = input * ROBOT_ODOMETRY_CONTROLLER_RIGHT_MULT; + pids.at(ROBOT_ODOMETRY_CONTROLLER_LEFT_PORT) = PID( 1.0, 0.0, 0.0, 1000.0, 100.0); - control_modes.at(port) = ControlMode::SPEED; + pids.at(ROBOT_ODOMETRY_CONTROLLER_RIGHT_PORT) = PID( + 1.0, 0.0, 0.0, + 1000.0, 100.0); + control_modes.at(ROBOT_ODOMETRY_CONTROLLER_LEFT_PORT) = ControlMode::SPEED; + control_modes.at(ROBOT_ODOMETRY_CONTROLLER_RIGHT_PORT) = ControlMode::SPEED; - std::this_thread::sleep_for(std::chrono::seconds(2)); + std::this_thread::sleep_for(std::chrono::seconds(1)); auto start_time = std::chrono::steady_clock::now(); - - for (int i = 0; i < 500; ++i) { + for (int i = 0; i < 150; ++i) { std::this_thread::sleep_for(std::chrono::milliseconds(10)); double delta_seconds = std::chrono::duration_cast>(std::chrono::steady_clock::now() - start_time).count() / US_IN_S; - auto output = Encoders::getInstance().get_velocities_rad_s().at(port); + auto output = Encoders::getInstance().get_velocities_rad_s().at(ROBOT_ODOMETRY_CONTROLLER_LEFT_PORT); console->debug("{:03.4f}; {:03.4f}; {:03.4f}", delta_seconds, input, output); } - input = 20.0; - speed_targets.at(port) = input; - for (int i = 0; i < 500; ++i) { + input = 35.0; + speed_targets.at(ROBOT_ODOMETRY_CONTROLLER_LEFT_PORT) = input * ROBOT_ODOMETRY_CONTROLLER_LEFT_MULT; + speed_targets.at(ROBOT_ODOMETRY_CONTROLLER_RIGHT_PORT) = input * ROBOT_ODOMETRY_CONTROLLER_RIGHT_MULT; + for (int i = 0; i < 150; ++i) { std::this_thread::sleep_for(std::chrono::milliseconds(10)); double delta_seconds = std::chrono::duration_cast>(std::chrono::steady_clock::now() - start_time).count() / US_IN_S; - auto output = Encoders::getInstance().get_velocities_rad_s().at(port); + auto output = Encoders::getInstance().get_velocities_rad_s().at(ROBOT_ODOMETRY_CONTROLLER_LEFT_PORT); console->debug("{:03.4f}; {:03.4f}; {:03.4f}", delta_seconds, input, output); } - speed_targets.at(port) = 0.0; - control_modes.at(port) = ControlMode::NONE; + speed_targets.at(ROBOT_ODOMETRY_CONTROLLER_LEFT_PORT) = 0; + speed_targets.at(ROBOT_ODOMETRY_CONTROLLER_RIGHT_PORT) = 0; + control_modes.at(ROBOT_ODOMETRY_CONTROLLER_LEFT_PORT) = ControlMode::NONE; + control_modes.at(ROBOT_ODOMETRY_CONTROLLER_RIGHT_PORT) = ControlMode::NONE; } void ClosedLoopMotorController::generate_tuned_step_response_data() { auto console = spdlog::stdout_color_mt("generate_tuned_step_response_data"); console->set_pattern("%v"); - auto port = ROBOT_ODOMETRY_CONTROLLER_LEFT_PORT; auto input = 2 * M_PI; - speed_targets.at(port) = input; - pids.at(port) = PID( - 2.5, 19.0, 0.07, + speed_targets.at(ROBOT_ODOMETRY_CONTROLLER_LEFT_PORT) = input * ROBOT_ODOMETRY_CONTROLLER_LEFT_MULT; + speed_targets.at(ROBOT_ODOMETRY_CONTROLLER_RIGHT_PORT) = input * ROBOT_ODOMETRY_CONTROLLER_RIGHT_MULT; + pids.at(ROBOT_ODOMETRY_CONTROLLER_LEFT_PORT) = PID( + 8.5, 31.0, 0.085, 4 * M_PI, 100.0); - control_modes.at(port) = ControlMode::SPEED; + pids.at(ROBOT_ODOMETRY_CONTROLLER_RIGHT_PORT) = PID( + 8.5, 31.0, 0.085, + 4 * M_PI, 100.0); + control_modes.at(ROBOT_ODOMETRY_CONTROLLER_LEFT_PORT) = ControlMode::SPEED; + control_modes.at(ROBOT_ODOMETRY_CONTROLLER_RIGHT_PORT) = ControlMode::SPEED; std::this_thread::sleep_for(std::chrono::seconds(2)); auto start_time = std::chrono::steady_clock::now(); - for (int i = 0; i < 500; ++i) { std::this_thread::sleep_for(std::chrono::milliseconds(10)); double delta_seconds = std::chrono::duration_cast>(std::chrono::steady_clock::now() - start_time).count() / US_IN_S; - auto output = Encoders::getInstance().get_velocities_rad_s().at(port); + auto output = Encoders::getInstance().get_velocities_rad_s().at(ROBOT_ODOMETRY_CONTROLLER_LEFT_PORT); console->debug("{:03.4f}; {:03.4f}; {:03.4f}", delta_seconds, input, output); } input = 4 * M_PI; - speed_targets.at(port) = input; + speed_targets.at(ROBOT_ODOMETRY_CONTROLLER_LEFT_PORT) = input * ROBOT_ODOMETRY_CONTROLLER_LEFT_MULT; + speed_targets.at(ROBOT_ODOMETRY_CONTROLLER_RIGHT_PORT) = input * ROBOT_ODOMETRY_CONTROLLER_RIGHT_MULT; for (int i = 0; i < 500; ++i) { std::this_thread::sleep_for(std::chrono::milliseconds(10)); double delta_seconds = std::chrono::duration_cast>(std::chrono::steady_clock::now() - start_time).count() / US_IN_S; - auto output = Encoders::getInstance().get_velocities_rad_s().at(port); + auto output = Encoders::getInstance().get_velocities_rad_s().at(ROBOT_ODOMETRY_CONTROLLER_LEFT_PORT); console->debug("{:03.4f}; {:03.4f}; {:03.4f}", delta_seconds, input, output); } input = M_PI; - speed_targets.at(port) = input; + speed_targets.at(ROBOT_ODOMETRY_CONTROLLER_LEFT_PORT) = input * ROBOT_ODOMETRY_CONTROLLER_LEFT_MULT; + speed_targets.at(ROBOT_ODOMETRY_CONTROLLER_RIGHT_PORT) = input * ROBOT_ODOMETRY_CONTROLLER_RIGHT_MULT; for (int i = 0; i < 500; ++i) { std::this_thread::sleep_for(std::chrono::milliseconds(10)); double delta_seconds = std::chrono::duration_cast>(std::chrono::steady_clock::now() - start_time).count() / US_IN_S; - auto output = Encoders::getInstance().get_velocities_rad_s().at(port); + auto output = Encoders::getInstance().get_velocities_rad_s().at(ROBOT_ODOMETRY_CONTROLLER_LEFT_PORT); console->debug("{:03.4f}; {:03.4f}; {:03.4f}", delta_seconds, input, output); input += 0.01; - speed_targets.at(port) = input; + speed_targets.at(ROBOT_ODOMETRY_CONTROLLER_LEFT_PORT) = input * ROBOT_ODOMETRY_CONTROLLER_LEFT_MULT; + speed_targets.at(ROBOT_ODOMETRY_CONTROLLER_RIGHT_PORT) = input * ROBOT_ODOMETRY_CONTROLLER_RIGHT_MULT; } - speed_targets.at(port) = 0.0; - control_modes.at(port) = ControlMode::NONE; + speed_targets.at(ROBOT_ODOMETRY_CONTROLLER_LEFT_PORT) = 0; + speed_targets.at(ROBOT_ODOMETRY_CONTROLLER_RIGHT_PORT) = 0; + control_modes.at(ROBOT_ODOMETRY_CONTROLLER_LEFT_PORT) = ControlMode::NONE; + control_modes.at(ROBOT_ODOMETRY_CONTROLLER_RIGHT_PORT) = ControlMode::NONE; } diff --git a/server_v2/src/GoToController.cpp b/server_v2/src/GoToController.cpp new file mode 100644 index 0000000..123c679 --- /dev/null +++ b/server_v2/src/GoToController.cpp @@ -0,0 +1,143 @@ +#include + +#include "include/GoToController.hpp" +#include "include/Robot.hpp" +#include "include/ClosedLoopMotorController.hpp" +#include "include/OdometryController.hpp" +#include "include/mathUtils.hpp" + +#define MS_IN_S 1000 +#define US_IN_S (1000 * MS_IN_S) + +// Source: http://faculty.salina.k-state.edu/tim/robot_prog/MobileBot/Steering/unicycle.html#calculating-wheel-velocities +// Source: https://www.roboticsbook.org/S52_diffdrive_actions.html#kinematics-in-code +void GoToController::diff_drive_inverse_kinematics(double v_m_s, double w_rad_s) { + auto vr_rad_s = (2 * v_m_s - w_rad_s * ROBOT_ARBOR_LENGTH_M) / (2.0 * ROBOT_WHEEL_RADIUS_M) * ROBOT_ODOMETRY_CONTROLLER_RIGHT_MULT; + auto vl_rad_s = (2 * v_m_s + w_rad_s * ROBOT_ARBOR_LENGTH_M) / (2.0 * ROBOT_WHEEL_RADIUS_M) * ROBOT_ODOMETRY_CONTROLLER_LEFT_MULT; + + ClosedLoopMotorController::getInstance().set_speed(ROBOT_ODOMETRY_CONTROLLER_RIGHT_PORT, vr_rad_s); + ClosedLoopMotorController::getInstance().set_speed(ROBOT_ODOMETRY_CONTROLLER_LEFT_PORT, vl_rad_s); +} + +void GoToController::go_to_point(double goal_x, double goal_y, double v_ms) { + auto was_enabled = OdometryController::getInstance().is_enabled(); + OdometryController::getInstance().enable(); + auto start_pos = OdometryController::getInstance().get(); + + auto sleep_duration = std::chrono::microseconds(US_IN_S / ROBOT_MOTOR_SPEED_CONTROL_RATE_HZ); + + auto abs_distance = fabs(sqrt( + pow(goal_x - start_pos.get_x_position(), 2) + pow(goal_y - start_pos.get_y_position(), 2) + )); + while (abs_distance > 0.05) { + auto current_pos = OdometryController::getInstance().get(); + auto alpha = mathUtils::wrap_angle_to_pi( + (atan2(goal_x - current_pos.get_x_position(), goal_y - current_pos.get_y_position()) - (current_pos.get_angular_orientation() + M_PI_2)) + ); + + auto vr_ms = v_ms * (cos(alpha) - ROBOT_GO_TO_GOAL_K * sin(alpha)); + auto vl_ms = v_ms * (cos(alpha) + ROBOT_GO_TO_GOAL_K * sin(alpha)); + auto vr_rad_s = vr_ms / ROBOT_WHEEL_RADIUS_M * ROBOT_ODOMETRY_CONTROLLER_RIGHT_MULT; + auto vl_rad_s = vl_ms / ROBOT_WHEEL_RADIUS_M * ROBOT_ODOMETRY_CONTROLLER_LEFT_MULT; + + ClosedLoopMotorController::getInstance().set_speed(ROBOT_ODOMETRY_CONTROLLER_RIGHT_PORT, vr_rad_s); + ClosedLoopMotorController::getInstance().set_speed(ROBOT_ODOMETRY_CONTROLLER_LEFT_PORT, vl_rad_s); + + abs_distance = fabs(sqrt( + pow(goal_x - current_pos.get_x_position(), 2) + pow(goal_y - current_pos.get_y_position(), 2) + )); + spdlog::debug("{:03.4f}; {:03.4f}; {:03.4f}; {:03.4f}; {:03.4f}; {:03.4f}; {:03.4f}; {:03.4f}; {:03.4f}; {:03.4f}", + current_pos.get_x_position(), current_pos.get_y_position(), current_pos.get_angular_orientation(), + goal_x - current_pos.get_x_position(), goal_y - current_pos.get_y_position(), + current_pos.get_angular_orientation() + M_PI_2, atan2(goal_x - current_pos.get_x_position(), goal_y - current_pos.get_y_position()), alpha, + vr_rad_s, vl_rad_s); + + std::this_thread::sleep_for(sleep_duration); + } + + ClosedLoopMotorController::getInstance().set_speed(ROBOT_ODOMETRY_CONTROLLER_RIGHT_PORT, 0); + ClosedLoopMotorController::getInstance().set_speed(ROBOT_ODOMETRY_CONTROLLER_LEFT_PORT, 0); + + if (!was_enabled) { + OdometryController::getInstance().disable(); + } +} + +void GoToController::drive_distance(double distance_m, double v_m_s) { + if (distance_m < 0 && v_m_s > 0) { + distance_m = fabs(distance_m); + v_m_s *= -1; + } + + auto was_enabled = OdometryController::getInstance().is_enabled(); + OdometryController::getInstance().enable(); + auto start_pos = OdometryController::getInstance().get(); + + auto sleep_duration = std::chrono::microseconds(US_IN_S / ROBOT_MOTOR_SPEED_CONTROL_RATE_HZ); + + auto abs_distance_to_target = distance_m; + while (abs_distance_to_target > ROBOT_GO_TO_DISTANCE_END_M) { + std::this_thread::sleep_for(sleep_duration); + + auto current_pos = OdometryController::getInstance().get(); + + auto distance_driven = fabs(current_pos.get_x_position() - start_pos.get_x_position()); + abs_distance_to_target = fabs(distance_m - distance_driven); + + auto alpha = -mathUtils::wrap_angle_to_pi(current_pos.get_angular_orientation()); + + auto vel_mult = fmax(0, fmin(1, abs_distance_to_target * ROBOT_GO_TO_DISTANCE_VELOCITY_P)); + diff_drive_inverse_kinematics(v_m_s * vel_mult, alpha * ROBOT_GO_TO_DISTANCE_ALPHA_P); + + spdlog::debug("{:03.4f}; {:03.4f}; {:03.4f}; {:03.4f}; {:03.4f}; {:03.4f}; {:03.4f}", + current_pos.get_x_position(), current_pos.get_y_position(), current_pos.get_angular_orientation(), + distance_driven, abs_distance_to_target, + alpha, vel_mult + ); + } + + ClosedLoopMotorController::getInstance().set_power(ROBOT_ODOMETRY_CONTROLLER_RIGHT_PORT, 0); + ClosedLoopMotorController::getInstance().set_power(ROBOT_ODOMETRY_CONTROLLER_LEFT_PORT, 0); + + if (!was_enabled) { + OdometryController::getInstance().disable(); + } +} + +void GoToController::turn_degrees(double angle_deg, double v_rad_s) { + if (angle_deg < 0 && v_rad_s > 0) { + v_rad_s *= -1; + } + + auto angle_rad = mathUtils::wrap_angle_to_pi(angle_deg * (M_PI / 180.0)); + + auto was_enabled = OdometryController::getInstance().is_enabled(); + OdometryController::getInstance().enable(); + auto start_pos = OdometryController::getInstance().get(); + + auto sleep_duration = std::chrono::microseconds(US_IN_S / ROBOT_MOTOR_SPEED_CONTROL_RATE_HZ); + + auto angle_to_target = angle_rad; + while (fabs(angle_to_target) > ROBOT_GO_TO_ANGLE_END_RAD) { + std::this_thread::sleep_for(sleep_duration); + + auto current_pos = OdometryController::getInstance().get(); + + auto angle_turned = current_pos.get_angular_orientation() - start_pos.get_angular_orientation(); + angle_to_target = mathUtils::wrap_angle_to_pi(angle_rad - angle_turned); + + diff_drive_inverse_kinematics(0.0, v_rad_s); + + spdlog::debug("{:03.4f}; {:03.4f}; {:03.4f}; {:03.4f}; {:03.4f};", + current_pos.get_x_position(), current_pos.get_y_position(), current_pos.get_angular_orientation(), + angle_turned, angle_to_target + ); + } + + ClosedLoopMotorController::getInstance().set_power(ROBOT_ODOMETRY_CONTROLLER_RIGHT_PORT, 0); + ClosedLoopMotorController::getInstance().set_power(ROBOT_ODOMETRY_CONTROLLER_LEFT_PORT, 0); + + if (!was_enabled) { + OdometryController::getInstance().disable(); + } +} diff --git a/server_v2/src/GoToGoalController.cpp b/server_v2/src/GoToGoalController.cpp deleted file mode 100644 index 3d6aafb..0000000 --- a/server_v2/src/GoToGoalController.cpp +++ /dev/null @@ -1,64 +0,0 @@ -#include - -#include "include/GoToGoalController.hpp" -#include "include/Robot.hpp" -#include "include/ClosedLoopMotorController.hpp" -#include "include/OdometryController.hpp" -#include "include/mathUtils.hpp" - -#define MS_IN_S 1000 -#define US_IN_S (1000 * MS_IN_S) - -// Source: http://faculty.salina.k-state.edu/tim/robot_prog/MobileBot/Steering/unicycle.html#calculating-wheel-velocities -// Source: https://www.roboticsbook.org/S52_diffdrive_actions.html#kinematics-in-code -void GoToGoalController::diff_drive_inverse_kinematics(double v_m_s, double w_rad_s) { - auto vr_rad_s = (2 * v_m_s - w_rad_s * ROBOT_ARBOR_LENGTH_M) / (2.0 * ROBOT_WHEEL_RADIUS_M) * ROBOT_ODOMETRY_CONTROLLER_RIGHT_MULT; - auto vl_rad_s = (2 * v_m_s + w_rad_s * ROBOT_ARBOR_LENGTH_M) / (2.0 * ROBOT_WHEEL_RADIUS_M) * ROBOT_ODOMETRY_CONTROLLER_LEFT_MULT; - - ClosedLoopMotorController::getInstance().set_speed(ROBOT_ODOMETRY_CONTROLLER_RIGHT_PORT, vr_rad_s); - ClosedLoopMotorController::getInstance().set_speed(ROBOT_ODOMETRY_CONTROLLER_LEFT_PORT, vl_rad_s); -} - -void GoToGoalController::go_to_point(double goal_x, double goal_y, double v_ms) { - auto was_enabled = OdometryController::getInstance().is_enabled(); - OdometryController::getInstance().enable(); - auto start_pos = OdometryController::getInstance().get(); - - auto sleep_duration = std::chrono::microseconds(US_IN_S / ROBOT_MOTOR_SPEED_CONTROL_RATE_HZ); - - auto abs_distance = fabs(sqrt( - pow(goal_x - start_pos.get_x_position(), 2) + pow(goal_y - start_pos.get_y_position(), 2) - )); - while (abs_distance > 0.05) { - auto current_pos = OdometryController::getInstance().get(); - auto alpha = mathUtils::wrap_angle_to_pi( - (atan2(goal_x - current_pos.get_x_position(), goal_y - current_pos.get_y_position()) - (current_pos.get_angular_orientation() + M_PI_2)) - ); - - auto vr_ms = v_ms * (cos(alpha) - ROBOT_GO_TO_GOAL_K * sin(alpha)); - auto vl_ms = v_ms * (cos(alpha) + ROBOT_GO_TO_GOAL_K * sin(alpha)); - auto vr_rad_s = vr_ms / ROBOT_WHEEL_RADIUS_M * ROBOT_ODOMETRY_CONTROLLER_RIGHT_MULT; - auto vl_rad_s = vl_ms / ROBOT_WHEEL_RADIUS_M * ROBOT_ODOMETRY_CONTROLLER_LEFT_MULT; - - ClosedLoopMotorController::getInstance().set_speed(ROBOT_ODOMETRY_CONTROLLER_RIGHT_PORT, vr_rad_s); - ClosedLoopMotorController::getInstance().set_speed(ROBOT_ODOMETRY_CONTROLLER_LEFT_PORT, vl_rad_s); - - abs_distance = fabs(sqrt( - pow(goal_x - current_pos.get_x_position(), 2) + pow(goal_y - current_pos.get_y_position(), 2) - )); - spdlog::debug("{:03.4f}; {:03.4f}; {:03.4f}; {:03.4f}; {:03.4f}; {:03.4f}; {:03.4f}; {:03.4f}; {:03.4f}; {:03.4f}", - current_pos.get_x_position(), current_pos.get_y_position(), current_pos.get_angular_orientation(), - goal_x - current_pos.get_x_position(), goal_y - current_pos.get_y_position(), atan2(goal_x - current_pos.get_x_position(), goal_y - current_pos.get_y_position()), - current_pos.get_angular_orientation() + M_PI_2, alpha, - vr_rad_s, vl_rad_s); - - std::this_thread::sleep_for(sleep_duration); - } - - ClosedLoopMotorController::getInstance().set_speed(ROBOT_ODOMETRY_CONTROLLER_RIGHT_PORT, 0); - ClosedLoopMotorController::getInstance().set_speed(ROBOT_ODOMETRY_CONTROLLER_LEFT_PORT, 0); - - if (!was_enabled) { - OdometryController::getInstance().disable(); - } -} diff --git a/server_v2/src/OdometryController.cpp b/server_v2/src/OdometryController.cpp index 379401c..52c532e 100644 --- a/server_v2/src/OdometryController.cpp +++ b/server_v2/src/OdometryController.cpp @@ -19,14 +19,14 @@ void OdometryController::enable() { } void OdometryController::disable() { + spdlog::debug("OdometryController::disable()"); enabled = false; OdometryController::reset(); } void OdometryController::reset() { + std::lock_guard lock(odometry_mutex); current_odometry = Odometry(); - last_position_left = 0; - last_position_right = 0; last_run = clock::now(); } @@ -44,7 +44,7 @@ OdometryController::OdometryController() { auto sleep_duration = std::chrono::microseconds(US_IN_S / ROBOT_ODOMETRY_CONTROLLER_RATE_HZ); while (true) { std::this_thread::sleep_for(sleep_duration); - + std::lock_guard lock(odometry_mutex); if (enabled) { last_run = clock::now(); auto encoder_positions = Encoders::getInstance().get_positions(); diff --git a/server_v2/src/main.cpp b/server_v2/src/main.cpp index 104e8d4..7eeca54 100644 --- a/server_v2/src/main.cpp +++ b/server_v2/src/main.cpp @@ -6,7 +6,7 @@ #include "include/ClosedLoopMotorController.hpp" #include "include/communication/UnixSocketServer.hpp" #include "include/communication/TCPSocketServer.hpp" -#include "include/GoToGoalController.hpp" +#include "include/GoToController.hpp" using namespace std; @@ -36,7 +36,21 @@ int main() { // spdlog::debug("{:03.4f}; {:03.4f}; {:03.4f}", odom.get_x_position(), odom.get_y_position(), odom.get_angular_orientation()); // } - GoToGoalController::go_to_point(2, 0, 0.2); +// GoToGoalController::go_to_point(2, 0, 0.2); +// GoToController::drive_distance(-4, 0.2); +// GoToController::turn_degrees(-90, M_PI_2); + + GoToController::drive_distance(2, 0.2); + GoToController::turn_degrees(-90, M_PI_2); + + GoToController::drive_distance(2, 0.2); + GoToController::turn_degrees(-90, M_PI_2); + + GoToController::drive_distance(2, 0.2); + GoToController::turn_degrees(-90, M_PI_2); + + GoToController::drive_distance(2, 0.2); + GoToController::turn_degrees(-90, M_PI_2); // ClosedLoopMotorController::getInstance().generate_step_response_data(); // ClosedLoopMotorController::getInstance().generate_tuned_step_response_data(); From 9000316350b72b9850bdcd263c4447e6bf31c98f Mon Sep 17 00:00:00 2001 From: Konstantin Lampalzer Date: Sat, 28 May 2022 22:25:01 +0200 Subject: [PATCH 169/246] add wheel tick calib --- .../include/ClosedLoopMotorController.hpp | 2 ++ server_v2/src/ClosedLoopMotorController.cpp | 31 +++++++++++++++++++ server_v2/src/main.cpp | 26 +++++++++------- 3 files changed, 47 insertions(+), 12 deletions(-) diff --git a/server_v2/include/ClosedLoopMotorController.hpp b/server_v2/include/ClosedLoopMotorController.hpp index b5a5805..08ee94d 100644 --- a/server_v2/include/ClosedLoopMotorController.hpp +++ b/server_v2/include/ClosedLoopMotorController.hpp @@ -28,6 +28,8 @@ public: void generate_tuned_step_response_data(); + void calibrate_wheel_ticks(double turns, double ticks_per_turn); + private: enum ControlMode : uint8_t { NONE = 0, diff --git a/server_v2/src/ClosedLoopMotorController.cpp b/server_v2/src/ClosedLoopMotorController.cpp index a2ef426..bafa082 100644 --- a/server_v2/src/ClosedLoopMotorController.cpp +++ b/server_v2/src/ClosedLoopMotorController.cpp @@ -149,3 +149,34 @@ void ClosedLoopMotorController::generate_tuned_step_response_data() { control_modes.at(ROBOT_ODOMETRY_CONTROLLER_LEFT_PORT) = ControlMode::NONE; control_modes.at(ROBOT_ODOMETRY_CONTROLLER_RIGHT_PORT) = ControlMode::NONE; } + +void ClosedLoopMotorController::calibrate_wheel_ticks(double turns, double ticks_per_turn) { + auto k_p = 0.0001; + auto power = 40.0; + auto min_power = 7.5; + auto port = ROBOT_ODOMETRY_CONTROLLER_LEFT_PORT; + + auto ticks = 0.0; + auto target_ticks = ticks_per_turn * turns; + while (ticks != target_ticks) { + std::this_thread::sleep_for(std::chrono::milliseconds(5)); + + auto power_mult = fmax(-1.0, fmin(1.0, (target_ticks - ticks) * k_p)); + auto adjusted_power = power * power_mult; + if (adjusted_power < 0 && adjusted_power > -min_power) { + adjusted_power = -min_power; + } else if (adjusted_power > 0 && adjusted_power < min_power) { + adjusted_power = min_power; + } + + set_power(port, adjusted_power); + + ticks = Encoders::getInstance().get_positions().at(port); + spdlog::debug("{:03.4f}; {:03.4f}; {:03.4f};", + ticks, target_ticks, adjusted_power); + } + + set_power(port, 0); + std::this_thread::sleep_for(std::chrono::milliseconds(100)); + +} diff --git a/server_v2/src/main.cpp b/server_v2/src/main.cpp index 7eeca54..0da449e 100644 --- a/server_v2/src/main.cpp +++ b/server_v2/src/main.cpp @@ -10,7 +10,7 @@ using namespace std; -int main() { +int main(int argc, char *argv[]) { Reset::reset_robot(); spdlog::set_pattern("%H:%M:%S.%e %^%-8l%$: %v"); spdlog::set_level(spdlog::level::debug); @@ -40,20 +40,22 @@ int main() { // GoToController::drive_distance(-4, 0.2); // GoToController::turn_degrees(-90, M_PI_2); - GoToController::drive_distance(2, 0.2); - GoToController::turn_degrees(-90, M_PI_2); +// GoToController::drive_distance(2, 0.2); +// GoToController::turn_degrees(-90, M_PI_2); +// +// GoToController::drive_distance(2, 0.2); +// GoToController::turn_degrees(-90, M_PI_2); +// +// GoToController::drive_distance(2, 0.2); +// GoToController::turn_degrees(-90, M_PI_2); +// +// GoToController::drive_distance(2, 0.2); +// GoToController::turn_degrees(-90, M_PI_2); - GoToController::drive_distance(2, 0.2); - GoToController::turn_degrees(-90, M_PI_2); - - GoToController::drive_distance(2, 0.2); - GoToController::turn_degrees(-90, M_PI_2); - - GoToController::drive_distance(2, 0.2); - GoToController::turn_degrees(-90, M_PI_2); + ClosedLoopMotorController::getInstance().calibrate_wheel_ticks(5, stoi(argv[1])); // ClosedLoopMotorController::getInstance().generate_step_response_data(); // ClosedLoopMotorController::getInstance().generate_tuned_step_response_data(); - std::this_thread::sleep_for(std::chrono::hours(12)); +// std::this_thread::sleep_for(std::chrono::hours(12)); return 0; } From 4ee0b8045fb1e09bd0d48d8c893609cbae996820 Mon Sep 17 00:00:00 2001 From: Konstantin Lampalzer Date: Sun, 29 May 2022 15:20:11 +0200 Subject: [PATCH 170/246] Tune turning a bit --- server_v2/include/Robot.hpp | 10 +++++++--- server_v2/include/mathUtils.hpp | 17 +++++++++++++++++ server_v2/src/GoToController.cpp | 19 +++++++++++-------- server_v2/src/OdometryController.cpp | 8 ++++---- server_v2/src/main.cpp | 6 +++--- 5 files changed, 42 insertions(+), 18 deletions(-) diff --git a/server_v2/include/Robot.hpp b/server_v2/include/Robot.hpp index 7e94738..ed1fd88 100644 --- a/server_v2/include/Robot.hpp +++ b/server_v2/include/Robot.hpp @@ -23,17 +23,21 @@ #define ROBOT_WHEEL_RADIUS_MM 35.5 #define ROBOT_WHEEL_RADIUS_M (ROBOT_WHEEL_RADIUS_MM / 1000.0) -#define ROBOT_WHEEL_CIRCUMFERENCE_MM (2 * ROBOT_WHEEL_RADIUS_MM * M_PI) +#define ROBOT_WHEEL_CIRCUMFERENCE_MM (2.0 * ROBOT_WHEEL_RADIUS_MM * M_PI) #define ROBOT_WHEEL_CIRCUMFERENCE_M (2 * ROBOT_WHEEL_RADIUS_M * M_PI) #define ROBOT_TICKS_PER_TURN (27.7 * 100.0) -#define ROBOT_ARBOR_LENGTH_MM 139.0 +#define ROBOT_ARBOR_LENGTH_MM 140.0 #define ROBOT_ARBOR_LENGTH_M (ROBOT_ARBOR_LENGTH_MM / 1000.0) #define ROBOT_TICKS_PER_METER (1000.0 / ROBOT_WHEEL_CIRCUMFERENCE_MM * ROBOT_TICKS_PER_TURN) #define ROBOT_GO_TO_GOAL_K 0.99 // Between 0.5 and 1 + #define ROBOT_GO_TO_DISTANCE_ALPHA_P 2.0 #define ROBOT_GO_TO_DISTANCE_VELOCITY_P 5.0 #define ROBOT_GO_TO_DISTANCE_END_M 0.01 // stop approx 1 cm before target -#define ROBOT_GO_TO_ANGLE_END_RAD (0.5 * (M_PI / 180.0)) // stop 0.5 deg before target + +#define ROBOT_GO_TO_ANGLE_END_RAD (0.1 * (M_PI / 180.0)) // stop 0.1 deg before target +#define ROBOT_GO_TO_ANGLE_ALPHA_P 0.5 +#define ROBOT_GO_TO_ANGLE_MIN_VEL (M_PI / 3.0) #endif //COMPLIB_SERVER_ROBOT_HPP diff --git a/server_v2/include/mathUtils.hpp b/server_v2/include/mathUtils.hpp index 9e16e4b..897fb20 100644 --- a/server_v2/include/mathUtils.hpp +++ b/server_v2/include/mathUtils.hpp @@ -40,6 +40,23 @@ namespace mathUtils { inline T wrap_angle_to_pi(T angle) { return atan2(sin(angle), cos(angle)); } + + template + inline T limit_min(T val, T min) { + if (val < 0.0 && val > -min) { + return -min; + } else if (val > 0.0 && val < min) { + return min; + } else if (val == 0) { + return min; + } + return val; + } + + template + inline T limit_max(T val, T min, T max) { + return fmax(min, fmin(max, val)); + } } #endif // COMPLIB_SERVER_MATHUTILS_HPP \ No newline at end of file diff --git a/server_v2/src/GoToController.cpp b/server_v2/src/GoToController.cpp index 123c679..53c8e8d 100644 --- a/server_v2/src/GoToController.cpp +++ b/server_v2/src/GoToController.cpp @@ -105,12 +105,12 @@ void GoToController::drive_distance(double distance_m, double v_m_s) { } void GoToController::turn_degrees(double angle_deg, double v_rad_s) { - if (angle_deg < 0 && v_rad_s > 0) { + auto angle_rad = mathUtils::wrap_angle_to_pi(angle_deg * (M_PI / 180.0)); + + if (angle_rad < 0 && v_rad_s > 0) { v_rad_s *= -1; } - auto angle_rad = mathUtils::wrap_angle_to_pi(angle_deg * (M_PI / 180.0)); - auto was_enabled = OdometryController::getInstance().is_enabled(); OdometryController::getInstance().enable(); auto start_pos = OdometryController::getInstance().get(); @@ -118,19 +118,22 @@ void GoToController::turn_degrees(double angle_deg, double v_rad_s) { auto sleep_duration = std::chrono::microseconds(US_IN_S / ROBOT_MOTOR_SPEED_CONTROL_RATE_HZ); auto angle_to_target = angle_rad; - while (fabs(angle_to_target) > ROBOT_GO_TO_ANGLE_END_RAD) { + auto angle_turned = 0.0; + while (fabs(angle_to_target) > ROBOT_GO_TO_ANGLE_END_RAD && angle_turned < angle_rad) { std::this_thread::sleep_for(sleep_duration); auto current_pos = OdometryController::getInstance().get(); - auto angle_turned = current_pos.get_angular_orientation() - start_pos.get_angular_orientation(); + angle_turned = current_pos.get_angular_orientation() - start_pos.get_angular_orientation(); angle_to_target = mathUtils::wrap_angle_to_pi(angle_rad - angle_turned); - diff_drive_inverse_kinematics(0.0, v_rad_s); + auto speed_mult = mathUtils::limit_max(fabs(angle_to_target) * ROBOT_GO_TO_ANGLE_ALPHA_P, 0.0, 1.0); + auto adjusted_speed = mathUtils::limit_min(v_rad_s * speed_mult, ROBOT_GO_TO_ANGLE_MIN_VEL); + diff_drive_inverse_kinematics(0.0, adjusted_speed); - spdlog::debug("{:03.4f}; {:03.4f}; {:03.4f}; {:03.4f}; {:03.4f};", + spdlog::debug("{:03.4f}; {:03.4f}; {:03.4f}; {:03.4f}; {:03.4f}; {:03.4f};", current_pos.get_x_position(), current_pos.get_y_position(), current_pos.get_angular_orientation(), - angle_turned, angle_to_target + angle_turned, angle_to_target, adjusted_speed ); } diff --git a/server_v2/src/OdometryController.cpp b/server_v2/src/OdometryController.cpp index 52c532e..38932cf 100644 --- a/server_v2/src/OdometryController.cpp +++ b/server_v2/src/OdometryController.cpp @@ -80,10 +80,10 @@ OdometryController::OdometryController() { } current_odometry = Odometry(new_x_position, new_y_position, new_angular_orientation); -// spdlog::info("{} {} {} {} {} {}", -// current_position_left, current_position_right, -// distance_left, distance_right, -// distance, theta); + spdlog::info("{} {} {} {} {} {}", + current_position_left, current_position_right, + distance_left, distance_right, + distance, theta); } } } diff --git a/server_v2/src/main.cpp b/server_v2/src/main.cpp index 0da449e..d64c710 100644 --- a/server_v2/src/main.cpp +++ b/server_v2/src/main.cpp @@ -38,7 +38,7 @@ int main(int argc, char *argv[]) { // GoToGoalController::go_to_point(2, 0, 0.2); // GoToController::drive_distance(-4, 0.2); -// GoToController::turn_degrees(-90, M_PI_2); + GoToController::turn_degrees(180, M_PI); // GoToController::drive_distance(2, 0.2); // GoToController::turn_degrees(-90, M_PI_2); @@ -52,10 +52,10 @@ int main(int argc, char *argv[]) { // GoToController::drive_distance(2, 0.2); // GoToController::turn_degrees(-90, M_PI_2); - ClosedLoopMotorController::getInstance().calibrate_wheel_ticks(5, stoi(argv[1])); +// ClosedLoopMotorController::getInstance().calibrate_wheel_ticks(5, stoi(argv[1])); // ClosedLoopMotorController::getInstance().generate_step_response_data(); // ClosedLoopMotorController::getInstance().generate_tuned_step_response_data(); -// std::this_thread::sleep_for(std::chrono::hours(12)); + std::this_thread::sleep_for(std::chrono::hours(12)); return 0; } From 37447298a487a11e3fe6b3fee269afdb480a886f Mon Sep 17 00:00:00 2001 From: Konstantin Lampalzer Date: Tue, 7 Jun 2022 22:53:49 +0200 Subject: [PATCH 171/246] Add goToDistance and goToAngle --- server_v2/include/GoToController.hpp | 15 --- server_v2/include/Robot.hpp | 13 +- server_v2/protos/CompLib.proto | 17 +++ server_v2/src/ClosedLoopMotorController.cpp | 10 +- server_v2/src/GoToController.cpp | 121 ++++++------------ server_v2/src/OdometryController.cpp | 2 +- .../src/communication/MessageProcessor.cpp | 19 +++ server_v2/src/main.cpp | 14 +- 8 files changed, 104 insertions(+), 107 deletions(-) diff --git a/server_v2/include/GoToController.hpp b/server_v2/include/GoToController.hpp index 4eb7236..bec969b 100644 --- a/server_v2/include/GoToController.hpp +++ b/server_v2/include/GoToController.hpp @@ -1,28 +1,13 @@ -// -// Created by KonstantinViesure on 26.05.22. -// - #ifndef COMPLIB_SERVER_GOTOCONTROLLER_HPP #define COMPLIB_SERVER_GOTOCONTROLLER_HPP - class GoToController { public: - static GoToController &getInstance() { - static GoToController instance; - return instance; - } - - GoToController(GoToController const &) = delete; - - void operator=(GoToController const &) = delete; static void drive_distance(double distance_m, double v_ms); static void turn_degrees(double angle_deg, double v_rad_s); - static void go_to_point(double goal_x, double goal_y, double v_ms); - static void diff_drive_inverse_kinematics(double v_m_s, double w_rad_s); private: diff --git a/server_v2/include/Robot.hpp b/server_v2/include/Robot.hpp index ed1fd88..0ff17f0 100644 --- a/server_v2/include/Robot.hpp +++ b/server_v2/include/Robot.hpp @@ -19,25 +19,28 @@ #define ROBOT_ODOMETRY_CONTROLLER_LEFT_MULT 1.0 #define ROBOT_ODOMETRY_CONTROLLER_RIGHT_MULT -1.0 -#define ROBOT_ENCODER_RATE_HZ 250 +#define ROBOT_ENCODER_RATE_HZ 500 #define ROBOT_WHEEL_RADIUS_MM 35.5 #define ROBOT_WHEEL_RADIUS_M (ROBOT_WHEEL_RADIUS_MM / 1000.0) #define ROBOT_WHEEL_CIRCUMFERENCE_MM (2.0 * ROBOT_WHEEL_RADIUS_MM * M_PI) #define ROBOT_WHEEL_CIRCUMFERENCE_M (2 * ROBOT_WHEEL_RADIUS_M * M_PI) -#define ROBOT_TICKS_PER_TURN (27.7 * 100.0) +#define ROBOT_TICKS_PER_TURN 2770.0 #define ROBOT_ARBOR_LENGTH_MM 140.0 #define ROBOT_ARBOR_LENGTH_M (ROBOT_ARBOR_LENGTH_MM / 1000.0) #define ROBOT_TICKS_PER_METER (1000.0 / ROBOT_WHEEL_CIRCUMFERENCE_MM * ROBOT_TICKS_PER_TURN) #define ROBOT_GO_TO_GOAL_K 0.99 // Between 0.5 and 1 +#define ROBOT_GO_TO_DISTANCE_RATE_HZ 200 #define ROBOT_GO_TO_DISTANCE_ALPHA_P 2.0 -#define ROBOT_GO_TO_DISTANCE_VELOCITY_P 5.0 +#define ROBOT_GO_TO_DISTANCE_VELOCITY_P 4.0 #define ROBOT_GO_TO_DISTANCE_END_M 0.01 // stop approx 1 cm before target +#define ROBOT_GO_TO_DISTANCE_MIN_VEL 0.025 -#define ROBOT_GO_TO_ANGLE_END_RAD (0.1 * (M_PI / 180.0)) // stop 0.1 deg before target +#define ROBOT_GO_TO_ANGLE_RATE_HZ 200 +#define ROBOT_GO_TO_ANGLE_END_RAD (0.5 * (M_PI / 180.0)) // stop 0.5 deg before target #define ROBOT_GO_TO_ANGLE_ALPHA_P 0.5 -#define ROBOT_GO_TO_ANGLE_MIN_VEL (M_PI / 3.0) +#define ROBOT_GO_TO_ANGLE_MIN_VEL (M_PI / 2.0) #endif //COMPLIB_SERVER_ROBOT_HPP diff --git a/server_v2/protos/CompLib.proto b/server_v2/protos/CompLib.proto index 1bb1bd0..8185499 100644 --- a/server_v2/protos/CompLib.proto +++ b/server_v2/protos/CompLib.proto @@ -82,3 +82,20 @@ message OdometryReadResponse { double orientation = 5; } +message DriveDistanceRequest { + Header header = 1; + double distance_m = 2; + double velocity_m_s = 3; +} + +message TurnDegreesRequest { + Header header = 1; + double angle_degrees = 2; + double velocity_rad_s = 3; +} + +message DriveRequest { + Header header = 1; + double linear_velocity_m_s = 2; + double angular_velocity_rad_s = 3; +} \ No newline at end of file diff --git a/server_v2/src/ClosedLoopMotorController.cpp b/server_v2/src/ClosedLoopMotorController.cpp index bafa082..2f34fcc 100644 --- a/server_v2/src/ClosedLoopMotorController.cpp +++ b/server_v2/src/ClosedLoopMotorController.cpp @@ -152,15 +152,13 @@ void ClosedLoopMotorController::generate_tuned_step_response_data() { void ClosedLoopMotorController::calibrate_wheel_ticks(double turns, double ticks_per_turn) { auto k_p = 0.0001; - auto power = 40.0; + auto power = 25.0; auto min_power = 7.5; - auto port = ROBOT_ODOMETRY_CONTROLLER_LEFT_PORT; + auto port = ROBOT_ODOMETRY_CONTROLLER_RIGHT_PORT; auto ticks = 0.0; auto target_ticks = ticks_per_turn * turns; while (ticks != target_ticks) { - std::this_thread::sleep_for(std::chrono::milliseconds(5)); - auto power_mult = fmax(-1.0, fmin(1.0, (target_ticks - ticks) * k_p)); auto adjusted_power = power * power_mult; if (adjusted_power < 0 && adjusted_power > -min_power) { @@ -171,9 +169,11 @@ void ClosedLoopMotorController::calibrate_wheel_ticks(double turns, double ticks set_power(port, adjusted_power); - ticks = Encoders::getInstance().get_positions().at(port); spdlog::debug("{:03.4f}; {:03.4f}; {:03.4f};", ticks, target_ticks, adjusted_power); + + std::this_thread::sleep_for(std::chrono::milliseconds(2)); + ticks = Encoders::getInstance().get_positions().at(port); } set_power(port, 0); diff --git a/server_v2/src/GoToController.cpp b/server_v2/src/GoToController.cpp index 53c8e8d..da32bb9 100644 --- a/server_v2/src/GoToController.cpp +++ b/server_v2/src/GoToController.cpp @@ -19,83 +19,45 @@ void GoToController::diff_drive_inverse_kinematics(double v_m_s, double w_rad_s) ClosedLoopMotorController::getInstance().set_speed(ROBOT_ODOMETRY_CONTROLLER_LEFT_PORT, vl_rad_s); } -void GoToController::go_to_point(double goal_x, double goal_y, double v_ms) { - auto was_enabled = OdometryController::getInstance().is_enabled(); - OdometryController::getInstance().enable(); - auto start_pos = OdometryController::getInstance().get(); - - auto sleep_duration = std::chrono::microseconds(US_IN_S / ROBOT_MOTOR_SPEED_CONTROL_RATE_HZ); - - auto abs_distance = fabs(sqrt( - pow(goal_x - start_pos.get_x_position(), 2) + pow(goal_y - start_pos.get_y_position(), 2) - )); - while (abs_distance > 0.05) { - auto current_pos = OdometryController::getInstance().get(); - auto alpha = mathUtils::wrap_angle_to_pi( - (atan2(goal_x - current_pos.get_x_position(), goal_y - current_pos.get_y_position()) - (current_pos.get_angular_orientation() + M_PI_2)) - ); - - auto vr_ms = v_ms * (cos(alpha) - ROBOT_GO_TO_GOAL_K * sin(alpha)); - auto vl_ms = v_ms * (cos(alpha) + ROBOT_GO_TO_GOAL_K * sin(alpha)); - auto vr_rad_s = vr_ms / ROBOT_WHEEL_RADIUS_M * ROBOT_ODOMETRY_CONTROLLER_RIGHT_MULT; - auto vl_rad_s = vl_ms / ROBOT_WHEEL_RADIUS_M * ROBOT_ODOMETRY_CONTROLLER_LEFT_MULT; - - ClosedLoopMotorController::getInstance().set_speed(ROBOT_ODOMETRY_CONTROLLER_RIGHT_PORT, vr_rad_s); - ClosedLoopMotorController::getInstance().set_speed(ROBOT_ODOMETRY_CONTROLLER_LEFT_PORT, vl_rad_s); - - abs_distance = fabs(sqrt( - pow(goal_x - current_pos.get_x_position(), 2) + pow(goal_y - current_pos.get_y_position(), 2) - )); - spdlog::debug("{:03.4f}; {:03.4f}; {:03.4f}; {:03.4f}; {:03.4f}; {:03.4f}; {:03.4f}; {:03.4f}; {:03.4f}; {:03.4f}", - current_pos.get_x_position(), current_pos.get_y_position(), current_pos.get_angular_orientation(), - goal_x - current_pos.get_x_position(), goal_y - current_pos.get_y_position(), - current_pos.get_angular_orientation() + M_PI_2, atan2(goal_x - current_pos.get_x_position(), goal_y - current_pos.get_y_position()), alpha, - vr_rad_s, vl_rad_s); - - std::this_thread::sleep_for(sleep_duration); - } - - ClosedLoopMotorController::getInstance().set_speed(ROBOT_ODOMETRY_CONTROLLER_RIGHT_PORT, 0); - ClosedLoopMotorController::getInstance().set_speed(ROBOT_ODOMETRY_CONTROLLER_LEFT_PORT, 0); - - if (!was_enabled) { - OdometryController::getInstance().disable(); - } -} - +// +dist, +vms -> forward +// -dist, +vms -> backward +// +dist, -vms -> backward +// -dist, -vms -> backward void GoToController::drive_distance(double distance_m, double v_m_s) { + auto sleep_duration = std::chrono::microseconds(US_IN_S / ROBOT_GO_TO_DISTANCE_RATE_HZ); + if (distance_m < 0 && v_m_s > 0) { - distance_m = fabs(distance_m); v_m_s *= -1; } auto was_enabled = OdometryController::getInstance().is_enabled(); OdometryController::getInstance().enable(); - auto start_pos = OdometryController::getInstance().get(); + auto start_x = OdometryController::getInstance().get().get_x_position(); + auto end_x = start_x + distance_m; - auto sleep_duration = std::chrono::microseconds(US_IN_S / ROBOT_MOTOR_SPEED_CONTROL_RATE_HZ); - - auto abs_distance_to_target = distance_m; - while (abs_distance_to_target > ROBOT_GO_TO_DISTANCE_END_M) { + auto distance_to_target = distance_m; + while (fabs(distance_to_target) > ROBOT_GO_TO_DISTANCE_END_M) { std::this_thread::sleep_for(sleep_duration); - auto current_pos = OdometryController::getInstance().get(); - - auto distance_driven = fabs(current_pos.get_x_position() - start_pos.get_x_position()); - abs_distance_to_target = fabs(distance_m - distance_driven); - + distance_to_target = end_x - current_pos.get_x_position(); auto alpha = -mathUtils::wrap_angle_to_pi(current_pos.get_angular_orientation()); - auto vel_mult = fmax(0, fmin(1, abs_distance_to_target * ROBOT_GO_TO_DISTANCE_VELOCITY_P)); - diff_drive_inverse_kinematics(v_m_s * vel_mult, alpha * ROBOT_GO_TO_DISTANCE_ALPHA_P); + auto vel_mult = mathUtils::limit_max(distance_to_target * ROBOT_GO_TO_DISTANCE_VELOCITY_P, -1.0, 1.0); + auto adjusted_speed = mathUtils::limit_min(fabs(v_m_s) * vel_mult, ROBOT_GO_TO_DISTANCE_MIN_VEL); + diff_drive_inverse_kinematics(adjusted_speed, alpha * ROBOT_GO_TO_DISTANCE_ALPHA_P); - spdlog::debug("{:03.4f}; {:03.4f}; {:03.4f}; {:03.4f}; {:03.4f}; {:03.4f}; {:03.4f}", + spdlog::debug("{:03.4f}; {:03.4f}; {:03.4f}; {:03.4f}; {:03.4f}; {:03.4f}; {:03.4f};", current_pos.get_x_position(), current_pos.get_y_position(), current_pos.get_angular_orientation(), - distance_driven, abs_distance_to_target, - alpha, vel_mult + distance_to_target, + alpha, vel_mult, adjusted_speed ); } + ClosedLoopMotorController::getInstance().set_speed(ROBOT_ODOMETRY_CONTROLLER_RIGHT_PORT, 0); + ClosedLoopMotorController::getInstance().set_speed(ROBOT_ODOMETRY_CONTROLLER_LEFT_PORT, 0); + + std::this_thread::sleep_for(std::chrono::milliseconds(50)); + ClosedLoopMotorController::getInstance().set_power(ROBOT_ODOMETRY_CONTROLLER_RIGHT_PORT, 0); ClosedLoopMotorController::getInstance().set_power(ROBOT_ODOMETRY_CONTROLLER_LEFT_PORT, 0); @@ -104,8 +66,13 @@ void GoToController::drive_distance(double distance_m, double v_m_s) { } } +// +ang, +rad -> cw +// -ang, +rad -> ccw +// +ang, -rad -> ccw +// -ang, -rad -> ccw void GoToController::turn_degrees(double angle_deg, double v_rad_s) { auto angle_rad = mathUtils::wrap_angle_to_pi(angle_deg * (M_PI / 180.0)); + auto sleep_duration = std::chrono::microseconds(US_IN_S / ROBOT_GO_TO_ANGLE_RATE_HZ); if (angle_rad < 0 && v_rad_s > 0) { v_rad_s *= -1; @@ -113,28 +80,24 @@ void GoToController::turn_degrees(double angle_deg, double v_rad_s) { auto was_enabled = OdometryController::getInstance().is_enabled(); OdometryController::getInstance().enable(); - auto start_pos = OdometryController::getInstance().get(); - auto sleep_duration = std::chrono::microseconds(US_IN_S / ROBOT_MOTOR_SPEED_CONTROL_RATE_HZ); - - auto angle_to_target = angle_rad; - auto angle_turned = 0.0; - while (fabs(angle_to_target) > ROBOT_GO_TO_ANGLE_END_RAD && angle_turned < angle_rad) { + auto start_angle = OdometryController::getInstance().get().get_angular_orientation(); + auto end_angle = mathUtils::wrap_angle_to_pi(start_angle + angle_rad); + auto angle_to_target = mathUtils::wrap_angle_to_pi(end_angle - start_angle); + while (fabs(angle_to_target) > ROBOT_GO_TO_ANGLE_END_RAD) { std::this_thread::sleep_for(sleep_duration); + auto current_angle = OdometryController::getInstance().get().get_angular_orientation(); + angle_to_target = mathUtils::wrap_angle_to_pi(end_angle - current_angle); - auto current_pos = OdometryController::getInstance().get(); - - angle_turned = current_pos.get_angular_orientation() - start_pos.get_angular_orientation(); - angle_to_target = mathUtils::wrap_angle_to_pi(angle_rad - angle_turned); - - auto speed_mult = mathUtils::limit_max(fabs(angle_to_target) * ROBOT_GO_TO_ANGLE_ALPHA_P, 0.0, 1.0); - auto adjusted_speed = mathUtils::limit_min(v_rad_s * speed_mult, ROBOT_GO_TO_ANGLE_MIN_VEL); - diff_drive_inverse_kinematics(0.0, adjusted_speed); - - spdlog::debug("{:03.4f}; {:03.4f}; {:03.4f}; {:03.4f}; {:03.4f}; {:03.4f};", - current_pos.get_x_position(), current_pos.get_y_position(), current_pos.get_angular_orientation(), - angle_turned, angle_to_target, adjusted_speed - ); + if (fabs(angle_to_target) > M_PI_2) { + diff_drive_inverse_kinematics(0.0, v_rad_s); + spdlog::debug("{:03.4f}; {:03.4f};", current_angle, angle_to_target); + } else { + auto speed_mult = mathUtils::limit_max(angle_to_target * ROBOT_GO_TO_ANGLE_ALPHA_P, -1.0, 1.0); + auto adjusted_speed = mathUtils::limit_min(fabs(v_rad_s) * speed_mult, ROBOT_GO_TO_ANGLE_MIN_VEL); + diff_drive_inverse_kinematics(0.0, adjusted_speed); + spdlog::debug("{:03.4f}; {:03.4f}; {:03.4f};", current_angle, angle_to_target, adjusted_speed); + } } ClosedLoopMotorController::getInstance().set_power(ROBOT_ODOMETRY_CONTROLLER_RIGHT_PORT, 0); diff --git a/server_v2/src/OdometryController.cpp b/server_v2/src/OdometryController.cpp index 38932cf..28419c5 100644 --- a/server_v2/src/OdometryController.cpp +++ b/server_v2/src/OdometryController.cpp @@ -80,7 +80,7 @@ OdometryController::OdometryController() { } current_odometry = Odometry(new_x_position, new_y_position, new_angular_orientation); - spdlog::info("{} {} {} {} {} {}", + spdlog::info("{:03.4f} {:03.4f} {:03.4f} {:03.4f} {:03.4f} {:03.4f}", current_position_left, current_position_right, distance_left, distance_right, distance, theta); diff --git a/server_v2/src/communication/MessageProcessor.cpp b/server_v2/src/communication/MessageProcessor.cpp index 0cbc171..283177e 100644 --- a/server_v2/src/communication/MessageProcessor.cpp +++ b/server_v2/src/communication/MessageProcessor.cpp @@ -6,6 +6,7 @@ #include "include/Encoders.hpp" #include "include/IRSensors.hpp" #include "include/ClosedLoopMotorController.hpp" +#include "include/GoToController.hpp" using namespace CompLib; @@ -46,6 +47,24 @@ google::protobuf::Message *MessageProcessor::process_message(const std::string & ClosedLoopMotorController::getInstance().set_speed(request.port(), request.speed()); return MessageBuilder::default_successful_generic_response(); } + + // Drive + if (messageTypeName == DriveDistanceRequest::GetDescriptor()->full_name()) { + DriveDistanceRequest request; + request.ParseFromString(serializedMessage); + GoToController::drive_distance(request.distance_m(), request.velocity_m_s()); + return MessageBuilder::default_successful_generic_response(); + } else if (messageTypeName == TurnDegreesRequest::GetDescriptor()->full_name()) { + TurnDegreesRequest request; + request.ParseFromString(serializedMessage); + GoToController::turn_degrees(request.angle_degrees(), request.velocity_rad_s()); + return MessageBuilder::default_successful_generic_response(); + } else if (messageTypeName == DriveRequest::GetDescriptor()->full_name()) { + DriveRequest request; + request.ParseFromString(serializedMessage); + GoToController::diff_drive_inverse_kinematics(request.linear_velocity_m_s(), request.angular_velocity_rad_s()); + return MessageBuilder::default_successful_generic_response(); + } } catch (const std::exception &ex) { spdlog::error("Error when processing message with header {}: {}", messageTypeName, ex.what()); google::protobuf::Message *returnMessage = MessageBuilder::generic_response(false, ex.what()); diff --git a/server_v2/src/main.cpp b/server_v2/src/main.cpp index d64c710..9948800 100644 --- a/server_v2/src/main.cpp +++ b/server_v2/src/main.cpp @@ -7,6 +7,7 @@ #include "include/communication/UnixSocketServer.hpp" #include "include/communication/TCPSocketServer.hpp" #include "include/GoToController.hpp" +#include "include/Encoders.hpp" using namespace std; @@ -38,7 +39,16 @@ int main(int argc, char *argv[]) { // GoToGoalController::go_to_point(2, 0, 0.2); // GoToController::drive_distance(-4, 0.2); - GoToController::turn_degrees(180, M_PI); +// GoToController::turn_degrees(90, M_PI); +// while (true) { +// this_thread::sleep_for(std::chrono::milliseconds(10)); +// ClosedLoopMotorController::getInstance().set_power(0, 100); +// spdlog::debug("{}", Encoders::getInstance().get_velocities_rad_s().at(0)); +// } + +// GoToController::drive_distance(2, 0.3); +// std::this_thread::sleep_for(std::chrono::seconds(2)); +// GoToController::drive_distance(-2, 0.3); // GoToController::drive_distance(2, 0.2); // GoToController::turn_degrees(-90, M_PI_2); @@ -52,7 +62,7 @@ int main(int argc, char *argv[]) { // GoToController::drive_distance(2, 0.2); // GoToController::turn_degrees(-90, M_PI_2); -// ClosedLoopMotorController::getInstance().calibrate_wheel_ticks(5, stoi(argv[1])); +// ClosedLoopMotorController::getInstance().calibrate_wheel_ticks(10, stoi(argv[1])); // ClosedLoopMotorController::getInstance().generate_step_response_data(); // ClosedLoopMotorController::getInstance().generate_tuned_step_response_data(); From 7fe160211f144f2e959d95363a0fc1e3fc97e3d3 Mon Sep 17 00:00:00 2001 From: Konstantin Lampalzer Date: Tue, 7 Jun 2022 23:53:28 +0200 Subject: [PATCH 172/246] Make compileable on unix not running raspi --- server_v2/CMakeLists.txt | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/server_v2/CMakeLists.txt b/server_v2/CMakeLists.txt index 186acf1..90d4b2e 100644 --- a/server_v2/CMakeLists.txt +++ b/server_v2/CMakeLists.txt @@ -13,13 +13,7 @@ endif () find_package(Protobuf REQUIRED) find_package(spdlog REQUIRED) -if (APPLE) - set(CMAKE_CXX_FLAGS_DEBUG "-g -O0") - set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -gdwarf-3") - set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -Wall -Wextra -gdwarf-3") - - set(LIBRARIES "spdlog::spdlog") -elseif (UNIX) +if (UNIX AND ${CMAKE_SYSTEM_PROCESSOR} STREQUAL armv7l) message("Running on Raspberry Pi") add_definitions(-DIS_RASPI) set(CMAKE_CXX_FLAGS_RELEASE "-O3") @@ -27,6 +21,16 @@ elseif (UNIX) find_package(pigpio REQUIRED) set(LIBRARIES "pigpio" "spdlog::spdlog") set(CMAKE_CXX_FLAGS "-Wall -Wextra -Wno-psabi") + + set(IS_RASPI) +endif () + +if (NOT IS_RASPI) + set(CMAKE_CXX_FLAGS_DEBUG "-g -O0") + set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -gdwarf-3") + set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -Wall -Wextra -gdwarf-3") + + set(LIBRARIES "spdlog::spdlog") endif () message("CMAKE_SYSTEM_PROCESSOR = ${CMAKE_SYSTEM_PROCESSOR}") From 4a9367629fee416591b39133b2ae49660b55b544 Mon Sep 17 00:00:00 2001 From: Alexander Lampalzer Date: Wed, 8 Jun 2022 00:32:19 +0200 Subject: [PATCH 173/246] Improvements in odometry kinematics --- server_v2/src/OdometryController.cpp | 32 ++++++++++++++++------------ 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/server_v2/src/OdometryController.cpp b/server_v2/src/OdometryController.cpp index 28419c5..2ee64fe 100644 --- a/server_v2/src/OdometryController.cpp +++ b/server_v2/src/OdometryController.cpp @@ -56,34 +56,38 @@ OdometryController::OdometryController() { last_position_left = current_position_left; last_position_right = current_position_right; - auto distance = (distance_left + distance_right) * 2.0; - auto theta = (distance_left - distance_right) / ROBOT_ARBOR_LENGTH_M; + // The section below implements differential drive kinematics. + // Refer to Computational Principles of Mobile Robotics, Dudek and Jenkin + // or Chapter "Mobile Robot Kinematics" Introduction to Autonomous Mobile Robots, Roland Siegwart + // and Illah R. Nourbakhsh + + // Forward and Rotational velocity have already been integrated. + auto dist_forward = (distance_right + distance_left) / 2.0; + auto dist_rot = (distance_right + distance_left) / ROBOT_ARBOR_LENGTH_M; + + auto x = dist_forward * -sin(dist_rot); + auto y = dist_forward * cos(dist_rot); + auto theta = dist_rot; auto new_x_position = current_odometry.get_x_position(); auto new_y_position = current_odometry.get_y_position(); auto new_angular_orientation = current_odometry.get_angular_orientation(); - if (distance != 0) { - auto current_orientation = current_odometry.get_angular_orientation(); - auto distance_x = cos(theta) * distance; - auto distance_y = -sin(theta) * distance; - - new_x_position = current_odometry.get_x_position() + - (cos(current_orientation) * distance_x - - sin(current_orientation) * distance_y); - new_y_position = current_odometry.get_y_position() + - (sin(current_orientation) * distance_x + - cos(current_orientation) * distance_y); + if (dist_forward != 0) { + new_x_position = cos(theta) * x - sin(theta) * y + current_odometry.get_x_position(); + new_y_position = sin(theta) * x + cos(theta) * y + current_odometry.get_y_position(); } + if (theta != 0) { new_angular_orientation = mathUtils::wrap_angle_to_pi(current_odometry.get_angular_orientation() + theta); } + current_odometry = Odometry(new_x_position, new_y_position, new_angular_orientation); spdlog::info("{:03.4f} {:03.4f} {:03.4f} {:03.4f} {:03.4f} {:03.4f}", current_position_left, current_position_right, distance_left, distance_right, - distance, theta); + dist_forward, dist_rot); } } } From b3eb01ad6ec8b9ffbc71770e16aa4f4381f30ef1 Mon Sep 17 00:00:00 2001 From: Alexander Lampalzer Date: Wed, 8 Jun 2022 23:42:43 +0200 Subject: [PATCH 174/246] Improvements in odometry kinematics --- server_v2/src/OdometryController.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/server_v2/src/OdometryController.cpp b/server_v2/src/OdometryController.cpp index 2ee64fe..281e3bb 100644 --- a/server_v2/src/OdometryController.cpp +++ b/server_v2/src/OdometryController.cpp @@ -63,10 +63,10 @@ OdometryController::OdometryController() { // Forward and Rotational velocity have already been integrated. auto dist_forward = (distance_right + distance_left) / 2.0; - auto dist_rot = (distance_right + distance_left) / ROBOT_ARBOR_LENGTH_M; + auto dist_rot = (distance_right - distance_left) / ROBOT_ARBOR_LENGTH_M; - auto x = dist_forward * -sin(dist_rot); - auto y = dist_forward * cos(dist_rot); + auto x = dist_forward * cos(dist_rot); + auto y = dist_forward * sin(dist_rot); auto theta = dist_rot; auto new_x_position = current_odometry.get_x_position(); From 80ed5e5bf9206e3ac239058a7c7c27050c0cc301 Mon Sep 17 00:00:00 2001 From: Alexander Lampalzer Date: Thu, 9 Jun 2022 10:25:11 +0200 Subject: [PATCH 175/246] Improvements in odometry kinematics --- server_v2/src/OdometryController.cpp | 100 +++++++++++++-------------- 1 file changed, 48 insertions(+), 52 deletions(-) diff --git a/server_v2/src/OdometryController.cpp b/server_v2/src/OdometryController.cpp index 281e3bb..8067bea 100644 --- a/server_v2/src/OdometryController.cpp +++ b/server_v2/src/OdometryController.cpp @@ -10,84 +10,80 @@ #define US_IN_S (1000 * MS_IN_S) bool OdometryController::is_enabled() const { - return enabled; + return enabled; } void OdometryController::enable() { - last_run = clock::now(); - enabled = true; + last_run = clock::now(); + enabled = true; } void OdometryController::disable() { - spdlog::debug("OdometryController::disable()"); - enabled = false; - OdometryController::reset(); + spdlog::debug("OdometryController::disable()"); + enabled = false; + OdometryController::reset(); } void OdometryController::reset() { - std::lock_guard lock(odometry_mutex); - current_odometry = Odometry(); - last_run = clock::now(); + std::lock_guard lock(odometry_mutex); + current_odometry = Odometry(); + last_run = clock::now(); } Odometry OdometryController::get() { - return current_odometry; + return current_odometry; } OdometryController::OdometryController() { - odometry_thread = std::thread(&OdometryController::odometry_loop, this); - odometry_thread.detach(); + odometry_thread = std::thread(&OdometryController::odometry_loop, this); + odometry_thread.detach(); } [[noreturn]] void OdometryController::odometry_loop() { - auto sleep_duration = std::chrono::microseconds(US_IN_S / ROBOT_ODOMETRY_CONTROLLER_RATE_HZ); - while (true) { - std::this_thread::sleep_for(sleep_duration); - std::lock_guard lock(odometry_mutex); - if (enabled) { - last_run = clock::now(); - auto encoder_positions = Encoders::getInstance().get_positions(); + auto sleep_duration = std::chrono::microseconds(US_IN_S / ROBOT_ODOMETRY_CONTROLLER_RATE_HZ); + while (true) { + std::this_thread::sleep_for(sleep_duration); + std::lock_guard lock(odometry_mutex); + if (enabled) { + last_run = clock::now(); + auto encoder_positions = Encoders::getInstance().get_positions(); - auto current_position_left = encoder_positions.at(ROBOT_ODOMETRY_CONTROLLER_LEFT_PORT) * ROBOT_ODOMETRY_CONTROLLER_LEFT_MULT; - auto current_position_right = encoder_positions.at(ROBOT_ODOMETRY_CONTROLLER_RIGHT_PORT) * ROBOT_ODOMETRY_CONTROLLER_RIGHT_MULT; - auto distance_left = (current_position_left - last_position_left) / ROBOT_TICKS_PER_METER; - auto distance_right = (current_position_right - last_position_right) / ROBOT_TICKS_PER_METER; - last_position_left = current_position_left; - last_position_right = current_position_right; + auto current_position_left = + encoder_positions.at(ROBOT_ODOMETRY_CONTROLLER_LEFT_PORT) * ROBOT_ODOMETRY_CONTROLLER_LEFT_MULT; + auto current_position_right = + encoder_positions.at(ROBOT_ODOMETRY_CONTROLLER_RIGHT_PORT) * ROBOT_ODOMETRY_CONTROLLER_RIGHT_MULT; + auto distance_left = (current_position_left - last_position_left) / ROBOT_TICKS_PER_METER; + auto distance_right = (current_position_right - last_position_right) / ROBOT_TICKS_PER_METER; + last_position_left = current_position_left; + last_position_right = current_position_right; - // The section below implements differential drive kinematics. - // Refer to Computational Principles of Mobile Robotics, Dudek and Jenkin - // or Chapter "Mobile Robot Kinematics" Introduction to Autonomous Mobile Robots, Roland Siegwart - // and Illah R. Nourbakhsh + // The section below implements differential drive kinematics. + // Refer to Computational Principles of Mobile Robotics, Dudek and Jenkin + // or Chapter "Mobile Robot Kinematics" Introduction to Autonomous Mobile Robots, Roland Siegwart + // and Illah R. Nourbakhsh + auto v = (distance_right + distance_left) / 2.0; + auto w = (distance_right - distance_left) / ROBOT_ARBOR_LENGTH_M; - // Forward and Rotational velocity have already been integrated. - auto dist_forward = (distance_right + distance_left) / 2.0; - auto dist_rot = (distance_right - distance_left) / ROBOT_ARBOR_LENGTH_M; + auto curr_x = current_odometry.get_x_position(); + auto curr_y = current_odometry.get_y_position(); + auto curr_theta = current_odometry.get_angular_orientation(); - auto x = dist_forward * cos(dist_rot); - auto y = dist_forward * sin(dist_rot); - auto theta = dist_rot; + auto x = v * cos(w); + auto y = v * sin(w); - auto new_x_position = current_odometry.get_x_position(); - auto new_y_position = current_odometry.get_y_position(); - auto new_angular_orientation = current_odometry.get_angular_orientation(); + auto new_x = curr_x + (cos(curr_theta) * x - sin(curr_theta) * y); + auto new_y = curr_y + (sin(curr_theta) * x + cos(curr_theta) * y); + auto new_theta = curr_theta + w; - if (dist_forward != 0) { - new_x_position = cos(theta) * x - sin(theta) * y + current_odometry.get_x_position(); - new_y_position = sin(theta) * x + cos(theta) * y + current_odometry.get_y_position(); - } + new_theta = mathUtils::wrap_angle_to_pi(new_theta); + current_odometry = Odometry(new_x, new_y, new_theta); - if (theta != 0) { - new_angular_orientation = mathUtils::wrap_angle_to_pi(current_odometry.get_angular_orientation() + theta); - } - current_odometry = Odometry(new_x_position, new_y_position, new_angular_orientation); - - spdlog::info("{:03.4f} {:03.4f} {:03.4f} {:03.4f} {:03.4f} {:03.4f}", - current_position_left, current_position_right, - distance_left, distance_right, - dist_forward, dist_rot); +// spdlog::info("{:03.4f} {:03.4f} {:03.4f} {:03.4f} {:03.4f} {:03.4f}", +// current_position_left, current_position_right, +// distance_left, distance_right, +// dist_forward, dist_rot); + } } - } } From 2c5f283a46b98e14ec116c5a4e81bd1c235d1ab6 Mon Sep 17 00:00:00 2001 From: Konstantin Lampalzer Date: Thu, 9 Jun 2022 22:44:26 +0200 Subject: [PATCH 176/246] Fix goToAngle with new odom --- server_v2/CMakeLists.txt | 3 +- server_v2/include/Robot.hpp | 4 +- server_v2/src/GoToController.cpp | 9 ++- server_v2/src/OdometryController.cpp | 96 ++++++++++++++-------------- server_v2/src/main.cpp | 21 +++--- 5 files changed, 71 insertions(+), 62 deletions(-) diff --git a/server_v2/CMakeLists.txt b/server_v2/CMakeLists.txt index 90d4b2e..b9dd7c0 100644 --- a/server_v2/CMakeLists.txt +++ b/server_v2/CMakeLists.txt @@ -22,10 +22,11 @@ if (UNIX AND ${CMAKE_SYSTEM_PROCESSOR} STREQUAL armv7l) set(LIBRARIES "pigpio" "spdlog::spdlog") set(CMAKE_CXX_FLAGS "-Wall -Wextra -Wno-psabi") - set(IS_RASPI) + set(IS_RASPI true) endif () if (NOT IS_RASPI) + message("NOT Running on RaspberryPi") set(CMAKE_CXX_FLAGS_DEBUG "-g -O0") set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -gdwarf-3") set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -Wall -Wextra -gdwarf-3") diff --git a/server_v2/include/Robot.hpp b/server_v2/include/Robot.hpp index 0ff17f0..499cd98 100644 --- a/server_v2/include/Robot.hpp +++ b/server_v2/include/Robot.hpp @@ -34,9 +34,9 @@ #define ROBOT_GO_TO_DISTANCE_RATE_HZ 200 #define ROBOT_GO_TO_DISTANCE_ALPHA_P 2.0 -#define ROBOT_GO_TO_DISTANCE_VELOCITY_P 4.0 +#define ROBOT_GO_TO_DISTANCE_VELOCITY_P 10.0 #define ROBOT_GO_TO_DISTANCE_END_M 0.01 // stop approx 1 cm before target -#define ROBOT_GO_TO_DISTANCE_MIN_VEL 0.025 +#define ROBOT_GO_TO_DISTANCE_MIN_VEL 0.075 #define ROBOT_GO_TO_ANGLE_RATE_HZ 200 #define ROBOT_GO_TO_ANGLE_END_RAD (0.5 * (M_PI / 180.0)) // stop 0.5 deg before target diff --git a/server_v2/src/GoToController.cpp b/server_v2/src/GoToController.cpp index da32bb9..b8390d1 100644 --- a/server_v2/src/GoToController.cpp +++ b/server_v2/src/GoToController.cpp @@ -12,8 +12,8 @@ // Source: http://faculty.salina.k-state.edu/tim/robot_prog/MobileBot/Steering/unicycle.html#calculating-wheel-velocities // Source: https://www.roboticsbook.org/S52_diffdrive_actions.html#kinematics-in-code void GoToController::diff_drive_inverse_kinematics(double v_m_s, double w_rad_s) { - auto vr_rad_s = (2 * v_m_s - w_rad_s * ROBOT_ARBOR_LENGTH_M) / (2.0 * ROBOT_WHEEL_RADIUS_M) * ROBOT_ODOMETRY_CONTROLLER_RIGHT_MULT; - auto vl_rad_s = (2 * v_m_s + w_rad_s * ROBOT_ARBOR_LENGTH_M) / (2.0 * ROBOT_WHEEL_RADIUS_M) * ROBOT_ODOMETRY_CONTROLLER_LEFT_MULT; + auto vr_rad_s = (2 * v_m_s + w_rad_s * ROBOT_ARBOR_LENGTH_M) / (2.0 * ROBOT_WHEEL_RADIUS_M) * ROBOT_ODOMETRY_CONTROLLER_RIGHT_MULT; + auto vl_rad_s = (2 * v_m_s - w_rad_s * ROBOT_ARBOR_LENGTH_M) / (2.0 * ROBOT_WHEEL_RADIUS_M) * ROBOT_ODOMETRY_CONTROLLER_LEFT_MULT; ClosedLoopMotorController::getInstance().set_speed(ROBOT_ODOMETRY_CONTROLLER_RIGHT_PORT, vr_rad_s); ClosedLoopMotorController::getInstance().set_speed(ROBOT_ODOMETRY_CONTROLLER_LEFT_PORT, vl_rad_s); @@ -100,6 +100,11 @@ void GoToController::turn_degrees(double angle_deg, double v_rad_s) { } } + ClosedLoopMotorController::getInstance().set_speed(ROBOT_ODOMETRY_CONTROLLER_RIGHT_PORT, 0); + ClosedLoopMotorController::getInstance().set_speed(ROBOT_ODOMETRY_CONTROLLER_LEFT_PORT, 0); + + std::this_thread::sleep_for(std::chrono::milliseconds(50)); + ClosedLoopMotorController::getInstance().set_power(ROBOT_ODOMETRY_CONTROLLER_RIGHT_PORT, 0); ClosedLoopMotorController::getInstance().set_power(ROBOT_ODOMETRY_CONTROLLER_LEFT_PORT, 0); diff --git a/server_v2/src/OdometryController.cpp b/server_v2/src/OdometryController.cpp index 8067bea..4dfb48b 100644 --- a/server_v2/src/OdometryController.cpp +++ b/server_v2/src/OdometryController.cpp @@ -10,80 +10,80 @@ #define US_IN_S (1000 * MS_IN_S) bool OdometryController::is_enabled() const { - return enabled; + return enabled; } void OdometryController::enable() { - last_run = clock::now(); - enabled = true; + last_run = clock::now(); + enabled = true; } void OdometryController::disable() { - spdlog::debug("OdometryController::disable()"); - enabled = false; - OdometryController::reset(); + spdlog::debug("OdometryController::disable()"); + enabled = false; + OdometryController::reset(); } void OdometryController::reset() { - std::lock_guard lock(odometry_mutex); - current_odometry = Odometry(); - last_run = clock::now(); + std::lock_guard lock(odometry_mutex); + current_odometry = Odometry(); + last_run = clock::now(); } Odometry OdometryController::get() { - return current_odometry; + return current_odometry; } OdometryController::OdometryController() { - odometry_thread = std::thread(&OdometryController::odometry_loop, this); - odometry_thread.detach(); + odometry_thread = std::thread(&OdometryController::odometry_loop, this); + odometry_thread.detach(); } [[noreturn]] void OdometryController::odometry_loop() { - auto sleep_duration = std::chrono::microseconds(US_IN_S / ROBOT_ODOMETRY_CONTROLLER_RATE_HZ); - while (true) { - std::this_thread::sleep_for(sleep_duration); - std::lock_guard lock(odometry_mutex); - if (enabled) { - last_run = clock::now(); - auto encoder_positions = Encoders::getInstance().get_positions(); + auto sleep_duration = std::chrono::microseconds(US_IN_S / ROBOT_ODOMETRY_CONTROLLER_RATE_HZ); + while (true) { + std::this_thread::sleep_for(sleep_duration); + std::lock_guard lock(odometry_mutex); + if (enabled) { + last_run = clock::now(); + auto encoder_positions = Encoders::getInstance().get_positions(); - auto current_position_left = - encoder_positions.at(ROBOT_ODOMETRY_CONTROLLER_LEFT_PORT) * ROBOT_ODOMETRY_CONTROLLER_LEFT_MULT; - auto current_position_right = - encoder_positions.at(ROBOT_ODOMETRY_CONTROLLER_RIGHT_PORT) * ROBOT_ODOMETRY_CONTROLLER_RIGHT_MULT; - auto distance_left = (current_position_left - last_position_left) / ROBOT_TICKS_PER_METER; - auto distance_right = (current_position_right - last_position_right) / ROBOT_TICKS_PER_METER; - last_position_left = current_position_left; - last_position_right = current_position_right; + auto current_position_left = + encoder_positions.at(ROBOT_ODOMETRY_CONTROLLER_LEFT_PORT) * ROBOT_ODOMETRY_CONTROLLER_LEFT_MULT; + auto current_position_right = + encoder_positions.at(ROBOT_ODOMETRY_CONTROLLER_RIGHT_PORT) * ROBOT_ODOMETRY_CONTROLLER_RIGHT_MULT; + auto distance_left = (current_position_left - last_position_left) / ROBOT_TICKS_PER_METER; + auto distance_right = (current_position_right - last_position_right) / ROBOT_TICKS_PER_METER; + last_position_left = current_position_left; + last_position_right = current_position_right; - // The section below implements differential drive kinematics. - // Refer to Computational Principles of Mobile Robotics, Dudek and Jenkin - // or Chapter "Mobile Robot Kinematics" Introduction to Autonomous Mobile Robots, Roland Siegwart - // and Illah R. Nourbakhsh - auto v = (distance_right + distance_left) / 2.0; - auto w = (distance_right - distance_left) / ROBOT_ARBOR_LENGTH_M; + // The section below implements differential drive kinematics. + // Refer to Computational Principles of Mobile Robotics, Dudek and Jenkin + // or Chapter "Mobile Robot Kinematics" Introduction to Autonomous Mobile Robots, Roland Siegwart + // and Illah R. Nourbakhsh + auto v = (distance_right + distance_left) / 2.0; + auto w = (distance_right - distance_left) / ROBOT_ARBOR_LENGTH_M; - auto curr_x = current_odometry.get_x_position(); - auto curr_y = current_odometry.get_y_position(); - auto curr_theta = current_odometry.get_angular_orientation(); + auto curr_x = current_odometry.get_x_position(); + auto curr_y = current_odometry.get_y_position(); + auto curr_theta = current_odometry.get_angular_orientation(); - auto x = v * cos(w); - auto y = v * sin(w); + auto x = v * cos(w); + auto y = v * sin(w); - auto new_x = curr_x + (cos(curr_theta) * x - sin(curr_theta) * y); - auto new_y = curr_y + (sin(curr_theta) * x + cos(curr_theta) * y); - auto new_theta = curr_theta + w; + auto new_x = curr_x + (cos(curr_theta) * x - sin(curr_theta) * y); + auto new_y = curr_y + (sin(curr_theta) * x + cos(curr_theta) * y); + auto new_theta = curr_theta + w; - new_theta = mathUtils::wrap_angle_to_pi(new_theta); - current_odometry = Odometry(new_x, new_y, new_theta); + new_theta = mathUtils::wrap_angle_to_pi(new_theta); + current_odometry = Odometry(new_x, new_y, new_theta); -// spdlog::info("{:03.4f} {:03.4f} {:03.4f} {:03.4f} {:03.4f} {:03.4f}", -// current_position_left, current_position_right, -// distance_left, distance_right, -// dist_forward, dist_rot); - } + spdlog::info("{:03.4f} {:03.4f} {:03.4f} {:03.4f} {:03.4f} {:03.4f}", + current_position_left, current_position_right, + distance_left, distance_right, + v, w); } + } } diff --git a/server_v2/src/main.cpp b/server_v2/src/main.cpp index 9948800..91c38f4 100644 --- a/server_v2/src/main.cpp +++ b/server_v2/src/main.cpp @@ -39,7 +39,7 @@ int main(int argc, char *argv[]) { // GoToGoalController::go_to_point(2, 0, 0.2); // GoToController::drive_distance(-4, 0.2); -// GoToController::turn_degrees(90, M_PI); +// GoToController::turn_degrees(180, M_PI); // while (true) { // this_thread::sleep_for(std::chrono::milliseconds(10)); // ClosedLoopMotorController::getInstance().set_power(0, 100); @@ -50,17 +50,20 @@ int main(int argc, char *argv[]) { // std::this_thread::sleep_for(std::chrono::seconds(2)); // GoToController::drive_distance(-2, 0.3); -// GoToController::drive_distance(2, 0.2); -// GoToController::turn_degrees(-90, M_PI_2); +// while (true) { +// GoToController::drive_distance(0.2, 0.4); +// GoToController::turn_degrees(90, M_PI_2); // -// GoToController::drive_distance(2, 0.2); -// GoToController::turn_degrees(-90, M_PI_2); +// GoToController::drive_distance(0.2, 0.4); +// GoToController::turn_degrees(90, M_PI_2); // -// GoToController::drive_distance(2, 0.2); -// GoToController::turn_degrees(-90, M_PI_2); +// GoToController::drive_distance(0.2, 0.4); +// GoToController::turn_degrees(90, M_PI_2); // -// GoToController::drive_distance(2, 0.2); -// GoToController::turn_degrees(-90, M_PI_2); +// GoToController::drive_distance(0.2, 0.4); +// GoToController::turn_degrees(90, M_PI_2); +// } + // ClosedLoopMotorController::getInstance().calibrate_wheel_ticks(10, stoi(argv[1])); From d4c49a0a51b51d40d6a9091978a95651f47f20db Mon Sep 17 00:00:00 2001 From: Konstantin Lampalzer Date: Sat, 11 Jun 2022 23:52:57 +0200 Subject: [PATCH 177/246] Add movement class to python --- client_s2/.idea/misc.xml | 3 + client_s2/{ => compLib}/CompLib.proto | 17 ++++++ client_s2/compLib/CompLibClient.py | 8 +-- client_s2/compLib/CompLib_pb2.py | 32 +++++++++- client_s2/compLib/Movement.py | 57 ++++++++++++++++++ .../__pycache__/CompLibClient.cpython-39.pyc | Bin 1302 -> 1311 bytes .../__pycache__/CompLib_pb2.cpython-39.pyc | Bin 4335 -> 5022 bytes .../__pycache__/Movement.cpython-39.pyc | Bin 0 -> 2466 bytes client_s2/main.py | 50 +++++++++++++-- .../include/ClosedLoopMotorController.hpp | 2 + server_v2/include/Encoders.hpp | 4 ++ server_v2/include/Robot.hpp | 13 ++-- server_v2/src/ClosedLoopMotorController.cpp | 50 ++++++++------- server_v2/src/Encoders.cpp | 18 +++++- server_v2/src/GoToController.cpp | 14 +++-- server_v2/src/OdometryController.cpp | 8 +-- server_v2/src/PID.cpp | 8 ++- server_v2/src/main.cpp | 9 ++- 18 files changed, 240 insertions(+), 53 deletions(-) rename client_s2/{ => compLib}/CompLib.proto (80%) create mode 100644 client_s2/compLib/Movement.py create mode 100644 client_s2/compLib/__pycache__/Movement.cpython-39.pyc diff --git a/client_s2/.idea/misc.xml b/client_s2/.idea/misc.xml index d56657a..f6104af 100644 --- a/client_s2/.idea/misc.xml +++ b/client_s2/.idea/misc.xml @@ -1,4 +1,7 @@ + + \ No newline at end of file diff --git a/client_s2/CompLib.proto b/client_s2/compLib/CompLib.proto similarity index 80% rename from client_s2/CompLib.proto rename to client_s2/compLib/CompLib.proto index 1bb1bd0..8185499 100644 --- a/client_s2/CompLib.proto +++ b/client_s2/compLib/CompLib.proto @@ -82,3 +82,20 @@ message OdometryReadResponse { double orientation = 5; } +message DriveDistanceRequest { + Header header = 1; + double distance_m = 2; + double velocity_m_s = 3; +} + +message TurnDegreesRequest { + Header header = 1; + double angle_degrees = 2; + double velocity_rad_s = 3; +} + +message DriveRequest { + Header header = 1; + double linear_velocity_m_s = 2; + double angular_velocity_rad_s = 3; +} \ No newline at end of file diff --git a/client_s2/compLib/CompLibClient.py b/client_s2/compLib/CompLibClient.py index 0dea16b..00599c9 100644 --- a/client_s2/compLib/CompLibClient.py +++ b/client_s2/compLib/CompLibClient.py @@ -11,11 +11,11 @@ class CompLibClient(object): @staticmethod def send(data: bytes, size: int) -> bytes: - # with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as sock: - # sock.connect((TCP_SOCKET_HOST, TCP_SOCKET_PORT)) + with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as sock: + sock.connect((TCP_SOCKET_HOST, TCP_SOCKET_PORT)) - with socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) as sock: - sock.connect(UNIX_SOCKET_PATH) + # with socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) as sock: + # sock.connect(UNIX_SOCKET_PATH) sock.sendall(size.to_bytes(1, byteorder='big')) sock.sendall(data) diff --git a/client_s2/compLib/CompLib_pb2.py b/client_s2/compLib/CompLib_pb2.py index eaa5fe8..ebe2d4c 100644 --- a/client_s2/compLib/CompLib_pb2.py +++ b/client_s2/compLib/CompLib_pb2.py @@ -14,7 +14,7 @@ _sym_db = _symbol_database.Default() -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\rCompLib.proto\x12\x07\x43ompLib\"\x1e\n\x06Header\x12\x14\n\x0cmessage_type\x18\x01 \x01(\t\"3\n\x06Status\x12\x12\n\nsuccessful\x18\x01 \x01(\x08\x12\x15\n\rerror_message\x18\x02 \x01(\t\"1\n\x0eGenericRequest\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\"S\n\x0fGenericResponse\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\x12\x1f\n\x06status\x18\x02 \x01(\x0b\x32\x0f.CompLib.Status\">\n\x1b\x45ncoderReadPositionsRequest\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\"w\n\x1c\x45ncoderReadPositionsResponse\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\x12\x1f\n\x06status\x18\x02 \x01(\x0b\x32\x0f.CompLib.Status\x12\x15\n\tpositions\x18\x03 \x03(\x05\x42\x02\x10\x01\"?\n\x1c\x45ncoderReadVelocitiesRequest\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\"y\n\x1d\x45ncoderReadVelocitiesResponse\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\x12\x1f\n\x06status\x18\x02 \x01(\x0b\x32\x0f.CompLib.Status\x12\x16\n\nvelocities\x18\x03 \x03(\x01\x42\x02\x10\x01\"9\n\x16IRSensorsEnableRequest\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\":\n\x17IRSensorsDisableRequest\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\":\n\x17IRSensorsReadAllRequest\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\"n\n\x18IRSensorsReadAllResponse\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\x12\x1f\n\x06status\x18\x02 \x01(\x0b\x32\x0f.CompLib.Status\x12\x10\n\x04\x64\x61ta\x18\x03 \x03(\rB\x02\x10\x01\"U\n\x15MotorsSetPowerRequest\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\x12\x0c\n\x04port\x18\x02 \x01(\r\x12\r\n\x05power\x18\x03 \x01(\x01\"U\n\x15MotorsSetSpeedRequest\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\x12\x0c\n\x04port\x18\x02 \x01(\r\x12\r\n\x05speed\x18\x03 \x01(\x01\"6\n\x13OdometryReadRequest\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\"\x95\x01\n\x14OdometryReadResponse\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\x12\x1f\n\x06status\x18\x02 \x01(\x0b\x32\x0f.CompLib.Status\x12\x12\n\nx_position\x18\x03 \x01(\x01\x12\x12\n\ny_position\x18\x04 \x01(\x01\x12\x13\n\x0borientation\x18\x05 \x01(\x01\x62\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\rCompLib.proto\x12\x07\x43ompLib\"\x1e\n\x06Header\x12\x14\n\x0cmessage_type\x18\x01 \x01(\t\"3\n\x06Status\x12\x12\n\nsuccessful\x18\x01 \x01(\x08\x12\x15\n\rerror_message\x18\x02 \x01(\t\"1\n\x0eGenericRequest\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\"S\n\x0fGenericResponse\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\x12\x1f\n\x06status\x18\x02 \x01(\x0b\x32\x0f.CompLib.Status\">\n\x1b\x45ncoderReadPositionsRequest\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\"w\n\x1c\x45ncoderReadPositionsResponse\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\x12\x1f\n\x06status\x18\x02 \x01(\x0b\x32\x0f.CompLib.Status\x12\x15\n\tpositions\x18\x03 \x03(\x05\x42\x02\x10\x01\"?\n\x1c\x45ncoderReadVelocitiesRequest\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\"y\n\x1d\x45ncoderReadVelocitiesResponse\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\x12\x1f\n\x06status\x18\x02 \x01(\x0b\x32\x0f.CompLib.Status\x12\x16\n\nvelocities\x18\x03 \x03(\x01\x42\x02\x10\x01\"9\n\x16IRSensorsEnableRequest\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\":\n\x17IRSensorsDisableRequest\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\":\n\x17IRSensorsReadAllRequest\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\"n\n\x18IRSensorsReadAllResponse\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\x12\x1f\n\x06status\x18\x02 \x01(\x0b\x32\x0f.CompLib.Status\x12\x10\n\x04\x64\x61ta\x18\x03 \x03(\rB\x02\x10\x01\"U\n\x15MotorsSetPowerRequest\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\x12\x0c\n\x04port\x18\x02 \x01(\r\x12\r\n\x05power\x18\x03 \x01(\x01\"U\n\x15MotorsSetSpeedRequest\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\x12\x0c\n\x04port\x18\x02 \x01(\r\x12\r\n\x05speed\x18\x03 \x01(\x01\"6\n\x13OdometryReadRequest\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\"\x95\x01\n\x14OdometryReadResponse\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\x12\x1f\n\x06status\x18\x02 \x01(\x0b\x32\x0f.CompLib.Status\x12\x12\n\nx_position\x18\x03 \x01(\x01\x12\x12\n\ny_position\x18\x04 \x01(\x01\x12\x13\n\x0borientation\x18\x05 \x01(\x01\"a\n\x14\x44riveDistanceRequest\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\x12\x12\n\ndistance_m\x18\x02 \x01(\x01\x12\x14\n\x0cvelocity_m_s\x18\x03 \x01(\x01\"d\n\x12TurnDegreesRequest\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\x12\x15\n\rangle_degrees\x18\x02 \x01(\x01\x12\x16\n\x0evelocity_rad_s\x18\x03 \x01(\x01\"l\n\x0c\x44riveRequest\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\x12\x1b\n\x13linear_velocity_m_s\x18\x02 \x01(\x01\x12\x1e\n\x16\x61ngular_velocity_rad_s\x18\x03 \x01(\x01\x62\x06proto3') @@ -34,6 +34,9 @@ _MOTORSSETPOWERREQUEST = DESCRIPTOR.message_types_by_name['MotorsSetPowerRequest _MOTORSSETSPEEDREQUEST = DESCRIPTOR.message_types_by_name['MotorsSetSpeedRequest'] _ODOMETRYREADREQUEST = DESCRIPTOR.message_types_by_name['OdometryReadRequest'] _ODOMETRYREADRESPONSE = DESCRIPTOR.message_types_by_name['OdometryReadResponse'] +_DRIVEDISTANCEREQUEST = DESCRIPTOR.message_types_by_name['DriveDistanceRequest'] +_TURNDEGREESREQUEST = DESCRIPTOR.message_types_by_name['TurnDegreesRequest'] +_DRIVEREQUEST = DESCRIPTOR.message_types_by_name['DriveRequest'] Header = _reflection.GeneratedProtocolMessageType('Header', (_message.Message,), { 'DESCRIPTOR' : _HEADER, '__module__' : 'CompLib_pb2' @@ -146,6 +149,27 @@ OdometryReadResponse = _reflection.GeneratedProtocolMessageType('OdometryReadRes }) _sym_db.RegisterMessage(OdometryReadResponse) +DriveDistanceRequest = _reflection.GeneratedProtocolMessageType('DriveDistanceRequest', (_message.Message,), { + 'DESCRIPTOR' : _DRIVEDISTANCEREQUEST, + '__module__' : 'CompLib_pb2' + # @@protoc_insertion_point(class_scope:CompLib.DriveDistanceRequest) + }) +_sym_db.RegisterMessage(DriveDistanceRequest) + +TurnDegreesRequest = _reflection.GeneratedProtocolMessageType('TurnDegreesRequest', (_message.Message,), { + 'DESCRIPTOR' : _TURNDEGREESREQUEST, + '__module__' : 'CompLib_pb2' + # @@protoc_insertion_point(class_scope:CompLib.TurnDegreesRequest) + }) +_sym_db.RegisterMessage(TurnDegreesRequest) + +DriveRequest = _reflection.GeneratedProtocolMessageType('DriveRequest', (_message.Message,), { + 'DESCRIPTOR' : _DRIVEREQUEST, + '__module__' : 'CompLib_pb2' + # @@protoc_insertion_point(class_scope:CompLib.DriveRequest) + }) +_sym_db.RegisterMessage(DriveRequest) + if _descriptor._USE_C_DESCRIPTORS == False: DESCRIPTOR._options = None @@ -187,4 +211,10 @@ if _descriptor._USE_C_DESCRIPTORS == False: _ODOMETRYREADREQUEST._serialized_end=1139 _ODOMETRYREADRESPONSE._serialized_start=1142 _ODOMETRYREADRESPONSE._serialized_end=1291 + _DRIVEDISTANCEREQUEST._serialized_start=1293 + _DRIVEDISTANCEREQUEST._serialized_end=1390 + _TURNDEGREESREQUEST._serialized_start=1392 + _TURNDEGREESREQUEST._serialized_end=1492 + _DRIVEREQUEST._serialized_start=1494 + _DRIVEREQUEST._serialized_end=1602 # @@protoc_insertion_point(module_scope) diff --git a/client_s2/compLib/Movement.py b/client_s2/compLib/Movement.py new file mode 100644 index 0000000..1b672f8 --- /dev/null +++ b/client_s2/compLib/Movement.py @@ -0,0 +1,57 @@ +import compLib.CompLib_pb2 as CompLib_pb2 +from compLib.CompLibClient import CompLibClient + + +class Movement(object): + """High level class to control movement of the robot + """ + + @staticmethod + def drive_distance(distance: float, speed: float): + """ + Drive a given distance with a certain speed. + Positive distance and speed with result in forward motion. Everything else will move backwards. + :param distance: Distance in meters + :param speed: Speed in meters per second + :return: None + """ + request = CompLib_pb2.DriveDistanceRequest() + request.header.message_type = request.DESCRIPTOR.full_name + request.distance_m = distance + request.velocity_m_s = speed + + response = CompLib_pb2.GenericResponse() + response.ParseFromString(CompLibClient.send(request.SerializeToString(), request.ByteSize())) + + @staticmethod + def turn_degrees(degrees: float, speed: float): + """ + Turn specified degrees with a given speed. + Positive degrees and speed with result in counter-clockwise motion. Everything else will be clockwise + :param degrees: Degrees between -180 and 180 + :param speed: Speed in radians per second + :return: None + """ + request = CompLib_pb2.TurnDegreesRequest() + request.header.message_type = request.DESCRIPTOR.full_name + request.angle_degrees = degrees + request.velocity_rad_s = speed + + response = CompLib_pb2.GenericResponse() + response.ParseFromString(CompLibClient.send(request.SerializeToString(), request.ByteSize())) + + @staticmethod + def drive(linear: float, angular: float): + """ + Non-blocking way to perform a linear and angular motion at the same time. + :param linear: Linear speed in meters per second + :param angular: Angular speed in radians per second + :return: None + """ + request = CompLib_pb2.DriveDistanceRequest() + request.header.message_type = request.DESCRIPTOR.full_name + request.linear_velocity_m_s = linear + request.angular_velocity_rad_s = angular + + response = CompLib_pb2.GenericResponse() + response.ParseFromString(CompLibClient.send(request.SerializeToString(), request.ByteSize())) diff --git a/client_s2/compLib/__pycache__/CompLibClient.cpython-39.pyc b/client_s2/compLib/__pycache__/CompLibClient.cpython-39.pyc index e506fdc9ae9afd48ffded9fd59becc80c966070e..7dc2349dfa01ce2de7835d64207d05cd7acf1ff7 100644 GIT binary patch delta 383 zcmbQnHJ^(&k(ZZ?0SID#ElJYa$ScBFKLN-qVORjfS&Tr;w2-Mkr=a79SUCl|3;+lc^Wq69+y jJR@LE32+SYDB=WZ00rnRw)~{5)Z~&PCagw$V^IJAx|&!u delta 369 zcmbQwHI0imk(ZZ?0SK~|bR{WmhUe7#09=79$WdEoAD?sAZ~QTEJYwvXGIH z0mx#lVa#GnVN794VeVyui!nf1>?w>38EctKII=ivm?3IvS%A9OYk>M|SxdMUa8K@J zlxD1(yp&Pfisu$vaei`kYDpBkqg#BapJzlAcd);+cYJV2kgKC_6nk=hUS4W)$t?kp zTs%n1H6%X3F~noC6jKKy|K!C?Nvy0wj9g5UxtNt1`6lZzFO%W}`r#IHQEG7!Kad3> z1VAj_$?uqpRk=Y-L691jr2PDxB3`&6B;}LaSgbvTK{A{`B8or6IRIw6hktMgia>yW VP{=K|{G=?PLyMTOn)aVX0RR!WSo#0} diff --git a/client_s2/compLib/__pycache__/CompLib_pb2.cpython-39.pyc b/client_s2/compLib/__pycache__/CompLib_pb2.cpython-39.pyc index 5e710a8bba5d7be76f183f6169ecda4a99769213..272a68d45821155879845ef31f0e50a137431b8e 100644 GIT binary patch delta 1514 zcmY+^%TFtH6bJB`!tIrzFQyM#T1s2E(3bbJz`fkxeY7Gbl32h6n@QyyZ;GYGnL?tQ zZe2=dYs{_jA27tViSA8Ij4{NWiQBu^jc0!Sanvrp`TkBnbAHoJ-{ilV3pIj4L!-|R z-+lApk83xfjQ;!0{9nEBc?6Ov?KF>GOHnJxHbHF~M_$jsTlnz&(MLLtK^ih&`uans zvlx6mhqHZM*Q6Lx!emjDqR7HfBFds9MXASRRFN2yvLs~|0VU!r=B1ct5mX|~^AbOZ)vMR|clc-vf zVX-E~8jF|`lPuPySZ5JeBFkb!iVY=tGmubZipi!Vo4jOPi5!b9DYjT7mB_QGNKs*t zQlh|O+Y>$9W-_73G?N{RQ7 z+@;;=cHFDsGvB-Z+q>c5gRw%xh*j<8HCCHWx6wXB_veSjifI}KsDX8n^yT!TZpMtj zHMTlu&F-hxh2hXjT;>Ya<@Pd{R zkT2j}ykn+~Xsg-AhHWwS?i##7)=1FitJZ(NRjY3Q7;*H<|9?syKe vz#gZ2?W7ke_wUe!zwFhr+YVd$q5D&K-F*}GyLzPW<|0}5>&ScV_mRLqCqtvx delta 957 zcmX}rJ8#oa6bJA)C6u&v65Dw=ah^?`_d99RTOMWU*a@*@39ZgSYIp=ST^Nuh29TJD zyduH1cHuII16oWE!;BUx>o3q`Q8X90j`de_dF)5>dy@%zMrUmdugq1K^xKg+*wv@0~RHUe|*j6IWqKdjl zx2ZDOQ6#~nCYRJ$=t?A6)TOAih$xX_(U79SBC3Q>SQ1esUCulFu{;9zvRPnnz@KsFtqp5s2IxlQxDn&0)Cd6wn{HNWd) zD0*m251~XUU>8m5Wl8~iXi;}51ynFjy-F#dh6(C*N&yW_Qg2cUXkm(an^HgrZR%Z0 z0Xic-&(BS~HbQn_#IK&)vK`Gz}^VAW?V}Ji#LM zV@d(evq1f+zZ1F&TA}sFkRDq9+Ma9v8@*;t!tdsbi>r(I+r=VCe_l+R_&@ZY!TOQ^ oKC;s6wG&-x{_ogl|AR5R?~=H5{XfQ3%loJ1(Entv{1fZ+KeF=slmGw# diff --git a/client_s2/compLib/__pycache__/Movement.cpython-39.pyc b/client_s2/compLib/__pycache__/Movement.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1f185a1487878f5eb3cdbb663d26e4f9672c3c26 GIT binary patch literal 2466 zcmchZOK;mo5P(VQMahz#*m2VIw6{WNZM8WRg-{f2?7RTiHEj373$fykrM3A`c2^c; zsHfy-+zutO`dJ=>;xCv>8USFx=ZmZ*s8TT4`-`ljO5gneXnYro?PYrku! zot-2a@5#YVC?Pfhsh3CTVh^=odA6`TN7!Bks!)TPaNarD>#J{UuU_bCsH=;{ThcWO zor}7rXk|KAtY8T3)crm=hX}o1eECuiM=XSM2w4zvt(i$!ki`^x&snLDS>X$57~ug$Hw(VyP7LrinV!V;(>+pgr~KX)nk&m9L-V8ae1Kkl!B9(p5p=_=_*Y z9d7A13ajbbZM$yQ9oN2iRId2DHL~9jFjN3Ki}(Y9|H(4=$5?wpHjpP0Q7OV%fS+%N zJF(AWXLnK`B$F8F+zPPPXH$us|0Dkcz|K)vmLx9V&wU~Lh0_6;Dd1k+`r@n4vk36_ z=AxUsKye{?tpC$CP<5=Pw@!H~To>>w7bg@|Tv3ZxD`eN<@i0Ul@*us{5_5FzYei_N z4haHUt&&(HaSsK;`;hJlUUi?uItd~+7Z30*ZPRXDIQSSf@AI}<^0sV?wADiy16OGS zqnw0XeHh>_ek<#OJ!We_C8owVBXOxJvb`mDss7(sz5eXu53Ed20;#XBr5aF8OckOD$vDfeAS2owJdmCBr um4of211R5yn>S|ie?0l=P)`P@5SZ*Gw|P$8uk&yE2K%3->6~cW?aE(fRGf(b literal 0 HcmV?d00001 diff --git a/client_s2/main.py b/client_s2/main.py index dd3e732..8082ab6 100644 --- a/client_s2/main.py +++ b/client_s2/main.py @@ -33,15 +33,57 @@ def main(): # from compLib.IRSensor import IRSensor # IRSensor.read_all() # - from compLib.Encoder import Encoder - Encoder.read_all_positions() - Encoder.read_all_velocities() + # from compLib.Encoder import Encoder + # print(Encoder.read_all_positions()) + # print(Encoder.read_all_velocities()) # from compLib.Motor import Motor # Motor.speed(0, 50) # Motor.speed(3, -50) + # + # import time + # time.sleep(2) + # + # Motor.speed(0, 0) + # Motor.speed(3, -0) - # time.sleep(10) + # Motor.power(0, 0) + # Motor.power(3, 0) + + # import math + # from compLib.Movement import Movement + # Movement.turn_degrees(90, math.pi * 2) + # Movement.turn_degrees(-90, math.pi * 2) + # + # Movement.turn_degrees(90, math.pi * 2) + # Movement.turn_degrees(90, -math.pi * 2) + # + # Movement.turn_degrees(90, math.pi * 2) + # Movement.turn_degrees(-90, -math.pi * 2) + + # from compLib.Movement import Movement + # Movement.drive_distance(0.1, 0.5) + # Movement.drive_distance(-0.1, 0.5) + # + # Movement.drive_distance(0.1, 0.5) + # Movement.drive_distance(0.1, -0.5) + # + # Movement.drive_distance(0.1, 0.5) + # Movement.drive_distance(-0.1, -0.5) + + from compLib.Movement import Movement + import math + Movement.drive_distance(0.5, 0.5) + Movement.turn_degrees(90, math.pi * 2) + + Movement.drive_distance(0.5, 0.5) + Movement.turn_degrees(90, math.pi * 2) + + Movement.drive_distance(0.5, 0.5) + Movement.turn_degrees(90, math.pi * 2) + + Movement.drive_distance(0.5, 0.5) + Movement.turn_degrees(90, math.pi * 2) if __name__ == '__main__': diff --git a/server_v2/include/ClosedLoopMotorController.hpp b/server_v2/include/ClosedLoopMotorController.hpp index 08ee94d..eb589e7 100644 --- a/server_v2/include/ClosedLoopMotorController.hpp +++ b/server_v2/include/ClosedLoopMotorController.hpp @@ -5,6 +5,7 @@ #include #include #include +#include #include "include/PID.hpp" #include "include/Robot.hpp" @@ -46,6 +47,7 @@ private: std::array speed_targets{0}; std::thread speed_control_thread; + std::recursive_mutex speed_control_mutex; }; diff --git a/server_v2/include/Encoders.hpp b/server_v2/include/Encoders.hpp index bbde700..5c8eb58 100644 --- a/server_v2/include/Encoders.hpp +++ b/server_v2/include/Encoders.hpp @@ -21,14 +21,18 @@ public: std::array get_velocities_rad_s(); + std::array get_velocities_ticks_s(); + private: Encoders() = default; Cache position_cache{ROBOT_ENCODER_RATE_HZ}; Cache velocity_cache{ROBOT_ENCODER_RATE_HZ}; + Cache ticks_cache{ROBOT_ENCODER_RATE_HZ}; std::array cached_positions = {0}; std::array cached_velocities_rad_s = {0}; + std::array cached_velocities_ticks_s = {0}; }; diff --git a/server_v2/include/Robot.hpp b/server_v2/include/Robot.hpp index 499cd98..a9593f9 100644 --- a/server_v2/include/Robot.hpp +++ b/server_v2/include/Robot.hpp @@ -7,9 +7,9 @@ #define ROBOT_IR_RATE_HZ 250 #define ROBOT_MOTOR_COUNT 4 -#define ROBOT_MOTOR_SPEED_CONTROL_KP 8.5 -#define ROBOT_MOTOR_SPEED_CONTROL_KI 31.0 -#define ROBOT_MOTOR_SPEED_CONTROL_KD 0.085 +#define ROBOT_MOTOR_SPEED_CONTROL_KP 15.0 +#define ROBOT_MOTOR_SPEED_CONTROL_KI 5.0 +#define ROBOT_MOTOR_SPEED_CONTROL_KD 0.0 #define ROBOT_MOTOR_SPEED_CONTROL_RAMP 4 * M_PI #define ROBOT_MOTOR_SPEED_CONTROL_RATE_HZ 250 @@ -20,6 +20,7 @@ #define ROBOT_ODOMETRY_CONTROLLER_RIGHT_MULT -1.0 #define ROBOT_ENCODER_RATE_HZ 500 +#define ROBOT_ENCODER_MAX_CHANGE_RAD_S M_PI_4 #define ROBOT_WHEEL_RADIUS_MM 35.5 #define ROBOT_WHEEL_RADIUS_M (ROBOT_WHEEL_RADIUS_MM / 1000.0) @@ -34,13 +35,13 @@ #define ROBOT_GO_TO_DISTANCE_RATE_HZ 200 #define ROBOT_GO_TO_DISTANCE_ALPHA_P 2.0 -#define ROBOT_GO_TO_DISTANCE_VELOCITY_P 10.0 +#define ROBOT_GO_TO_DISTANCE_VELOCITY_P 5.0 #define ROBOT_GO_TO_DISTANCE_END_M 0.01 // stop approx 1 cm before target #define ROBOT_GO_TO_DISTANCE_MIN_VEL 0.075 #define ROBOT_GO_TO_ANGLE_RATE_HZ 200 #define ROBOT_GO_TO_ANGLE_END_RAD (0.5 * (M_PI / 180.0)) // stop 0.5 deg before target -#define ROBOT_GO_TO_ANGLE_ALPHA_P 0.5 -#define ROBOT_GO_TO_ANGLE_MIN_VEL (M_PI / 2.0) +#define ROBOT_GO_TO_ANGLE_ALPHA_P 0.9 +#define ROBOT_GO_TO_ANGLE_MIN_VEL M_PI_2 #endif //COMPLIB_SERVER_ROBOT_HPP diff --git a/server_v2/src/ClosedLoopMotorController.cpp b/server_v2/src/ClosedLoopMotorController.cpp index 2f34fcc..48d670c 100644 --- a/server_v2/src/ClosedLoopMotorController.cpp +++ b/server_v2/src/ClosedLoopMotorController.cpp @@ -11,11 +11,13 @@ #define US_IN_S (1000 * MS_IN_S) void ClosedLoopMotorController::set_power(uint8_t port, double power) { + std::lock_guard lock(speed_control_mutex); control_modes.at(port) = ControlMode::POWER; Motors::set_power(port, power); } void ClosedLoopMotorController::set_speed(uint8_t port, double speed_ms) { + std::lock_guard lock(speed_control_mutex); speed_targets.at(port) = speed_ms; if (control_modes.at(port) != ControlMode::SPEED) { pids.at(port) = PID( @@ -35,15 +37,17 @@ ClosedLoopMotorController::ClosedLoopMotorController() { while (true) { std::this_thread::sleep_for(sleep_duration); + std::lock_guard lock(speed_control_mutex); bool should_control_speed = std::find(control_modes.begin(), control_modes.end(), ControlMode::SPEED) != control_modes.end(); if (!should_control_speed) { continue; } - auto speeds_ms = Encoders::getInstance().get_velocities_rad_s(); + auto speeds_rad_s = Encoders::getInstance().get_velocities_rad_s(); for (int i = 0; i < ROBOT_MOTOR_COUNT; i++) { if (control_modes.at(i) == ControlMode::SPEED) { - double power = pids.at(i)(speed_targets.at(i), speeds_ms.at(i)); + spdlog::debug("CLMC: {}", i); + double power = pids.at(i)(speed_targets.at(i), speeds_rad_s.at(i)); Motors::set_power(i, power); } } @@ -54,7 +58,7 @@ void ClosedLoopMotorController::generate_step_response_data() { auto console = spdlog::stdout_color_mt("generate_step_response_data"); console->set_pattern("%v"); - auto input = 25.0; + auto input = 30.0; speed_targets.at(ROBOT_ODOMETRY_CONTROLLER_LEFT_PORT) = input * ROBOT_ODOMETRY_CONTROLLER_LEFT_MULT; speed_targets.at(ROBOT_ODOMETRY_CONTROLLER_RIGHT_PORT) = input * ROBOT_ODOMETRY_CONTROLLER_RIGHT_MULT; @@ -70,21 +74,21 @@ void ClosedLoopMotorController::generate_step_response_data() { std::this_thread::sleep_for(std::chrono::seconds(1)); auto start_time = std::chrono::steady_clock::now(); - for (int i = 0; i < 150; ++i) { - std::this_thread::sleep_for(std::chrono::milliseconds(10)); + for (int i = 0; i < 1000; ++i) { + std::this_thread::sleep_for(std::chrono::milliseconds(3)); double delta_seconds = std::chrono::duration_cast>(std::chrono::steady_clock::now() - start_time).count() / US_IN_S; auto output = Encoders::getInstance().get_velocities_rad_s().at(ROBOT_ODOMETRY_CONTROLLER_LEFT_PORT); - console->debug("{:03.4f}; {:03.4f}; {:03.4f}", delta_seconds, input, output); + console->info("{:03.4f}; {:03.4f}; {:03.4f}", delta_seconds, input, output); } - input = 35.0; + input = 40.0; speed_targets.at(ROBOT_ODOMETRY_CONTROLLER_LEFT_PORT) = input * ROBOT_ODOMETRY_CONTROLLER_LEFT_MULT; speed_targets.at(ROBOT_ODOMETRY_CONTROLLER_RIGHT_PORT) = input * ROBOT_ODOMETRY_CONTROLLER_RIGHT_MULT; - for (int i = 0; i < 150; ++i) { - std::this_thread::sleep_for(std::chrono::milliseconds(10)); + for (int i = 0; i < 1000; ++i) { + std::this_thread::sleep_for(std::chrono::milliseconds(3)); double delta_seconds = std::chrono::duration_cast>(std::chrono::steady_clock::now() - start_time).count() / US_IN_S; auto output = Encoders::getInstance().get_velocities_rad_s().at(ROBOT_ODOMETRY_CONTROLLER_LEFT_PORT); - console->debug("{:03.4f}; {:03.4f}; {:03.4f}", delta_seconds, input, output); + console->info("{:03.4f}; {:03.4f}; {:03.4f}", delta_seconds, input, output); } speed_targets.at(ROBOT_ODOMETRY_CONTROLLER_LEFT_PORT) = 0; @@ -102,10 +106,10 @@ void ClosedLoopMotorController::generate_tuned_step_response_data() { speed_targets.at(ROBOT_ODOMETRY_CONTROLLER_LEFT_PORT) = input * ROBOT_ODOMETRY_CONTROLLER_LEFT_MULT; speed_targets.at(ROBOT_ODOMETRY_CONTROLLER_RIGHT_PORT) = input * ROBOT_ODOMETRY_CONTROLLER_RIGHT_MULT; pids.at(ROBOT_ODOMETRY_CONTROLLER_LEFT_PORT) = PID( - 8.5, 31.0, 0.085, + 5.5, 50.0, 0.0, 4 * M_PI, 100.0); pids.at(ROBOT_ODOMETRY_CONTROLLER_RIGHT_PORT) = PID( - 8.5, 31.0, 0.085, + 5.5, 50.0, 0.0, 4 * M_PI, 100.0); control_modes.at(ROBOT_ODOMETRY_CONTROLLER_LEFT_PORT) = ControlMode::SPEED; control_modes.at(ROBOT_ODOMETRY_CONTROLLER_RIGHT_PORT) = ControlMode::SPEED; @@ -113,31 +117,31 @@ void ClosedLoopMotorController::generate_tuned_step_response_data() { std::this_thread::sleep_for(std::chrono::seconds(2)); auto start_time = std::chrono::steady_clock::now(); - for (int i = 0; i < 500; ++i) { - std::this_thread::sleep_for(std::chrono::milliseconds(10)); + for (int i = 0; i < 1500; ++i) { + std::this_thread::sleep_for(std::chrono::milliseconds(3)); double delta_seconds = std::chrono::duration_cast>(std::chrono::steady_clock::now() - start_time).count() / US_IN_S; auto output = Encoders::getInstance().get_velocities_rad_s().at(ROBOT_ODOMETRY_CONTROLLER_LEFT_PORT); - console->debug("{:03.4f}; {:03.4f}; {:03.4f}", delta_seconds, input, output); + console->info("{:03.4f}; {:03.4f}; {:03.4f}", delta_seconds, input, output); } input = 4 * M_PI; speed_targets.at(ROBOT_ODOMETRY_CONTROLLER_LEFT_PORT) = input * ROBOT_ODOMETRY_CONTROLLER_LEFT_MULT; speed_targets.at(ROBOT_ODOMETRY_CONTROLLER_RIGHT_PORT) = input * ROBOT_ODOMETRY_CONTROLLER_RIGHT_MULT; - for (int i = 0; i < 500; ++i) { - std::this_thread::sleep_for(std::chrono::milliseconds(10)); + for (int i = 0; i < 1500; ++i) { + std::this_thread::sleep_for(std::chrono::milliseconds(3)); double delta_seconds = std::chrono::duration_cast>(std::chrono::steady_clock::now() - start_time).count() / US_IN_S; auto output = Encoders::getInstance().get_velocities_rad_s().at(ROBOT_ODOMETRY_CONTROLLER_LEFT_PORT); - console->debug("{:03.4f}; {:03.4f}; {:03.4f}", delta_seconds, input, output); + console->info("{:03.4f}; {:03.4f}; {:03.4f}", delta_seconds, input, output); } input = M_PI; speed_targets.at(ROBOT_ODOMETRY_CONTROLLER_LEFT_PORT) = input * ROBOT_ODOMETRY_CONTROLLER_LEFT_MULT; speed_targets.at(ROBOT_ODOMETRY_CONTROLLER_RIGHT_PORT) = input * ROBOT_ODOMETRY_CONTROLLER_RIGHT_MULT; - for (int i = 0; i < 500; ++i) { - std::this_thread::sleep_for(std::chrono::milliseconds(10)); + for (int i = 0; i < 1500; ++i) { + std::this_thread::sleep_for(std::chrono::milliseconds(3)); double delta_seconds = std::chrono::duration_cast>(std::chrono::steady_clock::now() - start_time).count() / US_IN_S; auto output = Encoders::getInstance().get_velocities_rad_s().at(ROBOT_ODOMETRY_CONTROLLER_LEFT_PORT); - console->debug("{:03.4f}; {:03.4f}; {:03.4f}", delta_seconds, input, output); + console->info("{:03.4f}; {:03.4f}; {:03.4f}", delta_seconds, input, output); input += 0.01; speed_targets.at(ROBOT_ODOMETRY_CONTROLLER_LEFT_PORT) = input * ROBOT_ODOMETRY_CONTROLLER_LEFT_MULT; @@ -169,8 +173,8 @@ void ClosedLoopMotorController::calibrate_wheel_ticks(double turns, double ticks set_power(port, adjusted_power); - spdlog::debug("{:03.4f}; {:03.4f}; {:03.4f};", - ticks, target_ticks, adjusted_power); + spdlog::info("{:03.4f}; {:03.4f}; {:03.4f};", + ticks, target_ticks, adjusted_power); std::this_thread::sleep_for(std::chrono::milliseconds(2)); ticks = Encoders::getInstance().get_positions().at(port); diff --git a/server_v2/src/Encoders.cpp b/server_v2/src/Encoders.cpp index 921d552..110d303 100644 --- a/server_v2/src/Encoders.cpp +++ b/server_v2/src/Encoders.cpp @@ -23,9 +23,25 @@ std::array Encoders::get_velocities_rad_s() { auto velocity_ticks_s = mathUtils::from_bytes(data + i * 2, 2); auto velocity_rot_s = velocity_ticks_s / ROBOT_TICKS_PER_TURN; auto velocity_rad_s = velocity_rot_s * 2 * M_PI; - cached_velocities_rad_s.at(i) = velocity_rad_s; + + auto change = velocity_rad_s - cached_velocities_rad_s.at(i); + change = mathUtils::limit_max(change, -ROBOT_ENCODER_MAX_CHANGE_RAD_S, ROBOT_ENCODER_MAX_CHANGE_RAD_S); + cached_velocities_rad_s.at(i) = cached_velocities_rad_s.at(i) + change; } velocity_cache.update(); } return cached_velocities_rad_s; } + +std::array Encoders::get_velocities_ticks_s() { + if (ticks_cache.is_expired()) { + uint8_t data[ROBOT_MOTOR_COUNT * 2] = {0}; + Spi::getInstance().read_array(Spi::MOTOR_1_VEL_H, 2 * ROBOT_MOTOR_COUNT, data); + for (int i = 0; i < ROBOT_MOTOR_COUNT; ++i) { + auto velocity_ticks_s = mathUtils::from_bytes(data + i * 2, 2); + cached_velocities_ticks_s.at(i) = velocity_ticks_s; + } + ticks_cache.update(); + } + return cached_velocities_ticks_s; +} diff --git a/server_v2/src/GoToController.cpp b/server_v2/src/GoToController.cpp index b8390d1..e189d16 100644 --- a/server_v2/src/GoToController.cpp +++ b/server_v2/src/GoToController.cpp @@ -26,8 +26,9 @@ void GoToController::diff_drive_inverse_kinematics(double v_m_s, double w_rad_s) void GoToController::drive_distance(double distance_m, double v_m_s) { auto sleep_duration = std::chrono::microseconds(US_IN_S / ROBOT_GO_TO_DISTANCE_RATE_HZ); - if (distance_m < 0 && v_m_s > 0) { - v_m_s *= -1; + if (distance_m < 0 || v_m_s < 0) { + distance_m = -fabs(distance_m); + v_m_s = -fabs(v_m_s); } auto was_enabled = OdometryController::getInstance().is_enabled(); @@ -74,8 +75,9 @@ void GoToController::turn_degrees(double angle_deg, double v_rad_s) { auto angle_rad = mathUtils::wrap_angle_to_pi(angle_deg * (M_PI / 180.0)); auto sleep_duration = std::chrono::microseconds(US_IN_S / ROBOT_GO_TO_ANGLE_RATE_HZ); - if (angle_rad < 0 && v_rad_s > 0) { - v_rad_s *= -1; + if (angle_rad < 0 || v_rad_s < 0) { + angle_rad = -fabs(angle_rad); + v_rad_s = -fabs(v_rad_s); } auto was_enabled = OdometryController::getInstance().is_enabled(); @@ -91,12 +93,12 @@ void GoToController::turn_degrees(double angle_deg, double v_rad_s) { if (fabs(angle_to_target) > M_PI_2) { diff_drive_inverse_kinematics(0.0, v_rad_s); - spdlog::debug("{:03.4f}; {:03.4f};", current_angle, angle_to_target); + spdlog::debug("TURN: {:03.4f}; {:03.4f};", current_angle, angle_to_target); } else { auto speed_mult = mathUtils::limit_max(angle_to_target * ROBOT_GO_TO_ANGLE_ALPHA_P, -1.0, 1.0); auto adjusted_speed = mathUtils::limit_min(fabs(v_rad_s) * speed_mult, ROBOT_GO_TO_ANGLE_MIN_VEL); diff_drive_inverse_kinematics(0.0, adjusted_speed); - spdlog::debug("{:03.4f}; {:03.4f}; {:03.4f};", current_angle, angle_to_target, adjusted_speed); + spdlog::debug("TURN: {:03.4f}; {:03.4f}; {:03.4f};", current_angle, angle_to_target, adjusted_speed); } } diff --git a/server_v2/src/OdometryController.cpp b/server_v2/src/OdometryController.cpp index 4dfb48b..9b9bfdb 100644 --- a/server_v2/src/OdometryController.cpp +++ b/server_v2/src/OdometryController.cpp @@ -80,10 +80,10 @@ OdometryController::OdometryController() { current_odometry = Odometry(new_x, new_y, new_theta); - spdlog::info("{:03.4f} {:03.4f} {:03.4f} {:03.4f} {:03.4f} {:03.4f}", - current_position_left, current_position_right, - distance_left, distance_right, - v, w); + spdlog::debug("ODOM: {:03.4f} {:03.4f} {:03.4f} {:03.4f} {:03.4f} {:03.4f}", + current_position_left, current_position_right, + distance_left, distance_right, + v, w); } } } diff --git a/server_v2/src/PID.cpp b/server_v2/src/PID.cpp index 8ba5277..a27360c 100644 --- a/server_v2/src/PID.cpp +++ b/server_v2/src/PID.cpp @@ -1,6 +1,7 @@ #include "include/PID.hpp" #include #include +#include #define MS_IN_S 1000.0 #define US_IN_S (1000.0 * MS_IN_S) @@ -35,12 +36,15 @@ double PID::operator()(double setpoint, double process_variable) { // Tustin transform of the integral part double integral = integral_prev + I * delta_seconds * 0.5f * (error + error_prev); double derivative = D * ((error - error_prev) / delta_seconds); + integral = std::clamp(integral, -limit, limit); double output = proportional + integral + derivative; // anti-windup - limit the output variable - output = std::min(std::max(-limit, output), limit); - // spdlog::info("E{} P{} I{} D{} O{} EP{} DS{}", error, proportional, integral, derivative, output, error_prev, delta_seconds); + output = std::clamp(output, -limit, limit); + spdlog::debug("PID: E{:03.4f} P{:03.4f} I{:03.4f} D{:03.4f} O{:03.4f} EP{:03.4f} DS{:03.4f}, SP{:03.4f} PV{:03.4f}", + error, proportional, integral, derivative, output, error_prev, delta_seconds, setpoint, process_variable + ); integral_prev = integral; setpoint_prev = setpoint; diff --git a/server_v2/src/main.cpp b/server_v2/src/main.cpp index 91c38f4..5c83c54 100644 --- a/server_v2/src/main.cpp +++ b/server_v2/src/main.cpp @@ -14,7 +14,7 @@ using namespace std; int main(int argc, char *argv[]) { Reset::reset_robot(); spdlog::set_pattern("%H:%M:%S.%e %^%-8l%$: %v"); - spdlog::set_level(spdlog::level::debug); + spdlog::set_level(spdlog::level::info); UnixSocketServer unixSocketServer; TCPSocketServer tcpSocketServer; @@ -39,7 +39,11 @@ int main(int argc, char *argv[]) { // GoToGoalController::go_to_point(2, 0, 0.2); // GoToController::drive_distance(-4, 0.2); -// GoToController::turn_degrees(180, M_PI); +// GoToController::turn_degrees(90, M_PI); +// this_thread::sleep_for(std::chrono::milliseconds(100)); +// GoToController::turn_degrees(-90, M_PI); + + // while (true) { // this_thread::sleep_for(std::chrono::milliseconds(10)); // ClosedLoopMotorController::getInstance().set_power(0, 100); @@ -69,6 +73,7 @@ int main(int argc, char *argv[]) { // ClosedLoopMotorController::getInstance().generate_step_response_data(); // ClosedLoopMotorController::getInstance().generate_tuned_step_response_data(); +// this_thread::sleep_for(std::chrono::milliseconds(1000)); std::this_thread::sleep_for(std::chrono::hours(12)); return 0; } From 72c5af8b56d9e2095ad7032cfbc6e6d40aebf311 Mon Sep 17 00:00:00 2001 From: Joel Klimont Date: Sun, 28 Aug 2022 15:59:11 +0200 Subject: [PATCH 178/246] started working on seeding gamestate and double elimination api --- client_s2/compLib/DoubleElimination.py | 143 +++++++++++++++++++++++++ client_s2/compLib/Seeding.py | 2 + 2 files changed, 145 insertions(+) create mode 100644 client_s2/compLib/DoubleElimination.py create mode 100644 client_s2/compLib/Seeding.py diff --git a/client_s2/compLib/DoubleElimination.py b/client_s2/compLib/DoubleElimination.py new file mode 100644 index 0000000..3623bcd --- /dev/null +++ b/client_s2/compLib/DoubleElimination.py @@ -0,0 +1,143 @@ +import json +import os +import time +from typing import Tuple, List, Dict + +import requests as requests +import logging + +logger = logging.getLogger("seeding-api") + +ch = logging.StreamHandler() +ch.setLevel(logging.DEBUG) +formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s") +ch.setFormatter(formatter) +logger.addHandler(ch) + +RETRY_TIMEOUT = 0.05 + +# TODO: rethink how the api url is read +API_URL = os.getenv("API_URL", "http://localhost:5000/") + "api/" + +api_override = os.getenv("API_FORCE", "") + +if api_override != "": + print(f"API_URL was set to {API_URL} but was overwritten with {api_override}") + API_URL = api_override + +API_URL_GET_ROBOT_STATE = API_URL + "getRobotState" + +API_URL_GET_POS = API_URL + "getPos" +API_URL_GET_OP = API_URL + "getOp" +API_URL_GET_GOAL = API_URL + "getGoal" +API_URL_GET_ITEMS = API_URL + "getItems" +API_URL_GET_SCORES = API_URL + "getScores" + + +class Position: + """Datastructure for holding a position + """ + + def __init__(self, x, y, degrees): + self.x = x + self.y = y + self.degrees = degrees + + def __repr__(self): + return "{x=%s, y=%s, degrees=%s}" % self.x, self.y, self.degrees + + def __str__(self): + return f"Position(x={round(self.x, 5)}, y={round(self.y, 5)}, degrees={round(self.degrees, 5)})" + + @staticmethod + def position_from_json(json_str: Dict): + return Position(json_str["x"], json_str["y"], json_str["degrees"]) + + +class DoubleElim: + """Class used for communicating with double elimination api + """ + + @staticmethod + def get_position() -> Tuple[Position, int]: + """Makes the /api/getPos call to the api. + :return: A Position object with robot position + :rtype: Tuple[Position, int] + """ + res = requests.get(API_URL_GET_POS) + if res.status_code == 408: + logger.error(f"DoubleElim.get_position timeout. API={API_URL_GET_POS}") + time.sleep(RETRY_TIMEOUT) + return DoubleElim.get_position() + + response = json.loads(res.content) + logger.debug(f"DoubleElim.get_position = {response}, status code = {res.status_code}") + return Position(response["x"], response["y"], response["degrees"]), res.status_code + + @staticmethod + def get_opponent() -> Tuple[Position, int]: + """Makes the /api/getOp call to the api. + :return: A Position object with opponents robot position + :rtype: Tuple[Position, int] + """ + res = requests.get(API_URL_GET_OP) + if res.status_code == 408: + logger.error(f"DoubleElim.get_opponent timeout. API={API_URL_GET_OP}") + time.sleep(RETRY_TIMEOUT) + return DoubleElim.get_opponent() + + response = json.loads(res.content) + logger.debug(f"DoubleElim.get_opponent = x:{response}, status code = {res.status_code}") + return Position(response["x"], response["y"], response["degrees"]), res.status_code + + @staticmethod + def get_goal() -> Tuple[Position, int]: + """Makes the /api/getGoal call to the api. + :return: A Position object with x and y coordinates of the goal, rotation is always -1 + :rtype: Tuple[Position, int] + """ + res = requests.get(API_URL_GET_GOAL) + if res.status_code == 408: + logger.error(f"DoubleElim.get_goal timeout. API={API_URL_GET_GOAL}") + time.sleep(RETRY_TIMEOUT) + return DoubleElim.get_goal() + + response = json.loads(res.content) + logger.debug(f"DoubleElim.get_goal = {response}, status code = {res.status_code}") + return Position(response["x"], response["y"], -1), res.status_code + + @staticmethod + def get_items() -> Tuple[List[Dict], int]: + """Makes the /api/getItems call to the api. + :return: A list will all items currently on the game field. Items are dictionaries that look like: {"id": 0, "x": 0, "y": 0} + :rtype: Tuple[List[Dict], int] + """ + res = requests.get(API_URL_GET_ITEMS) + if res.status_code == 408: + logger.error(f"DoubleElim.get_items timeout. API={API_URL_GET_ITEMS}") + time.sleep(RETRY_TIMEOUT) + return DoubleElim.get_items() + elif res.status_code == 503: + return [], 503 + + response = json.loads(res.content) + logger.debug(f"DoubleElim.get_items = {response}, status code = {res.status_code}") + return response, res.status_code + + @staticmethod + def get_scores() -> Tuple[Dict, int]: + """Makes the /api/getScores call to the api. + :return: A dictionary with all scores included like: {"self":2,"opponent":0} + :rtype: Tuple[Dict, int] + """ + res = requests.get(API_URL_GET_SCORES) + if res.status_code == 408: + logger.error(f"DoubleElim.get_scores timeout. API={API_URL_GET_SCORES}") + time.sleep(RETRY_TIMEOUT) + return DoubleElim.get_scores() + elif res.status_code == 503: + return {"self": 0, "opponent": 0}, 503 + + response = json.loads(res.content) + logger.debug(f"DoubleElim.get_scores = {response}, status code = {res.status_code}") + return response, res.status_code diff --git a/client_s2/compLib/Seeding.py b/client_s2/compLib/Seeding.py new file mode 100644 index 0000000..f63aabc --- /dev/null +++ b/client_s2/compLib/Seeding.py @@ -0,0 +1,2 @@ + +# TODO: add gamestate etc From 52c22995d39596745310abeef51e8b9a76aa079f Mon Sep 17 00:00:00 2001 From: Joel Klimont Date: Sun, 28 Aug 2022 16:22:03 +0200 Subject: [PATCH 179/246] added seeding gamestate --- client_s2/compLib/Seeding.py | 87 +++++++++++++++++++++++++++++++++++- 1 file changed, 86 insertions(+), 1 deletion(-) diff --git a/client_s2/compLib/Seeding.py b/client_s2/compLib/Seeding.py index f63aabc..e3affc3 100644 --- a/client_s2/compLib/Seeding.py +++ b/client_s2/compLib/Seeding.py @@ -1,2 +1,87 @@ +import numpy as np -# TODO: add gamestate etc + +# TODO: if set to competition mode, get the seed from the api + +def set_random_seed(seed: int): + np.random.seed(seed) + + +def get_random_number(min: int, max: int): + return np.random.randint(256 ** 4, dtype=' str: + return f"""Seed: {self.seed} +Heu Color: {self.heu_color} +Material Pairs: {self.material_pairs} +Material Zones: {self.materials} +Logistic Plan: {self.logistic_plan} +Logistic Centers: {self.logistic_center}""" + + def __init__(self, seed: int): + self.seed = seed + set_random_seed(seed) + + self.heu_color = get_random_number(1, 2) + + self.materials = [0, 0, 0, 0] + self.material_pairs = [] + for i in range(0, 4): + num1 = get_random_number(0, 3) + self.material_pairs.append([num1, num1]) + while self.material_pairs[i][1] == num1: + self.material_pairs[i][1] = get_random_number(0, 3) + + flat = [item for sublist in self.material_pairs for item in sublist] + for i in range(0, 4): + self.materials[i] = flat.count(i) + + self.logistic_plan = [0 for i in range(0, 21)] + self.logistic_center = [[0, 0, 0, 0] for i in range(0, 4)] + visited = [5, 5, 5, 5] + + def __logistic_plan_generator(i: int): + drive_to = get_random_number(0, 3) + for j in range(0, 4): + drive_to = (drive_to + j) % 4 + if visited[drive_to] <= 0 or drive_to == self.logistic_plan[i - 1]: + continue + self.logistic_plan[i] = drive_to + + visited[drive_to] -= 1 + finished = True + for k in visited: + if k != 0: + finished = False + + if finished and drive_to == 2: + visited[drive_to] += 1 + continue + + if finished: + return True + + if i < len(self.logistic_plan): + if __logistic_plan_generator(i + 1): + return True + visited[drive_to] += 1 + return False + + self.logistic_plan[0] = 2 + visited[2] -= 1 + _ = __logistic_plan_generator(1) + + self.logistic_plan[-1] = 2 + for i in range(0, len(self.logistic_plan) - 1): + self.logistic_center[self.logistic_plan[i]][self.logistic_plan[i + 1]] += 1 + + def get_heuballen(self) -> int: + return self.heu_color + + def get_logistic_plan(self) -> []: + return self.logistic_plan + + def get_material_deliveries(self) -> [[]]: + return self.material_pairs From f03b9d51b55409a4553fbcd2e3d474b8b054beed Mon Sep 17 00:00:00 2001 From: Joel Klimont Date: Fri, 30 Sep 2022 17:49:42 +0200 Subject: [PATCH 180/246] added seeding api --- client_s2/compLib/Api.py | 56 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 client_s2/compLib/Api.py diff --git a/client_s2/compLib/Api.py b/client_s2/compLib/Api.py new file mode 100644 index 0000000..0a585ef --- /dev/null +++ b/client_s2/compLib/Api.py @@ -0,0 +1,56 @@ +import json +import logging +import os +from typing import Dict, Tuple, List + +import requests + +logger = logging.getLogger("seeding-api") + +API_URL = os.getenv("API_URL", "http://localhost:5000/") + "api/" + +api_override = os.getenv("API_FORCE", "") + +if api_override != "": + print(f"API_URL was set to {API_URL} but was overwritten with {api_override}") + API_URL = api_override + +API_URL_GET_HEU = API_URL + "getHeuballen" +API_URL_GET_LOGISTIC_PLAN = API_URL + "getLogisticPlan" +API_URL_GET_ROBOT_STATE = API_URL + "getRobotState" + + +class Seeding: + """Class used for communicating with seeding api + """ + + @staticmethod + def get_heu() -> Tuple[Dict, int]: + """Makes the /api/getHeuballen call to the api. + + :return: Json Object and status code as returned by the api. + :rtype: Tuple[Dict, int] + """ + res = requests.get(API_URL_GET_HEU) + result = json.loads(res.content) + logger.debug(f"Seeding.get_heu = {result}, status code = {res.status_code}") + return result + + @staticmethod + def get_logistic_plan() -> Tuple[Dict, int]: + """Makes the /api/getLogisticPlan call to the api. + + :return: Json Object and status code as returned by the api. + :rtype: List + """ + res = requests.get(API_URL_GET_LOGISTIC_PLAN) + result = json.loads(res.content) + logger.debug(f"Seeding.get_logistic_plan = {result}, status code = {res.status_code}") + return result + + @staticmethod + def get_robot_state() -> Tuple[Dict, int]: + res = requests.get(API_URL_GET_ROBOT_STATE) + result = json.loads(res.content) + logger.debug(f"Seeding.get_robot_state {result}, status code = {res.status_code}") + return result, res.status_code From 6946ce9957b36bfd662516291b9c417b07733888 Mon Sep 17 00:00:00 2001 From: DuSack1220 Date: Sat, 1 Oct 2022 16:50:49 +0200 Subject: [PATCH 181/246] added unittest for seeding gamestate generation fixed bug in gamestate.get_logistic_plan --- client_s2/compLib/Seeding.py | 2 ++ client_s2/test.py | 17 +++++++++++++++++ 2 files changed, 19 insertions(+) create mode 100644 client_s2/test.py diff --git a/client_s2/compLib/Seeding.py b/client_s2/compLib/Seeding.py index e3affc3..ab49a21 100644 --- a/client_s2/compLib/Seeding.py +++ b/client_s2/compLib/Seeding.py @@ -77,6 +77,8 @@ Logistic Centers: {self.logistic_center}""" for i in range(0, len(self.logistic_plan) - 1): self.logistic_center[self.logistic_plan[i]][self.logistic_plan[i + 1]] += 1 + self.logistic_plan = [x + 10 for x in self.logistic_plan] + def get_heuballen(self) -> int: return self.heu_color diff --git a/client_s2/test.py b/client_s2/test.py new file mode 100644 index 0000000..9d4b99c --- /dev/null +++ b/client_s2/test.py @@ -0,0 +1,17 @@ +import unittest +import compLib.Seeding as Seeding + + +class SeedingTest(unittest.TestCase): + def test_basic_seed(self): + gamestate = Seeding.Gamestate(0) + self.assertEqual(gamestate.seed, 0) + self.assertEqual(gamestate.heu_color, 1) + self.assertEqual(gamestate.get_heuballen(), 1) + self.assertEqual(gamestate.get_logistic_plan(), + [12, 13, 10, 13, 12, 10, 11, 10, 12, 11, 12, 13, 10, 12, 10, 11, 13, 11, 13, 11, 12]) + self.assertEqual(gamestate.get_material_deliveries(), [[3, 1], [0, 3], [3, 1], [3, 1]]) + + +if __name__ == '__main__': + unittest.main() From c325a2c7c24772b6c7e2993d918fee4d5a80733b Mon Sep 17 00:00:00 2001 From: DuSack1220 Date: Sat, 1 Oct 2022 17:37:24 +0200 Subject: [PATCH 182/246] added unittest for seeding api added get_material_deliveries to seeding api started working on de api test --- client_s2/compLib/Api.py | 25 +++++++++++++++++++------ client_s2/test.py | 19 +++++++++++++++++++ 2 files changed, 38 insertions(+), 6 deletions(-) diff --git a/client_s2/compLib/Api.py b/client_s2/compLib/Api.py index 0a585ef..02810dc 100644 --- a/client_s2/compLib/Api.py +++ b/client_s2/compLib/Api.py @@ -17,6 +17,7 @@ if api_override != "": API_URL_GET_HEU = API_URL + "getHeuballen" API_URL_GET_LOGISTIC_PLAN = API_URL + "getLogisticPlan" +API_URL_GET_MATERIAL_DELIVERIES = API_URL + "getMaterialDeliveries" API_URL_GET_ROBOT_STATE = API_URL + "getRobotState" @@ -25,19 +26,19 @@ class Seeding: """ @staticmethod - def get_heu() -> Tuple[Dict, int]: + def get_heuballen() -> int: """Makes the /api/getHeuballen call to the api. - :return: Json Object and status code as returned by the api. - :rtype: Tuple[Dict, int] + :return: hueballencode as int. + :rtype: int """ res = requests.get(API_URL_GET_HEU) result = json.loads(res.content) - logger.debug(f"Seeding.get_heu = {result}, status code = {res.status_code}") - return result + logger.debug(f"Seeding.get_heuballen = {result}, status code = {res.status_code}") + return result["heuballen"] @staticmethod - def get_logistic_plan() -> Tuple[Dict, int]: + def get_logistic_plan() -> List: """Makes the /api/getLogisticPlan call to the api. :return: Json Object and status code as returned by the api. @@ -48,6 +49,18 @@ class Seeding: logger.debug(f"Seeding.get_logistic_plan = {result}, status code = {res.status_code}") return result + @staticmethod + def get_material_deliveries() -> List: + """Makes the /api/getMaterialDeliveries call to the api. + + :return: Json Object and status code as returned by the api. + :rtype: List + """ + res = requests.get(API_URL_GET_LOGISTIC_PLAN) + result = json.loads(res.content) + logger.debug(f"Seeding.get_material_deliveries = {result}, status code = {res.status_code}") + return result + @staticmethod def get_robot_state() -> Tuple[Dict, int]: res = requests.get(API_URL_GET_ROBOT_STATE) diff --git a/client_s2/test.py b/client_s2/test.py index 9d4b99c..7ff19b7 100644 --- a/client_s2/test.py +++ b/client_s2/test.py @@ -1,5 +1,8 @@ +import os import unittest import compLib.Seeding as Seeding +import compLib.Api as SeedingApi +import compLib.DoubleElimination as De class SeedingTest(unittest.TestCase): @@ -13,5 +16,21 @@ class SeedingTest(unittest.TestCase): self.assertEqual(gamestate.get_material_deliveries(), [[3, 1], [0, 3], [3, 1], [3, 1]]) +class SeedingApiTest(unittest.TestCase): + def test_api_seeding(self): + gamestate = Seeding.Gamestate(0) + seeding_api = SeedingApi.Seeding() + self.assertEqual(seeding_api.get_heuballen(), gamestate.get_heuballen()) + self.assertEqual(seeding_api.get_logistic_plan(), gamestate.get_logistic_plan()) + #self.assertEqual(seeding_api.get_material_deliveries(), gamestate.get_material_deliveries()) + + +class DeApiTest(unittest.TestCase): + def test_api_de(self): + de = De.DoubleElim() + print(de.get_goal()) + #self.assertEqual(de.get_goal(), ) + + if __name__ == '__main__': unittest.main() From f6b27971c4bedbfa87d1d22201d850332cddce2a Mon Sep 17 00:00:00 2001 From: Joel Klimont Date: Sat, 1 Oct 2022 19:11:04 +0200 Subject: [PATCH 183/246] added more tests for double elimination and seeding added eq and nq functions for Position class in de fixed error in de function that would occur if the game has not started yet --- client_s2/compLib/Api.py | 1 + client_s2/compLib/DoubleElimination.py | 20 ++++++- client_s2/test.py | 79 +++++++++++++++++++++++--- 3 files changed, 88 insertions(+), 12 deletions(-) diff --git a/client_s2/compLib/Api.py b/client_s2/compLib/Api.py index 02810dc..288162e 100644 --- a/client_s2/compLib/Api.py +++ b/client_s2/compLib/Api.py @@ -8,6 +8,7 @@ import requests logger = logging.getLogger("seeding-api") API_URL = os.getenv("API_URL", "http://localhost:5000/") + "api/" +CONF_URL = os.getenv("API_URL", "http://localhost:5000/") + "config/" api_override = os.getenv("API_FORCE", "") diff --git a/client_s2/compLib/DoubleElimination.py b/client_s2/compLib/DoubleElimination.py index 3623bcd..9cb4ae1 100644 --- a/client_s2/compLib/DoubleElimination.py +++ b/client_s2/compLib/DoubleElimination.py @@ -44,11 +44,19 @@ class Position: self.degrees = degrees def __repr__(self): - return "{x=%s, y=%s, degrees=%s}" % self.x, self.y, self.degrees + return "{x=%s, y=%s, degrees=%s}" % (self.x, self.y, self.degrees) def __str__(self): return f"Position(x={round(self.x, 5)}, y={round(self.y, 5)}, degrees={round(self.degrees, 5)})" + def __eq__(self, o: object) -> bool: + if isinstance(o, Position): + return self.x == o.x and self.y == o.y and self.degrees == o.degrees + return False + + def __ne__(self, o: object) -> bool: + return not self.__eq__(o) + @staticmethod def position_from_json(json_str: Dict): return Position(json_str["x"], json_str["y"], json_str["degrees"]) @@ -59,7 +67,7 @@ class DoubleElim: """ @staticmethod - def get_position() -> Tuple[Position, int]: + def get_pos() -> Tuple[Position, int]: """Makes the /api/getPos call to the api. :return: A Position object with robot position :rtype: Tuple[Position, int] @@ -68,7 +76,9 @@ class DoubleElim: if res.status_code == 408: logger.error(f"DoubleElim.get_position timeout. API={API_URL_GET_POS}") time.sleep(RETRY_TIMEOUT) - return DoubleElim.get_position() + return DoubleElim.get_pos() + elif res.status_code == 503: + return Position(0, 0, -1), 503 response = json.loads(res.content) logger.debug(f"DoubleElim.get_position = {response}, status code = {res.status_code}") @@ -85,6 +95,8 @@ class DoubleElim: logger.error(f"DoubleElim.get_opponent timeout. API={API_URL_GET_OP}") time.sleep(RETRY_TIMEOUT) return DoubleElim.get_opponent() + elif res.status_code == 503: + return Position(0, 0, -1), 503 response = json.loads(res.content) logger.debug(f"DoubleElim.get_opponent = x:{response}, status code = {res.status_code}") @@ -101,6 +113,8 @@ class DoubleElim: logger.error(f"DoubleElim.get_goal timeout. API={API_URL_GET_GOAL}") time.sleep(RETRY_TIMEOUT) return DoubleElim.get_goal() + elif res.status_code == 503: + return Position(0, 0, -1), 503 response = json.loads(res.content) logger.debug(f"DoubleElim.get_goal = {response}, status code = {res.status_code}") diff --git a/client_s2/test.py b/client_s2/test.py index 7ff19b7..d5d557a 100644 --- a/client_s2/test.py +++ b/client_s2/test.py @@ -1,5 +1,7 @@ -import os +import json import unittest +import requests + import compLib.Seeding as Seeding import compLib.Api as SeedingApi import compLib.DoubleElimination as De @@ -16,20 +18,79 @@ class SeedingTest(unittest.TestCase): self.assertEqual(gamestate.get_material_deliveries(), [[3, 1], [0, 3], [3, 1], [3, 1]]) +def util_get_info(): + res = requests.get(SeedingApi.CONF_URL + "getInfo") + return json.loads(res.text) + + +def util_set_seeding(): + res = requests.get(SeedingApi.CONF_URL + "setToSeeding") + return res.status_code == 200 + + +def util_set_de(): + res = requests.get(SeedingApi.CONF_URL + "setToDoubleElim") + return res.status_code == 200 + + +def util_start_match(): + res = requests.get(SeedingApi.CONF_URL + "startMatch") + return res.status_code == 200 + + +def util_reset_state(): + res = requests.get(SeedingApi.CONF_URL + "resetState") + return res.status_code == 200 + + +def util_set_seed(seed): + res = requests.get(SeedingApi.CONF_URL + "resetState", params={"seed": seed}) + return res.status_code == 200 + + class SeedingApiTest(unittest.TestCase): - def test_api_seeding(self): - gamestate = Seeding.Gamestate(0) - seeding_api = SeedingApi.Seeding() - self.assertEqual(seeding_api.get_heuballen(), gamestate.get_heuballen()) - self.assertEqual(seeding_api.get_logistic_plan(), gamestate.get_logistic_plan()) - #self.assertEqual(seeding_api.get_material_deliveries(), gamestate.get_material_deliveries()) + def test_api_seeding_extensive(self): + self.assertTrue(util_set_seeding()) + self.assertTrue(util_get_info()["is_seeding"]) + for seed in range(0, 256): + print(f"Testing seed: {seed}") + gamestate = Seeding.Gamestate(seed) + self.assertTrue(util_set_seed(seed)) + seeding_api = SeedingApi.Seeding() + self.assertEqual(seeding_api.get_heuballen(), gamestate.get_heuballen()) + self.assertEqual(seeding_api.get_logistic_plan(), gamestate.get_logistic_plan()) + # self.assertEqual(seeding_api.get_material_deliveries(), gamestate.get_material_deliveries()) class DeApiTest(unittest.TestCase): def test_api_de(self): + self.assertTrue(util_set_de()) + self.assertTrue(util_reset_state()) + self.assertFalse(util_get_info()["is_seeding"]) + de = De.DoubleElim() - print(de.get_goal()) - #self.assertEqual(de.get_goal(), ) + self.assertEqual(de.get_pos(), (De.Position(0, 0, -1), 503)) + self.assertEqual(de.get_opponent(), (De.Position(0, 0, -1), 503)) + self.assertEqual(de.get_goal(), (De.Position(0, 0, -1), 503)) + self.assertEqual(de.get_items(), ([], 503)) + self.assertEqual(de.get_scores(), ({"self": 0, "opponent": 0}, 503)) + + self.assertTrue(util_start_match()) + self.assertLessEqual(util_get_info()["timeleft"], 120) + + self.assertEqual(de.get_pos()[1], 200) + self.assertEqual(de.get_opponent()[1], 200) + self.assertEqual(de.get_goal()[1], 200) + self.assertEqual(de.get_items()[1], 200) + self.assertEqual(de.get_scores()[1], 200) + + self.assertTrue(0 <= de.get_pos()[0].x <= 250) + self.assertTrue(0 <= de.get_pos()[0].y <= 250) + self.assertTrue(0 <= de.get_pos()[0].degrees <= 360) + self.assertEqual(de.get_items(), ([], 200)) + + self.assertTrue(util_reset_state()) + if __name__ == '__main__': From e35b992865dc56f03957cfd6fb5c7bd101a49358 Mon Sep 17 00:00:00 2001 From: Joel Klimont Date: Sat, 1 Oct 2022 20:00:27 +0200 Subject: [PATCH 184/246] get_material_deliveries test now passes --- client_s2/compLib/Api.py | 2 +- client_s2/test.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/client_s2/compLib/Api.py b/client_s2/compLib/Api.py index 288162e..68c124a 100644 --- a/client_s2/compLib/Api.py +++ b/client_s2/compLib/Api.py @@ -57,7 +57,7 @@ class Seeding: :return: Json Object and status code as returned by the api. :rtype: List """ - res = requests.get(API_URL_GET_LOGISTIC_PLAN) + res = requests.get(API_URL_GET_MATERIAL_DELIVERIES) result = json.loads(res.content) logger.debug(f"Seeding.get_material_deliveries = {result}, status code = {res.status_code}") return result diff --git a/client_s2/test.py b/client_s2/test.py index d5d557a..0f54f54 100644 --- a/client_s2/test.py +++ b/client_s2/test.py @@ -59,7 +59,7 @@ class SeedingApiTest(unittest.TestCase): seeding_api = SeedingApi.Seeding() self.assertEqual(seeding_api.get_heuballen(), gamestate.get_heuballen()) self.assertEqual(seeding_api.get_logistic_plan(), gamestate.get_logistic_plan()) - # self.assertEqual(seeding_api.get_material_deliveries(), gamestate.get_material_deliveries()) + self.assertEqual(seeding_api.get_material_deliveries(), gamestate.get_material_deliveries()) class DeApiTest(unittest.TestCase): From 8ad2d3da8e3947bdd40b32358dcb04b789e21509 Mon Sep 17 00:00:00 2001 From: Joel Klimont Date: Tue, 4 Oct 2022 18:54:48 +0200 Subject: [PATCH 185/246] started adding package building --- client_s2/MANIFEST.in | 1 + client_s2/build_deb.sh | 46 ++++++++++++++++++++++++++++ client_s2/complib.service | 11 +++++++ client_s2/postinstall.sh | 63 +++++++++++++++++++++++++++++++++++++++ client_s2/setup.py | 31 +++++++++++++++++++ 5 files changed, 152 insertions(+) create mode 100644 client_s2/MANIFEST.in create mode 100755 client_s2/build_deb.sh create mode 100644 client_s2/complib.service create mode 100644 client_s2/postinstall.sh create mode 100644 client_s2/setup.py diff --git a/client_s2/MANIFEST.in b/client_s2/MANIFEST.in new file mode 100644 index 0000000..1a69f4c --- /dev/null +++ b/client_s2/MANIFEST.in @@ -0,0 +1 @@ +include readme.md diff --git a/client_s2/build_deb.sh b/client_s2/build_deb.sh new file mode 100755 index 0000000..e45c508 --- /dev/null +++ b/client_s2/build_deb.sh @@ -0,0 +1,46 @@ +##!/usr/bin/zsh +export PYTHONDONTWRITEBYTECODE=1 + +# be sure to change version if needed! +fpm -s python --python-bin python3 --python-pip pip3 --python-package-name-prefix python3 \ + -m '"Joel Klimont" ' \ + --license 'proprietary' \ + --description 'Library for robot used in the competition' \ + --after-install postinstall.sh \ + --after-upgrade postinstall.sh \ + --deb-priority "optional" \ + --deb-systemd "complib.service" \ + -d "python3-pip" \ + -d "nginx" \ + -d "libnginx-mod-rtmp" \ + -d "libsystemd-dev" \ + -d "python3-systemd" \ + -d "gstreamer1.0-tools" \ + -d "gstreamer1.0-plugins-bad" \ + -d "gstreamer1.0-plugins-base" \ + -d "gstreamer1.0-plugins-good" \ + -d "gstreamer1.0-omx-rpi" \ + -d "gstreamer1.0-omx-rpi-config" \ + -d "opencv-dev" \ + -d "opencv-libs" \ + -d "opencv-licenses" \ + -d "opencv-main" \ + -d "opencv-python" \ + -d "opencv-scripts" \ + -d "libatlas-base-dev" \ + -d "pigpio" \ + -d "python-pigpio" \ + -d "python3-pigpio" \ + -d "python3-numpy" \ + -d "ffmpeg" \ + -v 1.0.0-1 -t deb setup.py + +# --deb-changelog changelog \ +# --deb-upstream-changelog changelog \ +# --deb-field "Distribution: stable" \ +# --deb-dist "stable" \ + +# sudo apt purge python3-complib -y +# sudo apt install ./python3-* +# sudo apt search complib +# ar vx ./python3* \ No newline at end of file diff --git a/client_s2/complib.service b/client_s2/complib.service new file mode 100644 index 0000000..758aaf7 --- /dev/null +++ b/client_s2/complib.service @@ -0,0 +1,11 @@ +[Unit] +Description=Monitoring service +[Service] +ExecStart=/usr/bin/python3 /usr/local/lib/python3.7/dist-packages/compLib/IPService.py +Environment="debug=False" +Restart=always +RestartSec=5 +Type=notify +[Install] +Alias=complib +WantedBy=default.target \ No newline at end of file diff --git a/client_s2/postinstall.sh b/client_s2/postinstall.sh new file mode 100644 index 0000000..fabfa94 --- /dev/null +++ b/client_s2/postinstall.sh @@ -0,0 +1,63 @@ +grep -qxF "apt update" /etc/rc.local +if [ $? -ne 0 ]; then + echo "adding apt update to rc.local" + sed -i "2s/^/apt update\n/" /etc/rc.local +fi + +install_package() { + echo "Installing package '$1' via pip3" + pip3 install "$1" + if [ $? -eq 0 ]; then + echo "Successfully installed pip3 package '$1'" + else + echo "Could not install pip3 package '$1'" + exit 1 + fi +} + +#install_package "smbus" +#install_package "requests" +#install_package "flask" +#install_package "python-logstash-async" +#install_package "RPi.GPIO" +#install_package "spidev" +#install_package "influxdb_client" + +pip3 install smbus requests flask python-logstash-async RPi.GPIO spidev influxdb_client filelock + +echo "Setting up opencv4" +pkg-config --modversion opencv4 + +echo "Setting up nginx rtmp server" +sudo /etc/init.d/nginx start + +{ + echo 'load_module "modules/ngx_rtmp_module.so";' + echo 'worker_processes auto;' + echo 'rtmp_auto_push on;' + echo 'events {}' + echo 'rtmp {' + echo ' server {' + echo ' listen 1935;' + echo ' listen [::]:1935 ipv6only=on;' + echo ' application live {' + echo ' live on;' + echo ' record off;' + echo ' }' + echo ' }' + echo '}' +} >| /etc/nginx/nginx.conf + +echo "Starting pigpiod daemon" + +sudo systemctl start pigpiod +sudo systemctl enable pigpiod + +base64 -d << UPD +CiBfX19fX18gICAgIF9fX19fXyAgICAgX18gICAgX18gICAgIF9fX19fXyAgIF9fICAgICAgICAgX18gICAgIF9fX19fXyAgICAgICAgICAgICAgICAgIAovXCAgX19fXCAgIC9cICBfXyBcICAgL1wgIi0uLyAgXCAgIC9cICA9PSBcIC9cIFwgICAgICAgL1wgXCAgIC9cICA9PSBcICAgICAgICAgICAgICAgICAKXCBcIFxfX19fICBcIFwgXC9cIFwgIFwgXCBcLS4vXCBcICBcIFwgIF8tLyBcIFwgXF9fX18gIFwgXCBcICBcIFwgIF9fPCAgICAgICAgICAgICAgICAgCiBcIFxfX19fX1wgIFwgXF9fX19fXCAgXCBcX1wgXCBcX1wgIFwgXF9cICAgIFwgXF9fX19fXCAgXCBcX1wgIFwgXF9fX19fXCAgICAgICAgICAgICAgIAogIFwvX19fX18vICAgXC9fX19fXy8gICBcL18vICBcL18vICAgXC9fLyAgICAgXC9fX19fXy8gICBcL18vICAgXC9fX19fXy8gICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiBfXyAgX18gICAgIF9fX19fXyAgICAgIF9fX19fXyAgIF9fX19fXyAgICAgICAgX19fX18gICAgIF9fX19fXyAgICAgX19fX19fICAgX19fX19fICAgIAovXCBcL1wgXCAgIC9cICA9PSBcICAgIC9cX18gIF9cIC9cICBfXyBcICAgICAgL1wgIF9fLS4gIC9cICBfXyBcICAgL1xfXyAgX1wgL1wgIF9fX1wgICAKXCBcIFxfXCBcICBcIFwgIF8tLyAgICBcL18vXCBcLyBcIFwgXC9cIFwgICAgIFwgXCBcL1wgXCBcIFwgIF9fIFwgIFwvXy9cIFwvIFwgXCAgX19cICAgCiBcIFxfX19fX1wgIFwgXF9cICAgICAgICAgXCBcX1wgIFwgXF9fX19fXCAgICAgXCBcX19fXy0gIFwgXF9cIFxfXCAgICBcIFxfXCAgXCBcX19fX19cIAogIFwvX19fX18vICAgXC9fLyAgICAgICAgICBcL18vICAgXC9fX19fXy8gICAgICBcL19fX18vICAgXC9fL1wvXy8gICAgIFwvXy8gICBcL19fX19fLyA= +UPD +echo "" +echo "" + +service complib restart +systemctl enable complib diff --git a/client_s2/setup.py b/client_s2/setup.py new file mode 100644 index 0000000..464b3f1 --- /dev/null +++ b/client_s2/setup.py @@ -0,0 +1,31 @@ +#!/usr/bin/env python3 +import setuptools +import os + +base_dir = os.path.dirname(__file__) +readme_path = os.path.join(base_dir, "README.md") +if os.path.exists(readme_path): + with open(readme_path) as stream: + long_description = stream.read() +else: + long_description = "" + +setuptools.setup( + name="complib", + author="F-WuTs", + author_email="joel.klimont@comp-air.at", + description="", + summary="Robot client library for the compAIR competition", + platforms=["any"], + long_description=long_description, + long_description_content_type="text/markdown", + url="https://github.com/F-WuTS/compLIB", + packages=setuptools.find_packages(), + include_package_data=True, + classifiers=[ + "Programming Language :: Python :: 3.7", + "License :: Other/Proprietary License", + "Operating System :: Unix" + ], + license="proprietary" +) From 5b2b7e4ea427c71325d959cbcf21afdd59bf92c7 Mon Sep 17 00:00:00 2001 From: Joel Klimont Date: Tue, 4 Oct 2022 19:01:25 +0200 Subject: [PATCH 186/246] removed pigpio as dependency --- client_s2/build_deb.sh | 3 --- client_s2/postinstall.sh | 5 ----- 2 files changed, 8 deletions(-) diff --git a/client_s2/build_deb.sh b/client_s2/build_deb.sh index e45c508..ec63053 100755 --- a/client_s2/build_deb.sh +++ b/client_s2/build_deb.sh @@ -28,9 +28,6 @@ fpm -s python --python-bin python3 --python-pip pip3 --python-package-name-prefi -d "opencv-python" \ -d "opencv-scripts" \ -d "libatlas-base-dev" \ - -d "pigpio" \ - -d "python-pigpio" \ - -d "python3-pigpio" \ -d "python3-numpy" \ -d "ffmpeg" \ -v 1.0.0-1 -t deb setup.py diff --git a/client_s2/postinstall.sh b/client_s2/postinstall.sh index fabfa94..5dce4fd 100644 --- a/client_s2/postinstall.sh +++ b/client_s2/postinstall.sh @@ -48,11 +48,6 @@ sudo /etc/init.d/nginx start echo '}' } >| /etc/nginx/nginx.conf -echo "Starting pigpiod daemon" - -sudo systemctl start pigpiod -sudo systemctl enable pigpiod - base64 -d << UPD CiBfX19fX18gICAgIF9fX19fXyAgICAgX18gICAgX18gICAgIF9fX19fXyAgIF9fICAgICAgICAgX18gICAgIF9fX19fXyAgICAgICAgICAgICAgICAgIAovXCAgX19fXCAgIC9cICBfXyBcICAgL1wgIi0uLyAgXCAgIC9cICA9PSBcIC9cIFwgICAgICAgL1wgXCAgIC9cICA9PSBcICAgICAgICAgICAgICAgICAKXCBcIFxfX19fICBcIFwgXC9cIFwgIFwgXCBcLS4vXCBcICBcIFwgIF8tLyBcIFwgXF9fX18gIFwgXCBcICBcIFwgIF9fPCAgICAgICAgICAgICAgICAgCiBcIFxfX19fX1wgIFwgXF9fX19fXCAgXCBcX1wgXCBcX1wgIFwgXF9cICAgIFwgXF9fX19fXCAgXCBcX1wgIFwgXF9fX19fXCAgICAgICAgICAgICAgIAogIFwvX19fX18vICAgXC9fX19fXy8gICBcL18vICBcL18vICAgXC9fLyAgICAgXC9fX19fXy8gICBcL18vICAgXC9fX19fXy8gICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiBfXyAgX18gICAgIF9fX19fXyAgICAgIF9fX19fXyAgIF9fX19fXyAgICAgICAgX19fX18gICAgIF9fX19fXyAgICAgX19fX19fICAgX19fX19fICAgIAovXCBcL1wgXCAgIC9cICA9PSBcICAgIC9cX18gIF9cIC9cICBfXyBcICAgICAgL1wgIF9fLS4gIC9cICBfXyBcICAgL1xfXyAgX1wgL1wgIF9fX1wgICAKXCBcIFxfXCBcICBcIFwgIF8tLyAgICBcL18vXCBcLyBcIFwgXC9cIFwgICAgIFwgXCBcL1wgXCBcIFwgIF9fIFwgIFwvXy9cIFwvIFwgXCAgX19cICAgCiBcIFxfX19fX1wgIFwgXF9cICAgICAgICAgXCBcX1wgIFwgXF9fX19fXCAgICAgXCBcX19fXy0gIFwgXF9cIFxfXCAgICBcIFxfXCAgXCBcX19fX19cIAogIFwvX19fX18vICAgXC9fLyAgICAgICAgICBcL18vICAgXC9fX19fXy8gICAgICBcL19fX18vICAgXC9fL1wvXy8gICAgIFwvXy8gICBcL19fX19fLyA= UPD From cc79faf13f51b614ff57c13b8e07cf0a73c96ced Mon Sep 17 00:00:00 2001 From: Joel Klimont Date: Tue, 4 Oct 2022 20:28:58 +0200 Subject: [PATCH 187/246] started working on compsrv package --- server_v2/CMakeLists.txt | 0 server_v2/build_deb.sh | 17 +++++++++++++++++ server_v2/compsrv.service | 11 +++++++++++ server_v2/postinstall.sh | 3 +++ 4 files changed, 31 insertions(+) mode change 100644 => 100755 server_v2/CMakeLists.txt create mode 100755 server_v2/build_deb.sh create mode 100755 server_v2/compsrv.service create mode 100755 server_v2/postinstall.sh diff --git a/server_v2/CMakeLists.txt b/server_v2/CMakeLists.txt old mode 100644 new mode 100755 diff --git a/server_v2/build_deb.sh b/server_v2/build_deb.sh new file mode 100755 index 0000000..3088c81 --- /dev/null +++ b/server_v2/build_deb.sh @@ -0,0 +1,17 @@ +fpm \ + -s dir -t deb \ + -m '"Joel Klimont" ' \ + --license 'proprietary' \ + --description 'Library for robot used in the competition' \ + --deb-priority "optional" \ + --deb-systemd "compsrv.service" \ + --after-install postinstall.sh \ + --after-upgrade postinstall.sh \ + -p compsrv-1.0.0-0-any.deb \ + --name compsrv \ + --version 1.0.0-0 \ + --architecture all \ + ./build/compsrv=/usr/bin/compsrv + +# dpkg-deb -xv compsrv-1.0.0-0-any.deb test_bin +# sudo rm -rf test_bin/usr test_bin/lib diff --git a/server_v2/compsrv.service b/server_v2/compsrv.service new file mode 100755 index 0000000..94548d7 --- /dev/null +++ b/server_v2/compsrv.service @@ -0,0 +1,11 @@ +[Unit] +Description=Complib backend control server +[Service] +ExecStart=/usr/bin/compsrv +Environment="debug=False" +Restart=always +RestartSec=5 +Type=notify +[Install] +Alias=compsrv +WantedBy=default.target \ No newline at end of file diff --git a/server_v2/postinstall.sh b/server_v2/postinstall.sh new file mode 100755 index 0000000..ecbb41a --- /dev/null +++ b/server_v2/postinstall.sh @@ -0,0 +1,3 @@ +#!/bin/sh +service compsrv restart +systemctl enable compsrv From 2dc55fe8e2bec08c04c6c7239ccd9235a871ef4e Mon Sep 17 00:00:00 2001 From: Joel Klimont Date: Tue, 4 Oct 2022 20:30:56 +0200 Subject: [PATCH 188/246] added test binary for packaging --- server_v2/test_bin/compsrv | Bin 0 -> 1507968 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 server_v2/test_bin/compsrv diff --git a/server_v2/test_bin/compsrv b/server_v2/test_bin/compsrv new file mode 100644 index 0000000000000000000000000000000000000000..a7feb72b1aaa9687b2fd01be07536f5406be5155 GIT binary patch literal 1507968 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≥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 literal 0 HcmV?d00001 From 222d274ea728f95de82193e6a862ce39ebf636ea Mon Sep 17 00:00:00 2001 From: Joel Klimont Date: Tue, 4 Oct 2022 20:40:05 +0200 Subject: [PATCH 189/246] fixed compsrv package --- server_v2/build_deb.sh | 6 +++--- server_v2/postinstall.sh | 1 - 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/server_v2/build_deb.sh b/server_v2/build_deb.sh index 3088c81..4f6404a 100755 --- a/server_v2/build_deb.sh +++ b/server_v2/build_deb.sh @@ -11,7 +11,7 @@ fpm \ --name compsrv \ --version 1.0.0-0 \ --architecture all \ - ./build/compsrv=/usr/bin/compsrv + ./test_bin/compsrv=/usr/bin/compsrv -# dpkg-deb -xv compsrv-1.0.0-0-any.deb test_bin -# sudo rm -rf test_bin/usr test_bin/lib +# MUST BE RUN IN BASH, zsh has 'ar' as an alias to 'apt' +# ar -xv compsrv-1.0.0-0-any.deb diff --git a/server_v2/postinstall.sh b/server_v2/postinstall.sh index ecbb41a..ca80782 100755 --- a/server_v2/postinstall.sh +++ b/server_v2/postinstall.sh @@ -1,3 +1,2 @@ -#!/bin/sh service compsrv restart systemctl enable compsrv From d1e385a2a18116ecb96d86d698a29a16a58aa635 Mon Sep 17 00:00:00 2001 From: Joel Klimont Date: Tue, 4 Oct 2022 23:00:11 +0200 Subject: [PATCH 190/246] added env variable for setting a version small changed in build scripts --- client_s2/build_deb.sh | 12 ++++++++++-- client_s2/setup.py | 15 ++++----------- server_v2/build_deb.sh | 2 +- 3 files changed, 15 insertions(+), 14 deletions(-) diff --git a/client_s2/build_deb.sh b/client_s2/build_deb.sh index ec63053..73c6d7b 100755 --- a/client_s2/build_deb.sh +++ b/client_s2/build_deb.sh @@ -1,9 +1,12 @@ ##!/usr/bin/zsh export PYTHONDONTWRITEBYTECODE=1 +export VERSION="1.0.0-0" + +# BE CAREFUL TO NOT BUILD IN A PYTHON VENV! # be sure to change version if needed! fpm -s python --python-bin python3 --python-pip pip3 --python-package-name-prefix python3 \ - -m '"Joel Klimont" ' \ + -m '"Joel Klimont" ' \ --license 'proprietary' \ --description 'Library for robot used in the competition' \ --after-install postinstall.sh \ @@ -30,7 +33,12 @@ fpm -s python --python-bin python3 --python-pip pip3 --python-package-name-prefi -d "libatlas-base-dev" \ -d "python3-numpy" \ -d "ffmpeg" \ - -v 1.0.0-1 -t deb setup.py + -v $VERSION -t deb setup.py + +mkdir build_extract +mv python3-complib_"$VERSION"_all.deb build_extract +cd build_extract +ar -xv python3-complib_"$VERSION"_all.deb # --deb-changelog changelog \ # --deb-upstream-changelog changelog \ diff --git a/client_s2/setup.py b/client_s2/setup.py index 464b3f1..fb84e02 100644 --- a/client_s2/setup.py +++ b/client_s2/setup.py @@ -1,29 +1,22 @@ -#!/usr/bin/env python3 +#!/usr/bin/python3 import setuptools import os -base_dir = os.path.dirname(__file__) -readme_path = os.path.join(base_dir, "README.md") -if os.path.exists(readme_path): - with open(readme_path) as stream: - long_description = stream.read() -else: - long_description = "" +print("Using version: {str(os.environ['VERSION'])}") setuptools.setup( name="complib", + version=str(os.environ["VERSION"]), author="F-WuTs", author_email="joel.klimont@comp-air.at", description="", summary="Robot client library for the compAIR competition", platforms=["any"], - long_description=long_description, - long_description_content_type="text/markdown", url="https://github.com/F-WuTS/compLIB", packages=setuptools.find_packages(), include_package_data=True, classifiers=[ - "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3.9", "License :: Other/Proprietary License", "Operating System :: Unix" ], diff --git a/server_v2/build_deb.sh b/server_v2/build_deb.sh index 4f6404a..c34bd13 100755 --- a/server_v2/build_deb.sh +++ b/server_v2/build_deb.sh @@ -3,11 +3,11 @@ fpm \ -m '"Joel Klimont" ' \ --license 'proprietary' \ --description 'Library for robot used in the competition' \ + --url "https://github.com/F-WuTS/compLIB" \ --deb-priority "optional" \ --deb-systemd "compsrv.service" \ --after-install postinstall.sh \ --after-upgrade postinstall.sh \ - -p compsrv-1.0.0-0-any.deb \ --name compsrv \ --version 1.0.0-0 \ --architecture all \ From 1d91792c56a3acb53bb6ad68e3efa1bb33022a7a Mon Sep 17 00:00:00 2001 From: Konstantin Lampalzer Date: Wed, 5 Oct 2022 23:13:40 +0200 Subject: [PATCH 191/246] Update --- client_s2/.gitignore | 312 +++++ client_s2/compLib/.gitignore | 312 +++++ client_s2/compLib/CompLib.proto | 20 +- client_s2/compLib/CompLibClient.py | 63 +- client_s2/compLib/CompLib_pb2.py | 1145 ++++++++++++++--- client_s2/compLib/HealthCheck.py | 23 + client_s2/compLib/IRSensor.py | 5 +- client_s2/compLib/Motor.py | 48 + .../__pycache__/CompLibClient.cpython-39.pyc | Bin 1311 -> 0 bytes .../__pycache__/CompLib_pb2.cpython-39.pyc | Bin 5022 -> 0 bytes .../__pycache__/Encoder.cpython-39.pyc | Bin 1751 -> 0 bytes .../__pycache__/IRSensor.cpython-39.pyc | Bin 1656 -> 0 bytes .../compLib/__pycache__/Motor.cpython-39.pyc | Bin 1805 -> 0 bytes .../__pycache__/Movement.cpython-39.pyc | Bin 2466 -> 0 bytes .../__pycache__/__init__.cpython-39.pyc | Bin 163 -> 0 bytes client_s2/dev01.py | 24 + client_s2/dev03.py | 34 + client_s2/lf.py | 109 ++ client_s2/main.py | 170 ++- server_v2/.idea/deployment.xml | 16 +- server_v2/CMakeLists.txt | 7 +- .../include/ClosedLoopMotorController.hpp | 2 + server_v2/include/HealthChecker.hpp | 35 + .../include/communication/TCPSocketServer.hpp | 1 - server_v2/include/networkUtils.hpp | 49 + server_v2/include/spi.hpp | 2 + server_v2/protos/CompLib.proto | 20 +- server_v2/src/ClosedLoopMotorController.cpp | 6 + server_v2/src/HealthChecker.cpp | 28 + server_v2/src/IRSensors.cpp | 1 + .../src/communication/MessageProcessor.cpp | 20 +- .../src/communication/UnixSocketServer.cpp | 39 +- server_v2/src/main.cpp | 6 +- server_v2/src/spi.cpp | 15 + server_v2/test_bin/compsrv | Bin 1507968 -> 5266408 bytes 35 files changed, 2275 insertions(+), 237 deletions(-) create mode 100644 client_s2/.gitignore create mode 100644 client_s2/compLib/.gitignore create mode 100644 client_s2/compLib/HealthCheck.py delete mode 100644 client_s2/compLib/__pycache__/CompLibClient.cpython-39.pyc delete mode 100644 client_s2/compLib/__pycache__/CompLib_pb2.cpython-39.pyc delete mode 100644 client_s2/compLib/__pycache__/Encoder.cpython-39.pyc delete mode 100644 client_s2/compLib/__pycache__/IRSensor.cpython-39.pyc delete mode 100644 client_s2/compLib/__pycache__/Motor.cpython-39.pyc delete mode 100644 client_s2/compLib/__pycache__/Movement.cpython-39.pyc delete mode 100644 client_s2/compLib/__pycache__/__init__.cpython-39.pyc create mode 100644 client_s2/dev01.py create mode 100644 client_s2/dev03.py create mode 100644 client_s2/lf.py create mode 100644 server_v2/include/HealthChecker.hpp create mode 100644 server_v2/include/networkUtils.hpp create mode 100644 server_v2/src/HealthChecker.cpp mode change 100644 => 100755 server_v2/test_bin/compsrv diff --git a/client_s2/.gitignore b/client_s2/.gitignore new file mode 100644 index 0000000..bf3e4d7 --- /dev/null +++ b/client_s2/.gitignore @@ -0,0 +1,312 @@ +# Created by https://www.toptal.com/developers/gitignore/api/macos,python,pycharm +# Edit at https://www.toptal.com/developers/gitignore?templates=macos,python,pycharm + +### macOS ### +# General +.DS_Store +.AppleDouble +.LSOverride + +# Icon must end with two \r +Icon + + +# Thumbnails +._* + +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns +.com.apple.timemachine.donotpresent + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk + +### macOS Patch ### +# iCloud generated files +*.icloud + +### PyCharm ### +# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider +# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 + +# User-specific stuff +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/**/usage.statistics.xml +.idea/**/dictionaries +.idea/**/shelf + +# AWS User-specific +.idea/**/aws.xml + +# Generated files +.idea/**/contentModel.xml + +# Sensitive or high-churn files +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml +.idea/**/dbnavigator.xml + +# Gradle +.idea/**/gradle.xml +.idea/**/libraries + +# Gradle and Maven with auto-import +# When using Gradle or Maven with auto-import, you should exclude module files, +# since they will be recreated, and may cause churn. Uncomment if using +# auto-import. +# .idea/artifacts +# .idea/compiler.xml +# .idea/jarRepositories.xml +# .idea/modules.xml +# .idea/*.iml +# .idea/modules +# *.iml +# *.ipr + +# CMake +cmake-build-*/ + +# Mongo Explorer plugin +.idea/**/mongoSettings.xml + +# File-based project format +*.iws + +# IntelliJ +out/ + +# mpeltonen/sbt-idea plugin +.idea_modules/ + +# JIRA plugin +atlassian-ide-plugin.xml + +# Cursive Clojure plugin +.idea/replstate.xml + +# SonarLint plugin +.idea/sonarlint/ + +# Crashlytics plugin (for Android Studio and IntelliJ) +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties + +# Editor-based Rest Client +.idea/httpRequests + +# Android studio 3.1+ serialized cache file +.idea/caches/build_file_checksums.ser + +### PyCharm Patch ### +# Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721 + +# *.iml +# modules.xml +# .idea/misc.xml +# *.ipr + +# Sonarlint plugin +# https://plugins.jetbrains.com/plugin/7973-sonarlint +.idea/**/sonarlint/ + +# SonarQube Plugin +# https://plugins.jetbrains.com/plugin/7238-sonarqube-community-plugin +.idea/**/sonarIssues.xml + +# Markdown Navigator plugin +# https://plugins.jetbrains.com/plugin/7896-markdown-navigator-enhanced +.idea/**/markdown-navigator.xml +.idea/**/markdown-navigator-enh.xml +.idea/**/markdown-navigator/ + +# Cache file creation bug +# See https://youtrack.jetbrains.com/issue/JBR-2257 +.idea/$CACHE_FILE$ + +# CodeStream plugin +# https://plugins.jetbrains.com/plugin/12206-codestream +.idea/codestream.xml + +# Azure Toolkit for IntelliJ plugin +# https://plugins.jetbrains.com/plugin/8053-azure-toolkit-for-intellij +.idea/**/azureSettings.xml + +### Python ### +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ +cover/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +.pybuilder/ +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +# For a library or package, you might want to ignore these files since the code is +# intended to run in multiple environments; otherwise, check them in: +# .python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# poetry +# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. +# This is especially recommended for binary packages to ensure reproducibility, and is more +# commonly ignored for libraries. +# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control +#poetry.lock + +# pdm +# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control. +#pdm.lock +# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it +# in version control. +# https://pdm.fming.dev/#use-with-ide +.pdm.toml + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + +# pytype static type analyzer +.pytype/ + +# Cython debug symbols +cython_debug/ + +# PyCharm +# JetBrains specific template is maintained in a separate JetBrains.gitignore that can +# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore +# and can be added to the global gitignore or merged into this file. For a more nuclear +# option (not recommended) you can uncomment the following to ignore the entire idea folder. +#.idea/ + +# End of https://www.toptal.com/developers/gitignore/api/macos,python,pycharm diff --git a/client_s2/compLib/.gitignore b/client_s2/compLib/.gitignore new file mode 100644 index 0000000..b612971 --- /dev/null +++ b/client_s2/compLib/.gitignore @@ -0,0 +1,312 @@ +# Created by https://www.toptal.com/developers/gitignore/api/macos,python,pycharm +# Edit at https://www.toptal.com/developers/gitignore?templates=macos,python,pycharm + +### macOS ### +# General +.DS_Store +.AppleDouble +.LSOverride + +# Icon must end with two \r +Icon + + +# Thumbnails +._* + +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns +.com.apple.timemachine.donotpresent + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk + +### macOS Patch ### +# iCloud generated files +*.icloud + +### PyCharm ### +# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider +# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 + +# User-specific stuff +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/**/usage.statistics.xml +.idea/**/dictionaries +.idea/**/shelf + +# AWS User-specific +.idea/**/aws.xml + +# Generated files +.idea/**/contentModel.xml + +# Sensitive or high-churn files +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml +.idea/**/dbnavigator.xml + +# Gradle +.idea/**/gradle.xml +.idea/**/libraries + +# Gradle and Maven with auto-import +# When using Gradle or Maven with auto-import, you should exclude module files, +# since they will be recreated, and may cause churn. Uncomment if using +# auto-import. +# .idea/artifacts +# .idea/compiler.xml +# .idea/jarRepositories.xml +# .idea/modules.xml +# .idea/*.iml +# .idea/modules +# *.iml +# *.ipr + +# CMake +cmake-build-*/ + +# Mongo Explorer plugin +.idea/**/mongoSettings.xml + +# File-based project format +*.iws + +# IntelliJ +out/ + +# mpeltonen/sbt-idea plugin +.idea_modules/ + +# JIRA plugin +atlassian-ide-plugin.xml + +# Cursive Clojure plugin +.idea/replstate.xml + +# SonarLint plugin +.idea/sonarlint/ + +# Crashlytics plugin (for Android Studio and IntelliJ) +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties + +# Editor-based Rest Client +.idea/httpRequests + +# Android studio 3.1+ serialized cache file +.idea/caches/build_file_checksums.ser + +### PyCharm Patch ### +# Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721 + +# *.iml +# modules.xml +# .idea/misc.xml +# *.ipr + +# Sonarlint plugin +# https://plugins.jetbrains.com/plugin/7973-sonarlint +.idea/**/sonarlint/ + +# SonarQube Plugin +# https://plugins.jetbrains.com/plugin/7238-sonarqube-community-plugin +.idea/**/sonarIssues.xml + +# Markdown Navigator plugin +# https://plugins.jetbrains.com/plugin/7896-markdown-navigator-enhanced +.idea/**/markdown-navigator.xml +.idea/**/markdown-navigator-enh.xml +.idea/**/markdown-navigator/ + +# Cache file creation bug +# See https://youtrack.jetbrains.com/issue/JBR-2257 +.idea/$CACHE_FILE$ + +# CodeStream plugin +# https://plugins.jetbrains.com/plugin/12206-codestream +.idea/codestream.xml + +# Azure Toolkit for IntelliJ plugin +# https://plugins.jetbrains.com/plugin/8053-azure-toolkit-for-intellij +.idea/**/azureSettings.xml + +### Python ### +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ +cover/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +.pybuilder/ +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +# For a library or package, you might want to ignore these files since the code is +# intended to run in multiple environments; otherwise, check them in: +# .python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# poetry +# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. +# This is especially recommended for binary packages to ensure reproducibility, and is more +# commonly ignored for libraries. +# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control +#poetry.lock + +# pdm +# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control. +#pdm.lock +# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it +# in version control. +# https://pdm.fming.dev/#use-with-ide +.pdm.toml + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + +# pytype static type analyzer +.pytype/ + +# Cython debug symbols +cython_debug/ + +# PyCharm +# JetBrains specific template is maintained in a separate JetBrains.gitignore that can +# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore +# and can be added to the global gitignore or merged into this file. For a more nuclear +# option (not recommended) you can uncomment the following to ignore the entire idea folder. +#.idea/ + +# End of https://www.toptal.com/developers/gitignore/api/macos,python,pycharm \ No newline at end of file diff --git a/client_s2/compLib/CompLib.proto b/client_s2/compLib/CompLib.proto index 8185499..1af66ad 100644 --- a/client_s2/compLib/CompLib.proto +++ b/client_s2/compLib/CompLib.proto @@ -58,16 +58,24 @@ message IRSensorsReadAllResponse { repeated uint32 data = 3 [packed = true]; } +message MotorSetPowerRequest { + uint32 port = 1; + double power = 2; +} + message MotorsSetPowerRequest { Header header = 1; - uint32 port = 2; - double power = 3; + repeated MotorSetPowerRequest requests = 2; +} + +message MotorSetSpeedRequest { + uint32 port = 1; + double speed = 2; } message MotorsSetSpeedRequest { Header header = 1; - uint32 port = 2; - double speed = 3; + repeated MotorSetSpeedRequest requests = 2; } message OdometryReadRequest { @@ -98,4 +106,8 @@ message DriveRequest { Header header = 1; double linear_velocity_m_s = 2; double angular_velocity_rad_s = 3; +} + +message HealthUpdateRequest { + Header header = 1; } \ No newline at end of file diff --git a/client_s2/compLib/CompLibClient.py b/client_s2/compLib/CompLibClient.py index 00599c9..dcc9871 100644 --- a/client_s2/compLib/CompLibClient.py +++ b/client_s2/compLib/CompLibClient.py @@ -1,30 +1,65 @@ import socket +from threading import Lock import compLib.CompLib_pb2 as CompLib_pb2 -UNIX_SOCKET_PATH = "/tmp/compLib" -TCP_SOCKET_HOST = "192.168.0.151" -TCP_SOCKET_PORT = 9090 - class CompLibClient(object): + USE_UNIX_SOCKET = False + UNIX_SOCKET_PATH = "/tmp/compLib" + USE_TCP_SOCKET = False + TCP_SOCKET_HOST = "10.20.5.1" + TCP_SOCKET_PORT = 9090 + SOCKET = None + LOCK = Lock() + + @staticmethod + def use_unix_socket(socket_path="/tmp/compLib"): + CompLibClient.UNIX_SOCKET_PATH = socket_path + CompLibClient.USE_UNIX_SOCKET = True + CompLibClient.USE_TCP_SOCKET = False + + CompLibClient.SOCKET = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) + CompLibClient.SOCKET.connect(CompLibClient.UNIX_SOCKET_PATH) + + from compLib.HealthCheck import HealthUpdater + HealthUpdater.start() + + @staticmethod + def use_tcp_socket(socket_host, socket_port=TCP_SOCKET_PORT): + CompLibClient.TCP_SOCKET_HOST = socket_host + CompLibClient.TCP_SOCKET_PORT = socket_port + CompLibClient.USE_UNIX_SOCKET = False + CompLibClient.USE_TCP_SOCKET = True + + CompLibClient.SOCKET = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + CompLibClient.SOCKET.connect((CompLibClient.TCP_SOCKET_HOST, CompLibClient.TCP_SOCKET_PORT)) + + from compLib.HealthCheck import HealthUpdater + HealthUpdater.start() @staticmethod def send(data: bytes, size: int) -> bytes: - with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as sock: - sock.connect((TCP_SOCKET_HOST, TCP_SOCKET_PORT)) + with CompLibClient.LOCK: + # if CompLibClient.USE_TCP_SOCKET: + # sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + # sock.connect((CompLibClient.TCP_SOCKET_HOST, CompLibClient.TCP_SOCKET_PORT)) + # + # elif CompLibClient.USE_UNIX_SOCKET: + # sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) + # sock.connect(CompLibClient.UNIX_SOCKET_PATH) + # + # else: + # return bytes(0) - # with socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) as sock: - # sock.connect(UNIX_SOCKET_PATH) + CompLibClient.SOCKET.sendall(size.to_bytes(1, byteorder='big')) + CompLibClient.SOCKET.sendall(data) - sock.sendall(size.to_bytes(1, byteorder='big')) - sock.sendall(data) - - response_size_bytes = sock.recv(1) + response_size_bytes = CompLibClient.SOCKET.recv(1) response_size = int.from_bytes(response_size_bytes, byteorder="big") # print(response_size) - response_bytes = sock.recv(response_size) + response_bytes = CompLibClient.SOCKET.recv(response_size) # print(response_bytes.hex()) # print(len(response_bytes)) @@ -34,7 +69,7 @@ class CompLibClient(object): @staticmethod def check_response(response_bytes: bytes) -> bool: - print(f"{response_bytes}") + # print(f"{response_bytes}") res = CompLib_pb2.GenericResponse() res.ParseFromString(response_bytes) diff --git a/client_s2/compLib/CompLib_pb2.py b/client_s2/compLib/CompLib_pb2.py index ebe2d4c..2b76409 100644 --- a/client_s2/compLib/CompLib_pb2.py +++ b/client_s2/compLib/CompLib_pb2.py @@ -1,220 +1,1069 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! # source: CompLib.proto -"""Generated protocol buffer code.""" + from google.protobuf import descriptor as _descriptor -from google.protobuf import descriptor_pool as _descriptor_pool from google.protobuf import message as _message from google.protobuf import reflection as _reflection from google.protobuf import symbol_database as _symbol_database + # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() +DESCRIPTOR = _descriptor.FileDescriptor( + name='CompLib.proto', + package='CompLib', + syntax='proto3', + serialized_options=None, + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n\rCompLib.proto\x12\x07\x43ompLib\"\x1e\n\x06Header\x12\x14\n\x0cmessage_type\x18\x01 \x01(\t\"3\n\x06Status\x12\x12\n\nsuccessful\x18\x01 \x01(\x08\x12\x15\n\rerror_message\x18\x02 \x01(\t\"1\n\x0eGenericRequest\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\"S\n\x0fGenericResponse\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\x12\x1f\n\x06status\x18\x02 \x01(\x0b\x32\x0f.CompLib.Status\">\n\x1b\x45ncoderReadPositionsRequest\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\"w\n\x1c\x45ncoderReadPositionsResponse\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\x12\x1f\n\x06status\x18\x02 \x01(\x0b\x32\x0f.CompLib.Status\x12\x15\n\tpositions\x18\x03 \x03(\x05\x42\x02\x10\x01\"?\n\x1c\x45ncoderReadVelocitiesRequest\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\"y\n\x1d\x45ncoderReadVelocitiesResponse\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\x12\x1f\n\x06status\x18\x02 \x01(\x0b\x32\x0f.CompLib.Status\x12\x16\n\nvelocities\x18\x03 \x03(\x01\x42\x02\x10\x01\"9\n\x16IRSensorsEnableRequest\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\":\n\x17IRSensorsDisableRequest\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\":\n\x17IRSensorsReadAllRequest\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\"n\n\x18IRSensorsReadAllResponse\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\x12\x1f\n\x06status\x18\x02 \x01(\x0b\x32\x0f.CompLib.Status\x12\x10\n\x04\x64\x61ta\x18\x03 \x03(\rB\x02\x10\x01\"3\n\x14MotorSetPowerRequest\x12\x0c\n\x04port\x18\x01 \x01(\r\x12\r\n\x05power\x18\x02 \x01(\x01\"i\n\x15MotorsSetPowerRequest\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\x12/\n\x08requests\x18\x02 \x03(\x0b\x32\x1d.CompLib.MotorSetPowerRequest\"3\n\x14MotorSetSpeedRequest\x12\x0c\n\x04port\x18\x01 \x01(\r\x12\r\n\x05speed\x18\x02 \x01(\x01\"i\n\x15MotorsSetSpeedRequest\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\x12/\n\x08requests\x18\x02 \x03(\x0b\x32\x1d.CompLib.MotorSetSpeedRequest\"6\n\x13OdometryReadRequest\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\"\x95\x01\n\x14OdometryReadResponse\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\x12\x1f\n\x06status\x18\x02 \x01(\x0b\x32\x0f.CompLib.Status\x12\x12\n\nx_position\x18\x03 \x01(\x01\x12\x12\n\ny_position\x18\x04 \x01(\x01\x12\x13\n\x0borientation\x18\x05 \x01(\x01\"a\n\x14\x44riveDistanceRequest\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\x12\x12\n\ndistance_m\x18\x02 \x01(\x01\x12\x14\n\x0cvelocity_m_s\x18\x03 \x01(\x01\"d\n\x12TurnDegreesRequest\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\x12\x15\n\rangle_degrees\x18\x02 \x01(\x01\x12\x16\n\x0evelocity_rad_s\x18\x03 \x01(\x01\"l\n\x0c\x44riveRequest\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\x12\x1b\n\x13linear_velocity_m_s\x18\x02 \x01(\x01\x12\x1e\n\x16\x61ngular_velocity_rad_s\x18\x03 \x01(\x01\"6\n\x13HealthUpdateRequest\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Headerb\x06proto3' +) +_HEADER = _descriptor.Descriptor( + name='Header', + full_name='CompLib.Header', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='message_type', full_name='CompLib.Header.message_type', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=26, + serialized_end=56, +) +_STATUS = _descriptor.Descriptor( + name='Status', + full_name='CompLib.Status', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='successful', full_name='CompLib.Status.successful', index=0, + number=1, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='error_message', full_name='CompLib.Status.error_message', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=58, + serialized_end=109, +) -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\rCompLib.proto\x12\x07\x43ompLib\"\x1e\n\x06Header\x12\x14\n\x0cmessage_type\x18\x01 \x01(\t\"3\n\x06Status\x12\x12\n\nsuccessful\x18\x01 \x01(\x08\x12\x15\n\rerror_message\x18\x02 \x01(\t\"1\n\x0eGenericRequest\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\"S\n\x0fGenericResponse\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\x12\x1f\n\x06status\x18\x02 \x01(\x0b\x32\x0f.CompLib.Status\">\n\x1b\x45ncoderReadPositionsRequest\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\"w\n\x1c\x45ncoderReadPositionsResponse\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\x12\x1f\n\x06status\x18\x02 \x01(\x0b\x32\x0f.CompLib.Status\x12\x15\n\tpositions\x18\x03 \x03(\x05\x42\x02\x10\x01\"?\n\x1c\x45ncoderReadVelocitiesRequest\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\"y\n\x1d\x45ncoderReadVelocitiesResponse\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\x12\x1f\n\x06status\x18\x02 \x01(\x0b\x32\x0f.CompLib.Status\x12\x16\n\nvelocities\x18\x03 \x03(\x01\x42\x02\x10\x01\"9\n\x16IRSensorsEnableRequest\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\":\n\x17IRSensorsDisableRequest\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\":\n\x17IRSensorsReadAllRequest\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\"n\n\x18IRSensorsReadAllResponse\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\x12\x1f\n\x06status\x18\x02 \x01(\x0b\x32\x0f.CompLib.Status\x12\x10\n\x04\x64\x61ta\x18\x03 \x03(\rB\x02\x10\x01\"U\n\x15MotorsSetPowerRequest\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\x12\x0c\n\x04port\x18\x02 \x01(\r\x12\r\n\x05power\x18\x03 \x01(\x01\"U\n\x15MotorsSetSpeedRequest\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\x12\x0c\n\x04port\x18\x02 \x01(\r\x12\r\n\x05speed\x18\x03 \x01(\x01\"6\n\x13OdometryReadRequest\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\"\x95\x01\n\x14OdometryReadResponse\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\x12\x1f\n\x06status\x18\x02 \x01(\x0b\x32\x0f.CompLib.Status\x12\x12\n\nx_position\x18\x03 \x01(\x01\x12\x12\n\ny_position\x18\x04 \x01(\x01\x12\x13\n\x0borientation\x18\x05 \x01(\x01\"a\n\x14\x44riveDistanceRequest\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\x12\x12\n\ndistance_m\x18\x02 \x01(\x01\x12\x14\n\x0cvelocity_m_s\x18\x03 \x01(\x01\"d\n\x12TurnDegreesRequest\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\x12\x15\n\rangle_degrees\x18\x02 \x01(\x01\x12\x16\n\x0evelocity_rad_s\x18\x03 \x01(\x01\"l\n\x0c\x44riveRequest\x12\x1f\n\x06header\x18\x01 \x01(\x0b\x32\x0f.CompLib.Header\x12\x1b\n\x13linear_velocity_m_s\x18\x02 \x01(\x01\x12\x1e\n\x16\x61ngular_velocity_rad_s\x18\x03 \x01(\x01\x62\x06proto3') +_GENERICREQUEST = _descriptor.Descriptor( + name='GenericRequest', + full_name='CompLib.GenericRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='header', full_name='CompLib.GenericRequest.header', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=111, + serialized_end=160, +) +_GENERICRESPONSE = _descriptor.Descriptor( + name='GenericResponse', + full_name='CompLib.GenericResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='header', full_name='CompLib.GenericResponse.header', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='status', full_name='CompLib.GenericResponse.status', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=162, + serialized_end=245, +) +_ENCODERREADPOSITIONSREQUEST = _descriptor.Descriptor( + name='EncoderReadPositionsRequest', + full_name='CompLib.EncoderReadPositionsRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='header', full_name='CompLib.EncoderReadPositionsRequest.header', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=247, + serialized_end=309, +) + +_ENCODERREADPOSITIONSRESPONSE = _descriptor.Descriptor( + name='EncoderReadPositionsResponse', + full_name='CompLib.EncoderReadPositionsResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='header', full_name='CompLib.EncoderReadPositionsResponse.header', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='status', full_name='CompLib.EncoderReadPositionsResponse.status', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='positions', full_name='CompLib.EncoderReadPositionsResponse.positions', index=2, + number=3, type=5, cpp_type=1, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\020\001', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=311, + serialized_end=430, +) + +_ENCODERREADVELOCITIESREQUEST = _descriptor.Descriptor( + name='EncoderReadVelocitiesRequest', + full_name='CompLib.EncoderReadVelocitiesRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='header', full_name='CompLib.EncoderReadVelocitiesRequest.header', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=432, + serialized_end=495, +) + +_ENCODERREADVELOCITIESRESPONSE = _descriptor.Descriptor( + name='EncoderReadVelocitiesResponse', + full_name='CompLib.EncoderReadVelocitiesResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='header', full_name='CompLib.EncoderReadVelocitiesResponse.header', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='status', full_name='CompLib.EncoderReadVelocitiesResponse.status', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='velocities', full_name='CompLib.EncoderReadVelocitiesResponse.velocities', index=2, + number=3, type=1, cpp_type=5, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\020\001', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=497, + serialized_end=618, +) + +_IRSENSORSENABLEREQUEST = _descriptor.Descriptor( + name='IRSensorsEnableRequest', + full_name='CompLib.IRSensorsEnableRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='header', full_name='CompLib.IRSensorsEnableRequest.header', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=620, + serialized_end=677, +) + +_IRSENSORSDISABLEREQUEST = _descriptor.Descriptor( + name='IRSensorsDisableRequest', + full_name='CompLib.IRSensorsDisableRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='header', full_name='CompLib.IRSensorsDisableRequest.header', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=679, + serialized_end=737, +) + +_IRSENSORSREADALLREQUEST = _descriptor.Descriptor( + name='IRSensorsReadAllRequest', + full_name='CompLib.IRSensorsReadAllRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='header', full_name='CompLib.IRSensorsReadAllRequest.header', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=739, + serialized_end=797, +) + +_IRSENSORSREADALLRESPONSE = _descriptor.Descriptor( + name='IRSensorsReadAllResponse', + full_name='CompLib.IRSensorsReadAllResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='header', full_name='CompLib.IRSensorsReadAllResponse.header', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='status', full_name='CompLib.IRSensorsReadAllResponse.status', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='data', full_name='CompLib.IRSensorsReadAllResponse.data', index=2, + number=3, type=13, cpp_type=3, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\020\001', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=799, + serialized_end=909, +) + +_MOTORSETPOWERREQUEST = _descriptor.Descriptor( + name='MotorSetPowerRequest', + full_name='CompLib.MotorSetPowerRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='port', full_name='CompLib.MotorSetPowerRequest.port', index=0, + number=1, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='power', full_name='CompLib.MotorSetPowerRequest.power', index=1, + number=2, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=911, + serialized_end=962, +) + +_MOTORSSETPOWERREQUEST = _descriptor.Descriptor( + name='MotorsSetPowerRequest', + full_name='CompLib.MotorsSetPowerRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='header', full_name='CompLib.MotorsSetPowerRequest.header', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='requests', full_name='CompLib.MotorsSetPowerRequest.requests', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=964, + serialized_end=1069, +) + +_MOTORSETSPEEDREQUEST = _descriptor.Descriptor( + name='MotorSetSpeedRequest', + full_name='CompLib.MotorSetSpeedRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='port', full_name='CompLib.MotorSetSpeedRequest.port', index=0, + number=1, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='speed', full_name='CompLib.MotorSetSpeedRequest.speed', index=1, + number=2, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1071, + serialized_end=1122, +) + +_MOTORSSETSPEEDREQUEST = _descriptor.Descriptor( + name='MotorsSetSpeedRequest', + full_name='CompLib.MotorsSetSpeedRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='header', full_name='CompLib.MotorsSetSpeedRequest.header', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='requests', full_name='CompLib.MotorsSetSpeedRequest.requests', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1124, + serialized_end=1229, +) + +_ODOMETRYREADREQUEST = _descriptor.Descriptor( + name='OdometryReadRequest', + full_name='CompLib.OdometryReadRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='header', full_name='CompLib.OdometryReadRequest.header', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1231, + serialized_end=1285, +) + +_ODOMETRYREADRESPONSE = _descriptor.Descriptor( + name='OdometryReadResponse', + full_name='CompLib.OdometryReadResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='header', full_name='CompLib.OdometryReadResponse.header', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='status', full_name='CompLib.OdometryReadResponse.status', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='x_position', full_name='CompLib.OdometryReadResponse.x_position', index=2, + number=3, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='y_position', full_name='CompLib.OdometryReadResponse.y_position', index=3, + number=4, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='orientation', full_name='CompLib.OdometryReadResponse.orientation', index=4, + number=5, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1288, + serialized_end=1437, +) + +_DRIVEDISTANCEREQUEST = _descriptor.Descriptor( + name='DriveDistanceRequest', + full_name='CompLib.DriveDistanceRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='header', full_name='CompLib.DriveDistanceRequest.header', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='distance_m', full_name='CompLib.DriveDistanceRequest.distance_m', index=1, + number=2, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='velocity_m_s', full_name='CompLib.DriveDistanceRequest.velocity_m_s', index=2, + number=3, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1439, + serialized_end=1536, +) + +_TURNDEGREESREQUEST = _descriptor.Descriptor( + name='TurnDegreesRequest', + full_name='CompLib.TurnDegreesRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='header', full_name='CompLib.TurnDegreesRequest.header', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='angle_degrees', full_name='CompLib.TurnDegreesRequest.angle_degrees', index=1, + number=2, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='velocity_rad_s', full_name='CompLib.TurnDegreesRequest.velocity_rad_s', index=2, + number=3, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1538, + serialized_end=1638, +) + +_DRIVEREQUEST = _descriptor.Descriptor( + name='DriveRequest', + full_name='CompLib.DriveRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='header', full_name='CompLib.DriveRequest.header', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='linear_velocity_m_s', full_name='CompLib.DriveRequest.linear_velocity_m_s', index=1, + number=2, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='angular_velocity_rad_s', full_name='CompLib.DriveRequest.angular_velocity_rad_s', index=2, + number=3, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1640, + serialized_end=1748, +) + +_HEALTHUPDATEREQUEST = _descriptor.Descriptor( + name='HealthUpdateRequest', + full_name='CompLib.HealthUpdateRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='header', full_name='CompLib.HealthUpdateRequest.header', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1750, + serialized_end=1804, +) + +_GENERICREQUEST.fields_by_name['header'].message_type = _HEADER +_GENERICRESPONSE.fields_by_name['header'].message_type = _HEADER +_GENERICRESPONSE.fields_by_name['status'].message_type = _STATUS +_ENCODERREADPOSITIONSREQUEST.fields_by_name['header'].message_type = _HEADER +_ENCODERREADPOSITIONSRESPONSE.fields_by_name['header'].message_type = _HEADER +_ENCODERREADPOSITIONSRESPONSE.fields_by_name['status'].message_type = _STATUS +_ENCODERREADVELOCITIESREQUEST.fields_by_name['header'].message_type = _HEADER +_ENCODERREADVELOCITIESRESPONSE.fields_by_name['header'].message_type = _HEADER +_ENCODERREADVELOCITIESRESPONSE.fields_by_name['status'].message_type = _STATUS +_IRSENSORSENABLEREQUEST.fields_by_name['header'].message_type = _HEADER +_IRSENSORSDISABLEREQUEST.fields_by_name['header'].message_type = _HEADER +_IRSENSORSREADALLREQUEST.fields_by_name['header'].message_type = _HEADER +_IRSENSORSREADALLRESPONSE.fields_by_name['header'].message_type = _HEADER +_IRSENSORSREADALLRESPONSE.fields_by_name['status'].message_type = _STATUS +_MOTORSSETPOWERREQUEST.fields_by_name['header'].message_type = _HEADER +_MOTORSSETPOWERREQUEST.fields_by_name['requests'].message_type = _MOTORSETPOWERREQUEST +_MOTORSSETSPEEDREQUEST.fields_by_name['header'].message_type = _HEADER +_MOTORSSETSPEEDREQUEST.fields_by_name['requests'].message_type = _MOTORSETSPEEDREQUEST +_ODOMETRYREADREQUEST.fields_by_name['header'].message_type = _HEADER +_ODOMETRYREADRESPONSE.fields_by_name['header'].message_type = _HEADER +_ODOMETRYREADRESPONSE.fields_by_name['status'].message_type = _STATUS +_DRIVEDISTANCEREQUEST.fields_by_name['header'].message_type = _HEADER +_TURNDEGREESREQUEST.fields_by_name['header'].message_type = _HEADER +_DRIVEREQUEST.fields_by_name['header'].message_type = _HEADER +_HEALTHUPDATEREQUEST.fields_by_name['header'].message_type = _HEADER +DESCRIPTOR.message_types_by_name['Header'] = _HEADER +DESCRIPTOR.message_types_by_name['Status'] = _STATUS +DESCRIPTOR.message_types_by_name['GenericRequest'] = _GENERICREQUEST +DESCRIPTOR.message_types_by_name['GenericResponse'] = _GENERICRESPONSE +DESCRIPTOR.message_types_by_name['EncoderReadPositionsRequest'] = _ENCODERREADPOSITIONSREQUEST +DESCRIPTOR.message_types_by_name['EncoderReadPositionsResponse'] = _ENCODERREADPOSITIONSRESPONSE +DESCRIPTOR.message_types_by_name['EncoderReadVelocitiesRequest'] = _ENCODERREADVELOCITIESREQUEST +DESCRIPTOR.message_types_by_name['EncoderReadVelocitiesResponse'] = _ENCODERREADVELOCITIESRESPONSE +DESCRIPTOR.message_types_by_name['IRSensorsEnableRequest'] = _IRSENSORSENABLEREQUEST +DESCRIPTOR.message_types_by_name['IRSensorsDisableRequest'] = _IRSENSORSDISABLEREQUEST +DESCRIPTOR.message_types_by_name['IRSensorsReadAllRequest'] = _IRSENSORSREADALLREQUEST +DESCRIPTOR.message_types_by_name['IRSensorsReadAllResponse'] = _IRSENSORSREADALLRESPONSE +DESCRIPTOR.message_types_by_name['MotorSetPowerRequest'] = _MOTORSETPOWERREQUEST +DESCRIPTOR.message_types_by_name['MotorsSetPowerRequest'] = _MOTORSSETPOWERREQUEST +DESCRIPTOR.message_types_by_name['MotorSetSpeedRequest'] = _MOTORSETSPEEDREQUEST +DESCRIPTOR.message_types_by_name['MotorsSetSpeedRequest'] = _MOTORSSETSPEEDREQUEST +DESCRIPTOR.message_types_by_name['OdometryReadRequest'] = _ODOMETRYREADREQUEST +DESCRIPTOR.message_types_by_name['OdometryReadResponse'] = _ODOMETRYREADRESPONSE +DESCRIPTOR.message_types_by_name['DriveDistanceRequest'] = _DRIVEDISTANCEREQUEST +DESCRIPTOR.message_types_by_name['TurnDegreesRequest'] = _TURNDEGREESREQUEST +DESCRIPTOR.message_types_by_name['DriveRequest'] = _DRIVEREQUEST +DESCRIPTOR.message_types_by_name['HealthUpdateRequest'] = _HEALTHUPDATEREQUEST +_sym_db.RegisterFileDescriptor(DESCRIPTOR) -_HEADER = DESCRIPTOR.message_types_by_name['Header'] -_STATUS = DESCRIPTOR.message_types_by_name['Status'] -_GENERICREQUEST = DESCRIPTOR.message_types_by_name['GenericRequest'] -_GENERICRESPONSE = DESCRIPTOR.message_types_by_name['GenericResponse'] -_ENCODERREADPOSITIONSREQUEST = DESCRIPTOR.message_types_by_name['EncoderReadPositionsRequest'] -_ENCODERREADPOSITIONSRESPONSE = DESCRIPTOR.message_types_by_name['EncoderReadPositionsResponse'] -_ENCODERREADVELOCITIESREQUEST = DESCRIPTOR.message_types_by_name['EncoderReadVelocitiesRequest'] -_ENCODERREADVELOCITIESRESPONSE = DESCRIPTOR.message_types_by_name['EncoderReadVelocitiesResponse'] -_IRSENSORSENABLEREQUEST = DESCRIPTOR.message_types_by_name['IRSensorsEnableRequest'] -_IRSENSORSDISABLEREQUEST = DESCRIPTOR.message_types_by_name['IRSensorsDisableRequest'] -_IRSENSORSREADALLREQUEST = DESCRIPTOR.message_types_by_name['IRSensorsReadAllRequest'] -_IRSENSORSREADALLRESPONSE = DESCRIPTOR.message_types_by_name['IRSensorsReadAllResponse'] -_MOTORSSETPOWERREQUEST = DESCRIPTOR.message_types_by_name['MotorsSetPowerRequest'] -_MOTORSSETSPEEDREQUEST = DESCRIPTOR.message_types_by_name['MotorsSetSpeedRequest'] -_ODOMETRYREADREQUEST = DESCRIPTOR.message_types_by_name['OdometryReadRequest'] -_ODOMETRYREADRESPONSE = DESCRIPTOR.message_types_by_name['OdometryReadResponse'] -_DRIVEDISTANCEREQUEST = DESCRIPTOR.message_types_by_name['DriveDistanceRequest'] -_TURNDEGREESREQUEST = DESCRIPTOR.message_types_by_name['TurnDegreesRequest'] -_DRIVEREQUEST = DESCRIPTOR.message_types_by_name['DriveRequest'] Header = _reflection.GeneratedProtocolMessageType('Header', (_message.Message,), { - 'DESCRIPTOR' : _HEADER, - '__module__' : 'CompLib_pb2' - # @@protoc_insertion_point(class_scope:CompLib.Header) - }) + 'DESCRIPTOR': _HEADER, + '__module__': 'CompLib_pb2' + # @@protoc_insertion_point(class_scope:CompLib.Header) +}) _sym_db.RegisterMessage(Header) Status = _reflection.GeneratedProtocolMessageType('Status', (_message.Message,), { - 'DESCRIPTOR' : _STATUS, - '__module__' : 'CompLib_pb2' - # @@protoc_insertion_point(class_scope:CompLib.Status) - }) + 'DESCRIPTOR': _STATUS, + '__module__': 'CompLib_pb2' + # @@protoc_insertion_point(class_scope:CompLib.Status) +}) _sym_db.RegisterMessage(Status) GenericRequest = _reflection.GeneratedProtocolMessageType('GenericRequest', (_message.Message,), { - 'DESCRIPTOR' : _GENERICREQUEST, - '__module__' : 'CompLib_pb2' - # @@protoc_insertion_point(class_scope:CompLib.GenericRequest) - }) + 'DESCRIPTOR': _GENERICREQUEST, + '__module__': 'CompLib_pb2' + # @@protoc_insertion_point(class_scope:CompLib.GenericRequest) +}) _sym_db.RegisterMessage(GenericRequest) GenericResponse = _reflection.GeneratedProtocolMessageType('GenericResponse', (_message.Message,), { - 'DESCRIPTOR' : _GENERICRESPONSE, - '__module__' : 'CompLib_pb2' - # @@protoc_insertion_point(class_scope:CompLib.GenericResponse) - }) + 'DESCRIPTOR': _GENERICRESPONSE, + '__module__': 'CompLib_pb2' + # @@protoc_insertion_point(class_scope:CompLib.GenericResponse) +}) _sym_db.RegisterMessage(GenericResponse) -EncoderReadPositionsRequest = _reflection.GeneratedProtocolMessageType('EncoderReadPositionsRequest', (_message.Message,), { - 'DESCRIPTOR' : _ENCODERREADPOSITIONSREQUEST, - '__module__' : 'CompLib_pb2' - # @@protoc_insertion_point(class_scope:CompLib.EncoderReadPositionsRequest) - }) +EncoderReadPositionsRequest = _reflection.GeneratedProtocolMessageType('EncoderReadPositionsRequest', + (_message.Message,), { + 'DESCRIPTOR': _ENCODERREADPOSITIONSREQUEST, + '__module__': 'CompLib_pb2' + # @@protoc_insertion_point(class_scope:CompLib.EncoderReadPositionsRequest) + }) _sym_db.RegisterMessage(EncoderReadPositionsRequest) -EncoderReadPositionsResponse = _reflection.GeneratedProtocolMessageType('EncoderReadPositionsResponse', (_message.Message,), { - 'DESCRIPTOR' : _ENCODERREADPOSITIONSRESPONSE, - '__module__' : 'CompLib_pb2' - # @@protoc_insertion_point(class_scope:CompLib.EncoderReadPositionsResponse) - }) +EncoderReadPositionsResponse = _reflection.GeneratedProtocolMessageType('EncoderReadPositionsResponse', + (_message.Message,), { + 'DESCRIPTOR': _ENCODERREADPOSITIONSRESPONSE, + '__module__': 'CompLib_pb2' + # @@protoc_insertion_point(class_scope:CompLib.EncoderReadPositionsResponse) + }) _sym_db.RegisterMessage(EncoderReadPositionsResponse) -EncoderReadVelocitiesRequest = _reflection.GeneratedProtocolMessageType('EncoderReadVelocitiesRequest', (_message.Message,), { - 'DESCRIPTOR' : _ENCODERREADVELOCITIESREQUEST, - '__module__' : 'CompLib_pb2' - # @@protoc_insertion_point(class_scope:CompLib.EncoderReadVelocitiesRequest) - }) +EncoderReadVelocitiesRequest = _reflection.GeneratedProtocolMessageType('EncoderReadVelocitiesRequest', + (_message.Message,), { + 'DESCRIPTOR': _ENCODERREADVELOCITIESREQUEST, + '__module__': 'CompLib_pb2' + # @@protoc_insertion_point(class_scope:CompLib.EncoderReadVelocitiesRequest) + }) _sym_db.RegisterMessage(EncoderReadVelocitiesRequest) -EncoderReadVelocitiesResponse = _reflection.GeneratedProtocolMessageType('EncoderReadVelocitiesResponse', (_message.Message,), { - 'DESCRIPTOR' : _ENCODERREADVELOCITIESRESPONSE, - '__module__' : 'CompLib_pb2' - # @@protoc_insertion_point(class_scope:CompLib.EncoderReadVelocitiesResponse) - }) +EncoderReadVelocitiesResponse = _reflection.GeneratedProtocolMessageType('EncoderReadVelocitiesResponse', + (_message.Message,), { + 'DESCRIPTOR': _ENCODERREADVELOCITIESRESPONSE, + '__module__': 'CompLib_pb2' + # @@protoc_insertion_point(class_scope:CompLib.EncoderReadVelocitiesResponse) + }) _sym_db.RegisterMessage(EncoderReadVelocitiesResponse) IRSensorsEnableRequest = _reflection.GeneratedProtocolMessageType('IRSensorsEnableRequest', (_message.Message,), { - 'DESCRIPTOR' : _IRSENSORSENABLEREQUEST, - '__module__' : 'CompLib_pb2' - # @@protoc_insertion_point(class_scope:CompLib.IRSensorsEnableRequest) - }) + 'DESCRIPTOR': _IRSENSORSENABLEREQUEST, + '__module__': 'CompLib_pb2' + # @@protoc_insertion_point(class_scope:CompLib.IRSensorsEnableRequest) +}) _sym_db.RegisterMessage(IRSensorsEnableRequest) IRSensorsDisableRequest = _reflection.GeneratedProtocolMessageType('IRSensorsDisableRequest', (_message.Message,), { - 'DESCRIPTOR' : _IRSENSORSDISABLEREQUEST, - '__module__' : 'CompLib_pb2' - # @@protoc_insertion_point(class_scope:CompLib.IRSensorsDisableRequest) - }) + 'DESCRIPTOR': _IRSENSORSDISABLEREQUEST, + '__module__': 'CompLib_pb2' + # @@protoc_insertion_point(class_scope:CompLib.IRSensorsDisableRequest) +}) _sym_db.RegisterMessage(IRSensorsDisableRequest) IRSensorsReadAllRequest = _reflection.GeneratedProtocolMessageType('IRSensorsReadAllRequest', (_message.Message,), { - 'DESCRIPTOR' : _IRSENSORSREADALLREQUEST, - '__module__' : 'CompLib_pb2' - # @@protoc_insertion_point(class_scope:CompLib.IRSensorsReadAllRequest) - }) + 'DESCRIPTOR': _IRSENSORSREADALLREQUEST, + '__module__': 'CompLib_pb2' + # @@protoc_insertion_point(class_scope:CompLib.IRSensorsReadAllRequest) +}) _sym_db.RegisterMessage(IRSensorsReadAllRequest) IRSensorsReadAllResponse = _reflection.GeneratedProtocolMessageType('IRSensorsReadAllResponse', (_message.Message,), { - 'DESCRIPTOR' : _IRSENSORSREADALLRESPONSE, - '__module__' : 'CompLib_pb2' - # @@protoc_insertion_point(class_scope:CompLib.IRSensorsReadAllResponse) - }) + 'DESCRIPTOR': _IRSENSORSREADALLRESPONSE, + '__module__': 'CompLib_pb2' + # @@protoc_insertion_point(class_scope:CompLib.IRSensorsReadAllResponse) +}) _sym_db.RegisterMessage(IRSensorsReadAllResponse) +MotorSetPowerRequest = _reflection.GeneratedProtocolMessageType('MotorSetPowerRequest', (_message.Message,), { + 'DESCRIPTOR': _MOTORSETPOWERREQUEST, + '__module__': 'CompLib_pb2' + # @@protoc_insertion_point(class_scope:CompLib.MotorSetPowerRequest) +}) +_sym_db.RegisterMessage(MotorSetPowerRequest) + MotorsSetPowerRequest = _reflection.GeneratedProtocolMessageType('MotorsSetPowerRequest', (_message.Message,), { - 'DESCRIPTOR' : _MOTORSSETPOWERREQUEST, - '__module__' : 'CompLib_pb2' - # @@protoc_insertion_point(class_scope:CompLib.MotorsSetPowerRequest) - }) + 'DESCRIPTOR': _MOTORSSETPOWERREQUEST, + '__module__': 'CompLib_pb2' + # @@protoc_insertion_point(class_scope:CompLib.MotorsSetPowerRequest) +}) _sym_db.RegisterMessage(MotorsSetPowerRequest) +MotorSetSpeedRequest = _reflection.GeneratedProtocolMessageType('MotorSetSpeedRequest', (_message.Message,), { + 'DESCRIPTOR': _MOTORSETSPEEDREQUEST, + '__module__': 'CompLib_pb2' + # @@protoc_insertion_point(class_scope:CompLib.MotorSetSpeedRequest) +}) +_sym_db.RegisterMessage(MotorSetSpeedRequest) + MotorsSetSpeedRequest = _reflection.GeneratedProtocolMessageType('MotorsSetSpeedRequest', (_message.Message,), { - 'DESCRIPTOR' : _MOTORSSETSPEEDREQUEST, - '__module__' : 'CompLib_pb2' - # @@protoc_insertion_point(class_scope:CompLib.MotorsSetSpeedRequest) - }) + 'DESCRIPTOR': _MOTORSSETSPEEDREQUEST, + '__module__': 'CompLib_pb2' + # @@protoc_insertion_point(class_scope:CompLib.MotorsSetSpeedRequest) +}) _sym_db.RegisterMessage(MotorsSetSpeedRequest) OdometryReadRequest = _reflection.GeneratedProtocolMessageType('OdometryReadRequest', (_message.Message,), { - 'DESCRIPTOR' : _ODOMETRYREADREQUEST, - '__module__' : 'CompLib_pb2' - # @@protoc_insertion_point(class_scope:CompLib.OdometryReadRequest) - }) + 'DESCRIPTOR': _ODOMETRYREADREQUEST, + '__module__': 'CompLib_pb2' + # @@protoc_insertion_point(class_scope:CompLib.OdometryReadRequest) +}) _sym_db.RegisterMessage(OdometryReadRequest) OdometryReadResponse = _reflection.GeneratedProtocolMessageType('OdometryReadResponse', (_message.Message,), { - 'DESCRIPTOR' : _ODOMETRYREADRESPONSE, - '__module__' : 'CompLib_pb2' - # @@protoc_insertion_point(class_scope:CompLib.OdometryReadResponse) - }) + 'DESCRIPTOR': _ODOMETRYREADRESPONSE, + '__module__': 'CompLib_pb2' + # @@protoc_insertion_point(class_scope:CompLib.OdometryReadResponse) +}) _sym_db.RegisterMessage(OdometryReadResponse) DriveDistanceRequest = _reflection.GeneratedProtocolMessageType('DriveDistanceRequest', (_message.Message,), { - 'DESCRIPTOR' : _DRIVEDISTANCEREQUEST, - '__module__' : 'CompLib_pb2' - # @@protoc_insertion_point(class_scope:CompLib.DriveDistanceRequest) - }) + 'DESCRIPTOR': _DRIVEDISTANCEREQUEST, + '__module__': 'CompLib_pb2' + # @@protoc_insertion_point(class_scope:CompLib.DriveDistanceRequest) +}) _sym_db.RegisterMessage(DriveDistanceRequest) TurnDegreesRequest = _reflection.GeneratedProtocolMessageType('TurnDegreesRequest', (_message.Message,), { - 'DESCRIPTOR' : _TURNDEGREESREQUEST, - '__module__' : 'CompLib_pb2' - # @@protoc_insertion_point(class_scope:CompLib.TurnDegreesRequest) - }) + 'DESCRIPTOR': _TURNDEGREESREQUEST, + '__module__': 'CompLib_pb2' + # @@protoc_insertion_point(class_scope:CompLib.TurnDegreesRequest) +}) _sym_db.RegisterMessage(TurnDegreesRequest) DriveRequest = _reflection.GeneratedProtocolMessageType('DriveRequest', (_message.Message,), { - 'DESCRIPTOR' : _DRIVEREQUEST, - '__module__' : 'CompLib_pb2' - # @@protoc_insertion_point(class_scope:CompLib.DriveRequest) - }) + 'DESCRIPTOR': _DRIVEREQUEST, + '__module__': 'CompLib_pb2' + # @@protoc_insertion_point(class_scope:CompLib.DriveRequest) +}) _sym_db.RegisterMessage(DriveRequest) -if _descriptor._USE_C_DESCRIPTORS == False: +HealthUpdateRequest = _reflection.GeneratedProtocolMessageType('HealthUpdateRequest', (_message.Message,), { + 'DESCRIPTOR': _HEALTHUPDATEREQUEST, + '__module__': 'CompLib_pb2' + # @@protoc_insertion_point(class_scope:CompLib.HealthUpdateRequest) +}) +_sym_db.RegisterMessage(HealthUpdateRequest) - DESCRIPTOR._options = None - _ENCODERREADPOSITIONSRESPONSE.fields_by_name['positions']._options = None - _ENCODERREADPOSITIONSRESPONSE.fields_by_name['positions']._serialized_options = b'\020\001' - _ENCODERREADVELOCITIESRESPONSE.fields_by_name['velocities']._options = None - _ENCODERREADVELOCITIESRESPONSE.fields_by_name['velocities']._serialized_options = b'\020\001' - _IRSENSORSREADALLRESPONSE.fields_by_name['data']._options = None - _IRSENSORSREADALLRESPONSE.fields_by_name['data']._serialized_options = b'\020\001' - _HEADER._serialized_start=26 - _HEADER._serialized_end=56 - _STATUS._serialized_start=58 - _STATUS._serialized_end=109 - _GENERICREQUEST._serialized_start=111 - _GENERICREQUEST._serialized_end=160 - _GENERICRESPONSE._serialized_start=162 - _GENERICRESPONSE._serialized_end=245 - _ENCODERREADPOSITIONSREQUEST._serialized_start=247 - _ENCODERREADPOSITIONSREQUEST._serialized_end=309 - _ENCODERREADPOSITIONSRESPONSE._serialized_start=311 - _ENCODERREADPOSITIONSRESPONSE._serialized_end=430 - _ENCODERREADVELOCITIESREQUEST._serialized_start=432 - _ENCODERREADVELOCITIESREQUEST._serialized_end=495 - _ENCODERREADVELOCITIESRESPONSE._serialized_start=497 - _ENCODERREADVELOCITIESRESPONSE._serialized_end=618 - _IRSENSORSENABLEREQUEST._serialized_start=620 - _IRSENSORSENABLEREQUEST._serialized_end=677 - _IRSENSORSDISABLEREQUEST._serialized_start=679 - _IRSENSORSDISABLEREQUEST._serialized_end=737 - _IRSENSORSREADALLREQUEST._serialized_start=739 - _IRSENSORSREADALLREQUEST._serialized_end=797 - _IRSENSORSREADALLRESPONSE._serialized_start=799 - _IRSENSORSREADALLRESPONSE._serialized_end=909 - _MOTORSSETPOWERREQUEST._serialized_start=911 - _MOTORSSETPOWERREQUEST._serialized_end=996 - _MOTORSSETSPEEDREQUEST._serialized_start=998 - _MOTORSSETSPEEDREQUEST._serialized_end=1083 - _ODOMETRYREADREQUEST._serialized_start=1085 - _ODOMETRYREADREQUEST._serialized_end=1139 - _ODOMETRYREADRESPONSE._serialized_start=1142 - _ODOMETRYREADRESPONSE._serialized_end=1291 - _DRIVEDISTANCEREQUEST._serialized_start=1293 - _DRIVEDISTANCEREQUEST._serialized_end=1390 - _TURNDEGREESREQUEST._serialized_start=1392 - _TURNDEGREESREQUEST._serialized_end=1492 - _DRIVEREQUEST._serialized_start=1494 - _DRIVEREQUEST._serialized_end=1602 +_ENCODERREADPOSITIONSRESPONSE.fields_by_name['positions']._options = None +_ENCODERREADVELOCITIESRESPONSE.fields_by_name['velocities']._options = None +_IRSENSORSREADALLRESPONSE.fields_by_name['data']._options = None # @@protoc_insertion_point(module_scope) diff --git a/client_s2/compLib/HealthCheck.py b/client_s2/compLib/HealthCheck.py new file mode 100644 index 0000000..39a4241 --- /dev/null +++ b/client_s2/compLib/HealthCheck.py @@ -0,0 +1,23 @@ +import threading +import time + +import compLib.CompLib_pb2 as CompLib_pb2 +from compLib.CompLibClient import CompLibClient + + +class HealthUpdater(object): + started = False + + @staticmethod + def start(): + if not HealthUpdater.started: + threading.Thread(target=HealthUpdater.loop, daemon=True).start() + HealthUpdater.started = True + + @staticmethod + def loop(): + while True: + request = CompLib_pb2.HealthUpdateRequest() + request.header.message_type = request.DESCRIPTOR.full_name + CompLibClient.send(request.SerializeToString(), request.ByteSize()) + time.sleep(0.25) diff --git a/client_s2/compLib/IRSensor.py b/client_s2/compLib/IRSensor.py index 840c839..a0075ce 100644 --- a/client_s2/compLib/IRSensor.py +++ b/client_s2/compLib/IRSensor.py @@ -1,4 +1,5 @@ import compLib.CompLib_pb2 as CompLib_pb2 + from compLib.CompLibClient import CompLibClient @@ -10,7 +11,7 @@ class IRSensor(object): def read_all(): """Read all IR sensors at once. - :return: Tuple of all current ir sensors + :return: Array of all current ir sensors """ request = CompLib_pb2.IRSensorsReadAllRequest() request.header.message_type = request.DESCRIPTOR.full_name @@ -18,7 +19,7 @@ class IRSensor(object): response = CompLib_pb2.IRSensorsReadAllResponse() response.ParseFromString(CompLibClient.send(request.SerializeToString(), request.ByteSize())) - return tuple(i for i in response.data) + return [i for i in response.data] @staticmethod def enable(): diff --git a/client_s2/compLib/Motor.py b/client_s2/compLib/Motor.py index 27ce586..fbfced1 100644 --- a/client_s2/compLib/Motor.py +++ b/client_s2/compLib/Motor.py @@ -30,6 +30,31 @@ class Motor(object): CompLibClient.send(request.SerializeToString(), request.ByteSize()) + @staticmethod + def multiple_power(*arguments: tuple[int, float]): + """Set specified motors to percentage power + + :param arguments: tuples of port, percentage + :raises: IndexError + """ + request = CompLib_pb2.MotorsSetPowerRequest() + request.header.message_type = request.DESCRIPTOR.full_name + + for port, percent in arguments: + if port < 0 or port >= MOTOR_COUNT: + raise IndexError("Invalid Motor port specified!") + + if percent < -100 or percent > 100: + raise IndexError("Invalid Motor speed specified! Speed is between -100 and 100 percent!") + + inner_request = CompLib_pb2.MotorSetPowerRequest() + inner_request.port = port + inner_request.power = percent + + request.requests.append(inner_request) + + CompLibClient.send(request.SerializeToString(), request.ByteSize()) + @staticmethod def speed(port: int, speed: float): """Set specified motor to percentage power @@ -49,6 +74,29 @@ class Motor(object): CompLibClient.send(request.SerializeToString(), request.ByteSize()) + @staticmethod + def multiple_speed(*arguments: tuple[int, float]): + """Set specified motor to percentage power + + :param arguments: tuples of port, speed in rpm + :raises: IndexError + """ + + request = CompLib_pb2.MotorsSetSpeedRequest() + request.header.message_type = request.DESCRIPTOR.full_name + + for port, speed in arguments: + if port < 0 or port >= MOTOR_COUNT: + raise IndexError("Invalid Motor port specified!") + + inner_request = CompLib_pb2.MotorSetSpeedRequest() + inner_request.port = port + inner_request.speed = speed + + request.requests.append(inner_request) + + CompLibClient.send(request.SerializeToString(), request.ByteSize()) + # @staticmethod # def all_off(): # """ diff --git a/client_s2/compLib/__pycache__/CompLibClient.cpython-39.pyc b/client_s2/compLib/__pycache__/CompLibClient.cpython-39.pyc deleted file mode 100644 index 7dc2349dfa01ce2de7835d64207d05cd7acf1ff7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1311 zcmZuxO>Y}F5arjd*0Llgj*(Mtxpa#{ii|dBfTD;i*oo0bHY^2gi2{q&l1^4$?J6Xd zB7%I0a}C;ibC7{v`j>d^DSsiS4tM2N0?NgV$RRoN=FL!Xvsp(le);t0=yMODzujVe zFjzbW(O-fRNZ<_d>K9K4Cm0FBsi2$*#=R#^|CWcOQP;e$eiI)lJ{tM<{XU)(7CJVn2k5L>vpmiKLQAPcnf&P(cKJ z$F4B-~rb(97Vvq8JTO7wNYT5H7!;K?|^jtp5=ME>1`3ixAtb(HkQR zC8P?Q*4IUHAq}q`97V_d!y(@uob*uPNRA%MKv#sQ%OfDiN^|Z*f41GnxtX%(a z<}mR)H+zwze&w>cVYID(mu1Aikh%p9K0WI^*HY=u1-LeGZqod9D)mgs&aZ{K(9<}P zRc9T4*GbAcM|%IJ*E$;w(4M}5+Cyp$aIAMhA+n2G-X5-#I&RTAtCRWe<`s85Bx(oF zD%X^WWB+Ej>|Ls5yLxo0+zCJxda)_4zDY!L$^J zEV--HZNQ~kpzeccmpX!M1IRhRjLz?E=DS(Sez;|WD9YoBj3Qf)qDdiUnVUDF=+!LF zRyz%cCQT;Nyex$E$^t4EN;#G-8x=)XVpzlFs;f$Hjz;%aq}|gC2*G=I2`*bJ43x9k zJ4yAB+iN7LJ=o#5p7)P`y6NWAgW*%P1!m>kS-%*Kq2WtU{}-&Fa0>x!z~oq#k5 I!|>660F8x5!2kdN diff --git a/client_s2/compLib/__pycache__/CompLib_pb2.cpython-39.pyc b/client_s2/compLib/__pycache__/CompLib_pb2.cpython-39.pyc deleted file mode 100644 index 272a68d45821155879845ef31f0e50a137431b8e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5022 zcmdUzOHU)q702D?VJKq^?FZ(~cPPIJ~ z?stfiO?Fu@QKGACqHOX7lCKa&Q7fD1Mv-O}Wf4WnBFZ`Ca$!a=v98!;(ERzk>UZi? z7geVVO0gIT!N1@A_7~;fuZBWj$l>Sv8XKq6bmnK__kH#i7CZieU3ss;QzJ1f z30)D3f>=}pkwiifOM+NZL{t(RpIDdL_W?kQqY5?Mvu z7sP!H=x-tpKz z1MOMa-tkZ9Wj5|SrJsQs^mC?zzXEE|FIWQnBB()^SQ7kIP=j7$De%`p4SIv6!7qav zbcIcTzX@v4TPy>971W?>Y!du!P=nrKQ{eA{8uT8U27e#apbyv#_=lhdeZ*$LKL$1E z6E+9_DX2jWHV^(8s6p4+0{9J3gKn}*;B%k`HCYz?b5Mi6V3)za1U2ZK6`QO5No z8IeOe&7%g(XbalnaCVIhTFp|kw!)un4+EM#W=R zD+Tt07W13>JQ@7HNFxHHtMTQ|eA?Nw7Ky76zv0z=_CI3~@WtFj+U`NyQ_emm(`Fr) zl@}oSuIE>Ajr^V`^^VM(9e+_XgasUKbf%T*Tj*OH*a(klS>sgV*Ua@QFm=}Z%#X-y z*UY;IxUi|G33;m~Cg!e*xj!K3t%AkszQ=vDUMjn+=kVM-{{AsVdZqIq^ zB%|`G*b7^zG18A`Q7lnREYTiGy@IpPeTy}By?3}hdpjoj24x0U`Mv|ukFKkJn7X1(kVf#F{r-}9H z=%lS5S42;csK=|U4pjmUer7-{Q;8&Vy!w{G4r`X`m7cdJW}q_0sfizfhE-FZf+MHq z_;Sf8(Tgo!&#?o}dOx*TPD}LzmpQZ@D08IAsLH`hRAq6=hcW+m=@}PKgtOfFY5yVQaUTF9gJKY94LD_Hv%@1SjtuKMYrnF}Oy^O#$zjKvb*`Q_%6@KFULs z8j6Q;gqwC)S$Y;k9EW-p$FbuFo(Jcueffdw z7KfxEI|}ElbIIb6C}fXywTO!rhg>0hsB^#JFgV7YT(~%7!nltvU3MhL_De0dX-BZj zp=En~ol=YOYRRpB$>{T{%lI_Lrn+xkzEeJO>ZKZkxR>U7&MbhjitEKa%Z@uQ%pJ3^ zwOKH~vu9dG$f_Ew-TaPa+B1&1vzdpe0>tj-t*zn~w0HQ~b9!a)sqWY2c77AWO%*-Y z9o^k6!zUbghnhQ99(8?V+w7#xoOI;2taEyB!t2}HotVj!7}X>5q@7oJ*v^(^7I*XC z#Yb(gMpwJFYnr)Ed(z40@~_Nd;d?kzr#1Cas~kM#fWLc%HT6?Ssw zi-LKwAh9;v8F5D4?04nG{#E;iUWD7U9g!b6{;|W37uW&3Nf__64nZp)M!`Ro@F>a% zN(^NbC5|$NGLE97Bv6tlDU>wI1WE>F62#V>JhxD3eic)q{QKK0d(i8zyn(wmykVQw`dg?eEzVZndHjvv zC{@@>1%Dmc+E}T$_AmRT@7ar_9v-m!!UDVfq0f*XQd;kCd diff --git a/client_s2/compLib/__pycache__/Encoder.cpython-39.pyc b/client_s2/compLib/__pycache__/Encoder.cpython-39.pyc deleted file mode 100644 index 737675bf2529ed01ae23aab1884bdfd7fccec4c5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1751 zcmcgtOK%%D5GHq5ueFpkanqt{3M|kZDxj5$90S7$qNG8J!Zj>62LZuiwVc>%@5>}N ztp)XDpZY7LqyG}GJ@wpMPo3G-%dra-J(K`P+#zT9@#8mC(CN4gTleC(@yucDcly|D z=wr{YtFO@rCV0#eKH{9lR%|8q$mZ-76SijrCUZFsEI`bq1_vofio6g3fJE-X0KwAdZ&^ygXBpjvoMI&Zf_OWy<@f( zBJuO_6Z82Znuy$Aa(4h{1t@LY7cYl{gV+0qKOUIYy8=_EK?0_JjEg~KtHYHT~*JR5UCBA=?4Dze81nW)SwwnB*HF@~Y-2IO#J}p&Db@U$a!XkaX z)M%3FOe!zT(iB1s;$Mrp3|yu|t^H?BOL~?ncI&HAschm?5}#kvU<=KpcZ1Hwfe=CO zHZ96FhFw$6n~DJpScp*Gq4amjd_?9RMSQWLwatiy7`AC42~2)WhH6EALgrI6#$AJw zpOJS}sFilMSK3)Gq`(iwvn-w7E$jF2)ol7@x%j?ueLu-W5d)6fzJFE(F%=SiHGE%W zA-VBk&{3FxKF)-EM6kT;*w&=mI6+?}peA>0i@P0*OY(Q?X1jb!qH%Ad&MTrHd@xh} hO;n{=&&DUHu`ayzs+`+^BuI2TMf;GElGL+~N%Hh#ww?4Zj{XSd8J zU#FwpEQLZRw0wQo`0*S~Jw*pBcPuuRY-ueqJGw2nurAn~pLF(+z&T~a zo_#-nSOjsF5g=6oRza+TvPhukS7->)GYNVsi)X>%bdmufrX$HzR$NlKI=ViPa74Nq zM1f3^-9a~JKllXpJI2|mB^W~C2k%+eGFI=A;i;q|SMJX*``;>%s{f`el#UCX7C)w- zrV{!;mGX_6#0m5hs^lS{gs_$Hnw=Iu< zY|XY-0DG%lALx<_+(4^zNxgWZF5N{FRp?b(Y>^hRPf2;!45cIs)Y(dWkf&N>rPmTV z==zc%h4)uL)T<&MWpJ5pxq(61Cf6Z%iyWm&Zj!rAZVTOeE zm_y8Go2$oqb^L$j{7KDuT(=K)+`p5)64_p={sU`y{|3%YQQs9{>^kY&Ytok+4!WN4 zqDsC|Wc(<~OEJv==j|vuoyHjn8^4-SB+7)Au{m{`_`^XXL=x8M)tE%w^tdi+S9;a7I2OL#ypy!&lZp zo9I?QPiH^G<9-tJOkHEx2oyV?Ou>krSy5= z^I66Cs;mlo*0i^ut6VHT?Zx{mQ;{uB;#J zrG4t2dSLyavb2_VP+bzRHC4ZCEbYtY75FY&SJsscbov0JviN<-6_qm{#V0X9FgYWT zGSBcir?dQwi@L#qSbDQigeiE1>d^t%2lQ+bN0Sw18cQT19~?9lGR$AA02AOb=Z z1KcS;p=tOE)8TA~j=4JHJfjc4>~?9GF$&LB6cNUf%O2g!7=N`ZL@sXU1OX1;ezupr z43n5qb5JJV70~VY&CSitHG_qV-M=n0yRWUJLre!T{Zm5kh}u4AZ|KJU;ql>7&_8^3 zaIEXA%ygp^W-uE+(px4W3B(VO*(3g9&ZW}z?{Z&RnjCr@$E&UT#2~bc8S6e{^5ccK%@^9#D5aL1HyL~zx`jr zH*kBUszOy3Pgs_ooaFNau9CUPXq?fb!TznRd;cbRQ30wzhoS~gfmg1;!&noXk#Z?G z(ZU5AXg)%-i3W8g?xR6f2|Pw|56#D5-YLk;Z=n~pQ)7P(mQ4iu+ZBD!NID+xtd(a;*?Tj^AEh7#+0}kNK85?uL|UWa Wc57YzssQyhUPcm&u1T7<>--6MFxq7R diff --git a/client_s2/compLib/__pycache__/Movement.cpython-39.pyc b/client_s2/compLib/__pycache__/Movement.cpython-39.pyc deleted file mode 100644 index 1f185a1487878f5eb3cdbb663d26e4f9672c3c26..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2466 zcmchZOK;mo5P(VQMahz#*m2VIw6{WNZM8WRg-{f2?7RTiHEj373$fykrM3A`c2^c; zsHfy-+zutO`dJ=>;xCv>8USFx=ZmZ*s8TT4`-`ljO5gneXnYro?PYrku! zot-2a@5#YVC?Pfhsh3CTVh^=odA6`TN7!Bks!)TPaNarD>#J{UuU_bCsH=;{ThcWO zor}7rXk|KAtY8T3)crm=hX}o1eECuiM=XSM2w4zvt(i$!ki`^x&snLDS>X$57~ug$Hw(VyP7LrinV!V;(>+pgr~KX)nk&m9L-V8ae1Kkl!B9(p5p=_=_*Y z9d7A13ajbbZM$yQ9oN2iRId2DHL~9jFjN3Ki}(Y9|H(4=$5?wpHjpP0Q7OV%fS+%N zJF(AWXLnK`B$F8F+zPPPXH$us|0Dkcz|K)vmLx9V&wU~Lh0_6;Dd1k+`r@n4vk36_ z=AxUsKye{?tpC$CP<5=Pw@!H~To>>w7bg@|Tv3ZxD`eN<@i0Ul@*us{5_5FzYei_N z4haHUt&&(HaSsK;`;hJlUUi?uItd~+7Z30*ZPRXDIQSSf@AI}<^0sV?wADiy16OGS zqnw0XeHh>_ek<#OJ!We_C8owVBXOxJvb`mDss7(sz5eXu53Ed20;#XBr5aF8OckOD$vDfeAS2owJdmCBr um4of211R5yn>S|ie?0l=P)`P@5SZ*Gw|P$8uk&yE2K%3->6~cW?aE(fRGf(b diff --git a/client_s2/compLib/__pycache__/__init__.cpython-39.pyc b/client_s2/compLib/__pycache__/__init__.cpython-39.pyc deleted file mode 100644 index f848f0aac5d443685015ee817a9d23e92f6fb880..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 163 zcmYe~<>g`kg81sLBoO@=L?8o3AjbiSi&=m~3PUi1CZpdU!Gr-U0jfuoT{IkpIhML>7<{WlbM=V5?^ct5y?!_kB`sH c%PfhH*DI*J#bJ}1pHiBWY6r66GY~TX09KMHyZ`_I diff --git a/client_s2/dev01.py b/client_s2/dev01.py new file mode 100644 index 0000000..6ebfb8c --- /dev/null +++ b/client_s2/dev01.py @@ -0,0 +1,24 @@ +import time + +from compLib.CompLibClient import CompLibClient + + +def main(): + from compLib.Motor import Motor + + # Motor.speed(0, -50) + # Motor.speed(3, 50) + + Motor.power(0, 50) + Motor.power(3, -50) + + time.sleep(2) + + Motor.power(0, 0) + Motor.power(3, -0) + + +if __name__ == '__main__': + CompLibClient.use_tcp_socket("dev01.local") + # follow() + main() diff --git a/client_s2/dev03.py b/client_s2/dev03.py new file mode 100644 index 0000000..d4ed808 --- /dev/null +++ b/client_s2/dev03.py @@ -0,0 +1,34 @@ +import time + +from compLib.CompLibClient import CompLibClient +from compLib.IRSensor import IRSensor + + +def main(): + # Motor.speed(0, -50) + # Motor.speed(3, 50) + + # Motor.power(0, 50) + # Motor.power(3, -50) + # + # time.sleep(2) + # + # Motor.power(0, 0) + # Motor.power(3, -0) + + start_time = time.time() + for i in range(0, 1000): + IRSensor.read_all() + # Motor.multiple_power((0, 1), (3, 1)) + # Motor.speed(0, 1) + # Motor.speed(3, 1) + + print(1000.0 / (time.time() - start_time)) + + +if __name__ == '__main__': + # CompLibClient.use_tcp_socket("dev03.local") + CompLibClient.use_unix_socket() + # follow() + # cProfile.run("main()") + main() diff --git a/client_s2/lf.py b/client_s2/lf.py new file mode 100644 index 0000000..faacc30 --- /dev/null +++ b/client_s2/lf.py @@ -0,0 +1,109 @@ +import time + +from compLib.CompLibClient import CompLibClient +from compLib.IRSensor import IRSensor +from compLib.Motor import Motor + +DRIVE_SPEED = 5.0 +COLOR_BREAK = 1500.0 +KP = 2.0 +KD = 0.0 + + +def drive(left_speed, right_speed): + print(left_speed, right_speed) + + right_speed *= -1.0 + + Motor.speed(0, right_speed) + Motor.speed(3, left_speed) + + +def follow(sleep_time=0.1): + last_error = 0 + sensors_black = 0 + while sensors_black <= 3: + sensor_values = IRSensor.read_all() + + sensors_black = 0 + for sensor in sensor_values: + if sensor > COLOR_BREAK: + sensors_black += 1 + + error = last_error + if sensor_values[2] > COLOR_BREAK: + error = 0 + elif sensor_values[0] > COLOR_BREAK: + error = -1.5 + elif sensor_values[4] > COLOR_BREAK: + error = 1.5 + elif sensor_values[1] > COLOR_BREAK: + error = -1 + elif sensor_values[3] > COLOR_BREAK: + error = 1 + elif error == 1.5: + error = 3.5 + elif error == -1.5: + error = -3.5 + + last_error = error + + adjustment = KP * error + KD * (error - last_error) + left_speed = DRIVE_SPEED + adjustment + right_speed = DRIVE_SPEED - adjustment + + print(sensor_values) + print(f"{left_speed} {right_speed} {adjustment} {error}") + drive(left_speed, right_speed) + + drive(0, 0) + time.sleep(sleep_time) + + +def follow_simple(): + left_speed = DRIVE_SPEED + right_speed = DRIVE_SPEED + sensor_values = IRSensor.read_all() + while True: + sensor_values = IRSensor.read_all() + # for i in range(len(sensor_values)): + # sensor_values[i] = (sensor_values[i] + new_sensor_values[i]) / 2.0 + + print(sensor_values) + + if sensor_values[0] > COLOR_BREAK and sensor_values[4] > COLOR_BREAK: + break + + if sensor_values[0] > COLOR_BREAK: + left_speed = -DRIVE_SPEED / 2 + right_speed = DRIVE_SPEED + elif sensor_values[4] > COLOR_BREAK: + left_speed = DRIVE_SPEED + right_speed = -DRIVE_SPEED / 2 + elif sensor_values[2] > COLOR_BREAK: + left_speed = DRIVE_SPEED + right_speed = DRIVE_SPEED + + drive(left_speed, right_speed) + + +def main(): + CompLibClient.use_unix_socket() + + IRSensor.enable() + time.sleep(0.1) + + # while True: + # print(IRSensor.read_all()) + + # follow_simple() + # drive(5, 5) + # time.sleep(5) + # follow() + # follow() + # follow() + # follow() + # follow(0.2) + + +main() diff --git a/client_s2/main.py b/client_s2/main.py index 8082ab6..7e75006 100644 --- a/client_s2/main.py +++ b/client_s2/main.py @@ -1,4 +1,6 @@ -SOCKET_PATH = "/tmp/compLib" +import time + +from compLib.CompLibClient import CompLibClient # def send(data, size): @@ -30,61 +32,143 @@ def main(): # send(encoder_read_positions_request.SerializeToString(), encoder_read_positions_request.ByteSize()) # print("--- %s seconds ---" % (time.time() - start_time)) - # from compLib.IRSensor import IRSensor - # IRSensor.read_all() - # + from compLib.IRSensor import IRSensor + IRSensor.enable() + + startTime = time.time() + while time.time() - startTime < 10: + print(IRSensor.read_all()) + time.sleep(0.01) + # from compLib.Encoder import Encoder # print(Encoder.read_all_positions()) # print(Encoder.read_all_velocities()) # from compLib.Motor import Motor - # Motor.speed(0, 50) - # Motor.speed(3, -50) - # - # import time - # time.sleep(2) - # - # Motor.speed(0, 0) - # Motor.speed(3, -0) - # Motor.power(0, 0) - # Motor.power(3, 0) + # Motor.speed(0, -50) + # Motor.speed(3, 50) - # import math - # from compLib.Movement import Movement - # Movement.turn_degrees(90, math.pi * 2) - # Movement.turn_degrees(-90, math.pi * 2) - # - # Movement.turn_degrees(90, math.pi * 2) - # Movement.turn_degrees(90, -math.pi * 2) - # - # Movement.turn_degrees(90, math.pi * 2) - # Movement.turn_degrees(-90, -math.pi * 2) + # Motor.power(0, -50) + # Motor.power(3, 50) - # from compLib.Movement import Movement - # Movement.drive_distance(0.1, 0.5) - # Movement.drive_distance(-0.1, 0.5) - # - # Movement.drive_distance(0.1, 0.5) - # Movement.drive_distance(0.1, -0.5) - # - # Movement.drive_distance(0.1, 0.5) - # Movement.drive_distance(-0.1, -0.5) + # time.sleep(5) - from compLib.Movement import Movement - import math - Movement.drive_distance(0.5, 0.5) - Movement.turn_degrees(90, math.pi * 2) - Movement.drive_distance(0.5, 0.5) - Movement.turn_degrees(90, math.pi * 2) +# +# import time +# time.sleep(2) +# +# Motor.speed(0, 0) +# Motor.speed(3, -0) - Movement.drive_distance(0.5, 0.5) - Movement.turn_degrees(90, math.pi * 2) +# Motor.power(0, 0) +# Motor.power(3, 0) - Movement.drive_distance(0.5, 0.5) - Movement.turn_degrees(90, math.pi * 2) +# import math +# from compLib.Movement import Movement +# Movement.turn_degrees(90, math.pi * 2) +# Movement.turn_degrees(-90, math.pi * 2) +# +# Movement.turn_degrees(90, math.pi * 2) +# Movement.turn_degrees(90, -math.pi * 2) +# +# Movement.turn_degrees(90, math.pi * 2) +# Movement.turn_degrees(-90, -math.pi * 2) + +# from compLib.Movement import Movement +# Movement.drive_distance(0.1, 0.5) +# Movement.drive_distance(-0.1, 0.5) +# +# Movement.drive_distance(0.1, 0.5) +# Movement.drive_distance(0.1, -0.5) +# +# Movement.drive_distance(0.1, 0.5) +# Movement.drive_distance(-0.1, -0.5) + +# from compLib.Movement import Movement +# import math +# import time +# Movement.drive_distance(0.5, 0.5) +# time.sleep(1) +# Movement.turn_degrees(90, math.pi * 2) +# time.sleep(1) +# +# Movement.drive_distance(0.5, 0.5) +# time.sleep(1) +# Movement.turn_degrees(90, math.pi * 2) +# time.sleep(1) +# +# Movement.drive_distance(0.5, 0.5) +# time.sleep(1) +# Movement.turn_degrees(90, math.pi * 2) +# time.sleep(1) +# +# Movement.drive_distance(0.5, 0.5) +# time.sleep(1) +# Movement.turn_degrees(90, math.pi * 2) +# time.sleep(1) + +# import time +# +# from compLib.IRSensor import IRSensor +# from compLib.Motor import Motor +# +# IRSensor.enable() +# +# DRIVE_SPEED = 2.0 +# COLOR_BREAK = 900 +# KP = 0.25 +# KD = 0.0 +# +# +# def drive(leftSpeed, rightSpeed): +# Motor.speed(0, -rightSpeed) +# Motor.power(3, leftSpeed) +# +# +# def follow(sleepTime=0.1): +# lastError = 0 +# sensorsBlack = 0 +# +# while sensorsBlack < 3: +# data = IRSensor.read_all() +# +# sensorsBlack = 0 +# for i in range(len(data)): +# if data[i] > COLOR_BREAK: +# sensorsBlack += 1 +# +# error = lastError +# if data[2] > COLOR_BREAK: +# error = 0 +# elif data[0] > COLOR_BREAK: +# error = -1.5 +# elif data[4] > COLOR_BREAK: +# error = 1.5 +# elif data[1] > COLOR_BREAK: +# error = -1 +# elif data[3] > COLOR_BREAK: +# error = 1 +# elif error == 1.5: +# error = 3 +# elif error == -1.5: +# error = -3 +# +# lastError = error +# +# adjustment = KP * error + KD * (error - lastError) +# leftSpeed = DRIVE_SPEED + adjustment +# rightSpeed = DRIVE_SPEED - adjustment +# +# print(f"{leftSpeed} {rightSpeed} {adjustment} {error}") +# drive(leftSpeed, rightSpeed) +# +# drive(0, 0) +# time.sleep(sleepTime) if __name__ == '__main__': + CompLibClient.use_tcp_socket("dev03.local") + # follow() main() diff --git a/server_v2/.idea/deployment.xml b/server_v2/.idea/deployment.xml index 4205078..c9520d5 100644 --- a/server_v2/.idea/deployment.xml +++ b/server_v2/.idea/deployment.xml @@ -2,7 +2,19 @@ - + + + + + + + + + + + + + @@ -10,6 +22,8 @@ + + diff --git a/server_v2/CMakeLists.txt b/server_v2/CMakeLists.txt index b9dd7c0..7246f94 100755 --- a/server_v2/CMakeLists.txt +++ b/server_v2/CMakeLists.txt @@ -55,12 +55,14 @@ set(SRC_FILES src/communication/MessageBuilder.cpp src/communication/UnixSocketServer.cpp src/communication/TCPSocketServer.cpp - src/GoToController.cpp) + src/GoToController.cpp + src/HealthChecker.cpp) set(HDR_FILES include/spi.hpp include/reset.hpp include/mathUtils.hpp + include/networkUtils.hpp include/IRSensors.hpp include/Robot.hpp include/Cache.hpp @@ -74,7 +76,8 @@ set(HDR_FILES include/communication/MessageBuilder.hpp include/communication/UnixSocketServer.hpp include/communication/TCPSocketServer.hpp - include/GoToController.hpp) + include/GoToController.hpp + include/HealthChecker.hpp) include_directories(third_party/asio) diff --git a/server_v2/include/ClosedLoopMotorController.hpp b/server_v2/include/ClosedLoopMotorController.hpp index eb589e7..23865dd 100644 --- a/server_v2/include/ClosedLoopMotorController.hpp +++ b/server_v2/include/ClosedLoopMotorController.hpp @@ -25,6 +25,8 @@ public: void set_speed(uint8_t port, double speed_rad_s); + void stop_all(); + void generate_step_response_data(); void generate_tuned_step_response_data(); diff --git a/server_v2/include/HealthChecker.hpp b/server_v2/include/HealthChecker.hpp new file mode 100644 index 0000000..15e7784 --- /dev/null +++ b/server_v2/include/HealthChecker.hpp @@ -0,0 +1,35 @@ +#ifndef COMPLIB_SERVER_HEALTHCHECKER_HPP +#define COMPLIB_SERVER_HEALTHCHECKER_HPP + +#include +#include + +#define HEALTH_CHECK_TIMEOUT_MS 500 + +class HealthChecker { +public: + static HealthChecker &getInstance() { + static HealthChecker instance; + return instance; + } + + HealthChecker(HealthChecker const &) = delete; + + void operator=(HealthChecker const &) = delete; + + void update(); + +private: + HealthChecker(); + + [[noreturn]] void check_loop(); + + typedef std::chrono::steady_clock clock; + + std::thread check_thread; + std::chrono::time_point last_update; + bool stop_sent = false; +}; + + +#endif //COMPLIB_SERVER_HEALTHCHECKER_HPP diff --git a/server_v2/include/communication/TCPSocketServer.hpp b/server_v2/include/communication/TCPSocketServer.hpp index a1c0384..83f854e 100644 --- a/server_v2/include/communication/TCPSocketServer.hpp +++ b/server_v2/include/communication/TCPSocketServer.hpp @@ -3,7 +3,6 @@ #include -#define SOCKET_PATH "/tmp/compLib" #define SOCKET_BUFFER_SIZE 128 class TCPSocketServer { diff --git a/server_v2/include/networkUtils.hpp b/server_v2/include/networkUtils.hpp new file mode 100644 index 0000000..561127f --- /dev/null +++ b/server_v2/include/networkUtils.hpp @@ -0,0 +1,49 @@ +#ifndef COMPLIB_SERVER_NETWORKUTILS_H +#define COMPLIB_SERVER_NETWORKUTILS_H + +#include +#include +#include +#include "spdlog/spdlog.h" + +#include +#include + +namespace networkUtils { + inline std::tuple get_current_host_and_ip() { + struct ifaddrs *ifaddr, *ifa; + int family, s; + char host[NI_MAXHOST]; + + if (getifaddrs(&ifaddr) == -1) { + spdlog::error("getifaddrs failed"); + freeifaddrs(ifaddr); + return std::tuple("", ""); + } + + for (ifa = ifaddr; ifa != NULL; ifa = ifa->ifa_next) { + if (ifa->ifa_addr == NULL) + continue; + + family = ifa->ifa_addr->sa_family; + + if (family == AF_INET) { + s = getnameinfo(ifa->ifa_addr, sizeof(struct sockaddr_in), host, NI_MAXHOST, NULL, 0, NI_NUMERICHOST); + if (s != 0) { + spdlog::error("getnameinfo() failed: {}", gai_strerror(s)); + freeifaddrs(ifaddr); + return std::tuple("", ""); + } + + if (std::string(ifa->ifa_name) != "lo") { + freeifaddrs(ifaddr); + return std::tuple(ifa->ifa_name, std::string(host)); + } + } + } + + return std::tuple("", ""); + } +} + +#endif //COMPLIB_SERVER_NETWORKUTILS_H diff --git a/server_v2/include/spi.hpp b/server_v2/include/spi.hpp index 856fff0..1aa08ed 100644 --- a/server_v2/include/spi.hpp +++ b/server_v2/include/spi.hpp @@ -31,6 +31,8 @@ public: void write_array(uint8_t reg, uint8_t length, const uint8_t *data); + std::array read_version(); + enum Register : uint8_t { IDENTIFICATION_MODEL_ID = 1, IDENTIFICATION_MODEL_REV_MAJOR = 2, diff --git a/server_v2/protos/CompLib.proto b/server_v2/protos/CompLib.proto index 8185499..1af66ad 100644 --- a/server_v2/protos/CompLib.proto +++ b/server_v2/protos/CompLib.proto @@ -58,16 +58,24 @@ message IRSensorsReadAllResponse { repeated uint32 data = 3 [packed = true]; } +message MotorSetPowerRequest { + uint32 port = 1; + double power = 2; +} + message MotorsSetPowerRequest { Header header = 1; - uint32 port = 2; - double power = 3; + repeated MotorSetPowerRequest requests = 2; +} + +message MotorSetSpeedRequest { + uint32 port = 1; + double speed = 2; } message MotorsSetSpeedRequest { Header header = 1; - uint32 port = 2; - double speed = 3; + repeated MotorSetSpeedRequest requests = 2; } message OdometryReadRequest { @@ -98,4 +106,8 @@ message DriveRequest { Header header = 1; double linear_velocity_m_s = 2; double angular_velocity_rad_s = 3; +} + +message HealthUpdateRequest { + Header header = 1; } \ No newline at end of file diff --git a/server_v2/src/ClosedLoopMotorController.cpp b/server_v2/src/ClosedLoopMotorController.cpp index 48d670c..ad893cf 100644 --- a/server_v2/src/ClosedLoopMotorController.cpp +++ b/server_v2/src/ClosedLoopMotorController.cpp @@ -184,3 +184,9 @@ void ClosedLoopMotorController::calibrate_wheel_ticks(double turns, double ticks std::this_thread::sleep_for(std::chrono::milliseconds(100)); } + +void ClosedLoopMotorController::stop_all() { + for (int i = 0; i < ROBOT_MOTOR_COUNT; i++) { + set_power(i, 0); + } +} diff --git a/server_v2/src/HealthChecker.cpp b/server_v2/src/HealthChecker.cpp new file mode 100644 index 0000000..c260d5e --- /dev/null +++ b/server_v2/src/HealthChecker.cpp @@ -0,0 +1,28 @@ +#include "include/HealthChecker.hpp" +#include "include/ClosedLoopMotorController.hpp" +#include "include/spi.hpp" +#include "include/IRSensors.hpp" + +HealthChecker::HealthChecker() { + last_update = clock::now(); + check_thread = std::thread(&HealthChecker::check_loop, this); + check_thread.detach(); +} + +void HealthChecker::update() { + last_update = clock::now(); +} + +void HealthChecker::check_loop() { + while (true) { + if (clock::now() - last_update < std::chrono::milliseconds(HEALTH_CHECK_TIMEOUT_MS)) { + Spi::getInstance().read_version(); + stop_sent = false; + } else if (!stop_sent) { + ClosedLoopMotorController::getInstance().stop_all(); + IRSensors::disable(); + stop_sent = true; + } + std::this_thread::sleep_for(std::chrono::milliseconds(HEALTH_CHECK_TIMEOUT_MS / 2)); + } +} diff --git a/server_v2/src/IRSensors.cpp b/server_v2/src/IRSensors.cpp index 9edd035..bc80e26 100644 --- a/server_v2/src/IRSensors.cpp +++ b/server_v2/src/IRSensors.cpp @@ -2,6 +2,7 @@ #include "include/spi.hpp" #include "include/Robot.hpp" #include "include/mathUtils.hpp" +#include "spdlog/spdlog.h" void IRSensors::enable() { uint8_t data[ROBOT_IR_SENSOR_COUNT] = {}; diff --git a/server_v2/src/communication/MessageProcessor.cpp b/server_v2/src/communication/MessageProcessor.cpp index 283177e..bfd8543 100644 --- a/server_v2/src/communication/MessageProcessor.cpp +++ b/server_v2/src/communication/MessageProcessor.cpp @@ -7,6 +7,7 @@ #include "include/IRSensors.hpp" #include "include/ClosedLoopMotorController.hpp" #include "include/GoToController.hpp" +#include "include/HealthChecker.hpp" using namespace CompLib; @@ -14,7 +15,7 @@ google::protobuf::Message *MessageProcessor::process_message(const std::string & CompLib::GenericRequest message; message.ParseFromString(serializedMessage); auto messageTypeName = message.header().message_type(); - spdlog::debug("Got request with type {}", messageTypeName); +// spdlog::debug("Got request with type {}", messageTypeName); try { // Encoder @@ -39,12 +40,16 @@ google::protobuf::Message *MessageProcessor::process_message(const std::string & if (messageTypeName == MotorsSetPowerRequest::GetDescriptor()->full_name()) { MotorsSetPowerRequest request; request.ParseFromString(serializedMessage); - ClosedLoopMotorController::getInstance().set_power(request.port(), request.power()); + for (const auto &innerRequest: request.requests()) { + ClosedLoopMotorController::getInstance().set_power(innerRequest.port(), innerRequest.power()); + } return MessageBuilder::default_successful_generic_response(); } else if (messageTypeName == MotorsSetSpeedRequest::GetDescriptor()->full_name()) { MotorsSetSpeedRequest request; request.ParseFromString(serializedMessage); - ClosedLoopMotorController::getInstance().set_speed(request.port(), request.speed()); + for (const auto &innerRequest: request.requests()) { + ClosedLoopMotorController::getInstance().set_speed(innerRequest.port(), innerRequest.speed()); + } return MessageBuilder::default_successful_generic_response(); } @@ -65,6 +70,15 @@ google::protobuf::Message *MessageProcessor::process_message(const std::string & GoToController::diff_drive_inverse_kinematics(request.linear_velocity_m_s(), request.angular_velocity_rad_s()); return MessageBuilder::default_successful_generic_response(); } + + // Health + if (messageTypeName == HealthUpdateRequest::GetDescriptor()->full_name()) { + HealthUpdateRequest request; + request.ParseFromString(serializedMessage); + HealthChecker::getInstance().update(); + return MessageBuilder::default_successful_generic_response(); + } + } catch (const std::exception &ex) { spdlog::error("Error when processing message with header {}: {}", messageTypeName, ex.what()); google::protobuf::Message *returnMessage = MessageBuilder::generic_response(false, ex.what()); diff --git a/server_v2/src/communication/UnixSocketServer.cpp b/server_v2/src/communication/UnixSocketServer.cpp index f9b336a..b9500ef 100644 --- a/server_v2/src/communication/UnixSocketServer.cpp +++ b/server_v2/src/communication/UnixSocketServer.cpp @@ -1,6 +1,7 @@ #include #include #include +#include #include "include/communication/UnixSocketServer.hpp" #include "include/communication/MessageProcessor.hpp" @@ -23,6 +24,8 @@ UnixSocketServer::UnixSocketServer() { exit(-1); } + chmod(SOCKET_PATH, 0777); + if (listen(socket_file_descriptor, 1) == -1) { exit(-2); } @@ -32,23 +35,31 @@ UnixSocketServer::UnixSocketServer() { for (;;) { int client_file_descriptor = accept(socket_file_descriptor, NULL, NULL); - read(client_file_descriptor, read_buffer, 1); - uint8_t message_size = read_buffer[0]; + while (true) { + int bytes_received = read(client_file_descriptor, read_buffer, 1); + if (bytes_received <= 0) { + break; + } + uint8_t message_size = read_buffer[0]; - read(client_file_descriptor, read_buffer, read_buffer[0]); - std::string string_message; - for (int i{}; i < message_size; i++) { - string_message += read_buffer[i]; + bytes_received = read(client_file_descriptor, read_buffer, read_buffer[0]); + if (bytes_received <= 0) { + break; + } + std::string string_message; + for (int i{}; i < message_size; i++) { + string_message += read_buffer[i]; + } + + auto response = MessageProcessor::process_message(string_message); + uint8_t response_size = response->ByteSizeLong(); + write_buffer[0] = response_size; + write(client_file_descriptor, write_buffer, 1); + + response->SerializeToArray(write_buffer, SOCKET_BUFFER_SIZE); + write(client_file_descriptor, write_buffer, response_size); } - auto response = MessageProcessor::process_message(string_message); - uint8_t response_size = response->ByteSizeLong(); - write_buffer[0] = response_size; - write(client_file_descriptor, write_buffer, 1); - - response->SerializeToArray(write_buffer, SOCKET_BUFFER_SIZE); - write(client_file_descriptor, write_buffer, response_size); - close(client_file_descriptor); } } \ No newline at end of file diff --git a/server_v2/src/main.cpp b/server_v2/src/main.cpp index 5c83c54..eb4c87b 100644 --- a/server_v2/src/main.cpp +++ b/server_v2/src/main.cpp @@ -6,18 +6,22 @@ #include "include/ClosedLoopMotorController.hpp" #include "include/communication/UnixSocketServer.hpp" #include "include/communication/TCPSocketServer.hpp" +#include "include/HealthChecker.hpp" #include "include/GoToController.hpp" #include "include/Encoders.hpp" +#include "include/networkUtils.hpp" using namespace std; int main(int argc, char *argv[]) { Reset::reset_robot(); spdlog::set_pattern("%H:%M:%S.%e %^%-8l%$: %v"); - spdlog::set_level(spdlog::level::info); + spdlog::set_level(spdlog::level::debug); + spdlog::info("Starting complib_server..."); UnixSocketServer unixSocketServer; TCPSocketServer tcpSocketServer; + HealthChecker::getInstance(); // ClosedLoopMotorController::getInstance().set_speed(ROBOT_ODOMETRY_CONTROLLER_RIGHT_PORT, M_PI * ROBOT_ODOMETRY_CONTROLLER_RIGHT_MULT); // ClosedLoopMotorController::getInstance().set_speed(ROBOT_ODOMETRY_CONTROLLER_LEFT_PORT, M_PI_4 * ROBOT_ODOMETRY_CONTROLLER_LEFT_MULT); diff --git a/server_v2/src/spi.cpp b/server_v2/src/spi.cpp index 1374925..f53a343 100644 --- a/server_v2/src/spi.cpp +++ b/server_v2/src/spi.cpp @@ -1,5 +1,6 @@ #include #include +#include #include "include/spi.hpp" #include "include/mathUtils.hpp" @@ -114,6 +115,16 @@ void Spi::transfer() { } } +std::array Spi::read_version() { + uint8_t data[4] = {0}; + read_array(IDENTIFICATION_MODEL_ID, 4, data); + auto result = std::array(); + for (int i = 0; i < 4; i++) { + result.at(i) = data[i]; + } + return result; +} + #else Spi::Spi() {} @@ -147,4 +158,8 @@ void Spi::transfer() { spdlog::warn("Calling SPI without actual interface."); } +std::array Spi::read_version() { + spdlog::warn("Calling SPI without actual interface."); +} + #endif \ No newline at end of file diff --git a/server_v2/test_bin/compsrv b/server_v2/test_bin/compsrv old mode 100644 new mode 100755 index a7feb72b1aaa9687b2fd01be07536f5406be5155..6ec1a70c774b14849a7078ba8c9091ade5ae794e GIT binary patch literal 5266408 zcmdSC34D~*^*4Se3rrSZfT$6o4iIh7pfgE;pePd{8VqP8ps8CDl7R$5GA0uir6nvX zDrgWFsv>bmrIl7|sTCWmR%-PpDk^o&;%E$lxbO1+e(!T{=H|%+kYC^b=Y2;n=kE91 zbIv{Y-0jKI+^J_e9FAzAeo-P#IN(p2WT?N{OirU$kTj}u#m z$4l38x)5|R$WPY?j%Blulg@_%bUK}l1rZK99MT<)FdfqoEggXJIm8_$ani-AIOf?` z6$h6fT~eG7c`mD6mX1PtM|B)rf^^9!Ku5eZ4vh#mqJ6r_h^NzOec?CjM^HG8^z%Z& za>m(ztRHBI=}0%ryU<}e)=%6|sj8fHN>%x&s>lw&M7GE4KWH^{^e*#XS5mKl{yJU)5J1{0VS_PsxgM zIhHNUiE>AaYu%!xVPM?wK*QM$t3LNl&JzL8V_1N zH?_}^Q6SYy@xh?9WOP%AoFhS+hRMl35jAY0GgUZ22*--mT|g--w+sr>1Hr@(pO zyeck3K?05~{>H*(OP>(q08dr^(-a&Jcm|wLg(oU_rh;byPEr1;fak!S3wNH1n+{kA zXGxe47r=iZ+(mGgz!k&sS89Q7|IR|F46Yn*He3Z+?XHzFQT{!I!#Xrw(1|7N(~8*y9U ze-!R9758Taw*o!^w+-$oxWB_a4fh-zfB%Ae0q#Y(m*955y$bgl9Di?GpzGgV%J(0@ zx0U}Lz;~7ZJ;3*s-vlix&<5D9{2>KD1pG+(2|AR&6L2@&9=N?KZl8jmDfk88SIYl2 z;5TsJ!hHw#1Kdw=^5?*?hT|^^Fd8lvE>6Y8E0_q_Px+bGW%vidp9FVa)Hgf&56*qF zaCO?S%4r?@pWiZP{JCe{_sw5dY+iQWm8o}#4a*-My#2oF%(%y@hdp-V4KK`ImGEBE zTl0rsIJV)2i!Qis+*h}r`1?TrNBWNK+jx9%O!jTN{?PeulxM_~*KK-a(Uf_Q-@NF~ zB_8+B1J+NGyBp<+pEH(zs?rRo0#@ zJCD16O_Be*KWv?I^go-Qf9B_FUU}=5B@b+V@U8x*mL`l|vEpy%JbK;{&u`s1_1Q;1 z|2p?B|GXg^-`I9X*|z82>VMk8-=!TtKd$KQM^YYHzv!9M&;R&Ok0&-haqN-bowx9| z0WZdldv*7_pJ&a9e{9mdyDohEn9rI!kFQ_e@4lB}7dLHuaKO{!Tnp~~`jWq2)92#r zpFFpzZ2PkKS6{m1vo-mr*X8Ue9yj2EGd?c*@}gmL22TwZv~1YAwDotdKJnA5pAOhF zKlE1pOWSUHF)M#x&i1l>7yjv+pO;SmZ2M8KKk?}WZ?8-FF1_ffZI?}XZo=6O=j4Qj zdC$2&_KN%~mcRec>C2D!*Beh=9XGXd!s$=k{r!6xjqm*JlqW`=m3Q{j_pd9O{O>D{ z`r&sEt#A0^nY)4~O}T&6lMCOxJ>inzlD|5?NWS5?vLnYX`~KsZdHcVeJLG}k$2^;U z^oGB!OS$IGitArVOq{ZG?(FkF{NitM3tu{S$~a%*BYh{$pFQBARSBbSJbmTG34eP$ zepzGjqwi$C{?yj5Zk@Kwx%eN~U%kKZf4t@QIX>Fs*}A;ntOXA*kInt`{GEkOD}H!$ z#PtLJ{ipu@-kASJl5cUsRc&w9MUP$Z)AFYt_D}fsi6w)EEr0*W&ILa^MtpbgD-T!Y z4E%2VO=Is!o&UoPLkIlhl`BTh|I_C!r<`;8*T1>0Za~}bZd$T$|Aa4da(;csKL@^% z^0Q~%w6gb7V-qgB;GU0)N;bSW^W**v!R7rN6|wg}^q}jGi*7q@z|T*9b*r=B-8V=5 z^U1u1A!{ZEPZraW=vkB^_ymN@F_hHL*`^y8Y&r$+q#vw54&-q(Cg(#s$Ju5`kANe^z> zxoW%LH*Ld`3vYP#=5KCk&K>vc53`rGzCCa1qc?7?Jo~Au-<>`1tKaMyIAD%{>y$4h z{^Px)N1oX~Y5p6_MrHVZdgh&v);0w$`B&is>sR$XB{<-UL0e9XeRbbwmyh_z`;Kj| z7FPbxr>lRvp?31RpMO;ncdS^o{#R4(zGvKmn8mMLJfW)g`Qqr?-`&2UwLW(2y$c&scb)Na(UiW`d7ocX@aIjg`aGx!_uI24 ze7FC}%t_^&()tZbtWKHP|L^tfZ;xEk7QEzNv6J>VFS_dP zlYe~WwYW{kFHQL9tu>bgAKf#vGV%9wu6p{0-|RkS>Fa?$?)77z`P@DgiPAJIKM$5#K(HvFFMgSq>)Xwisb z!(ox>d78Db{mOpySwDuqwAEK+!}oufN&V>kja!GT`o;|J9=_j3zkp$&vHU1odbTYb zW2>*@*zWbOc6JXBF!;%$m(hZKC04FK*#8Dw{l7!ly&yrZ3kJgKyaDAKu&zl*S^ufn>503-?SIy`n zVxla5{@a#*wvB)7HvYZk?q1&#o4n74JnJ9v$+z+A2J}z=n4W8E?=;}Q-53u+8-9-i zZ~bHWuaMsf`X|Fr`sdi>f2a+=i*597xAF54FntHci{{^h$LZEA`d((M|KB$G$&1HY zq%~Tw+mx4+ZTuQ(Ywt%xKG>fQ8$D7{UkUK>A&v6%m5twpE+nWQ%ijY0^^f5{*z)^r z?O$SRzsZ(N%u z;qkEz{3*eBbE6v4XQqu`BhkN`E)C~D!dCyt0o~hgwzapx#_zti@J{Fl{UbdJZS-7f z)6c)Qwf~bXeDg?Mn?=tHPUs%~%Ib=YWP8Wk=+|!R&vKi5Tx;Xkr9->dzoc*XaHWl& zx7*71wdtpiZ2aeXLjQfb{VTTN@3r-Rj7?sy!F=}RwpfuJWsR?~HvH3!37zfr z1^qYeh?eVIj>pl!_t{_d5qU^s_{qWD@p;z9k9=GB1{?p~HvM#~Z9bd;JoS(G472sG zkFEY2ZTjhSn>_Bp{PE>w4#Bk(@lUbo+d|CW%@_|P8^^;b82|4eOfoZk5#Woj#mYSj zmfvO57sGA%d}rhL<2HIvx8;AphVK@e{QUunvB4O>m)hu;WuxDCHxO1o(yza*z4LAS ze#DmkGx*(N%qNw$@p-pxJZ-a==ft9ZZ2uvfyk=0*s~^*^vd!;fZS;80mYxg#=pW1P zwza?4R=&iR{DR$Fd01^5AGh21x0XVqe)QgJ z!~a&uzy2}(L$v294)bG}ZG66Ifs|;1wC-^4`^w;`rGz2yM#aOv#NBuV5HXrS>;rE=4KZ|Yj+X4MrF|v<% z7HzSAfBO-3)!K$J3pVrx}KReh2z*$&OgLU&{85 zb7TA%>wyh6`M(nMN<{y)zW+7w(LeILIR-A!r^_B)6s1!w{*?ot^~QL8*GBJ8ZS|soP^k5lF!PEVtGF8RR4V=~$j8$n>{u^Gz1!`|Z!gcHzIqCXY|q z_;Ebwx!s`evzY%^r}Yugz%zvFN{|`2KA8ylURmh)e ztOq}}%}+aR^Z(g4`Z;X$`6i(|ze;WT{I9n5_k#aT#&}p{Yp<`3es|l(#||6+{$<1G zZ5usAad9A6QR^=)FP`ULTwDfU&@YOo%$QbO?yvRFsjLh7YiCTGR8>>$pHVui3Tef2 z=GRmg*9A*!gT=*G*2ozzJZH?DnwmLP{_H?)O|WKG{cP{(nbq^EYZg|YS?RATFZ2f| zdvh0v;s_bN)BJUHrE~mKD}#RT=z`MPI{%rqHS-IDwUyO#a;N8?Qy3guTwJzjk=N_Z zm{nR=Sq6-lHl?gE==GLWl-3ppYfCGGbyLc63rq1&Zf?YeGN=0k>~pz9X-Z}8ByVoP zIfb6$(K)sL>e7gXvMZ}WmFm(eZU^=3_y1e{V0@>G}kyVX?iUqjkx|ANX| z|Cu$l^Gk!0Ql6Pps)Lysg_W24C6PSEURwv}My5l!%CR|hb(M3fC;RKlYAXZ5n%cTt zV(u;Wjt<93QOKQjC={KW>&*aCl3s-iO9QzDg&7c=o;(ku;F(%8NAVxrATzQNGu6Mq zUjEi_nVtbrU0fBMQCw9wb*?veYGtN3H+Mm9R&a3u5>r+FR@SQwZ9e_ zFmCLaf|uY@K}2eIHR&BQ9jcVWud7E8*twAe)-GR_x#On!Yv)KccL;Lk%`O1F{NLFWFLDuFLEI@0}UKp$yGKzijFA7R6)`O~+hVza+w_0kkoT{ptveIB>O*IA?q?Y1X zTv^IGUR~S_*70E$g~6Mo+1(3|5v_RbFmU zw6?aU)|w^`NFs|R8D7N;e@+!tvA_JBn!K8tdASkgs7v-TJbEg_OeANsiKTV^Lmc+u zTE@(-T;wk=E-f#w#S~oZpC1S=R&%RHJ(4(gRp7PhU+GY!o?i+J zDkv34VO7n-FJ_AJw}b!9AgK@x_3SN%Wb$rP{G-`fx1aGfyGm*!3_wBzjVGg zV>0YllW5Y0=v}8}76wYo{4?wP%O8J3x zid~2?`5j>1H;09nX49FN+o~vrGiqukR?dOU9okr#o12+aUXGb4vik25n{iUPPMIHo zH7u#7bys<0vUL^IGni$v9?A@6AFvsfHQsTG+vnB?!|WcHTU}RQ>zC++xn2=TMTF4- zS7ukiKEMQcZlG?ooQ#zbt<^eg*UX4|s)sCepUb_G3)$qLQd2ylf!k|m$6Qd0Mbh-r zh2fs&FQ_ayaBs74oEp4|#Fb%Y2rl4Y%AyL4S35 zZbV{*k@p%(ZOY1v3uW#ts{rJ=8@v9q1iXhU#?a$O?erF*+=Uk zVv}LwW?GXn{;i|gSXp^cSu%{gDlRPLwB3`iJx0a>R9+W484wNJ`SqVw>-U#0R^|bB z4qzA`j z=N{h1$U$_4*Are*XO7if>yq|v_Kp^PA`)p4RZt;iv$w7tSl%LQgt628VDSR~!8E~G z6Hz(coz?kR|E&&1L|q%XN;X+ zAC#Lw_0|Sx@oesZ))m*m&hB-;0kf1eAP+@9hNmfe-|aJm+~VxD6FqbHws5fLEZ62s z`2i&}BNIyT+=W=xs+}gSP`YoH_8c|6@F>jM2$DChpuVoc5yvNd#SlS_tvm1gq#-pYip}(iuJ~q&}ShSt^P%fo+nDn z%KU*~SBg3zDXXff^LIsB+3TxifjNQ78mT%3eK3}%LA6T1-V-uPmeo|37o)PWc?)q^ zfq?@f!RwJH8>O=<7kD$g#l;KeS0YO(He^P|hSS#7Or<)M;wBtYcBx5D5U>nLqZabXZgN|H&1!OY_G zGrVKw__4E$Q!4DR`sdWtF19K`2eXT@L5+>)D&SgBTRGofTnNJ zb>(ICew;9JPrX=^1u0p2r=;9p^9y?^ot2eW@zB)*zNx@P((le&;&}R|# z29`xCXEujA_JnbEx&ZrZGzPLb<{|w!uvCc^B}*j3j^;m@dBjAP{amY&PR`L8j8^iW4P zBTxwA>o6t2Dp_3WhZ-%0AT5&G^>7qk21Tg`J9<1rnu4K&J;)iwh1nS78J^iSwF_}b zR*W4O>}1#A(7AMu#c-v{!W!Z*+8&E7c)7Fzi*VRoT0Ezojg^*NR*!REiid5sfV!Jq zUoH2rY?Fmuj1=9`htXO^QoOrLLk(A1#wSX4m-4KI6{W$$<;$3`3bN>As~q$?Z1p@Y z0Bf&U4%)+<-K^GO99!FbhoN{pkd|71pbFc^P}N~Yn_XE`2h{5P*rcfJy7zE6136O; zeDJTi5#p_si|8<{kkg_|zboSVzIZED&LCPBG=kP5l`ctGqqhr!59&cx`F zIk0Ed)Y1r~R#piC>|+-%sH_dvmsYW%9-|R@S`HYanp#Y%kTffMcbi0?nT9!bsMlw3 zPJ6Dj(_}-EA5g2swrQ@r+7H6WhM~w=O{@LlIg1t*6iAw5Uic3J`cQZw7Qoe=I8t-LbJFr~PJ z&)5Bz0f$0sL;9EVWwbn@JzRCn)AxL3ejkPmcbS8dQj%snj^uslBt?5=T zCnA{?UQcyR5a-dwI1!Xot6q4Rws2r-u9{}LD|bt&%Awj#*MucC5?)rS6!}`eR>p>A zJ=Ag9HL=46&f_{_*5aVQ4toQVq)=^HTCdjB(-bVOEv=pdO+G&eHFCK%#D1x~lXKkQ z!kWjN^L}YHSX*Kd;SZ|Cnq{~D@)3dcGZrb8bpb5Vt#NS}lHGOS5LQBJb~p^4$d1Vw z*IGPrv_O$#^0Q{Rs+u`i8k%dnKD>J$>)w2kzsKZ?24~p5dt6&R?IrHV>tX5P6VZn>pHCX-% zSn{=4orvnv>YBPLzdyj3>axIMQN`=7)nfj<^2%C)i+s#A#~%z-qTXQbY}O^pD%gx< zrmDNLt~3~2%pBNcU@?d=L-=3J0vTjY^Vv!{hMbsbQCU+K#JpcTdl44bC|ijpYDB$-_Uwf``9;BMT)jfQyuC47z+$1vheB2v zAS5d;F2;9pcukfUcjx1#o2aW+MUbGc=<-WB8JVEOEVUQL2#*X`azBefFM~j^?4*+z z9K+!JF5jFoG}4u=%!)s2>XeC-iZf2m5@$`CRGirbM+=>j>9M>;MNB@~t5Q@j!L5dB+1*{H)X{r1g<`t$*>A4W##xak276vdk=^0iux- zCF0@upYsE0r|h_kb85jsKX>s?owCT4Jj4LMHtB01r|v0p;RQ4{=}_ zUZS@`PFV}FC#@VZ1p(xuW6SKD6-q>E7+=2F7=Thy_#P3{Eh@0Z1k~e{am12o{PB&4 z)i=J)uzKN?_z@ciT45^VV`a`hc)!ikQ3!|YM>1lFl?90#@jf%%`Yw_i@ky0@g&!{} z5XT=mU7*rE2+ufSF`67CYE|4!8SX1C@5=8Gm#Q>3@>})w=~iE|QQwxew*bL`V!4X5 z^2Zwa`-!nC4b=(%x3{7TNn(wP3&`+bafb?5$goR1tituLJOX?Nh$mEdu?+VY&#Ulj zkIVy``-z<@TrSHeiuYBxRE878UKPIQkttw7ocKwFYh}7q^dDu>uu_I#!y9C;)1 zM~ie7zD%Y^iEM=Vd#o-&9C3pXTM6;LhVO5Z_FC_dlHL>6d%4G~ch5;hLcZTlnkwYG zjHCe$`CcsPpVm9`q)FEI8Itf0i|>GvI+367QtLYcNqCPX-wS;#TjyLfk!bb|H%BnclGOAI84BQwxP!aoB)Lc9k_CLDop$PwZ_n41vqU{VPa zg-9cujdwYOtMFcoa2@(X_z}KoMTn31j3<0h2p=InYF6TSxi6K(+i3Fm_Ug!n+yc*3i} zf5QL4J2=9>g8zhV;6LGJ@SpGs@Skue_)mxjSr-#70sje40sjf{p{NSNiQqrsfAHNg z!t20)!foI`A>J`9A;g$$AS?v`39G?>!WO*yB7774C%g;%C%h2+Cp;PaC%hB#CF1V@SpG!@SpIH;6LF; z@SpH(@SpHG@Sm_h_)mB}_)qvY_)qvR@SpHZzWWCJ6ZlVfEBH@14hpFjuoV0!+ywp; zR)YV8)4+ei8t|X+b?~3?4UB)nSHXY6XTX0#m?3F|SAqY8CxQQj$AkZbH-Z0z&k8Y~ zFdO_QJRSTe91Z>x-VXi~egggz2Ec#9m%)F+2f%;A%fNraPr-k}J{bRm10AA@5bx6h zgfqZ@!VvgRcqRBxh!2c45axjYg!h2|gwKQjg!SM*VLtdz_!Rh0csck_H~{=7`~&z; zxDxy)+ynj-c7XqcM}z-_6TpAMG2lO8AMl?LGsd%o`0&|w!k@u^!sXyU;eFsg;T-Uv z@H6nA@JaBWa2EJam{3pB@{3qN6{u4e9{u5pc{uAB?{uBNh{3m<`{3mP$ z{|WIe$H|1}f&YXa@SkuX_)qv1_)j<){3px>{|S!({|S!*{|WQJf5ICv{t5A+g8<=b z@Sm_5{3m=E{3m<}2hQG-07a0CL!|yZv*@oX^ z_|pu(+wdnFewX2Q8h&B;zx~#rzv1sN{4Iumm*L-G__rJWX2ZYL@NY5vn+$)G;a_j~ z8x8*|!{1=|7a9J5;jb|KC5FGq@D~{VJj3rZ{Mm-zWBAhyzuWL98-ADJcN%_S_`m(e zpugeoF#Iisf0yCkVfeQj{$|6!)$ngI{F@Aali^=)_!|xXD#PDk_!k-efZ?w&{3V9J z$nX~!{yf9)GyK_x-(&dG48Pm(CmVj3;ddH-VferO+MvJT?=bu=hJTmg-(mQ-8~$d) zzt!+>G5nhhf0N-~Z}=Mx|0=`ZVE7jq{(#}HF#IKkzsT?x82&uN?=$?_hTmiO(+t1c z@FyF7m*ICBeqs2({mP)f;qNf~Erx%W;oo8Sw;TRu!@t$=Z!!Fv41bg1UvKyu4gV^` z-(dI`8UBFbuQ2>2hQG-07a0CL!|yZv*@oX^_|pu(+wdnFewX2Q8h&B;zx~pnzv1sN z{4Iumm*L-G__rJWX2ZYL@NY5vn+$)G;a_j~8x8*|!{1=|7a9J5;jb|KC5FGq@D~{V zJj3rZ{Mm-zWBAhyzuWL98-ADJcN%_S_`m(apugeoF#Iisf0yCkVfeQj{$|6!)$ngI z{F@Aali^=)_!|xXD#PDk_!k-efZ?w&{3V9J$nX~!{yf9)GyK_x-(&dG48Pm(CmVhj z{l?D)8`-&ITAT1SwWf%s_88Zi(C>fRzdOd&)EeX75MunLXE}B!xi^NATpL3%qN#Pk zexw8bgnT#tynpx3{(VK`?Qw#2xmg#=>bh=|by@W|#hSL0COdY=c$!*0sE_$#+$%na zMqS4v-YGVOT%I*;_?in=DI$IX>P|$yMAdE)+P&$vIHB7E4()7n8QMtnAfL)BJPn~~ z$eVJ1ocQ2gr`T~{oX~j}M94c4d3RtBkKbA1o}Q*jj93$LqK!(U535)&+Degat!N`1 zglA>Qi+K9CBJVWdz5dVmdkVjI3J2m?-^WN7TbkNM3u(OJgMM!I9cvOXD&%SgU7JUR z5(WBzx+{qf>dDTD6Tvcv*yW28Nr)#8qCGdXM7h^}gujZ=e(e5J9CP;X?_A#xe>Wl; z>qL}KMm~Jiu$5^p%P;c{-hWDK48L;&$6qS)rn->Vlhbm~aZRn01}(i$a0K(5Ps5UJ@b*~tG0DCUF8t&yZQquh8^@AQpgw@>+F?iRa8AT7}Yne-%tTxc%^X;F}I*7+{d7^eS%D15rz*VL}d zPBrR01AdMVY;$xHKj#1L$NjtagPt0v4Z!I!I9+}`$}nByH45R)NM~8+j{G(kXcaRt zPPpM>wu}l1&?*tMa)MTgpq0}-6mmB-6y=F-VHvUGy0(}t8$N&xwc7JLk#C3lnbs)e zi$>oLl$Uk0UgmeYhKBaJpKfLO-r5ju%1~4Lf3t2agD&*fh5owGz7zamJCt7xn|PNP z8p8JIZp49CqLbl|K|h8mYs5DObfnBhqKCxWy#n?2?3-?%I+pZyqVB%@bib^-5IBhV zVc@SWtJ~4#G~P}n3-3X$WgkFK{56G8tg6f58PQhf`SimB;cD_aT1;=nn8hCkX&S7{ znY`5P2Y`10@V;2&xAhkd9Wk!kLj~vqw(n#gVmQCm^@fXA2A9)hNtDmMhcC(#W_eIbJ`M`f@=*sE93%n&iHH{C(OY#+XNxstWJP41I zL91lYDg|<%j6S7-CR)}KA#>xQdlG@mG2|g-0ePMn(08x!tdlSreM&)G6!bTEa}VhF zsOF8vdH;U&Lh02mnL-)zy$to*<;a7)i5TyVoC`d!$#z($!xN1i|H5`t1{lWnUwk?A z9BlwCqsTKD{%DqC9w+ih{e^sO4~gAb)Qdmt-<{>&7|KE)(-6)_*o`*9bI^Q7y90ct z{(c$pS3=&2uLt8P4|9bFt{HoF6EUpr;N<);1tzdXxZC{uCn{19B1+;iR{-OX`B9mO&ZB~N>x>+O8*K?}&)N8k69 zhXCep@UGQS00$mS2QRP_3q8`*+5q0fz)w3SfO%Zct4T_CCQ+{4=!0))h&u8v%F~a{PLnq<^WnBCxw6{S^yBv_G+Rk%v?7A)aq0C&TWWip>l($6W z2X4^$Lqj;~Jm9#ZPU=mk>UoHBq#H7k3Yl<6;I&*QDOpHW>0d$?H2)|!T{ILkTBAL$ zw}2jxf)@AaxiWDF_!YrcljC01d7!brFMrg>DUe^%E)BS*1J`u){~t!%q5-sTY-(Sz zwyE{*JFjV7z6|3Kyp1ETeA8PT1wDw`1666WMhC+RPQQw!t^IN41xgayZ<21+-VG8=W@49UrnzqDO+aD=N z&oN|?w#V9N(IUXhwNZ{1hpVB5^Yo3rD_dec%UX!jmpO{gXeSxvu zA|GkP=s5xM51nDn1zMlusJWZG=(5>{45UFONuv~u1;S(nlK}OYx{3V--#C9##<;$s zJoe>yLYuU$r0m01G;Ko4kASVndT1NEQ6`UNM0lKN+EM0pf8_jzGSp2MpbxR&1N+4J z4c7)_n@sDXi?UfF(S-9Kj{L1Ltmj1cP-!1Z8v=7=r188NyxI62=#O?;$4<%~`l@L# z0Cgn_aU0hK7!U1w4mm>2$vXTz>X5bqc*?ouZiER3DLuovTkHA3+Fnq3Sr%&*>KVBP z8lcLKLB0mK|G=>xtv|*`SYNVjsiO|C*09gdq^-FY(do29!nzFd2Ha)eJQI6ex01HB zF=&e_T{(nu#<*IwUNYNS&2Qb?Y*0P#vOH`Pd{TaBsM0BRJ493a-fz3hlf5kQi-Fyi z1Rinhv2Sk0lVn@`5X76ZY4)44iN3TB#5g1VlmkM_{y?mCNDInS0`Wte)brBDq^*j+ z5)ay5EXQ=(k}UhFvL$h;K&~Ha-LUaJv!-iZYSP99x^SQ69q^$A__UxN%AUZwh<^4{ zhvm8n@riIQmCpViC_NqNq|a@AA|{r>Z>M(_&b+F%NCXFxt2pZRoP;wl+EjSvc;aJfV#S)y71$ z(SSDABfMSZNk$tC>o%sN4H-ro)hMsa4mR4@g*sNN@^7j(%2gX9(MCDammplF^6ZD* z!LV*)9NLg!v@sLqb=mLX*R*0A9##G+)kdCb!-Y2TkY0kYOXc|xZ7{6caH9>Oy(>OR$mv;$G*8}yg<)MV88n9B1K+F)3>(HCvVF!GN;d0lq9(FS?G zNR?l$+OX!8rq=h+2KV;TP-l_K^BCG-Shukk^R5h|jd+yTWgk&(;0jBpmb)m#aqmvc z-u(z~gVQqe{Wn&+mYX|~_GdWF@6T1b=J_p1`#qfIRi{eV{JI`#q?@L5n@ZQTz6xm@ z;53ciQt6sbzeU>3aJql5s&w7Q1xQ;1$8oIJYYi)p6+z4mE8!gT9KI$CHZ%i9Biv%a z2InN~PtJ?+c`Vpa1gLdRDs&EQG3vmP(1B5aCjzEH@1)!Ij&K~oxw1VK`oayqMAA8_ zh(8hgLnB=mVZQ?NA?9d?84n#J=er|fQI8LE5&EM0*B5nje-`sVr;dw4T!F36dLH0; z2yHSqa3StTE8K?wa*xQ4`}@#+w7IGvLrf>`G45w%-lKtEtnv?mzYqP$dmV6R-ek~W z26L^Ad?IDc^Nz@Bsb63mmF7lN=q9>JJpIXTy$ zp02W}UzT?-Z^3-jmgs`)i?tmu5_jT(bj&qv#F1lyc2@)Fqv`cH@|pDe6ZJjPwH?s_ zzH9n%4axOFnxfw@MZe*IZbd(*!Lu7!7kE#5G8yract0Hd<(iJTk@ru>SbOusf$uQL z1Mvk0u$$Pgrq*i}zB+sr!aE`N8efg8w*P3u>baV7ItaLOjZ9vfxR#?H+G3wUpEKQ| zcuoI6#cTQpDPGghIhOoo9Bo75HB z{Jt7=m0|cd0dHM)8tO9JNL1wqsy3)INY^s7q0fyz!TO1DR{ej@WCpxqAkTmT-J7c1zkkm z5Qh)p9}NAY`*s=HHP3&JK-;w2HC~k}UE|gd>CCU|dlmJ$5vTV~sISF5w{J7X;fsb2 zPEli#d?LQdz$XT>;czvzbId$#>6xyzoID3Zf1+VGL$|z;41Q6DrCsWKP1>j_s6*@9 zoz%CW1?p@S&~401JC*fte}jADTozR+OnX!+WDap0BQj4m z;?k@*jw>0Lg}8Jpjx^PCmA1L{`54BrwAoENSm)V)fV3!YOOJ9|Pw4%X*I_rXziNHd zZI2!LF`jGOOTW^2to|2&3&xvVkMwa_x@SD`6IY_21#PH* zF!$5p=UMz+JVST7H-?9>UUdAE4QXsQ83EQI}t|=cCK_?d^a0 z#yw|U{^efR_n+;BT&@6J)^VOU&k7LVB}e3$+2{THmo7Eyj!sC}6MeiLqOz((-yq3n1;{UeZdS=l%`+xCcf0l(?dWX)H>nRXq<^HkC=}(wak}^e5d!GkM<$+ zO~4s%q`HW^iQi=4mocIzZuWd0b9g2HO zP-{aPjQqr@w=x5rGXJTL^l<$>^1Hj!Z3Jk|vF=g*?N+zSt7$g^`|Qk{7%4AsmppYZ z$GYLw&~VU%wnCJ9MGt&WbdPAWx8tgdDupIPXNz`Ze#c{6)wX3$?zr>#xpD#exhGtJLV`^wo#=; z3vn&;u2kVE;1k0qCCGhFnYT)%O;qiC2OOeQJwL!dUitIFbxM53t8kVo=dq=ys&KkW z-;cV0k8Cqhr5&%*gstqCm^*n#0#B=CTT#w%*>_YLo=eHJXd~@el?Gc>rfpSW-R@=; z)^uu8Vb~rr|4k|kc|MVLp_G3>j$iV%5A9#f|C9r+Uj$@N`=i{;aMrVe>q2Q4Y8$Q? z7cNGQK!tEG-z&rfyu-TZO}wVYd$gnBPJyd|E5W^w_u)Q-`)Pj^9I*bvAqu{Bi2dIJ zqwnF=zBT1133hd~SOI-#?G;P?3f*MIuj_!Z)8np)IR|JRw*t18i~YvlvE80<=Z0++ z?#+Mc$Zy>V=WsXhUP-I6@!|(hs6lh0a}b~#w3>jsN_nU=+Vkp1ygwA%jC~EP$+Ho+ z0%Mu$1D+$Yt|;6EjrP34GrmmpWdz4=v}bA$Ts{FVo-@0TA>zaS%QjFy_i;>H2^5TH z8!vU)uA-CSK57nPesjF)H8a=w+>2t}M*#mLBGi2p>P~|kaGl3>3uL67bT|%uzu4AK zp6@Xab!oH@do~44tveAHg)_ov^NbMuW1HMl0PdaKyGXR*s@HJ43|i>*0nag_&<5`h z&}QHCrCtkkzXxRY*_4T}z4e#9XC-XeYuc7(KFUtlnTat5C=bvbQXfTUQ9eW`^$qo_ z948nbdc5#FW4|?b+!mE;jWq`#<^r5ykX9=sKM#Zh^Tl8s+T}Jz+4N3r+q)V~f7ZeXykiHIA3@ObP3G(t@~z@tP#@(svgQ#!HS5 z^4;QpwC zE(6`lyP2JAL-PlHmuqs;%HDTo)?fDy$jZjh-Hz8j;u_c?8lt$S zZh+0>!JNhWiD^owrn?eC9wl$wGiMvz$4_-*AChw#`pml+yc3Ny$UXLk3x;Cf-jYS= zmm$o@vp_jN`&!!B|8&w*ofD_9EXEA?p7gz*pD=eboQQh@eEY!raD2PKHhAXBJ#tMi zYb=KMPxL(itykp!K#8Ttxi=u#o)0pBHn~5*x}SvJh!Iz|nD^|)g9g?f<%$j;Xy60R zY3QF7*VH-;b2i5$&L8Cdn~vxGd*aD`Ht@1*Ux4_+4vN?L-q87Q?~XL#Jj?lse(D;^ z8(u}9mn?*D5%Vl4(=1N8|uLtW&2)BOQE_ zwn{o|3DWVBeU?lEmsZ}FV%t0`AYQxB4|5#5eih#5&|_Kmf%J(3e}MnBtYawJVO$yF z(7uc#?)VIVjQ@UsjF){P-k1wy{AA!o8(o(n&bT)$(}?qpBUZHBgY_=?VB(7V?Gjg0 ze+&S=zdq_OuV~%tMt|)(T&MXWq-lO>{l0W&_xqwNc=sRt)q2jJU+Z|QxRR}OOPD^p z&Vrq-Z6~$n@YwWs7I60fPx;2j-PD?e_9zc%@1eBexFbFYE^1?F{y!bNnU>CR2Yr-| za@5t7TMr=R4)>>SV_X#U7SpM-_u=el-7v@y@5`b8+|Q6}lwk^T9pTPti2^;gD}B#8 zq#dN@m#|*%zAk|5_qdZ4i#U#hEuPm}>)iXXe*i!974Be3nRejJhW9Il%d!I)PDB{? z2=u;nmeF;89AWk?9qU>-4zMRdJ&5~-os8%B!#KK@ersO?=ee+oIxvlN zpe$=TFc0a#v;*PKwT&K+iFw!~fq~)%JnqWf=V^I1W$w!nSbIk2xBgc3k?%ybytyH7 zZpfP(^7hJee1CX*M0wkZI<%f1jlBqyeyqEk_9yg9)TjG*OPPagc@3KW-y&Nku5a!& z<^}ZcImj6Mspl!2y_}c@-g}^*f2oX}Vv{kBW9qn1cn1-3Px}48DrZ{8^qe7eCdZZw zb3J4evOoX1?ymApTv*H+1bI=i7m?h&9)yz7vlYU0it<4LR3mt(>FT zKI`}+?AAp1(_9v>=Y9b@7WZx$r{7{pTO4?^jJ|g}*S1d9w4lwa+fR2{dz~C(2g0FI z+RnF!c<-KbqZ9PvU471nct0FU1igrpb!W+XHx>ye*d~&PnuZ#uEa1d7c`EqBH*efC zbGolX|8B$^v=tpLw6|Qfodo~V2yN?qHvMLe^EB@kksiFWGs@Ps<_B#`y?-L_>x0g` zZ+Z*HvDSw=ua-^9fb@H8gZ8c@180Z!9|_{5EjzILq!jQtg?UdvQ?j@kc@rnQ@ zNxWg-cEHA2Iw5>tAQpYr>AOH5@+HOK%hB|^v6qHAxTa%0BT;6jE5B{H(&b;CoZtEm zWS{+fR<*SP_db?>n&0*;#t!AFUvpFI2S^(L-VK0l#`lPQ;O~zz18{eUeZ-vG){H#* zE(7<4h%4KiMSbXNYSrNqr60Eu<J1=nslY>awyZ4?to2l zA^4%^z14dx9#eNsM*q2{!@b7%)e^_1)?(0pJ^YQ}nWo7s#PtC^e#X5b(p%aBa^HaG zRqH~uYcqM)4t!Rj-hC*)9_978+v3ALTg2@%;--rHHqwG?owcXrx2x){vk&*|SQdF_ z!ak@1jw=z?{5=Wsz_70SM$|3C$iEDA>#`?+C($TR`%Tl@i}V6j_ZdhlK;0Dx-=W57 z66$7H*L?-*mSNOA*C;yxb>9f5`&5QBoON_+Jc<#wY22 zzJ<2+T&wE|(=`Uv8bQrnC60veUGxF zGjU;E=Gg+rK&)CPFfZHr9_Yp5y6#_}^nVumklswZ0AiTMT30O$6|svt%XK1uJ0-SZ_P`EepSov+I7n z?mJ%5+Qf8{lu3=nt9xggoI0d|f>SC?;Fhc4?u zIof$F>i|7mg5?|Jc^qwlK4=$jZQHnin~gg7rrqP=w@+xVtm#OFAA6A>v!5>H5cmARqt<>Upr4`--|)D6E9G}eUIDH8h+8@cA^-A@XiGCs53@1v_)awccBgT-GTZU7l$~uuj6&w{XC@OiVo^gm&#}D@rox{FZ0JhPqFOZ zpc@uJAMBen>f>ig8{ip*`lAa_Z=j*g;l_J6;FSkj3A9I;0yqG?Ey1{2HFjetyLnBQ z{^r}b8244Ue~dj3>REfBgfX6n3M*%hix&fa7j6pu0_wk!3BTz5n z==Z??Px#HcZ!+pe#mKh>=1cycfjp~OZ&Y; zl)x>4TMzdv+&;LJKR84-+#oZ)d#gUD<8uTJ=mLl z#7!NnlX*@n4JvL7;#lsFDoi;>+>o;)#AhOYGUMIWcuX_K3(K6Y%HR|3 z5{E2=iOZ|#v%MeV&>p_a)Hwrhv)KMg2(uq~2veqR#hmLd*$_%;*bqu>+z^U$zY!Xa z{lrZLYufs{quR&=&ZkR{K;4bd+0ZwA#LXR~+r5kfy*So3gBRrEvpd$b?OU;}BT}7B zwmK({>{;gxs!qzLy8w6rw^ZO3=XpKEdrN(BXQ{Cfx)EcXG9QOFFGM|w4fsw~!J5!| zPk8=F6u*N`Zfae^c7P||kM>$;gRRboP72q#DngxeRGoh(EyadV0Q%MK0j_S&p}+-e zA!4hwAm7W>%fN-Q$#P2%vE0+D+&w6ligw&+hhvm={!69Z5h3lgB&$7~ zUv+ByurGi&i8vbs{!F_&~uUF+SiBPu#?^8+Z^O3d%b!*+hx|=|E z%5e(D#9bH@%r_PJG>yo^L>JC;1%v%H zjd6)}?8gJZAC^nR{88cB5XwfGVw6b(&!Z6+Ev|%p+thj^-z49>(0twys8AzDM0ldlGrtFkir)YHxH|_Ea?MM?1gb8UyJ=Fn3fyE>Ta&*Sw}J zjN9st0^sUFnrVa3HVFI?w*cT8;hNyKz-@o&)o1y^Uiqa6V_9M@KlDOGZTGG zZIJHX5Mn>bi#Ndo&hxC}dgQ?#OIII%hcG@rFKvS~$b+^GHX&Y@fyuV}MC8%^>x=LS z2**GUVO(~`x?uxA)>!|?ILpX(qaK7QC;x~8U3{>Ek%w{{E6#7lyQ6rPad=++;0oB3 zdm$UNMZd<}9EEfz(jAzu7#B;MRn`3}>W=bV*%pJc*i`6j#F~I@KE50ML!8dXv$}>I zYvg)_^9keK$TtN#OXHRbp5b$o61Nz%iSZbp>cc)cY;NL&HD)~5Pgg)@*%w%!ZELYl zOU%J1gz5joy+|;eSV?wj>sRB@vt7WXU!`sy5%n9A!547i*kKUtZ8GWA$f4w1euF+-}FIAhGE_^S|^B@Os<6B>= zKI|D|u5qe%Z%4a)OQ_%KN`7OX=S-vi-ssJG<4|uL_R3j~b2@po@({{KtM@d~@k8;~ zM%IPyK0q1Gt603TVmq-3Rv91HVs^T#I~2W@dE)?OBJJN1w=&vk2Wf|VrHiWEHs8LiGWXUdvTOWy^p44aR%hV2f4^o zIJ0exb=a3HFitVn;do!p2YDRdlHcZY^NuX{4FgBqN z_?9@?l@B}FlJhCRSKnoeHs}$STkBn*#!u@-$~$N%IR_x`3%rlY z{a>k9XaghfameSMg82oymhGE+h)&q%MtpH4cg;87qw*8(zR@xwBlU5Tz#{^ zJV)d{8qYL&jyf9ollBW8v?{%(dt{+@IvIaT!Z^k zu&pF-hNJEP>4kZdb!eSt$DQZu#9!~Vb3LK^BV`$B^8PO68h-Xq<67$R$!|O4;H_#v zeEQ+hn8%J5g)1C*!-{^bV7tUqj;#{#75LJ2ixTIx(oUxw@J<0-+ix&_^q%Jw_5*eC zeR>S-b&MCTm1ALJ;Eo7vy4R#lm!NDqA#Mp>0$RuTkQa7G2W%*9OET?zr0IQS$_L|4 z`*{Cu+E>Jl-=^j~fq4V-MKtiW_T0B%O}XzZwN?WD(ZC&jYc1z`Hel`fm(q{4Sj5kv zA9=VBa}oR(GThK8_jfLU|9plU8_|!Z){Eh19^r<3Heme~z_~~x&P8xO;==hzl1H77 zT)hqZ7M2`nn~mdJpCg&~;d$Rm-Y>Omu@h;3@eUZzdi0$zhZ}Q@UgJXd@NOIL&N2^q zYp!$2Ki%em?viNP;{AmCo;K9T+O;4GlaE|cRip7JC-WfBLDmnq7Y zrA%7(o3v@;fwQz}1)%I7?vU_KMmF@D{_aGqnwO}@c;AolS*R0#TT8ah`%tu-sS7AW zy8amW8L#iijgor&8SIzyZZFr-*4X$6x-%Q$V_`4qvar44M?r> z`@!hG8}lUbJsi3}pmDR&eXI4|8~HuF{|()*`2}68L#g{YMCDoS(JC;p_7R#$Iw4P|2*V94sx%{Yq|HLe?CL*-@ttU$`S96dMM|> z@e<+!`Xg_b+?OIQ-PV>5ZQX(RG_=LOFr0_JjM9BnJka-u55|N06b%lA2fVXDybp&5 zAF1^Y^^VDdZ+Wi-b^bSa;Qs|YsE@#dABl^N2cj1qoECuxFX}$pcp&F>wO*j#x+|8C z_4{?OX_s}F-<3G>Z;suQ7sbiHb;!H3+E(S?N#LBpHzt$8cdm)XNx91Sn;X(0We+3-DuE(`kH#w<+I+eP`{-kj`B&}9*6q$S%!Se2^!Jf z)o)EwvA6C)KJIlhKfk}jbqVK{v$*dLT&a`!{TmaXJlGT5gP9Dd`JaY1X&?XeQFv}( zS@tVU)k|G}l#*MH9c|xV4EwYkPV0NxaGd{1E8ZLD+R35jo=KWlkVk9I3(re?c^?L4 zI4|qU)YCOS`OPxggS=}pEy8--o(dY#PAmWUzWtQ!M1Gg>$wWDC2=>tlOZ}2u-;EoW1RBCJk;mpK{0TW{lEOP zy~8fg-}55mFW4NuW7do?<&f`?sAu^dh&1^5#t1wZqG`8X$w_oGY+dw2@26OIv8+3+ zLBw<2%KHxF!KKR9;9DWqvjpkn1Lb(|3l7X7)_ia->JCEQm$vab78 zUE1E^w}qpw+x7{+rOk65AsTvo+a;0=YB?njY2(x8qU~kcxcJJ=QhsBZvYHB6T@P7p z0`E`4UJ3bp0%&@I!Dq_qN!JbC!~U~xSKxetG@_sP(%1*eYK7_(^GR978|5bSZN2JS zJ?L~2zIVg7%Q%ORD66z9k2l(OpzS8qI~!#;t2Up3?0*UQBE3ynedk2jBdOSvLmzTc zPp(l9?}zL}+K;eV^qBi2>w)d^vYHDir?hE$mD2{uX(Rq-fM-=iIUR^SrqxQ0>~gvg z_{hFr@yERaP1d_TbP5>+Db{@l?*e_y=a=_95)D6^V|nTE`g z7FuRkN;+9GyBdBiv*ZQ)4EnTEW?9c2NGCtY%l9F(C9*8Osg1Mw)sWdcT={L3Rq}U{ z;_nhb)^#Dz0HnULZ1mI}N@np*Y)fYM9g@ucZ)9;7&eF6j)&u8*$s&#!B+jNR_NF%v zMHVl|`R#v07CHY=7SsQWviJ??q4{I#%>NUzxJk7|{duUesJ;^#Q5MG=vbZ1Tj0cm& zzu5F=Bw5t9L^AZ9K11R9N6m>trsDnG`ycQfvbBzP0&;(l>+}~x7AO0m?nUMtOf*o})ziJ5y+j<+{%W`ul1)Z^5365X)N*w0Fk6P<_5u6#*AL|LDCF z?iX?`Y;Tu1-wIlDuZ*^x@Nuuiy31I~da+={`YWD$u9L79U>N(r@y>#qaMvc6`5EqH z*oE--*w5iUSd8ap^rMh6b(?^HWoc9EO2@j7oMKJrBJeN~knK<>x?J4*8u+npk7ubY z)2C!bOAPkQuy5IkJGSk#YYAODtaDM~PJErNWo>TYMjR#0)qX1XaZAuQo?+pwZVT@= z#L(}W)WS2pNPA4Albkb*Z{$UyWp8@2JYl}&9~2+j;ylagtvy}Wq2}ZH zPH%PT{_#BLf0IY!bRc@`w)FW-Z|xnZF0E_y-m|WYIz_mw?-KF;3gbC8`pNz5u->4I zZN|9=_nF5+_66>aUI01V_nJer!1;DsP5`>#+$yZ&4+rir>g}z32lDKKOGA6jfZxJ7 z;ZHtD`*}#uHu883ziw+g>T(F{92hjQ&Vv=i{;>?>PMw6093K zEXRgG2r_VrSzk&BC)SFmxlROi^UrLm^JQg@Q#Q9REM+4H%cUs{g`b^|R zl;e30ztc&)Zb!SkKiY&gv<^N};d}xh`KRMuD*kvg-o-tW#?Z-T9KvU)aHR7v=Eqfx z@OhXxk7x7_*$&bc04KH^Q1cjcKi*js@b5sxJABsJk8th4{!5NLH{#oJkm|N8P>;nY z{LNK0uQY?V&FE`0czZQ?D|p8ayy1L;KS3(bxf~+Eb3NRf$G7nihdHbBCX`{g5V+vo zYNw;5p)IBaXH1Z>c;v;KHq1ji6zk_4TVdDer3&{tJzafs2<=tskK$^YU zMKj#lA|1PE_I?DK$vp{mZpZIJ@eUUEjh86e?Z({=(hg^QodUGrU3Qbl&(nqlzsY0X z-yywEL*EI<1G21^m2_3-8>ka^za%g211<2LrITl^Ec3Ez?=!@a2js=KnirtaS!j>r zDpS*6*^Ku2PtIA;cbun8+fk1-j*)Y**TcVEXO2O}PqW3#{Zq89Z9U$ZV?LgPu{?DT z>ku|RC$?F(ViELe6m*KihxaOYJ3_utw>t3Fin4kc8&yd3AS^eB0E2l8ONv?Fc^@18r{urF~hkhC4ey)BdxD3c`1SalCX zUfy>rQe%25?(jz;|2wUC>j@aka&Fj*1y{=VF0f16j>j67Y5&5V<7B}zUyL)vxtn>% zv{AluV%%87d64en`LOY(#1DDOdK+2?t{iR=+-kTcxX0kO!@UEy4=&~%%++w|a5La4 z;GF0a+HHG?_e~*xZ0k+n@*?C$r)^Pb)W5sjFX5aX?_^aR&d>Lo?zDy;Ww5y$s%Cu02aE;(g`fBT#BAmw8N>LX8b z0D)VG{y)KQmybsf*PDFIz#l*kz^#N^54Rbv8Ez+B2i%WvuJ`Z;2re6LDqIk56`ZEs zaMcI4e=geMI}x3hrqWFL@TfRbKC)GuDIXJ6oGBltt2k3WW~w+-K4z;pQ$7MJ&XkWu zD$bOT1{G(@$0`*^`N*@$$4=grRq}D2%4f>Q%_@%aQDBpgdyuBfKB)4U^5IZ%ln?5y zmY>6V{G}GGTa`|K0ewXM**uUVC11ZKL-yxHrKw1g=53 zUvf2Qm8ksJK~^|6d52%$Wr)Uo7>DsqQMCsnbvA64&Te_-I2al#ko6A@RV%wz?knJo znE2`amP6^QK8NG_tqXsy%Y5rX+;^G4dDvs^n{$4cjIh2dqR*#v9qFhe4gE~V`kmj+ z4ujX_(S2f5}<11`Efd%q|n zcD|T-eiYU>$a>?U#(zBU_W*zXjZp4A6L;JNjrsmL=B<1=2t?S+hLQyUU%WWO#cl0O-j6(iAOxoYaPvrZBd9{?XlvW zo>y>((t2A8JGOHdR#Gqa;+hfv7+ewDRJhe}4R9v6LlD6qE#8T&vhSdr#0_eYb?HX;(p4$DWg74-h#JN z`2NW%eE;Mg-U}Aj;moO_;~tz9u7jOK{!5)={M|$Q`K1H)-KvTBt~cJ~R)EJP;JFj$ z_>`OVn2QH`-tKl*UWUD{)fwUQP~MLoW}Gqgb{={Z-hA*pbTnlac>OodLqAYw>eLhL zXDs?c9udcTcpi-N(0gzmiZw}R8F1v=YxGzC?M0afbh;aMzr+XMM5b)993#mt?*CySXFLHt}E^wAt^* zH$xmQONSMz{d10$l^F>k<|7aOrEs_eeYy+zh06ckhZY?#hCbD2c@0?WP#+*~*O~rG z#H}1OG(_BrR2!>MKl&``wb&bgoORtTQ03#tJ2r+IK`-XvUI6Q8SZ?hNPgV5n ztN5mAJ_~K&yD{=_PwBJrpVc{w{r)iX;@-H-OPXaXnwj)+LpPIV6JD~ubHsCh;!^>r zX;w^{VGJ&T9O$@)8LM@1c#S20nKf{G5>s8|%J zWR#R>&7oH#Lv5eENVd`Hz}clrK4vr*QgXk5kE? z)pH_grPNKlq~&g>YnN?Ubq{}*2h(lUUA&7{eU{Xq%ZORwD=KCt|J=rK`QWlm#H(7n zqH$01q2D%!gub|qKekQ=dg1%lHLdq|oR{%#WAwjie;Mi0tr|0JEGp%k1;L@eczrq} z*N(Rp{^*&W^y%#zDW=-HLnOp(`3#=m8pXDPe0 zlqd1ImAUe*sE*b-E$68|X}r>$pz?R2UfFmKFSMue1%7bzN6M$QSUsKotZQH|b)v{Ll9xs(MT<UwWW3HKf4{iXJZ(?8Xp1aoK`+=Xp02ixFo?f>z%!QHIS*h{{Ms{`By zdh8HjKO}%%w3~B8WE)HdZ_>$T8(agg#%+T$DStO(lS2u3Ezttz}c*@2sco4EryERr*eP?_$zsZ_}?? zu$|!Bm_z-dn{bfJHn8G?g1wIUiq5N6l=8&tbfu$)`x3+A7tO0 z607TO*7gh6>$YZJvbPP?)?`1fYn&VVY|$#Exwd5wX6qX4{cgR}XW2()8{A2nY=d#W z4)y(yf`M{{*aqsC*#>`BdD`j7Hnt4hIvd6wb8?p_)0d8u2 zo)4Pn6S5ofq~(=upuED_-5zHlzRWfl%3W`&Lw>s8natC0Hbyw(n`}@^JK3jAB~AXk z>;~Bew+(2u4JMH;+h8(J;q-?dr;)>m=oQ68MkM?|L+Unr`q?rz0 z>)R+q2fv1_#C7mUU^4mo`CmKM!PUMGNjg~jnVro5u5;<&UV#oCDO(r(nmiw+clsRa z;Nhgjb?{k&fpVLwgKa%~M>@EQF{wQre1i5Mdbu>c8rQ)$Fb@~!Ny{7R;QHPX&V&ma zvrGrSu{gI5{=nNVp$=Z>(+bhS2Y8%@I(Q{7od%hoGZtMd@uIs$Ane3obr?~CxX;#_e*Q2rNqcfO$PdHLA#KNOeMeh&E- z`t5aU%ldh}vwp3I=796@8!z+YT}Hk~pqo`sWY4>{Tkg^-VZK}6i1j^yk8|5_&ixl` z*qpT2y03&e7SCIO?atbE!)LfAvzmTtk4JyXr@S3_k>|U}zlv;zl8+<#3iokzBke-U z%MT69Px9qMKlJY(MdiucVi$fun$~1$jh3ETqb0oSoQyNzY4N^z!+cPKUp|qoDb3&$ zDL->LE%PC#`Sx{3hx|pYF%`{36ZJ`QDLi(CR`Q=U|B*>Y`^(Su?P}eCV$~K;zD(;P z(Jzs|eXX;L@AY_=ovXb!Hz`jHX0268)k3H7*uvKTAfzJ3obvCu^ac6zyzu-}=0deaO7HVzg>=j!9k9_&A+`(M|Oq>U} zD&6y&oS{X(iJQ1R>eM5+;_FAWu0Zp%<*BKSqv?~aA!+G9@RzdApaghqKK69-so%)V zs*ixj#plVV{m6gzeIYj8$JQi$n{i9A>MTBT3LJE2%}BR&QKQblDk65@z4|E^Q?YMT zu~RM0)y=xl?yR%vncAkQJo8jZX=Zv!_sk;1hqbuyzF;4WPLfQdd|bYom`4Ti@7A** zB3>82h&PAQ2ggs$XQgVNcXFUJmyaf0ypUp_we(`e67F9@1~;xx{K*`a=Rwu^UXD8V z>!41>WptiM74_*{hW;tet``pjkKkRKqu%~G>UFdmPakSoPYW**cZHYKr&pTyL4F3Y zrsp7@JHuaH)YpaZ*x|G5i|SumKC}J@^%Yt6YA!q;-Z}x=v(}^jCCZ(uI1A-YZDNhx zO4k_$F7K9ntuL9QD4Eqh5FRkH>?fH#Dn&-d(`i zTIRo{PoP&{okc9Vm@Hn0t`n{&d0Fg%EHV~x=3FF$k~fXDWjdEx^Hcnw>xP) z)5VtL)-<+g46A0m&^RKW zRIxqHg(vOp)YwploJod%3fykL1HP*A+nq(S%a*85z$m?-ye;D!X=(5c&U=FcRHZw| zxu__^K1|>?8%B7L9NrEdWWN|5s=fT%{T73PwTia2=RtF<7CTuU-~yTB{4nK-#z!|! z0^^z3Q-V?BrQp=OtYE!B>m$f7A6#{Z{i^W&QcQjjb!4T(sl)97OcS>tZ7a2zEG@I^Z8nb@9x>iwC*dp zI00`~&UB6O6LfPnvG_&uAR5;MFF5#GYCtHQ~Jwx zFHVi@;{Uqw+a2 zc~;Wipq-+3-DjnF48g4PAhrR2+D~iv6YX`^v!1$dR{jU{LzkV@Gz8r(Tl~^Dka6G@ z{RR$0)-%)VkHI%J{nHYEquyHf45zPQ;i3Mits0V zjFdYiSJuE+>Td>oX{nEkKM@oHhZ_?>`vabrbXvxsP65C z8vW`Trb8p+InCWOc9qbd-WtD@u5soL?zy!!1ISVjn`0B5U*08}BU{4rr~t>WpnFC8 zFB7}dnj`U+=sp$tYTUbs=kA%Y%@<~B9R0JB9FoV9+@V#4H|j;|BD{K2}Ur>LiBSVZUXp3ZvLIwH|d_V8CoS3RP& z>VFejtA7`HT3-^-dNTCbJD~Nc$hi7EK{!hHYaR}*FND^DcRh7|2rW+yXuFp8vBCR# zPwR=4RoyR9-e@iRM>JFaG^PvQO7e`dIS0P?$5*}il_(b45-Z>k=IRUiJA%K{Q||n6 zv(02Hhc=yT7{?db3ZkvrQS3@iPNKvW{Y|Vq|XJM;G9OW|FIwTLb5hV{le3 zscF<1AxZYSVh$zMFTSPzglmPKRjk4LH@05Lt?z*@Y72ZdX)OCQ>!KzrZUOCN`|3H3 zyPvdnLv{Z6MPgr+akRzex|ln^#79e_^;8?J2ca)cci7!b7Y~T+rDw>mI#j3e!bNPl zGZ@P}U+LcBG7pP*s2@C}cfq8x2fn1amE85T>8sB-7&}xvYwfRAd?BN_=Em!a7bxEB z_^1_5gE7fZbiO`tNeAY$uDB>cCanIE%%5A^Dd;Vn*tgBO9_JiybL2A@JavawebPd^ zk*#Zpic(YCoF!0*eyHr{$H0ImjK^(loM=`mA11OpoV@IaoLIWqBjRb+-mENfXQ7JL z(V8vg(>~tP)Vai2Q;+FgYwT2x`1Gr-@2Zn{Pewk_wb2?#&Q?W_;M+vk?vFa8_btV=Av;d8fU)d`$OKA{^$-?)hXLV^G5nDzLL$N-xd7Ux<>tW zxP}(0SFwt}`hE`rXZl`AUae2moSymS;d&Rw1s5CBnVibsCo8|V73K#$%ptEFB$#Qh zG#&BiOCH|-f>D3)JKFYD)#uXE5v&=$iT;A~SA9*^iKCHE__4hy#^jb+A{I>WXQzU=Pt zqw^d?8Xx5G<6-w;^H+rpPmlO~#$#&~4+1ioJ2eM{q!V?B>Jd`ia#djyOJ z2YMc?h}GXKfd_Al)xV#w-_ZqpIygN(#cu;VK0~=M*)qBqZyMc92OD2%j5ORY=XX6i zVL3Ws1^$NCtS$#PqVE;ZdpT{s}^fCJK!yoVdX8646w%kw=LslYUSRvb3N?{7R@!gcB-c{r!>4#`uR@i8Qy)Y z81pSYU35Rl^N8yIHuY<)6aT9HP>1Nd_M(?%ZuV^)Q6K5GmVVr8WyQ}w_x%*lTc4OO zTPgT#yj6a|E|^q5=Ndn#I2}6L-5)KQeuZ@WL#JCl?&;zKkCpOW<7SD^cYP2$fTr$S zF;9&}cK5{93Gk?oA%4Y|NBX+I%2WGu7E3p(PV85Awl~iT*|Pjq^4Ety(VF-Obmp8V z;JdiXI7-~rNQOFo|o6qXZhc@ z4&R;c1TQ%lxocDOd{1k%;2YV|DtoU#1L_UR#(88uZM!shSol8y8^+#M*AWRg6aD7{ zZ%OqL^-Cz9#3wqlWQqDjozVQb3h>On4;R~!4WV-O9slK3{Z@Ossy)Z^{(cnrcq3WJ zy!)nN66y5Ku1pvBcQ&|En)&KQ9$%`nS3)1=l6NLBT)}fH&)GaL;;Fu0$WwKl$5ZR9 zCi8?x8|8a1;W?2fa@{zA=S-da9M3bv#Vn7D!wnalS$-e+Boo35wqjpfBi#kQ6E5!Ko8m#p;l28% z{7SR@R+jvIlW;2e4Q=Y5B4a-dbVG4A(hWsCqqgcAuJrgVsh(Lc_@ytzbHYcKr}{UH zCv`OrP><qv4>oFIs0IvIEC3Mh59a2J$<%CRze$b zf$w)E{jT)=KG64@ye&53!K9h(W%gCRzRT`jHU`m#>gcTRGQ-0x`8A&EA()|`*`;@S zcnk4eW^cdweV3g*-s8T@i3$AnS0956`R#9{Nq=uH-{k;L3(;HknvE>oE8ngqExobt zG9tjw=JH)${Wzjq+;{2W@zV!5Ek1UQ$4}_HTu++g%b0KR@n52PL%yD-@&S+Z^E|RC zzDuL8Kjgu$$LcTf_2=?k*7_J)C>JJMMi=v47I_`hW_Ea$=;zM(E;smgWbc^oB3L%XciHC?@?B>7eunnZr|G+l zPk?7j@m(}Gm*l(jVSXwNUkwv~X6qXM3B9#$#eA2qX}==8w3x9Z<$ag80^dbtrzj6) z-=b`sN9Mz)F3pegCuNqPwY7f=WL(X9+XV`bGGH| z^W4+p$Hva2IoqBd9@)p+I$tuHv$eh0>)4My#KZGb;0fnze*zqxnXlDe>|We*Kqz8z6fVo=*;h;6z3N4Or@`KdvZSVy2t!XXOBhk3^(`H2m4s{^$+I0 zF7j(4tjvxHb6=x9yrG}@nm?l|wEN#6P4#CO=WOolGGD)B!u(9L{dB%qA#(=nKZx)a z_Xh`i_(Hq+=N`V$AAE!~^9Oa7f%a&WfzuR!TJKuHz7*X>nOO*~7v9obwovEHM)+0S z{&|nz(Dv=jeAa(n-k1+A6WoElKL8#O%!T-b-8{}^#}1-wi(bR_HorZbSJxQs>?Cim zB+X~(oJPSF_X(f(eF%ADw8wqO8)HaQJFf_~0I!ZG1rl*^YYf1B2 z>(C2pna^66W*wNH&sqoXxbsJ<7-y;H0q?8L!A6o#c#RvAUu(XR_c`Ph&mW||p;K?< zU9p0A4A$m;+StLY8B<=xz%`%ME8rFRgg>Gk!J_pCuAN{$OY!LVd{!OsC|&Rz5%`4X zP(L*6a6T()qy71;4KGFglzdsA1bFiC31y#EX+A3* z&6S_^d)88eBjz@st9%h+{G$KfH4W<9GTsFb@qRad^)m08zk0#l*ZM6ri9r=KdI~?5X z%1Ecp0ar>h|K-?4SE6ws-*)Dm`Up;_~JrL-E;$Z$NYKwENU-a@4o4*o|WNBah8^)8m z-29dBFvP(X&0h&$gLxOes(9M`mEqxZkB2s6N#MKvU-vJD{v*O~FQ@NX*GWzEcu#|~ zG`N$jzN>YsnYRAL-%0BO59I4#uo%eckp9%Ga{2fd6MD5RljL6v^YDf?SJg9i{~D?e=(1=&iEHE`Zcnl9n~5C;>|xr z{R#QtEWyn{c+RO%|Kc)_`?!Dcu?y*9TYec92R)7=4nDk+=9n}zxphj{$#fUGOV)M6uf{Pb}$8Oi!Oo%MvQlec9q z^h45;{EJh3`H;7l`?I2qM=tSvy(#|1kqJDwI9C7HeEqrni<3M)L%GQ1U;MGf_l?$r zCixe~Fz1wE&S?;HPE~%+X%I1L^Dne#@JD`3p95ZV`4>B>Z{YbxXe_?i6#wEQe?FPb zIWYz{3zp9M7w2w9|KhDBQ9mUITY`VFC;^^){EMTBkB9!n$-j&IixhjHM8p2P}UK1Ky;@-fQDBUvuxT|UMJH|9orm8zgu=wqlI`50Bb7^~o=W5tu%Xr4)X zV9m!^th2=6ALTb6eT-AoULHQi z%jhMur@znmEqhvNW>5bl7}G~4^dXmzp}xz-I-Tt4BzsbI2!|uE_chOC zK1WCMOmpB7tv@uMV<~VfCCz+}$~@9!E+u9GxEEXu}H|%cpRZkI$hx<#R0M zIg+Pr^3dln+{_4YqcXzHzyBG{Gi}K}$fLpyJQ<&7>Z}i9c==p_7n^5#+2iM7@YC>H z=3V^z1HAu@cj0bx%`+Xy*r|D@1KEEZ&NJ<=vp_N(&okZQ@nb$zXXlxE15Y^5)C)K| zJJ0lN48~2JXOhij^ENtbMr){L6S+HRiQ`2!6k{)PARTXG`h}dOA$dNJX9eFBL(}>H zva2i5T^bj)HdA-X$v@HhcB@NgRV%;ZIP#k;{>EC+mVKIPhx&Uouz%Lp+=cUG3psn| z<>34s+14BNBh|0@->lPfyq=EEN2~GismOMYY!udT_fX&LYz6H# zG}`z3`6e9c+?kT}^!iG8+2IQweu}$O)SmH<`Cm52P{^LRtAiMd)uX#6Q?>B$WcC|R zt<$}OD@#+{flL2N*njuB%E04#*WHcFc`wr)x$ILYtG=wcbn@l(WvMSTaNlEDx75h` zhlQW<$X@z-=6t5rccDx#&Qh$%UJuQ$Z!XD>;BMT{H+0R`UBj6@D|H5p+lxq$EY+Doy5BNecO5adn+CI&_zG+Z!J&N7*-uM=<9BcA-rg?U<;LAnpDnHZ9e3Vb zrL(hEtPnjj(V1#JIa94CXR4K?r!{m>`}3UqelOb(sC`GAzvFC>GS-bbTZD06y5y(Y zo0f^zVwlbTjMDg~xfQd4CsSvdJ!C`RpAidnHq7i5L!f6VXa3r_at}Bh=6TreUbzyy zKRU8FwUoaP`KvspI91KxDE=n$cLjg*`FobX75tSQ%lR$*jp6S?{zf1pYRB5ROLx)% zFEY@;cI%b#?~erEC-Yr*+Yd>z_niJb7kvAA?Ay}d8{4;6s!iShDIC2Sd>b44_D1k+ zG~Y&WPDcoDWAJ@c!uPQ55q$5(erc6Iqepc2{K}yGFn#Boa(&l)xL{iyd>@kVeQof4 zuxr09KK~wkAEfVT&b^A`Ak%u+nSt*I`PtvS5&r)feCJHwm4hie!k3-T z{wLKn*uRH)yO3A?s!oq}e0gP1&wA}!e=pJ(g6YNQqu=mBQ%N>DkH?K)$Vy4|E9?=f z+aKLBPe_$WxfbMbWL5qLU-m~$R2T>hpBry zbT4jr2k(wQD&j1gTJ5dsTQvFd#?r}}3)fvqx>N9^=!`+u3+O&c#twI%WI4~#&`EWF zLv?3wb>~97usDK4@~CsW7HN)=->Wp{k@rOM0`p4ISnp$f*}ssca|HK*v^qyn_rv9* z$L@p%NqTJRamA@R{uc7LjK2^0t2`ck#$PRellhy&-va)Y@VAz~%;z|Ziodv?IzHg< zBt14h_#W3|=LX;6dTd(oEw0C|4!*_p*cHLIBt14O_@1Q4!n%|6*mXhqBt3RR@I6V7 z{V4dJq{nUvz9;FipI`@udhF&Pf07=X7krQFv2U~YD%4|P-nbsyFQ`X)Y{|RuZgn)S z)QPY8y{UTas;86n*rw=<-I%BENMC%$=gFlnCV4px^~G`E-Sov`?D<^!qSuX`(-%*u zZm%yE{eiw@u(`axctq=M1AXzoD$Tz_~? z11i&<131{(de^zTc6AP)&H=2*U>o4GWH<*=vntY$|EWqBJ1vuoS;*|b|eGwgevj6)6PyR-XZU3)|@2WF?7U0(4Y!YpLi8x>F zPUWl?FWw#`q`!~(Yi2O4<7piM; z?%PAJd)-8NozbX#f;*pc|New;{1q3MjMieDq_)s=OMrC=aLQJCl`&c}O5T=vhSy1} z5z`kHuzAPKloU_)=*3(zIl&_QRjc@JW2J}e9tEardD0ip!vRN@A9*>6P_*k zIDDHNT{;8XOkgAPg`Li*5jM1ReJp8@?f-)()7?IQZ? znMD5~$YqhI|4{N6{rd*zf(;4ie;@5CpV42x+dKE~Bj7zVp#MwHMfCp=SU(iK!RePg z{mI)x|5HiJ3ZCHHzcZ-kK2QH~0sZTs(e45LzXAQ#Upx2jQ0PA&`U}=|w7ZsezOj$m zzIH_kXCp3${;Jz>wvO+jzs~(r-S_R*O8?@3{_%7Fa?$^A=w@=h+@Jeb&oiX|7d-uc z2mN*KUkm+ruW1+w+;f3jbYBSm^{!ZJZ91a+Xnubay59oa)`!vL5#9BS(_QDm>D<2= zq6Ph|C6Cd)TOjwp_*+CP%}Fe#UFB0hbRL|3$It!Kd2nM$m#?)G^Bm^}bU)eCJwrX3 zyAa)V-@Dq^dw3q)8>Fiq(S8hl(|K^;q^`xD_G|5KEo6To^tso=DcL^<+N;mC=wY4x z_vFs0RnJ0u!K-;0ox68VK>Oj~O?4aIG>0PE>+C<(eON&I8PqQs-3L2PXa6P9TYihu zh4b+2Kk4w2>T8K1qRs{o3F)Z4iTu6*nC}Z{ zJ&`=3wVp||*4ck$p4Jn{W3>KEAmaxIw0?(nmCtCc-|e0KcMP>w4(1PeAMMLTmNe&i)$#tye&6!8?Ms zb$01@16m&k-c+~I`UHN9);jx7b^m$SRyoHvW=-!{H=b*ZnaKC!{W;mp&#oLqtnSv| zL@{{h-v{f3s>g8dAC6pj{-5pt=*T9!Sa@<{O?1!2f7>RrHT8-YT5PyaR(3`!eNXrF zmAz-{g5K8oZNP1D!x{9WKXef7EpBM`vz>v29n_$^5w-59mvGIKzs4eBIenmsVvai) z{i&xVj)GyzdFzRH!_+{N@N9M2n079f6`hP z_hJ|1@-r`(+c`h;$Ew@=nY(*9%+K6Wd;~vPTxvRbLqGFsUpC3ltl*9d)?4e2*`0L$ zeM)y;z^D6je~a!@aA(Tb62}`)+%L;ts;=Q!@ML$>JoQo3=lEIjY51|_+%foHbQS+s zz|T6bavNk=v=8ZOGP{u+rM>)kIg-Cs0dJf^+i~8=rw+w_|-ZW-BYV~$=Ck=9xCaZO4Uz&k~x(x*M2JCXx13u^Iun7TwkSpnd$i0t^UI2 z6ki5b!7d+AbxFrCkL1q2b9GUN=&JJ!CwRQLxkJ)Q*^{u!pTVxQJ~_%u53Bs>Sb6Pp z8s%XK`DF>Q)%X~qx|Qem*dXFTz3Y6_C{})=;tTGK$7!FN!F*?w_Zhz@(BTmnB*U+3 z-i>F{cw#zU_asPnIed8CrFQI0-4he|hI`$nlA)A645w<2U{xVnVDzn4m$YQcrfXFnxj0NPA=W} zRoC#mhcjHesWau(uGU!EzQGH8{UMJUe-^rSa?RTjzT)e8KjYzx_%5;s?(*=3>v|QV zPz*vk*Uq|#pCeO-eWE;W4I}(3+$f%C@~0S&zIXNEYJx_8nci~@in~*eIG);INIYqG8ulUB;1CJN-hBAB``v z<%G)(@}H1z^0vr#iScE&?K!Cveff~D-}U~N@yM0F?53>gtxe#;zr^bQmajk8n%+}A zK0~=M*)qCl43P|-<82F#A;N`?BeE+D_sjX+(HWRqc^iB-c+GW=%wYA6cIS$h(aHFX zZO(18^{?&i87vKW#mxGtmI%?0?t0kb7a1%_84b6+C%uV!@Wv7d)M2LZ|ugxn!!NJ%o|G9#L=p_EPFyN?BXao5>R=%LGe0!pR1FKH)@Z zhLeAlw)*DfIdGzQqHr>fr*JZc=X{={c?t)$JXPl?o=bU-MRsE)F+b zY@ughKFj>LcrLzvS3HvS{Ts$}Q_sMB&f}rY*b>A9|F8QPyD8oQe&asI7d+lWJM(q< zjp(z`$7m!iA0Ok;t=jqv&MrXy+Ve3^=8kf~)}D{CmxnX7B_Hx|hPLFR9?sCmIMvrL zJruX)3iUBwc{9QzenT5uu8W5+w8dt7_{iI0%grHeQ+

m`1zC4rR_FbeTJEdEL6ar8RYR4J+zuFY`Cl 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 literal 0 HcmV?d00001 diff --git a/server/cmake-build-debug/compLib_server.cbp b/server/cmake-build-debug/compLib_server.cbp new file mode 100644 index 0000000..cfd45ce --- /dev/null +++ b/server/cmake-build-debug/compLib_server.cbp @@ -0,0 +1,120 @@ + + + + + + diff --git a/server/cmake-build-debug/server b/server/cmake-build-debug/server new file mode 100755 index 0000000000000000000000000000000000000000..fab6d72688bdbcf13af1f6d4ba1213cc2acdc3b8 GIT binary patch literal 62280 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 literal 0 HcmV?d00001 diff --git a/server/cmake-build-debug/server.cbp b/server/cmake-build-debug/server.cbp new file mode 100644 index 0000000..b1ee125 --- /dev/null +++ b/server/cmake-build-debug/server.cbp @@ -0,0 +1,90 @@ + + + + + + diff --git a/server/include/Spi.hpp b/server/include/Spi.hpp new file mode 100644 index 0000000..6c81b0f --- /dev/null +++ b/server/include/Spi.hpp @@ -0,0 +1,10 @@ +#ifndef COMPLIB_SERVER_SPI_HPP +#define COMPLIB_SERVER_SPI_HPP + + +class Spi { + +}; + + +#endif //COMPLIB_SERVER_SPI_HPP diff --git a/server/include/errorMessages.hpp b/server/include/errorMessages.hpp new file mode 100644 index 0000000..421fd9b --- /dev/null +++ b/server/include/errorMessages.hpp @@ -0,0 +1,10 @@ +// +// Created by KonstantinViesure on 06.03.22. +// + +#ifndef COMPLIB_SERVER_ERRORMESSAGES_HPP +#define COMPLIB_SERVER_ERRORMESSAGES_HPP + +#define ERROR_MESSAGE_UNKNOWN "Header.message_type unknown" + +#endif //COMPLIB_SERVER_ERRORMESSAGES_HPP diff --git a/server/include/messageBuilder.hpp b/server/include/messageBuilder.hpp new file mode 100644 index 0000000..599a937 --- /dev/null +++ b/server/include/messageBuilder.hpp @@ -0,0 +1,28 @@ +#ifndef COMPLIB_SERVER_MESSAGECREATION_HPP +#define COMPLIB_SERVER_MESSAGECREATION_HPP + +#include + +namespace MessageBuilder { + CompLib::Header *header(const std::string &message_type) { + auto header = new CompLib::Header(); + header->set_message_type(message_type); + return header; + } + + CompLib::Status *status(bool successful, const std::string &error_message) { + auto status = new CompLib::Status(); + status->set_successful(successful); + status->set_error_message(error_message); + return status; + } + + CompLib::GenericResponse *genericResponse(bool successful, const std::string &error_message) { + auto genericResponse = new CompLib::GenericResponse(); + genericResponse->set_allocated_header(header(CompLib::GenericResponse::descriptor()->full_name())); + genericResponse->set_allocated_status(status(successful, error_message)); + return genericResponse; + } +} + +#endif //COMPLIB_SERVER_MESSAGECREATION_HPP diff --git a/server/protos/CompLib.proto b/server/protos/CompLib.proto new file mode 100644 index 0000000..77a202d --- /dev/null +++ b/server/protos/CompLib.proto @@ -0,0 +1,36 @@ +syntax = "proto3"; + +package CompLib; + +message Header { + string message_type = 1; +} + +message Status { + bool successful = 1; + string error_message = 2; +} + +message GenericRequest { + Header header = 1; +} + +message GenericResponse { + Header header = 1; + Status status = 2; +} + +message ReadSensorsRequest { + Header header = 1; +} + +message ReadSensorsResponse { + Header header = 1; + Status status = 2; + uint32 ir_1 = 3; + uint32 ir_2 = 4; + uint32 ir_3 = 5; + uint32 ir_4 = 6; + uint32 ir_5 = 7; +} + diff --git a/server/src/Spi.cpp b/server/src/Spi.cpp new file mode 100644 index 0000000..51676ef --- /dev/null +++ b/server/src/Spi.cpp @@ -0,0 +1 @@ +#include "Spi.hpp" diff --git a/server/src/main.cpp b/server/src/main.cpp new file mode 100644 index 0000000..2f092ca --- /dev/null +++ b/server/src/main.cpp @@ -0,0 +1,90 @@ +#include +#include +#include +#include +#include +#include "include/messageBuilder.hpp" +#include "include/errorMessages.hpp" + +#define SOCKET_PATH "/tmp/compLib" +#define BUFFER_SIZE 64 + +google::protobuf::Message *processMessage(const std::string &serializedMessage) { + CompLib::GenericRequest message; + message.ParseFromString(serializedMessage); + auto messageTypeName = message.header().message_type(); + + if (messageTypeName == CompLib::ReadSensorsRequest::GetDescriptor()->full_name()) { + CompLib::ReadSensorsRequest readSensorsRequest; + readSensorsRequest.ParseFromString(serializedMessage); + } else if (messageTypeName == CompLib::ReadSensorsResponse::GetDescriptor()->full_name()) { + CompLib::ReadSensorsResponse readSensorsResponse; + readSensorsResponse.ParseFromString(serializedMessage); + std::cout << readSensorsResponse.ir_1() << std::endl; + std::cout << readSensorsResponse.ir_2() << std::endl; + std::cout << readSensorsResponse.ir_3() << std::endl; + std::cout << readSensorsResponse.ir_4() << std::endl; + std::cout << readSensorsResponse.ir_5() << std::endl; + } else { + std::cout << messageTypeName << " not found!" << std::endl; + } + + google::protobuf::Message *returnMessage = MessageBuilder::genericResponse(false, ERROR_MESSAGE_UNKNOWN); + return returnMessage; +} + +[[noreturn]] void socketServer() { + struct sockaddr_un socketAddress; + int socketFileDescriptor = socket(AF_UNIX, SOCK_STREAM, 0); + remove(SOCKET_PATH); + + memset(&socketAddress, 0, sizeof(struct sockaddr_un)); + socketAddress.sun_family = AF_UNIX; + strncpy(socketAddress.sun_path, SOCKET_PATH, sizeof(socketAddress.sun_path) - 1); + + if (bind(socketFileDescriptor, (struct sockaddr *) &socketAddress, sizeof(struct sockaddr_un)) == -1) { + exit(-1); + } + + if (listen(socketFileDescriptor, 1) == -1) { + exit(-2); + } + + char readBuffer[BUFFER_SIZE]; + char writeBuffer[BUFFER_SIZE]; + for (;;) { + int clientFileDescriptor = accept(socketFileDescriptor, NULL, NULL); + auto numRead = read(clientFileDescriptor, readBuffer, 1); + std::cout << numRead << std::endl; + + uint8_t messageSize = readBuffer[0]; + std::cout << std::to_string(messageSize) << std::endl; + + numRead = read(clientFileDescriptor, readBuffer, readBuffer[0]); + std::cout << numRead << std::endl; + + std::string stringMessage; + for (int i{}; i < messageSize; i++) { + stringMessage += readBuffer[i]; + } + + auto response = processMessage(stringMessage); + uint8_t responseSize = response->ByteSizeLong(); + writeBuffer[0] = responseSize; + + std::cout << std::to_string(responseSize) << std::endl; + write(clientFileDescriptor, writeBuffer, 1); + + response->SerializeToArray(writeBuffer, BUFFER_SIZE); + write(clientFileDescriptor, writeBuffer, responseSize); + + close(clientFileDescriptor); + } + +} + +int main() { + socketServer(); + return 0; +} + From 50da7184723152178c2b11d88ba135924983efff Mon Sep 17 00:00:00 2001 From: Konstantin Lampalzer Date: Fri, 18 Mar 2022 18:17:16 +0100 Subject: [PATCH 154/246] Add gitignore --- server/include/.gitignore | 104 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 server/include/.gitignore diff --git a/server/include/.gitignore b/server/include/.gitignore new file mode 100644 index 0000000..b2f759e --- /dev/null +++ b/server/include/.gitignore @@ -0,0 +1,104 @@ + +# Created by https://www.toptal.com/developers/gitignore/api/c++,macos,linux,visualstudiocode +# Edit at https://www.toptal.com/developers/gitignore?templates=c++,macos,linux,visualstudiocode + +### C++ ### +# Prerequisites +*.d + +# Compiled Object files +*.slo +*.lo +*.o +*.obj + +# Precompiled Headers +*.gch +*.pch + +# Compiled Dynamic libraries +*.so +*.dylib +*.dll + +# Fortran module files +*.mod +*.smod + +# Compiled Static libraries +*.lai +*.la +*.a +*.lib + +# Executables +*.exe +*.out +*.app + +### Linux ### +*~ + +# temporary files which can be created if a process still has a handle open of a deleted file +.fuse_hidden* + +# KDE directory preferences +.directory + +# Linux trash folder which might appear on any partition or disk +.Trash-* + +# .nfs files are created when an open file is removed but is still being accessed +.nfs* + +### macOS ### +# General +.DS_Store +.AppleDouble +.LSOverride + +# Icon must end with two \r +Icon + + +# Thumbnails +._* + +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns +.com.apple.timemachine.donotpresent + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk + +### VisualStudioCode ### +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json +!.vscode/*.code-snippets + +# Local History for Visual Studio Code +.history/ + +# Built Visual Studio Code Extensions +*.vsix + +### VisualStudioCode Patch ### +# Ignore all local history of files +.history +.ionide + +# Support for Project snippet scope + +# End of https://www.toptal.com/developers/gitignore/api/c++,macos,linux,visualstudiocode \ No newline at end of file From ddc550ef1a7df0aad56fb8981cc07c047e370885 Mon Sep 17 00:00:00 2001 From: Konstantin Lampalzer Date: Fri, 18 Mar 2022 18:18:24 +0100 Subject: [PATCH 155/246] Add gitignore --- server/{include => }/.gitignore | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename server/{include => }/.gitignore (100%) diff --git a/server/include/.gitignore b/server/.gitignore similarity index 100% rename from server/include/.gitignore rename to server/.gitignore From 5ecf92426ae22727b0edace9263ea9ccd7091891 Mon Sep 17 00:00:00 2001 From: Konstantin Lampalzer Date: Fri, 18 Mar 2022 18:18:36 +0100 Subject: [PATCH 156/246] Remove compiled files --- .../3.17.3/CompilerIdC/CMakeCCompilerId.o | Bin 1400 -> 0 bytes .../3.17.3/CompilerIdCXX/CMakeCXXCompilerId.o | Bin 1380 -> 0 bytes .../compLib_server.dir/CompLib.pb.cc.o | Bin 746364 -> 0 bytes .../compLib_server.dir/src/main.cpp.o | Bin 561916 -> 0 bytes .../CMakeFiles/server.dir/src/main.cpp.o | Bin 94116 -> 0 bytes 5 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 server/cmake-build-debug/CMakeFiles/3.17.3/CompilerIdC/CMakeCCompilerId.o delete mode 100644 server/cmake-build-debug/CMakeFiles/3.17.3/CompilerIdCXX/CMakeCXXCompilerId.o delete mode 100644 server/cmake-build-debug/CMakeFiles/compLib_server.dir/CompLib.pb.cc.o delete mode 100644 server/cmake-build-debug/CMakeFiles/compLib_server.dir/src/main.cpp.o delete mode 100644 server/cmake-build-debug/CMakeFiles/server.dir/src/main.cpp.o diff --git a/server/cmake-build-debug/CMakeFiles/3.17.3/CompilerIdC/CMakeCCompilerId.o b/server/cmake-build-debug/CMakeFiles/3.17.3/CompilerIdC/CMakeCCompilerId.o deleted file mode 100644 index 6551d109e4b0b97fba024c98a702d4fc4b84d52e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1400 zcmb7C&ubG=5PoTE8nCrF^w5HV96a=-NxUgSLy{6ft&{|W5T=i0lPqjDVYAU96nauZ z5&9?Stw(Qq^3p?l^Izyi@DQQLAX5EicV6=Y6&;xUX6DU&Z{E&){{HQ9QK`th!Uwtl zJ)XlS35BdfH`xD!yyYUundBHBoQgHdhY%v)+Vev@^h`vwIW=2PE&VY_vrM|pF`xG8f;N-zd8?(aQNj;5YW zWVNW_>9!RX%=Wh{MVrF6A$;Ph>llr(88gr|Xjrzyp+NXjj(ieA~7pp^-|BjdX@%cZFV9 zuI`cPUxn4Gn30z|DzX=k#FrLhN65N`_)X}+<#^wZC7Gu>^wlL{7iio#!S&1wWYmX6DVzo0oYnAHRP)T@oU(DDZ)t zfxKP7Ckp}2LoSj17mO$gIOZ5_qoyE9(jp*bU=M;wkLSZ4vVtk$v zX-HY?1-|1o*&*d@Jzb~5>zj1IDa;>9%DM_v93W+>ST4r)F{@eT5$aLNf$op}n$Taz z>%|A2@9%^Ix0v6fSa?odV2-I?yQ^w}?0b(LuP)_IX*wjwbI7uD!u`EMQC^xkvXpj9 zHhk5#qlEeX_BiPV*V{lHI_E z5-k0`FHrvr6?6FY$oN4y!>1E-*grWk#$=fXR92X^yOXsK>#4=ccvu<#*;z9t=F1g| zMr7h2kq5@OdU*TZt=&x;isRb8RqS?Md)rlBvns-suB(DZ$8TFD65HSy%WNDR`6^zu@Q-u6ZKFF;18KSSt#MR7I#d|`V_DKE63wFJ#;o{+Sun8i><@i diff --git a/server/cmake-build-debug/CMakeFiles/compLib_server.dir/CompLib.pb.cc.o b/server/cmake-build-debug/CMakeFiles/compLib_server.dir/CompLib.pb.cc.o deleted file mode 100644 index e87eceb8f004de905d242db7ad2c90c016a0460d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 746364 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ȟnIWCFcT6c7G6q1-DKO!mt=`I^jZ)tU&TD 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%0Dc5C$$ed-?eA3+D8##?AcE3BfOQ9FIW3$ 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 HVlezKh0Dmz From 8537e8504b9e0bbc8709c6ec38ba74bb44ddb5a0 Mon Sep 17 00:00:00 2001 From: root Date: Sun, 20 Mar 2022 21:21:54 +0000 Subject: [PATCH 157/246] Add encoder with filter --- server/.gitignore | 4 +- server/CMakeLists.txt | 30 +- server/cmake-build-debug/CMakeCache.txt | 433 ---- .../CMakeFiles/3.17.3/CMakeCCompiler.cmake | 76 - .../CMakeFiles/3.17.3/CMakeCXXCompiler.cmake | 88 - .../3.17.3/CMakeDetermineCompilerABI_C.bin | Bin 16592 -> 0 bytes .../3.17.3/CMakeDetermineCompilerABI_CXX.bin | Bin 16576 -> 0 bytes .../CMakeFiles/3.17.3/CMakeSystem.cmake | 15 - .../3.17.3/CompilerIdC/CMakeCCompilerId.c | 671 ------ .../CompilerIdCXX/CMakeCXXCompilerId.cpp | 660 ------ .../CMakeDirectoryInformation.cmake | 16 - .../CMakeFiles/CMakeError.log | 22 - .../CMakeFiles/CMakeOutput.log | 334 --- .../CMakeFiles/CMakeRuleHashes.txt | 2 - .../CMakeFiles/Makefile.cmake | 64 - server/cmake-build-debug/CMakeFiles/Makefile2 | 126 -- .../CMakeFiles/TargetDirectories.txt | 3 - .../CMakeFiles/clion-environment.txt | 3 - .../CMakeFiles/clion-log.txt | 4 - .../CMakeFiles/cmake.check_cache | 1 - .../compLib_server.dir/CXX.includecache | 958 -------- .../compLib_server.dir/DependInfo.cmake | 32 - .../CMakeFiles/compLib_server.dir/build.make | 158 -- .../compLib_server.dir/cmake_clean.cmake | 14 - .../compLib_server.dir/depend.internal | 107 - .../CMakeFiles/compLib_server.dir/depend.make | 107 - .../CMakeFiles/compLib_server.dir/flags.make | 10 - .../CMakeFiles/compLib_server.dir/link.txt | 1 - .../compLib_server.dir/progress.make | 6 - .../CMakeFiles/progress.marks | 1 - .../CMakeFiles/server.dir/CXX.includecache | 12 - .../CMakeFiles/server.dir/DependInfo.cmake | 20 - .../CMakeFiles/server.dir/build.make | 118 - .../CMakeFiles/server.dir/cmake_clean.cmake | 10 - .../CMakeFiles/server.dir/depend.internal | 5 - .../CMakeFiles/server.dir/depend.make | 5 - .../CMakeFiles/server.dir/flags.make | 10 - .../CMakeFiles/server.dir/link.txt | 1 - .../CMakeFiles/server.dir/progress.make | 3 - server/cmake-build-debug/CompLib.pb.cc | 1654 -------------- server/cmake-build-debug/CompLib.pb.h | 1928 ----------------- server/cmake-build-debug/Makefile | 258 --- server/cmake-build-debug/cmake_install.cmake | 44 - server/cmake-build-debug/compLib_server | Bin 254888 -> 0 bytes server/cmake-build-debug/compLib_server.cbp | 120 - server/cmake-build-debug/server | Bin 62280 -> 0 bytes server/cmake-build-debug/server.cbp | 90 - server/cmake/modules/Findpigpio.cmake | 31 + server/include/Spi.hpp | 10 - server/include/encoder.hpp | 14 + server/include/mathUtils.hpp | 27 + server/include/motor.hpp | 44 + server/include/reset.hpp | 31 + server/include/robot.hpp | 22 + server/include/spi.hpp | 126 ++ server/src/Spi.cpp | 1 - server/src/encoder.cpp | 15 + server/src/main.cpp | 58 +- server/src/motor.cpp | 95 + server/src/spi.cpp | 103 + 60 files changed, 593 insertions(+), 8208 deletions(-) delete mode 100644 server/cmake-build-debug/CMakeCache.txt delete mode 100644 server/cmake-build-debug/CMakeFiles/3.17.3/CMakeCCompiler.cmake delete mode 100644 server/cmake-build-debug/CMakeFiles/3.17.3/CMakeCXXCompiler.cmake delete mode 100755 server/cmake-build-debug/CMakeFiles/3.17.3/CMakeDetermineCompilerABI_C.bin delete mode 100755 server/cmake-build-debug/CMakeFiles/3.17.3/CMakeDetermineCompilerABI_CXX.bin delete mode 100644 server/cmake-build-debug/CMakeFiles/3.17.3/CMakeSystem.cmake delete mode 100644 server/cmake-build-debug/CMakeFiles/3.17.3/CompilerIdC/CMakeCCompilerId.c delete mode 100644 server/cmake-build-debug/CMakeFiles/3.17.3/CompilerIdCXX/CMakeCXXCompilerId.cpp delete mode 100644 server/cmake-build-debug/CMakeFiles/CMakeDirectoryInformation.cmake delete mode 100644 server/cmake-build-debug/CMakeFiles/CMakeError.log delete mode 100644 server/cmake-build-debug/CMakeFiles/CMakeOutput.log delete mode 100644 server/cmake-build-debug/CMakeFiles/CMakeRuleHashes.txt delete mode 100644 server/cmake-build-debug/CMakeFiles/Makefile.cmake delete mode 100644 server/cmake-build-debug/CMakeFiles/Makefile2 delete mode 100644 server/cmake-build-debug/CMakeFiles/TargetDirectories.txt delete mode 100644 server/cmake-build-debug/CMakeFiles/clion-environment.txt delete mode 100644 server/cmake-build-debug/CMakeFiles/clion-log.txt delete mode 100644 server/cmake-build-debug/CMakeFiles/cmake.check_cache delete mode 100644 server/cmake-build-debug/CMakeFiles/compLib_server.dir/CXX.includecache delete mode 100644 server/cmake-build-debug/CMakeFiles/compLib_server.dir/DependInfo.cmake delete mode 100644 server/cmake-build-debug/CMakeFiles/compLib_server.dir/build.make delete mode 100644 server/cmake-build-debug/CMakeFiles/compLib_server.dir/cmake_clean.cmake delete mode 100644 server/cmake-build-debug/CMakeFiles/compLib_server.dir/depend.internal delete mode 100644 server/cmake-build-debug/CMakeFiles/compLib_server.dir/depend.make delete mode 100644 server/cmake-build-debug/CMakeFiles/compLib_server.dir/flags.make delete mode 100644 server/cmake-build-debug/CMakeFiles/compLib_server.dir/link.txt delete mode 100644 server/cmake-build-debug/CMakeFiles/compLib_server.dir/progress.make delete mode 100644 server/cmake-build-debug/CMakeFiles/progress.marks delete mode 100644 server/cmake-build-debug/CMakeFiles/server.dir/CXX.includecache delete mode 100644 server/cmake-build-debug/CMakeFiles/server.dir/DependInfo.cmake delete mode 100644 server/cmake-build-debug/CMakeFiles/server.dir/build.make delete mode 100644 server/cmake-build-debug/CMakeFiles/server.dir/cmake_clean.cmake delete mode 100644 server/cmake-build-debug/CMakeFiles/server.dir/depend.internal delete mode 100644 server/cmake-build-debug/CMakeFiles/server.dir/depend.make delete mode 100644 server/cmake-build-debug/CMakeFiles/server.dir/flags.make delete mode 100644 server/cmake-build-debug/CMakeFiles/server.dir/link.txt delete mode 100644 server/cmake-build-debug/CMakeFiles/server.dir/progress.make delete mode 100644 server/cmake-build-debug/CompLib.pb.cc delete mode 100644 server/cmake-build-debug/CompLib.pb.h delete mode 100644 server/cmake-build-debug/Makefile delete mode 100644 server/cmake-build-debug/cmake_install.cmake delete mode 100755 server/cmake-build-debug/compLib_server delete mode 100644 server/cmake-build-debug/compLib_server.cbp delete mode 100755 server/cmake-build-debug/server delete mode 100644 server/cmake-build-debug/server.cbp create mode 100644 server/cmake/modules/Findpigpio.cmake delete mode 100644 server/include/Spi.hpp create mode 100644 server/include/encoder.hpp create mode 100644 server/include/mathUtils.hpp create mode 100644 server/include/motor.hpp create mode 100644 server/include/reset.hpp create mode 100644 server/include/robot.hpp create mode 100644 server/include/spi.hpp delete mode 100644 server/src/Spi.cpp create mode 100644 server/src/encoder.cpp create mode 100644 server/src/motor.cpp create mode 100644 server/src/spi.cpp diff --git a/server/.gitignore b/server/.gitignore index b2f759e..5b4bcb6 100644 --- a/server/.gitignore +++ b/server/.gitignore @@ -101,4 +101,6 @@ Temporary Items # Support for Project snippet scope -# End of https://www.toptal.com/developers/gitignore/api/c++,macos,linux,visualstudiocode \ No newline at end of file +# End of https://www.toptal.com/developers/gitignore/api/c++,macos,linux,visualstudiocode + +build diff --git a/server/CMakeLists.txt b/server/CMakeLists.txt index ba7da5f..d6520a1 100644 --- a/server/CMakeLists.txt +++ b/server/CMakeLists.txt @@ -1,9 +1,22 @@ -cmake_minimum_required(VERSION 3.17) -set(CMAKE_CXX_STANDARD 17) +cmake_minimum_required(VERSION 3.16) + set(PROJECT_NAME compLib_server) project(${PROJECT_NAME}) +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules ${CMAKE_MODULE_PATH}) + +if (NOT CMAKE_BUILD_TYPE) + set(CMAKE_BUILD_TYPE Release) +endif () + +set(CMAKE_CXX_FLAGS "-Wall -Wextra -Wno-psabi") +set(CMAKE_CXX_FLAGS_DEBUG "-g") +set(CMAKE_CXX_FLAGS_RELEASE "-O3") + find_package(Protobuf REQUIRED) +find_package(spdlog REQUIRED) +find_package(pigpio REQUIRED) set(PROTO_FILES protos/CompLib.proto @@ -11,13 +24,20 @@ set(PROTO_FILES set(SRC_FILES src/main.cpp - src/Spi.cpp + src/spi.cpp + src/encoder.cpp + src/motor.cpp ) set(HDR_FILES include/messageBuilder.hpp include/errorMessages.hpp - include/Spi.hpp + include/spi.hpp + include/reset.hpp + include/mathUtils.hpp + include/encoder.hpp + include/robot.hpp + include/motor.hpp ) include_directories(third_party/asio) @@ -29,4 +49,4 @@ target_include_directories(${PROJECT_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} PUBLIC ${PROTOBUF_INCLUDE_DIRS} ) -target_link_libraries(${PROJECT_NAME} ${PROTOBUF_LIBRARIES}) +target_link_libraries(${PROJECT_NAME} ${PROTOBUF_LIBRARIES} pigpio spdlog::spdlog) diff --git a/server/cmake-build-debug/CMakeCache.txt b/server/cmake-build-debug/CMakeCache.txt deleted file mode 100644 index a068a24..0000000 --- a/server/cmake-build-debug/CMakeCache.txt +++ /dev/null @@ -1,433 +0,0 @@ -# This is the CMakeCache file. -# For build in directory: /Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug -# It was generated by CMake: /Applications/CLion.app/Contents/bin/cmake/mac/bin/cmake -# You can edit this file to change values found and used by cmake. -# If you do not want to change any of the values, simply exit the editor. -# If you do want to change a value, simply edit, save, and exit the editor. -# The syntax for the file is as follows: -# KEY:TYPE=VALUE -# KEY is the name of a variable in the cache. -# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!. -# VALUE is the current value for the KEY. - -######################## -# EXTERNAL cache entries -######################## - -//Path to a program. -CMAKE_ADDR2LINE:FILEPATH=CMAKE_ADDR2LINE-NOTFOUND - -//Path to a program. -CMAKE_AR:FILEPATH=/Library/Developer/CommandLineTools/usr/bin/ar - -//Choose the type of build, options are: None Debug Release RelWithDebInfo -// MinSizeRel ... -CMAKE_BUILD_TYPE:STRING=Debug - -//Id string of the compiler for the CodeBlocks IDE. Automatically -// detected when left empty -CMAKE_CODEBLOCKS_COMPILER_ID:STRING= - -//The CodeBlocks executable -CMAKE_CODEBLOCKS_EXECUTABLE:FILEPATH=CMAKE_CODEBLOCKS_EXECUTABLE-NOTFOUND - -//Additional command line arguments when CodeBlocks invokes make. -// Enter e.g. -j to get parallel builds -CMAKE_CODEBLOCKS_MAKE_ARGUMENTS:STRING=-j16 - -//Enable/Disable color output during build. -CMAKE_COLOR_MAKEFILE:BOOL=ON - -//CXX compiler -CMAKE_CXX_COMPILER:FILEPATH=/Library/Developer/CommandLineTools/usr/bin/c++ - -//Flags used by the CXX compiler during all build types. -CMAKE_CXX_FLAGS:STRING= - -//Flags used by the CXX compiler during DEBUG builds. -CMAKE_CXX_FLAGS_DEBUG:STRING=-g - -//Flags used by the CXX compiler during MINSIZEREL builds. -CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG - -//Flags used by the CXX compiler during RELEASE builds. -CMAKE_CXX_FLAGS_RELEASE:STRING=-O3 -DNDEBUG - -//Flags used by the CXX compiler during RELWITHDEBINFO builds. -CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG - -//C compiler -CMAKE_C_COMPILER:FILEPATH=/Library/Developer/CommandLineTools/usr/bin/cc - -//Flags used by the C compiler during all build types. -CMAKE_C_FLAGS:STRING= - -//Flags used by the C compiler during DEBUG builds. -CMAKE_C_FLAGS_DEBUG:STRING=-g - -//Flags used by the C compiler during MINSIZEREL builds. -CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG - -//Flags used by the C compiler during RELEASE builds. -CMAKE_C_FLAGS_RELEASE:STRING=-O3 -DNDEBUG - -//Flags used by the C compiler during RELWITHDEBINFO builds. -CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG - -//Path to a program. -CMAKE_DLLTOOL:FILEPATH=CMAKE_DLLTOOL-NOTFOUND - -//Executable file format -CMAKE_EXECUTABLE_FORMAT:STRING=MACHO - -//Flags used by the linker during all build types. -CMAKE_EXE_LINKER_FLAGS:STRING= - -//Flags used by the linker during DEBUG builds. -CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING= - -//Flags used by the linker during MINSIZEREL builds. -CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING= - -//Flags used by the linker during RELEASE builds. -CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING= - -//Flags used by the linker during RELWITHDEBINFO builds. -CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING= - -//Enable/Disable output of compile commands during generation. -CMAKE_EXPORT_COMPILE_COMMANDS:BOOL= - -//Path to a program. -CMAKE_INSTALL_NAME_TOOL:FILEPATH=/usr/bin/install_name_tool - -//Install path prefix, prepended onto install directories. -CMAKE_INSTALL_PREFIX:PATH=/usr/local - -//Path to a program. -CMAKE_LINKER:FILEPATH=/Library/Developer/CommandLineTools/usr/bin/ld - -//Path to a program. -CMAKE_MAKE_PROGRAM:FILEPATH=/usr/bin/make - -//Flags used by the linker during the creation of modules during -// all build types. -CMAKE_MODULE_LINKER_FLAGS:STRING= - -//Flags used by the linker during the creation of modules during -// DEBUG builds. -CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING= - -//Flags used by the linker during the creation of modules during -// MINSIZEREL builds. -CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING= - -//Flags used by the linker during the creation of modules during -// RELEASE builds. -CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING= - -//Flags used by the linker during the creation of modules during -// RELWITHDEBINFO builds. -CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING= - -//Path to a program. -CMAKE_NM:FILEPATH=/Library/Developer/CommandLineTools/usr/bin/nm - -//Path to a program. -CMAKE_OBJCOPY:FILEPATH=CMAKE_OBJCOPY-NOTFOUND - -//Path to a program. -CMAKE_OBJDUMP:FILEPATH=/Library/Developer/CommandLineTools/usr/bin/objdump - -//Build architectures for OSX -CMAKE_OSX_ARCHITECTURES:STRING= - -//Minimum OS X version to target for deployment (at runtime); newer -// APIs weak linked. Set to empty string for default value. -CMAKE_OSX_DEPLOYMENT_TARGET:STRING= - -//The product will be built against the headers and libraries located -// inside the indicated SDK. -CMAKE_OSX_SYSROOT:PATH=/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk - -//Value Computed by CMake -CMAKE_PROJECT_DESCRIPTION:STATIC= - -//Value Computed by CMake -CMAKE_PROJECT_HOMEPAGE_URL:STATIC= - -//Value Computed by CMake -CMAKE_PROJECT_NAME:STATIC=compLib_server - -//Path to a program. -CMAKE_RANLIB:FILEPATH=/Library/Developer/CommandLineTools/usr/bin/ranlib - -//Path to a program. -CMAKE_READELF:FILEPATH=CMAKE_READELF-NOTFOUND - -//Flags used by the linker during the creation of shared libraries -// during all build types. -CMAKE_SHARED_LINKER_FLAGS:STRING= - -//Flags used by the linker during the creation of shared libraries -// during DEBUG builds. -CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING= - -//Flags used by the linker during the creation of shared libraries -// during MINSIZEREL builds. -CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING= - -//Flags used by the linker during the creation of shared libraries -// during RELEASE builds. -CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING= - -//Flags used by the linker during the creation of shared libraries -// during RELWITHDEBINFO builds. -CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING= - -//If set, runtime paths are not added when installing shared libraries, -// but are added when building. -CMAKE_SKIP_INSTALL_RPATH:BOOL=NO - -//If set, runtime paths are not added when using shared libraries. -CMAKE_SKIP_RPATH:BOOL=NO - -//Flags used by the linker during the creation of static libraries -// during all build types. -CMAKE_STATIC_LINKER_FLAGS:STRING= - -//Flags used by the linker during the creation of static libraries -// during DEBUG builds. -CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING= - -//Flags used by the linker during the creation of static libraries -// during MINSIZEREL builds. -CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING= - -//Flags used by the linker during the creation of static libraries -// during RELEASE builds. -CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING= - -//Flags used by the linker during the creation of static libraries -// during RELWITHDEBINFO builds. -CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING= - -//Path to a program. -CMAKE_STRIP:FILEPATH=/Library/Developer/CommandLineTools/usr/bin/strip - -//If this value is on, makefiles will be generated without the -// .SILENT directive, and all commands will be echoed to the console -// during the make. This is useful for debugging only. With Visual -// Studio IDE projects all commands are done without /nologo. -CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE - -//Path to a program. -ProcessorCount_cmd_sysctl:FILEPATH=/usr/sbin/sysctl - -//Path to a file. -Protobuf_INCLUDE_DIR:PATH=/usr/local/include - -//Path to a library. -Protobuf_LIBRARY_DEBUG:FILEPATH=/usr/local/lib/libprotobuf.dylib - -//Path to a library. -Protobuf_LIBRARY_RELEASE:FILEPATH=/usr/local/lib/libprotobuf.dylib - -//Path to a library. -Protobuf_LITE_LIBRARY_DEBUG:FILEPATH=/usr/local/lib/libprotobuf-lite.dylib - -//Path to a library. -Protobuf_LITE_LIBRARY_RELEASE:FILEPATH=/usr/local/lib/libprotobuf-lite.dylib - -//The Google Protocol Buffers Compiler -Protobuf_PROTOC_EXECUTABLE:FILEPATH=/usr/local/bin/protoc - -//Path to a library. -Protobuf_PROTOC_LIBRARY_DEBUG:FILEPATH=/usr/local/lib/libprotoc.dylib - -//Path to a library. -Protobuf_PROTOC_LIBRARY_RELEASE:FILEPATH=/usr/local/lib/libprotoc.dylib - -//Value Computed by CMake -compLib_server_BINARY_DIR:STATIC=/Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug - -//Value Computed by CMake -compLib_server_SOURCE_DIR:STATIC=/Users/konstantinviesure/workspace/compLIB/server - -//Value Computed by CMake -server_BINARY_DIR:STATIC=/Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug - -//Value Computed by CMake -server_SOURCE_DIR:STATIC=/Users/konstantinviesure/workspace/compLIB/server - - -######################## -# INTERNAL cache entries -######################## - -//ADVANCED property for variable: CMAKE_ADDR2LINE -CMAKE_ADDR2LINE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_AR -CMAKE_AR-ADVANCED:INTERNAL=1 -//This is the directory where this CMakeCache.txt was created -CMAKE_CACHEFILE_DIR:INTERNAL=/Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug -//Major version of cmake used to create the current loaded cache -CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3 -//Minor version of cmake used to create the current loaded cache -CMAKE_CACHE_MINOR_VERSION:INTERNAL=17 -//Patch version of cmake used to create the current loaded cache -CMAKE_CACHE_PATCH_VERSION:INTERNAL=3 -//ADVANCED property for variable: CMAKE_COLOR_MAKEFILE -CMAKE_COLOR_MAKEFILE-ADVANCED:INTERNAL=1 -//Path to CMake executable. -CMAKE_COMMAND:INTERNAL=/Applications/CLion.app/Contents/bin/cmake/mac/bin/cmake -//Path to cpack program executable. -CMAKE_CPACK_COMMAND:INTERNAL=/Applications/CLion.app/Contents/bin/cmake/mac/bin/cpack -//Path to ctest program executable. -CMAKE_CTEST_COMMAND:INTERNAL=/Applications/CLion.app/Contents/bin/cmake/mac/bin/ctest -//ADVANCED property for variable: CMAKE_CXX_COMPILER -CMAKE_CXX_COMPILER-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_FLAGS -CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG -CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL -CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE -CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO -CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_COMPILER -CMAKE_C_COMPILER-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_FLAGS -CMAKE_C_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG -CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL -CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE -CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO -CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_DLLTOOL -CMAKE_DLLTOOL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS -CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG -CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL -CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE -CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO -CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS -CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1 -//Name of external makefile project generator. -CMAKE_EXTRA_GENERATOR:INTERNAL=CodeBlocks -//CXX compiler system defined macros -CMAKE_EXTRA_GENERATOR_CXX_SYSTEM_DEFINED_MACROS:INTERNAL=__llvm__;1;__clang__;1;__clang_major__;12;__clang_minor__;0;__clang_patchlevel__;0;__clang_version__;"12.0.0 (clang-1200.0.31.1)";__GNUC__;4;__GNUC_MINOR__;2;__GNUC_PATCHLEVEL__;1;__GXX_ABI_VERSION;1002;__ATOMIC_RELAXED;0;__ATOMIC_CONSUME;1;__ATOMIC_ACQUIRE;2;__ATOMIC_RELEASE;3;__ATOMIC_ACQ_REL;4;__ATOMIC_SEQ_CST;5;__OPENCL_MEMORY_SCOPE_WORK_ITEM;0;__OPENCL_MEMORY_SCOPE_WORK_GROUP;1;__OPENCL_MEMORY_SCOPE_DEVICE;2;__OPENCL_MEMORY_SCOPE_ALL_SVM_DEVICES;3;__OPENCL_MEMORY_SCOPE_SUB_GROUP;4;__PRAGMA_REDEFINE_EXTNAME;1;__VERSION__;"Apple LLVM 12.0.0 (clang-1200.0.31.1)";__OBJC_BOOL_IS_BOOL;0;__CONSTANT_CFSTRINGS__;1;__block;__attribute__((__blocks__(byref)));__BLOCKS__;1;__ORDER_LITTLE_ENDIAN__;1234;__ORDER_BIG_ENDIAN__;4321;__ORDER_PDP_ENDIAN__;3412;__BYTE_ORDER__;__ORDER_LITTLE_ENDIAN__;__LITTLE_ENDIAN__;1;_LP64;1;__LP64__;1;__CHAR_BIT__;8;__SCHAR_MAX__;127;__SHRT_MAX__;32767;__INT_MAX__;2147483647;__LONG_MAX__;9223372036854775807L;__LONG_LONG_MAX__;9223372036854775807LL;__WCHAR_MAX__;2147483647;__WINT_MAX__;2147483647;__INTMAX_MAX__;9223372036854775807L;__SIZE_MAX__;18446744073709551615UL;__UINTMAX_MAX__;18446744073709551615UL;__PTRDIFF_MAX__;9223372036854775807L;__INTPTR_MAX__;9223372036854775807L;__UINTPTR_MAX__;18446744073709551615UL;__SIZEOF_DOUBLE__;8;__SIZEOF_FLOAT__;4;__SIZEOF_INT__;4;__SIZEOF_LONG__;8;__SIZEOF_LONG_DOUBLE__;16;__SIZEOF_LONG_LONG__;8;__SIZEOF_POINTER__;8;__SIZEOF_SHORT__;2;__SIZEOF_PTRDIFF_T__;8;__SIZEOF_SIZE_T__;8;__SIZEOF_WCHAR_T__;4;__SIZEOF_WINT_T__;4;__SIZEOF_INT128__;16;__INTMAX_TYPE__;long int;__INTMAX_FMTd__;"ld";__INTMAX_FMTi__;"li";__INTMAX_C_SUFFIX__;L;__UINTMAX_TYPE__;long unsigned int;__UINTMAX_FMTo__;"lo";__UINTMAX_FMTu__;"lu";__UINTMAX_FMTx__;"lx";__UINTMAX_FMTX__;"lX";__UINTMAX_C_SUFFIX__;UL;__INTMAX_WIDTH__;64;__PTRDIFF_TYPE__;long int;__PTRDIFF_FMTd__;"ld";__PTRDIFF_FMTi__;"li";__PTRDIFF_WIDTH__;64;__INTPTR_TYPE__;long int;__INTPTR_FMTd__;"ld";__INTPTR_FMTi__;"li";__INTPTR_WIDTH__;64;__SIZE_TYPE__;long unsigned int;__SIZE_FMTo__;"lo";__SIZE_FMTu__;"lu";__SIZE_FMTx__;"lx";__SIZE_FMTX__;"lX";__SIZE_WIDTH__;64;__WCHAR_TYPE__;int;__WCHAR_WIDTH__;32;__WINT_TYPE__;int;__WINT_WIDTH__;32;__SIG_ATOMIC_WIDTH__;32;__SIG_ATOMIC_MAX__;2147483647;__CHAR16_TYPE__;unsigned short;__CHAR32_TYPE__;unsigned int;__UINTMAX_WIDTH__;64;__UINTPTR_TYPE__;long unsigned int;__UINTPTR_FMTo__;"lo";__UINTPTR_FMTu__;"lu";__UINTPTR_FMTx__;"lx";__UINTPTR_FMTX__;"lX";__UINTPTR_WIDTH__;64;__FLT16_DENORM_MIN__;5.9604644775390625e-8F16;__FLT16_HAS_DENORM__;1;__FLT16_DIG__;3;__FLT16_DECIMAL_DIG__;5;__FLT16_EPSILON__;9.765625e-4F16;__FLT16_HAS_INFINITY__;1;__FLT16_HAS_QUIET_NAN__;1;__FLT16_MANT_DIG__;11;__FLT16_MAX_10_EXP__;4;__FLT16_MAX_EXP__;16;__FLT16_MAX__;6.5504e+4F16;__FLT16_MIN_10_EXP__;(-4);__FLT16_MIN_EXP__;(-13);__FLT16_MIN__;6.103515625e-5F16;__FLT_DENORM_MIN__;1.40129846e-45F;__FLT_HAS_DENORM__;1;__FLT_DIG__;6;__FLT_DECIMAL_DIG__;9;__FLT_EPSILON__;1.19209290e-7F;__FLT_HAS_INFINITY__;1;__FLT_HAS_QUIET_NAN__;1;__FLT_MANT_DIG__;24;__FLT_MAX_10_EXP__;38;__FLT_MAX_EXP__;128;__FLT_MAX__;3.40282347e+38F;__FLT_MIN_10_EXP__;(-37);__FLT_MIN_EXP__;(-125);__FLT_MIN__;1.17549435e-38F;__DBL_DENORM_MIN__;4.9406564584124654e-324;__DBL_HAS_DENORM__;1;__DBL_DIG__;15;__DBL_DECIMAL_DIG__;17;__DBL_EPSILON__;2.2204460492503131e-16;__DBL_HAS_INFINITY__;1;__DBL_HAS_QUIET_NAN__;1;__DBL_MANT_DIG__;53;__DBL_MAX_10_EXP__;308;__DBL_MAX_EXP__;1024;__DBL_MAX__;1.7976931348623157e+308;__DBL_MIN_10_EXP__;(-307);__DBL_MIN_EXP__;(-1021);__DBL_MIN__;2.2250738585072014e-308;__LDBL_DENORM_MIN__;3.64519953188247460253e-4951L;__LDBL_HAS_DENORM__;1;__LDBL_DIG__;18;__LDBL_DECIMAL_DIG__;21;__LDBL_EPSILON__;1.08420217248550443401e-19L;__LDBL_HAS_INFINITY__;1;__LDBL_HAS_QUIET_NAN__;1;__LDBL_MANT_DIG__;64;__LDBL_MAX_10_EXP__;4932;__LDBL_MAX_EXP__;16384;__LDBL_MAX__;1.18973149535723176502e+4932L;__LDBL_MIN_10_EXP__;(-4931);__LDBL_MIN_EXP__;(-16381);__LDBL_MIN__;3.36210314311209350626e-4932L;__POINTER_WIDTH__;64;__BIGGEST_ALIGNMENT__;16;__INT8_TYPE__;signed char;__INT8_FMTd__;"hhd";__INT8_FMTi__;"hhi";__INT8_C_SUFFIX__; ;__INT16_TYPE__;short;__INT16_FMTd__;"hd";__INT16_FMTi__;"hi";__INT16_C_SUFFIX__; ;__INT32_TYPE__;int;__INT32_FMTd__;"d";__INT32_FMTi__;"i";__INT32_C_SUFFIX__; ;__INT64_TYPE__;long long int;__INT64_FMTd__;"lld";__INT64_FMTi__;"lli";__INT64_C_SUFFIX__;LL;__UINT8_TYPE__;unsigned char;__UINT8_FMTo__;"hho";__UINT8_FMTu__;"hhu";__UINT8_FMTx__;"hhx";__UINT8_FMTX__;"hhX";__UINT8_C_SUFFIX__; ;__UINT8_MAX__;255;__INT8_MAX__;127;__UINT16_TYPE__;unsigned short;__UINT16_FMTo__;"ho";__UINT16_FMTu__;"hu";__UINT16_FMTx__;"hx";__UINT16_FMTX__;"hX";__UINT16_C_SUFFIX__; ;__UINT16_MAX__;65535;__INT16_MAX__;32767;__UINT32_TYPE__;unsigned int;__UINT32_FMTo__;"o";__UINT32_FMTu__;"u";__UINT32_FMTx__;"x";__UINT32_FMTX__;"X";__UINT32_C_SUFFIX__;U;__UINT32_MAX__;4294967295U;__INT32_MAX__;2147483647;__UINT64_TYPE__;long long unsigned int;__UINT64_FMTo__;"llo";__UINT64_FMTu__;"llu";__UINT64_FMTx__;"llx";__UINT64_FMTX__;"llX";__UINT64_C_SUFFIX__;ULL;__UINT64_MAX__;18446744073709551615ULL;__INT64_MAX__;9223372036854775807LL;__INT_LEAST8_TYPE__;signed char;__INT_LEAST8_MAX__;127;__INT_LEAST8_FMTd__;"hhd";__INT_LEAST8_FMTi__;"hhi";__UINT_LEAST8_TYPE__;unsigned char;__UINT_LEAST8_MAX__;255;__UINT_LEAST8_FMTo__;"hho";__UINT_LEAST8_FMTu__;"hhu";__UINT_LEAST8_FMTx__;"hhx";__UINT_LEAST8_FMTX__;"hhX";__INT_LEAST16_TYPE__;short;__INT_LEAST16_MAX__;32767;__INT_LEAST16_FMTd__;"hd";__INT_LEAST16_FMTi__;"hi";__UINT_LEAST16_TYPE__;unsigned short;__UINT_LEAST16_MAX__;65535;__UINT_LEAST16_FMTo__;"ho";__UINT_LEAST16_FMTu__;"hu";__UINT_LEAST16_FMTx__;"hx";__UINT_LEAST16_FMTX__;"hX";__INT_LEAST32_TYPE__;int;__INT_LEAST32_MAX__;2147483647;__INT_LEAST32_FMTd__;"d";__INT_LEAST32_FMTi__;"i";__UINT_LEAST32_TYPE__;unsigned int;__UINT_LEAST32_MAX__;4294967295U;__UINT_LEAST32_FMTo__;"o";__UINT_LEAST32_FMTu__;"u";__UINT_LEAST32_FMTx__;"x";__UINT_LEAST32_FMTX__;"X";__INT_LEAST64_TYPE__;long long int;__INT_LEAST64_MAX__;9223372036854775807LL;__INT_LEAST64_FMTd__;"lld";__INT_LEAST64_FMTi__;"lli";__UINT_LEAST64_TYPE__;long long unsigned int;__UINT_LEAST64_MAX__;18446744073709551615ULL;__UINT_LEAST64_FMTo__;"llo";__UINT_LEAST64_FMTu__;"llu";__UINT_LEAST64_FMTx__;"llx";__UINT_LEAST64_FMTX__;"llX";__INT_FAST8_TYPE__;signed char;__INT_FAST8_MAX__;127;__INT_FAST8_FMTd__;"hhd";__INT_FAST8_FMTi__;"hhi";__UINT_FAST8_TYPE__;unsigned char;__UINT_FAST8_MAX__;255;__UINT_FAST8_FMTo__;"hho";__UINT_FAST8_FMTu__;"hhu";__UINT_FAST8_FMTx__;"hhx";__UINT_FAST8_FMTX__;"hhX";__INT_FAST16_TYPE__;short;__INT_FAST16_MAX__;32767;__INT_FAST16_FMTd__;"hd";__INT_FAST16_FMTi__;"hi";__UINT_FAST16_TYPE__;unsigned short;__UINT_FAST16_MAX__;65535;__UINT_FAST16_FMTo__;"ho";__UINT_FAST16_FMTu__;"hu";__UINT_FAST16_FMTx__;"hx";__UINT_FAST16_FMTX__;"hX";__INT_FAST32_TYPE__;int;__INT_FAST32_MAX__;2147483647;__INT_FAST32_FMTd__;"d";__INT_FAST32_FMTi__;"i";__UINT_FAST32_TYPE__;unsigned int;__UINT_FAST32_MAX__;4294967295U;__UINT_FAST32_FMTo__;"o";__UINT_FAST32_FMTu__;"u";__UINT_FAST32_FMTx__;"x";__UINT_FAST32_FMTX__;"X";__INT_FAST64_TYPE__;long long int;__INT_FAST64_MAX__;9223372036854775807LL;__INT_FAST64_FMTd__;"lld";__INT_FAST64_FMTi__;"lli";__UINT_FAST64_TYPE__;long long unsigned int;__UINT_FAST64_MAX__;18446744073709551615ULL;__UINT_FAST64_FMTo__;"llo";__UINT_FAST64_FMTu__;"llu";__UINT_FAST64_FMTx__;"llx";__UINT_FAST64_FMTX__;"llX";__USER_LABEL_PREFIX__;_;__FINITE_MATH_ONLY__;0;__GNUC_STDC_INLINE__;1;__GCC_ATOMIC_TEST_AND_SET_TRUEVAL;1;__CLANG_ATOMIC_BOOL_LOCK_FREE;2;__CLANG_ATOMIC_CHAR_LOCK_FREE;2;__CLANG_ATOMIC_CHAR16_T_LOCK_FREE;2;__CLANG_ATOMIC_CHAR32_T_LOCK_FREE;2;__CLANG_ATOMIC_WCHAR_T_LOCK_FREE;2;__CLANG_ATOMIC_SHORT_LOCK_FREE;2;__CLANG_ATOMIC_INT_LOCK_FREE;2;__CLANG_ATOMIC_LONG_LOCK_FREE;2;__CLANG_ATOMIC_LLONG_LOCK_FREE;2;__CLANG_ATOMIC_POINTER_LOCK_FREE;2;__GCC_ATOMIC_BOOL_LOCK_FREE;2;__GCC_ATOMIC_CHAR_LOCK_FREE;2;__GCC_ATOMIC_CHAR16_T_LOCK_FREE;2;__GCC_ATOMIC_CHAR32_T_LOCK_FREE;2;__GCC_ATOMIC_WCHAR_T_LOCK_FREE;2;__GCC_ATOMIC_SHORT_LOCK_FREE;2;__GCC_ATOMIC_INT_LOCK_FREE;2;__GCC_ATOMIC_LONG_LOCK_FREE;2;__GCC_ATOMIC_LLONG_LOCK_FREE;2;__GCC_ATOMIC_POINTER_LOCK_FREE;2;__NO_INLINE__;1;__PIC__;2;__pic__;2;__FLT_EVAL_METHOD__;0;__FLT_RADIX__;2;__DECIMAL_DIG__;__LDBL_DECIMAL_DIG__;__SSP__;1;__nonnull;_Nonnull;__null_unspecified;_Null_unspecified;__nullable;_Nullable;__GCC_ASM_FLAG_OUTPUTS__;1;__code_model_small_;1;__amd64__;1;__amd64;1;__x86_64;1;__x86_64__;1;__SEG_GS;1;__SEG_FS;1;__seg_gs;__attribute__((address_space(256)));__seg_fs;__attribute__((address_space(257)));__core2;1;__core2__;1;__tune_core2__;1;__REGISTER_PREFIX__; ;__NO_MATH_INLINES;1;__FXSR__;1;__SSE4_1__;1;__SSSE3__;1;__SSE3__;1;__SSE2__;1;__SSE2_MATH__;1;__SSE__;1;__SSE_MATH__;1;__MMX__;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_16;1;__APPLE_CC__;6000;__APPLE__;1;__STDC_NO_THREADS__;1;__apple_build_version__;12000031;__weak;__attribute__((objc_gc(weak)));__strong; ;__unsafe_unretained; ;__DYNAMIC__;1;__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__;120000;__MACH__;1;__STDC__;1;__STDC_HOSTED__;1;__STDC_VERSION__;201112L;__STDC_UTF_16__;1;__STDC_UTF_32__;1;__llvm__;1;__clang__;1;__clang_major__;12;__clang_minor__;0;__clang_patchlevel__;0;__clang_version__;"12.0.0 (clang-1200.0.31.1)";__GNUC__;4;__GNUC_MINOR__;2;__GNUC_PATCHLEVEL__;1;__GXX_ABI_VERSION;1002;__GNUG__;4;__GXX_WEAK__;1;__ATOMIC_RELAXED;0;__ATOMIC_CONSUME;1;__ATOMIC_ACQUIRE;2;__ATOMIC_RELEASE;3;__ATOMIC_ACQ_REL;4;__ATOMIC_SEQ_CST;5;__OPENCL_MEMORY_SCOPE_WORK_ITEM;0;__OPENCL_MEMORY_SCOPE_WORK_GROUP;1;__OPENCL_MEMORY_SCOPE_DEVICE;2;__OPENCL_MEMORY_SCOPE_ALL_SVM_DEVICES;3;__OPENCL_MEMORY_SCOPE_SUB_GROUP;4;__PRAGMA_REDEFINE_EXTNAME;1;__VERSION__;"Apple LLVM 12.0.0 (clang-1200.0.31.1)";__OBJC_BOOL_IS_BOOL;0;__cpp_rtti;199711L;__cpp_exceptions;199711L;__cpp_threadsafe_static_init;200806L;__cpp_impl_destroying_delete;201806L;__CONSTANT_CFSTRINGS__;1;__block;__attribute__((__blocks__(byref)));__BLOCKS__;1;__EXCEPTIONS;1;__GXX_RTTI;1;__DEPRECATED;1;__private_extern__;extern;__ORDER_LITTLE_ENDIAN__;1234;__ORDER_BIG_ENDIAN__;4321;__ORDER_PDP_ENDIAN__;3412;__BYTE_ORDER__;__ORDER_LITTLE_ENDIAN__;__LITTLE_ENDIAN__;1;_LP64;1;__LP64__;1;__CHAR_BIT__;8;__SCHAR_MAX__;127;__SHRT_MAX__;32767;__INT_MAX__;2147483647;__LONG_MAX__;9223372036854775807L;__LONG_LONG_MAX__;9223372036854775807LL;__WCHAR_MAX__;2147483647;__WINT_MAX__;2147483647;__INTMAX_MAX__;9223372036854775807L;__SIZE_MAX__;18446744073709551615UL;__UINTMAX_MAX__;18446744073709551615UL;__PTRDIFF_MAX__;9223372036854775807L;__INTPTR_MAX__;9223372036854775807L;__UINTPTR_MAX__;18446744073709551615UL;__SIZEOF_DOUBLE__;8;__SIZEOF_FLOAT__;4;__SIZEOF_INT__;4;__SIZEOF_LONG__;8;__SIZEOF_LONG_DOUBLE__;16;__SIZEOF_LONG_LONG__;8;__SIZEOF_POINTER__;8;__SIZEOF_SHORT__;2;__SIZEOF_PTRDIFF_T__;8;__SIZEOF_SIZE_T__;8;__SIZEOF_WCHAR_T__;4;__SIZEOF_WINT_T__;4;__SIZEOF_INT128__;16;__INTMAX_TYPE__;long int;__INTMAX_FMTd__;"ld";__INTMAX_FMTi__;"li";__INTMAX_C_SUFFIX__;L;__UINTMAX_TYPE__;long unsigned int;__UINTMAX_FMTo__;"lo";__UINTMAX_FMTu__;"lu";__UINTMAX_FMTx__;"lx";__UINTMAX_FMTX__;"lX";__UINTMAX_C_SUFFIX__;UL;__INTMAX_WIDTH__;64;__PTRDIFF_TYPE__;long int;__PTRDIFF_FMTd__;"ld";__PTRDIFF_FMTi__;"li";__PTRDIFF_WIDTH__;64;__INTPTR_TYPE__;long int;__INTPTR_FMTd__;"ld";__INTPTR_FMTi__;"li";__INTPTR_WIDTH__;64;__SIZE_TYPE__;long unsigned int;__SIZE_FMTo__;"lo";__SIZE_FMTu__;"lu";__SIZE_FMTx__;"lx";__SIZE_FMTX__;"lX";__SIZE_WIDTH__;64;__WCHAR_TYPE__;int;__WCHAR_WIDTH__;32;__WINT_TYPE__;int;__WINT_WIDTH__;32;__SIG_ATOMIC_WIDTH__;32;__SIG_ATOMIC_MAX__;2147483647;__CHAR16_TYPE__;unsigned short;__CHAR32_TYPE__;unsigned int;__UINTMAX_WIDTH__;64;__UINTPTR_TYPE__;long unsigned int;__UINTPTR_FMTo__;"lo";__UINTPTR_FMTu__;"lu";__UINTPTR_FMTx__;"lx";__UINTPTR_FMTX__;"lX";__UINTPTR_WIDTH__;64;__FLT16_DENORM_MIN__;5.9604644775390625e-8F16;__FLT16_HAS_DENORM__;1;__FLT16_DIG__;3;__FLT16_DECIMAL_DIG__;5;__FLT16_EPSILON__;9.765625e-4F16;__FLT16_HAS_INFINITY__;1;__FLT16_HAS_QUIET_NAN__;1;__FLT16_MANT_DIG__;11;__FLT16_MAX_10_EXP__;4;__FLT16_MAX_EXP__;16;__FLT16_MAX__;6.5504e+4F16;__FLT16_MIN_10_EXP__;(-4);__FLT16_MIN_EXP__;(-13);__FLT16_MIN__;6.103515625e-5F16;__FLT_DENORM_MIN__;1.40129846e-45F;__FLT_HAS_DENORM__;1;__FLT_DIG__;6;__FLT_DECIMAL_DIG__;9;__FLT_EPSILON__;1.19209290e-7F;__FLT_HAS_INFINITY__;1;__FLT_HAS_QUIET_NAN__;1;__FLT_MANT_DIG__;24;__FLT_MAX_10_EXP__;38;__FLT_MAX_EXP__;128;__FLT_MAX__;3.40282347e+38F;__FLT_MIN_10_EXP__;(-37);__FLT_MIN_EXP__;(-125);__FLT_MIN__;1.17549435e-38F;__DBL_DENORM_MIN__;4.9406564584124654e-324;__DBL_HAS_DENORM__;1;__DBL_DIG__;15;__DBL_DECIMAL_DIG__;17;__DBL_EPSILON__;2.2204460492503131e-16;__DBL_HAS_INFINITY__;1;__DBL_HAS_QUIET_NAN__;1;__DBL_MANT_DIG__;53;__DBL_MAX_10_EXP__;308;__DBL_MAX_EXP__;1024;__DBL_MAX__;1.7976931348623157e+308;__DBL_MIN_10_EXP__;(-307);__DBL_MIN_EXP__;(-1021);__DBL_MIN__;2.2250738585072014e-308;__LDBL_DENORM_MIN__;3.64519953188247460253e-4951L;__LDBL_HAS_DENORM__;1;__LDBL_DIG__;18;__LDBL_DECIMAL_DIG__;21;__LDBL_EPSILON__;1.08420217248550443401e-19L;__LDBL_HAS_INFINITY__;1;__LDBL_HAS_QUIET_NAN__;1;__LDBL_MANT_DIG__;64;__LDBL_MAX_10_EXP__;4932;__LDBL_MAX_EXP__;16384;__LDBL_MAX__;1.18973149535723176502e+4932L;__LDBL_MIN_10_EXP__;(-4931);__LDBL_MIN_EXP__;(-16381);__LDBL_MIN__;3.36210314311209350626e-4932L;__POINTER_WIDTH__;64;__BIGGEST_ALIGNMENT__;16;__INT8_TYPE__;signed char;__INT8_FMTd__;"hhd";__INT8_FMTi__;"hhi";__INT8_C_SUFFIX__; ;__INT16_TYPE__;short;__INT16_FMTd__;"hd";__INT16_FMTi__;"hi";__INT16_C_SUFFIX__; ;__INT32_TYPE__;int;__INT32_FMTd__;"d";__INT32_FMTi__;"i";__INT32_C_SUFFIX__; ;__INT64_TYPE__;long long int;__INT64_FMTd__;"lld";__INT64_FMTi__;"lli";__INT64_C_SUFFIX__;LL;__UINT8_TYPE__;unsigned char;__UINT8_FMTo__;"hho";__UINT8_FMTu__;"hhu";__UINT8_FMTx__;"hhx";__UINT8_FMTX__;"hhX";__UINT8_C_SUFFIX__; ;__UINT8_MAX__;255;__INT8_MAX__;127;__UINT16_TYPE__;unsigned short;__UINT16_FMTo__;"ho";__UINT16_FMTu__;"hu";__UINT16_FMTx__;"hx";__UINT16_FMTX__;"hX";__UINT16_C_SUFFIX__; ;__UINT16_MAX__;65535;__INT16_MAX__;32767;__UINT32_TYPE__;unsigned int;__UINT32_FMTo__;"o";__UINT32_FMTu__;"u";__UINT32_FMTx__;"x";__UINT32_FMTX__;"X";__UINT32_C_SUFFIX__;U;__UINT32_MAX__;4294967295U;__INT32_MAX__;2147483647;__UINT64_TYPE__;long long unsigned int;__UINT64_FMTo__;"llo";__UINT64_FMTu__;"llu";__UINT64_FMTx__;"llx";__UINT64_FMTX__;"llX";__UINT64_C_SUFFIX__;ULL;__UINT64_MAX__;18446744073709551615ULL;__INT64_MAX__;9223372036854775807LL;__INT_LEAST8_TYPE__;signed char;__INT_LEAST8_MAX__;127;__INT_LEAST8_FMTd__;"hhd";__INT_LEAST8_FMTi__;"hhi";__UINT_LEAST8_TYPE__;unsigned char;__UINT_LEAST8_MAX__;255;__UINT_LEAST8_FMTo__;"hho";__UINT_LEAST8_FMTu__;"hhu";__UINT_LEAST8_FMTx__;"hhx";__UINT_LEAST8_FMTX__;"hhX";__INT_LEAST16_TYPE__;short;__INT_LEAST16_MAX__;32767;__INT_LEAST16_FMTd__;"hd";__INT_LEAST16_FMTi__;"hi";__UINT_LEAST16_TYPE__;unsigned short;__UINT_LEAST16_MAX__;65535;__UINT_LEAST16_FMTo__;"ho";__UINT_LEAST16_FMTu__;"hu";__UINT_LEAST16_FMTx__;"hx";__UINT_LEAST16_FMTX__;"hX";__INT_LEAST32_TYPE__;int;__INT_LEAST32_MAX__;2147483647;__INT_LEAST32_FMTd__;"d";__INT_LEAST32_FMTi__;"i";__UINT_LEAST32_TYPE__;unsigned int;__UINT_LEAST32_MAX__;4294967295U;__UINT_LEAST32_FMTo__;"o";__UINT_LEAST32_FMTu__;"u";__UINT_LEAST32_FMTx__;"x";__UINT_LEAST32_FMTX__;"X";__INT_LEAST64_TYPE__;long long int;__INT_LEAST64_MAX__;9223372036854775807LL;__INT_LEAST64_FMTd__;"lld";__INT_LEAST64_FMTi__;"lli";__UINT_LEAST64_TYPE__;long long unsigned int;__UINT_LEAST64_MAX__;18446744073709551615ULL;__UINT_LEAST64_FMTo__;"llo";__UINT_LEAST64_FMTu__;"llu";__UINT_LEAST64_FMTx__;"llx";__UINT_LEAST64_FMTX__;"llX";__INT_FAST8_TYPE__;signed char;__INT_FAST8_MAX__;127;__INT_FAST8_FMTd__;"hhd";__INT_FAST8_FMTi__;"hhi";__UINT_FAST8_TYPE__;unsigned char;__UINT_FAST8_MAX__;255;__UINT_FAST8_FMTo__;"hho";__UINT_FAST8_FMTu__;"hhu";__UINT_FAST8_FMTx__;"hhx";__UINT_FAST8_FMTX__;"hhX";__INT_FAST16_TYPE__;short;__INT_FAST16_MAX__;32767;__INT_FAST16_FMTd__;"hd";__INT_FAST16_FMTi__;"hi";__UINT_FAST16_TYPE__;unsigned short;__UINT_FAST16_MAX__;65535;__UINT_FAST16_FMTo__;"ho";__UINT_FAST16_FMTu__;"hu";__UINT_FAST16_FMTx__;"hx";__UINT_FAST16_FMTX__;"hX";__INT_FAST32_TYPE__;int;__INT_FAST32_MAX__;2147483647;__INT_FAST32_FMTd__;"d";__INT_FAST32_FMTi__;"i";__UINT_FAST32_TYPE__;unsigned int;__UINT_FAST32_MAX__;4294967295U;__UINT_FAST32_FMTo__;"o";__UINT_FAST32_FMTu__;"u";__UINT_FAST32_FMTx__;"x";__UINT_FAST32_FMTX__;"X";__INT_FAST64_TYPE__;long long int;__INT_FAST64_MAX__;9223372036854775807LL;__INT_FAST64_FMTd__;"lld";__INT_FAST64_FMTi__;"lli";__UINT_FAST64_TYPE__;long long unsigned int;__UINT_FAST64_MAX__;18446744073709551615ULL;__UINT_FAST64_FMTo__;"llo";__UINT_FAST64_FMTu__;"llu";__UINT_FAST64_FMTx__;"llx";__UINT_FAST64_FMTX__;"llX";__USER_LABEL_PREFIX__;_;__FINITE_MATH_ONLY__;0;__GNUC_GNU_INLINE__;1;__GCC_ATOMIC_TEST_AND_SET_TRUEVAL;1;__CLANG_ATOMIC_BOOL_LOCK_FREE;2;__CLANG_ATOMIC_CHAR_LOCK_FREE;2;__CLANG_ATOMIC_CHAR16_T_LOCK_FREE;2;__CLANG_ATOMIC_CHAR32_T_LOCK_FREE;2;__CLANG_ATOMIC_WCHAR_T_LOCK_FREE;2;__CLANG_ATOMIC_SHORT_LOCK_FREE;2;__CLANG_ATOMIC_INT_LOCK_FREE;2;__CLANG_ATOMIC_LONG_LOCK_FREE;2;__CLANG_ATOMIC_LLONG_LOCK_FREE;2;__CLANG_ATOMIC_POINTER_LOCK_FREE;2;__GCC_ATOMIC_BOOL_LOCK_FREE;2;__GCC_ATOMIC_CHAR_LOCK_FREE;2;__GCC_ATOMIC_CHAR16_T_LOCK_FREE;2;__GCC_ATOMIC_CHAR32_T_LOCK_FREE;2;__GCC_ATOMIC_WCHAR_T_LOCK_FREE;2;__GCC_ATOMIC_SHORT_LOCK_FREE;2;__GCC_ATOMIC_INT_LOCK_FREE;2;__GCC_ATOMIC_LONG_LOCK_FREE;2;__GCC_ATOMIC_LLONG_LOCK_FREE;2;__GCC_ATOMIC_POINTER_LOCK_FREE;2;__NO_INLINE__;1;__PIC__;2;__pic__;2;__FLT_EVAL_METHOD__;0;__FLT_RADIX__;2;__DECIMAL_DIG__;__LDBL_DECIMAL_DIG__;__SSP__;1;__nonnull;_Nonnull;__null_unspecified;_Null_unspecified;__nullable;_Nullable;__GLIBCXX_TYPE_INT_N_0;__int128;__GLIBCXX_BITSIZE_INT_N_0;128;__GCC_ASM_FLAG_OUTPUTS__;1;__code_model_small_;1;__amd64__;1;__amd64;1;__x86_64;1;__x86_64__;1;__SEG_GS;1;__SEG_FS;1;__seg_gs;__attribute__((address_space(256)));__seg_fs;__attribute__((address_space(257)));__core2;1;__core2__;1;__tune_core2__;1;__REGISTER_PREFIX__; ;__NO_MATH_INLINES;1;__FXSR__;1;__SSE4_1__;1;__SSSE3__;1;__SSE3__;1;__SSE2__;1;__SSE2_MATH__;1;__SSE__;1;__SSE_MATH__;1;__MMX__;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_16;1;__APPLE_CC__;6000;__APPLE__;1;__STDC_NO_THREADS__;1;__apple_build_version__;12000031;__weak;__attribute__((objc_gc(weak)));__strong; ;__unsafe_unretained; ;__DYNAMIC__;1;__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__;120000;__MACH__;1;__STDC__;1;__STDC_HOSTED__;1;__cplusplus;199711L;__STDCPP_DEFAULT_NEW_ALIGNMENT__;16UL;__STDC_UTF_16__;1;__STDC_UTF_32__;1 -//CXX compiler system include directories -CMAKE_EXTRA_GENERATOR_CXX_SYSTEM_INCLUDE_DIRS:INTERNAL=/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1;/usr/local/include;/Library/Developer/CommandLineTools/usr/lib/clang/12.0.0/include;/Library/Developer/CommandLineTools/usr/include;/System/Library/Frameworks;/Library/Frameworks -//C compiler system defined macros -CMAKE_EXTRA_GENERATOR_C_SYSTEM_DEFINED_MACROS:INTERNAL=__llvm__;1;__clang__;1;__clang_major__;12;__clang_minor__;0;__clang_patchlevel__;0;__clang_version__;"12.0.0 (clang-1200.0.31.1)";__GNUC__;4;__GNUC_MINOR__;2;__GNUC_PATCHLEVEL__;1;__GXX_ABI_VERSION;1002;__ATOMIC_RELAXED;0;__ATOMIC_CONSUME;1;__ATOMIC_ACQUIRE;2;__ATOMIC_RELEASE;3;__ATOMIC_ACQ_REL;4;__ATOMIC_SEQ_CST;5;__OPENCL_MEMORY_SCOPE_WORK_ITEM;0;__OPENCL_MEMORY_SCOPE_WORK_GROUP;1;__OPENCL_MEMORY_SCOPE_DEVICE;2;__OPENCL_MEMORY_SCOPE_ALL_SVM_DEVICES;3;__OPENCL_MEMORY_SCOPE_SUB_GROUP;4;__PRAGMA_REDEFINE_EXTNAME;1;__VERSION__;"Apple LLVM 12.0.0 (clang-1200.0.31.1)";__OBJC_BOOL_IS_BOOL;0;__CONSTANT_CFSTRINGS__;1;__block;__attribute__((__blocks__(byref)));__BLOCKS__;1;__ORDER_LITTLE_ENDIAN__;1234;__ORDER_BIG_ENDIAN__;4321;__ORDER_PDP_ENDIAN__;3412;__BYTE_ORDER__;__ORDER_LITTLE_ENDIAN__;__LITTLE_ENDIAN__;1;_LP64;1;__LP64__;1;__CHAR_BIT__;8;__SCHAR_MAX__;127;__SHRT_MAX__;32767;__INT_MAX__;2147483647;__LONG_MAX__;9223372036854775807L;__LONG_LONG_MAX__;9223372036854775807LL;__WCHAR_MAX__;2147483647;__WINT_MAX__;2147483647;__INTMAX_MAX__;9223372036854775807L;__SIZE_MAX__;18446744073709551615UL;__UINTMAX_MAX__;18446744073709551615UL;__PTRDIFF_MAX__;9223372036854775807L;__INTPTR_MAX__;9223372036854775807L;__UINTPTR_MAX__;18446744073709551615UL;__SIZEOF_DOUBLE__;8;__SIZEOF_FLOAT__;4;__SIZEOF_INT__;4;__SIZEOF_LONG__;8;__SIZEOF_LONG_DOUBLE__;16;__SIZEOF_LONG_LONG__;8;__SIZEOF_POINTER__;8;__SIZEOF_SHORT__;2;__SIZEOF_PTRDIFF_T__;8;__SIZEOF_SIZE_T__;8;__SIZEOF_WCHAR_T__;4;__SIZEOF_WINT_T__;4;__SIZEOF_INT128__;16;__INTMAX_TYPE__;long int;__INTMAX_FMTd__;"ld";__INTMAX_FMTi__;"li";__INTMAX_C_SUFFIX__;L;__UINTMAX_TYPE__;long unsigned int;__UINTMAX_FMTo__;"lo";__UINTMAX_FMTu__;"lu";__UINTMAX_FMTx__;"lx";__UINTMAX_FMTX__;"lX";__UINTMAX_C_SUFFIX__;UL;__INTMAX_WIDTH__;64;__PTRDIFF_TYPE__;long int;__PTRDIFF_FMTd__;"ld";__PTRDIFF_FMTi__;"li";__PTRDIFF_WIDTH__;64;__INTPTR_TYPE__;long int;__INTPTR_FMTd__;"ld";__INTPTR_FMTi__;"li";__INTPTR_WIDTH__;64;__SIZE_TYPE__;long unsigned int;__SIZE_FMTo__;"lo";__SIZE_FMTu__;"lu";__SIZE_FMTx__;"lx";__SIZE_FMTX__;"lX";__SIZE_WIDTH__;64;__WCHAR_TYPE__;int;__WCHAR_WIDTH__;32;__WINT_TYPE__;int;__WINT_WIDTH__;32;__SIG_ATOMIC_WIDTH__;32;__SIG_ATOMIC_MAX__;2147483647;__CHAR16_TYPE__;unsigned short;__CHAR32_TYPE__;unsigned int;__UINTMAX_WIDTH__;64;__UINTPTR_TYPE__;long unsigned int;__UINTPTR_FMTo__;"lo";__UINTPTR_FMTu__;"lu";__UINTPTR_FMTx__;"lx";__UINTPTR_FMTX__;"lX";__UINTPTR_WIDTH__;64;__FLT16_DENORM_MIN__;5.9604644775390625e-8F16;__FLT16_HAS_DENORM__;1;__FLT16_DIG__;3;__FLT16_DECIMAL_DIG__;5;__FLT16_EPSILON__;9.765625e-4F16;__FLT16_HAS_INFINITY__;1;__FLT16_HAS_QUIET_NAN__;1;__FLT16_MANT_DIG__;11;__FLT16_MAX_10_EXP__;4;__FLT16_MAX_EXP__;16;__FLT16_MAX__;6.5504e+4F16;__FLT16_MIN_10_EXP__;(-4);__FLT16_MIN_EXP__;(-13);__FLT16_MIN__;6.103515625e-5F16;__FLT_DENORM_MIN__;1.40129846e-45F;__FLT_HAS_DENORM__;1;__FLT_DIG__;6;__FLT_DECIMAL_DIG__;9;__FLT_EPSILON__;1.19209290e-7F;__FLT_HAS_INFINITY__;1;__FLT_HAS_QUIET_NAN__;1;__FLT_MANT_DIG__;24;__FLT_MAX_10_EXP__;38;__FLT_MAX_EXP__;128;__FLT_MAX__;3.40282347e+38F;__FLT_MIN_10_EXP__;(-37);__FLT_MIN_EXP__;(-125);__FLT_MIN__;1.17549435e-38F;__DBL_DENORM_MIN__;4.9406564584124654e-324;__DBL_HAS_DENORM__;1;__DBL_DIG__;15;__DBL_DECIMAL_DIG__;17;__DBL_EPSILON__;2.2204460492503131e-16;__DBL_HAS_INFINITY__;1;__DBL_HAS_QUIET_NAN__;1;__DBL_MANT_DIG__;53;__DBL_MAX_10_EXP__;308;__DBL_MAX_EXP__;1024;__DBL_MAX__;1.7976931348623157e+308;__DBL_MIN_10_EXP__;(-307);__DBL_MIN_EXP__;(-1021);__DBL_MIN__;2.2250738585072014e-308;__LDBL_DENORM_MIN__;3.64519953188247460253e-4951L;__LDBL_HAS_DENORM__;1;__LDBL_DIG__;18;__LDBL_DECIMAL_DIG__;21;__LDBL_EPSILON__;1.08420217248550443401e-19L;__LDBL_HAS_INFINITY__;1;__LDBL_HAS_QUIET_NAN__;1;__LDBL_MANT_DIG__;64;__LDBL_MAX_10_EXP__;4932;__LDBL_MAX_EXP__;16384;__LDBL_MAX__;1.18973149535723176502e+4932L;__LDBL_MIN_10_EXP__;(-4931);__LDBL_MIN_EXP__;(-16381);__LDBL_MIN__;3.36210314311209350626e-4932L;__POINTER_WIDTH__;64;__BIGGEST_ALIGNMENT__;16;__INT8_TYPE__;signed char;__INT8_FMTd__;"hhd";__INT8_FMTi__;"hhi";__INT8_C_SUFFIX__; ;__INT16_TYPE__;short;__INT16_FMTd__;"hd";__INT16_FMTi__;"hi";__INT16_C_SUFFIX__; ;__INT32_TYPE__;int;__INT32_FMTd__;"d";__INT32_FMTi__;"i";__INT32_C_SUFFIX__; ;__INT64_TYPE__;long long int;__INT64_FMTd__;"lld";__INT64_FMTi__;"lli";__INT64_C_SUFFIX__;LL;__UINT8_TYPE__;unsigned char;__UINT8_FMTo__;"hho";__UINT8_FMTu__;"hhu";__UINT8_FMTx__;"hhx";__UINT8_FMTX__;"hhX";__UINT8_C_SUFFIX__; ;__UINT8_MAX__;255;__INT8_MAX__;127;__UINT16_TYPE__;unsigned short;__UINT16_FMTo__;"ho";__UINT16_FMTu__;"hu";__UINT16_FMTx__;"hx";__UINT16_FMTX__;"hX";__UINT16_C_SUFFIX__; ;__UINT16_MAX__;65535;__INT16_MAX__;32767;__UINT32_TYPE__;unsigned int;__UINT32_FMTo__;"o";__UINT32_FMTu__;"u";__UINT32_FMTx__;"x";__UINT32_FMTX__;"X";__UINT32_C_SUFFIX__;U;__UINT32_MAX__;4294967295U;__INT32_MAX__;2147483647;__UINT64_TYPE__;long long unsigned int;__UINT64_FMTo__;"llo";__UINT64_FMTu__;"llu";__UINT64_FMTx__;"llx";__UINT64_FMTX__;"llX";__UINT64_C_SUFFIX__;ULL;__UINT64_MAX__;18446744073709551615ULL;__INT64_MAX__;9223372036854775807LL;__INT_LEAST8_TYPE__;signed char;__INT_LEAST8_MAX__;127;__INT_LEAST8_FMTd__;"hhd";__INT_LEAST8_FMTi__;"hhi";__UINT_LEAST8_TYPE__;unsigned char;__UINT_LEAST8_MAX__;255;__UINT_LEAST8_FMTo__;"hho";__UINT_LEAST8_FMTu__;"hhu";__UINT_LEAST8_FMTx__;"hhx";__UINT_LEAST8_FMTX__;"hhX";__INT_LEAST16_TYPE__;short;__INT_LEAST16_MAX__;32767;__INT_LEAST16_FMTd__;"hd";__INT_LEAST16_FMTi__;"hi";__UINT_LEAST16_TYPE__;unsigned short;__UINT_LEAST16_MAX__;65535;__UINT_LEAST16_FMTo__;"ho";__UINT_LEAST16_FMTu__;"hu";__UINT_LEAST16_FMTx__;"hx";__UINT_LEAST16_FMTX__;"hX";__INT_LEAST32_TYPE__;int;__INT_LEAST32_MAX__;2147483647;__INT_LEAST32_FMTd__;"d";__INT_LEAST32_FMTi__;"i";__UINT_LEAST32_TYPE__;unsigned int;__UINT_LEAST32_MAX__;4294967295U;__UINT_LEAST32_FMTo__;"o";__UINT_LEAST32_FMTu__;"u";__UINT_LEAST32_FMTx__;"x";__UINT_LEAST32_FMTX__;"X";__INT_LEAST64_TYPE__;long long int;__INT_LEAST64_MAX__;9223372036854775807LL;__INT_LEAST64_FMTd__;"lld";__INT_LEAST64_FMTi__;"lli";__UINT_LEAST64_TYPE__;long long unsigned int;__UINT_LEAST64_MAX__;18446744073709551615ULL;__UINT_LEAST64_FMTo__;"llo";__UINT_LEAST64_FMTu__;"llu";__UINT_LEAST64_FMTx__;"llx";__UINT_LEAST64_FMTX__;"llX";__INT_FAST8_TYPE__;signed char;__INT_FAST8_MAX__;127;__INT_FAST8_FMTd__;"hhd";__INT_FAST8_FMTi__;"hhi";__UINT_FAST8_TYPE__;unsigned char;__UINT_FAST8_MAX__;255;__UINT_FAST8_FMTo__;"hho";__UINT_FAST8_FMTu__;"hhu";__UINT_FAST8_FMTx__;"hhx";__UINT_FAST8_FMTX__;"hhX";__INT_FAST16_TYPE__;short;__INT_FAST16_MAX__;32767;__INT_FAST16_FMTd__;"hd";__INT_FAST16_FMTi__;"hi";__UINT_FAST16_TYPE__;unsigned short;__UINT_FAST16_MAX__;65535;__UINT_FAST16_FMTo__;"ho";__UINT_FAST16_FMTu__;"hu";__UINT_FAST16_FMTx__;"hx";__UINT_FAST16_FMTX__;"hX";__INT_FAST32_TYPE__;int;__INT_FAST32_MAX__;2147483647;__INT_FAST32_FMTd__;"d";__INT_FAST32_FMTi__;"i";__UINT_FAST32_TYPE__;unsigned int;__UINT_FAST32_MAX__;4294967295U;__UINT_FAST32_FMTo__;"o";__UINT_FAST32_FMTu__;"u";__UINT_FAST32_FMTx__;"x";__UINT_FAST32_FMTX__;"X";__INT_FAST64_TYPE__;long long int;__INT_FAST64_MAX__;9223372036854775807LL;__INT_FAST64_FMTd__;"lld";__INT_FAST64_FMTi__;"lli";__UINT_FAST64_TYPE__;long long unsigned int;__UINT_FAST64_MAX__;18446744073709551615ULL;__UINT_FAST64_FMTo__;"llo";__UINT_FAST64_FMTu__;"llu";__UINT_FAST64_FMTx__;"llx";__UINT_FAST64_FMTX__;"llX";__USER_LABEL_PREFIX__;_;__FINITE_MATH_ONLY__;0;__GNUC_STDC_INLINE__;1;__GCC_ATOMIC_TEST_AND_SET_TRUEVAL;1;__CLANG_ATOMIC_BOOL_LOCK_FREE;2;__CLANG_ATOMIC_CHAR_LOCK_FREE;2;__CLANG_ATOMIC_CHAR16_T_LOCK_FREE;2;__CLANG_ATOMIC_CHAR32_T_LOCK_FREE;2;__CLANG_ATOMIC_WCHAR_T_LOCK_FREE;2;__CLANG_ATOMIC_SHORT_LOCK_FREE;2;__CLANG_ATOMIC_INT_LOCK_FREE;2;__CLANG_ATOMIC_LONG_LOCK_FREE;2;__CLANG_ATOMIC_LLONG_LOCK_FREE;2;__CLANG_ATOMIC_POINTER_LOCK_FREE;2;__GCC_ATOMIC_BOOL_LOCK_FREE;2;__GCC_ATOMIC_CHAR_LOCK_FREE;2;__GCC_ATOMIC_CHAR16_T_LOCK_FREE;2;__GCC_ATOMIC_CHAR32_T_LOCK_FREE;2;__GCC_ATOMIC_WCHAR_T_LOCK_FREE;2;__GCC_ATOMIC_SHORT_LOCK_FREE;2;__GCC_ATOMIC_INT_LOCK_FREE;2;__GCC_ATOMIC_LONG_LOCK_FREE;2;__GCC_ATOMIC_LLONG_LOCK_FREE;2;__GCC_ATOMIC_POINTER_LOCK_FREE;2;__NO_INLINE__;1;__PIC__;2;__pic__;2;__FLT_EVAL_METHOD__;0;__FLT_RADIX__;2;__DECIMAL_DIG__;__LDBL_DECIMAL_DIG__;__SSP__;1;__nonnull;_Nonnull;__null_unspecified;_Null_unspecified;__nullable;_Nullable;__GCC_ASM_FLAG_OUTPUTS__;1;__code_model_small_;1;__amd64__;1;__amd64;1;__x86_64;1;__x86_64__;1;__SEG_GS;1;__SEG_FS;1;__seg_gs;__attribute__((address_space(256)));__seg_fs;__attribute__((address_space(257)));__core2;1;__core2__;1;__tune_core2__;1;__REGISTER_PREFIX__; ;__NO_MATH_INLINES;1;__FXSR__;1;__SSE4_1__;1;__SSSE3__;1;__SSE3__;1;__SSE2__;1;__SSE2_MATH__;1;__SSE__;1;__SSE_MATH__;1;__MMX__;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_16;1;__APPLE_CC__;6000;__APPLE__;1;__STDC_NO_THREADS__;1;__apple_build_version__;12000031;__weak;__attribute__((objc_gc(weak)));__strong; ;__unsafe_unretained; ;__DYNAMIC__;1;__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__;120000;__MACH__;1;__STDC__;1;__STDC_HOSTED__;1;__STDC_VERSION__;201112L;__STDC_UTF_16__;1;__STDC_UTF_32__;1 -//C compiler system include directories -CMAKE_EXTRA_GENERATOR_C_SYSTEM_INCLUDE_DIRS:INTERNAL=/usr/local/include;/Library/Developer/CommandLineTools/usr/lib/clang/12.0.0/include;/Library/Developer/CommandLineTools/usr/include;/System/Library/Frameworks;/Library/Frameworks -//Name of generator. -CMAKE_GENERATOR:INTERNAL=Unix Makefiles -//Generator instance identifier. -CMAKE_GENERATOR_INSTANCE:INTERNAL= -//Name of generator platform. -CMAKE_GENERATOR_PLATFORM:INTERNAL= -//Name of generator toolset. -CMAKE_GENERATOR_TOOLSET:INTERNAL= -//Test CMAKE_HAVE_LIBC_PTHREAD -CMAKE_HAVE_LIBC_PTHREAD:INTERNAL=1 -//Have include pthread.h -CMAKE_HAVE_PTHREAD_H:INTERNAL=1 -//Source directory with the top level CMakeLists.txt file for this -// project -CMAKE_HOME_DIRECTORY:INTERNAL=/Users/konstantinviesure/workspace/compLIB/server -//ADVANCED property for variable: CMAKE_INSTALL_NAME_TOOL -CMAKE_INSTALL_NAME_TOOL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_LINKER -CMAKE_LINKER-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MAKE_PROGRAM -CMAKE_MAKE_PROGRAM-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS -CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG -CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL -CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE -CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO -CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_NM -CMAKE_NM-ADVANCED:INTERNAL=1 -//number of local generators -CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=1 -//ADVANCED property for variable: CMAKE_OBJCOPY -CMAKE_OBJCOPY-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_OBJDUMP -CMAKE_OBJDUMP-ADVANCED:INTERNAL=1 -//Platform information initialized -CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_RANLIB -CMAKE_RANLIB-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_READELF -CMAKE_READELF-ADVANCED:INTERNAL=1 -//Path to CMake installation. -CMAKE_ROOT:INTERNAL=/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17 -//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS -CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG -CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL -CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE -CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO -CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH -CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SKIP_RPATH -CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS -CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG -CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL -CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE -CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO -CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STRIP -CMAKE_STRIP-ADVANCED:INTERNAL=1 -//uname command -CMAKE_UNAME:INTERNAL=/usr/bin/uname -//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE -CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1 -//Details about finding Protobuf -FIND_PACKAGE_MESSAGE_DETAILS_Protobuf:INTERNAL=[/usr/local/lib/libprotobuf.dylib][/usr/local/include][v3.19.4()] -//ADVANCED property for variable: ProcessorCount_cmd_sysctl -ProcessorCount_cmd_sysctl-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: Protobuf_INCLUDE_DIR -Protobuf_INCLUDE_DIR-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: Protobuf_LIBRARY_DEBUG -Protobuf_LIBRARY_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: Protobuf_LIBRARY_RELEASE -Protobuf_LIBRARY_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: Protobuf_LITE_LIBRARY_DEBUG -Protobuf_LITE_LIBRARY_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: Protobuf_LITE_LIBRARY_RELEASE -Protobuf_LITE_LIBRARY_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: Protobuf_PROTOC_EXECUTABLE -Protobuf_PROTOC_EXECUTABLE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: Protobuf_PROTOC_LIBRARY_DEBUG -Protobuf_PROTOC_LIBRARY_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: Protobuf_PROTOC_LIBRARY_RELEASE -Protobuf_PROTOC_LIBRARY_RELEASE-ADVANCED:INTERNAL=1 - diff --git a/server/cmake-build-debug/CMakeFiles/3.17.3/CMakeCCompiler.cmake b/server/cmake-build-debug/CMakeFiles/3.17.3/CMakeCCompiler.cmake deleted file mode 100644 index 2e52f83..0000000 --- a/server/cmake-build-debug/CMakeFiles/3.17.3/CMakeCCompiler.cmake +++ /dev/null @@ -1,76 +0,0 @@ -set(CMAKE_C_COMPILER "/Library/Developer/CommandLineTools/usr/bin/cc") -set(CMAKE_C_COMPILER_ARG1 "") -set(CMAKE_C_COMPILER_ID "AppleClang") -set(CMAKE_C_COMPILER_VERSION "12.0.0.12000031") -set(CMAKE_C_COMPILER_VERSION_INTERNAL "") -set(CMAKE_C_COMPILER_WRAPPER "") -set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "11") -set(CMAKE_C_COMPILE_FEATURES "c_std_90;c_function_prototypes;c_std_99;c_restrict;c_variadic_macros;c_std_11;c_static_assert") -set(CMAKE_C90_COMPILE_FEATURES "c_std_90;c_function_prototypes") -set(CMAKE_C99_COMPILE_FEATURES "c_std_99;c_restrict;c_variadic_macros") -set(CMAKE_C11_COMPILE_FEATURES "c_std_11;c_static_assert") - -set(CMAKE_C_PLATFORM_ID "Darwin") -set(CMAKE_C_SIMULATE_ID "") -set(CMAKE_C_COMPILER_FRONTEND_VARIANT "") -set(CMAKE_C_SIMULATE_VERSION "") - - - -set(CMAKE_AR "/Library/Developer/CommandLineTools/usr/bin/ar") -set(CMAKE_C_COMPILER_AR "") -set(CMAKE_RANLIB "/Library/Developer/CommandLineTools/usr/bin/ranlib") -set(CMAKE_C_COMPILER_RANLIB "") -set(CMAKE_LINKER "/Library/Developer/CommandLineTools/usr/bin/ld") -set(CMAKE_MT "") -set(CMAKE_COMPILER_IS_GNUCC ) -set(CMAKE_C_COMPILER_LOADED 1) -set(CMAKE_C_COMPILER_WORKS TRUE) -set(CMAKE_C_ABI_COMPILED TRUE) -set(CMAKE_COMPILER_IS_MINGW ) -set(CMAKE_COMPILER_IS_CYGWIN ) -if(CMAKE_COMPILER_IS_CYGWIN) - set(CYGWIN 1) - set(UNIX 1) -endif() - -set(CMAKE_C_COMPILER_ENV_VAR "CC") - -if(CMAKE_COMPILER_IS_MINGW) - set(MINGW 1) -endif() -set(CMAKE_C_COMPILER_ID_RUN 1) -set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m) -set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC) -set(CMAKE_C_LINKER_PREFERENCE 10) - -# Save compiler ABI information. -set(CMAKE_C_SIZEOF_DATA_PTR "8") -set(CMAKE_C_COMPILER_ABI "") -set(CMAKE_C_LIBRARY_ARCHITECTURE "") - -if(CMAKE_C_SIZEOF_DATA_PTR) - set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}") -endif() - -if(CMAKE_C_COMPILER_ABI) - set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}") -endif() - -if(CMAKE_C_LIBRARY_ARCHITECTURE) - set(CMAKE_LIBRARY_ARCHITECTURE "") -endif() - -set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "") -if(CMAKE_C_CL_SHOWINCLUDES_PREFIX) - set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}") -endif() - - - - - -set(CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES "/Library/Developer/CommandLineTools/usr/lib/clang/12.0.0/include;/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/include;/Library/Developer/CommandLineTools/usr/include") -set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "") -set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/lib") -set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/System/Library/Frameworks") diff --git a/server/cmake-build-debug/CMakeFiles/3.17.3/CMakeCXXCompiler.cmake b/server/cmake-build-debug/CMakeFiles/3.17.3/CMakeCXXCompiler.cmake deleted file mode 100644 index 110e06e..0000000 --- a/server/cmake-build-debug/CMakeFiles/3.17.3/CMakeCXXCompiler.cmake +++ /dev/null @@ -1,88 +0,0 @@ -set(CMAKE_CXX_COMPILER "/Library/Developer/CommandLineTools/usr/bin/c++") -set(CMAKE_CXX_COMPILER_ARG1 "") -set(CMAKE_CXX_COMPILER_ID "AppleClang") -set(CMAKE_CXX_COMPILER_VERSION "12.0.0.12000031") -set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "") -set(CMAKE_CXX_COMPILER_WRAPPER "") -set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "98") -set(CMAKE_CXX_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters;cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates;cxx_std_17;cxx_std_20") -set(CMAKE_CXX98_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters") -set(CMAKE_CXX11_COMPILE_FEATURES "cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates") -set(CMAKE_CXX14_COMPILE_FEATURES "cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates") -set(CMAKE_CXX17_COMPILE_FEATURES "cxx_std_17") -set(CMAKE_CXX20_COMPILE_FEATURES "cxx_std_20") - -set(CMAKE_CXX_PLATFORM_ID "Darwin") -set(CMAKE_CXX_SIMULATE_ID "") -set(CMAKE_CXX_COMPILER_FRONTEND_VARIANT "") -set(CMAKE_CXX_SIMULATE_VERSION "") - - - -set(CMAKE_AR "/Library/Developer/CommandLineTools/usr/bin/ar") -set(CMAKE_CXX_COMPILER_AR "") -set(CMAKE_RANLIB "/Library/Developer/CommandLineTools/usr/bin/ranlib") -set(CMAKE_CXX_COMPILER_RANLIB "") -set(CMAKE_LINKER "/Library/Developer/CommandLineTools/usr/bin/ld") -set(CMAKE_MT "") -set(CMAKE_COMPILER_IS_GNUCXX ) -set(CMAKE_CXX_COMPILER_LOADED 1) -set(CMAKE_CXX_COMPILER_WORKS TRUE) -set(CMAKE_CXX_ABI_COMPILED TRUE) -set(CMAKE_COMPILER_IS_MINGW ) -set(CMAKE_COMPILER_IS_CYGWIN ) -if(CMAKE_COMPILER_IS_CYGWIN) - set(CYGWIN 1) - set(UNIX 1) -endif() - -set(CMAKE_CXX_COMPILER_ENV_VAR "CXX") - -if(CMAKE_COMPILER_IS_MINGW) - set(MINGW 1) -endif() -set(CMAKE_CXX_COMPILER_ID_RUN 1) -set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;m;mm;CPP) -set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC) - -foreach (lang C OBJC OBJCXX) - if (CMAKE_${lang}_COMPILER_ID_RUN) - foreach(extension IN LISTS CMAKE_${lang}_SOURCE_FILE_EXTENSIONS) - list(REMOVE_ITEM CMAKE_CXX_SOURCE_FILE_EXTENSIONS ${extension}) - endforeach() - endif() -endforeach() - -set(CMAKE_CXX_LINKER_PREFERENCE 30) -set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1) - -# Save compiler ABI information. -set(CMAKE_CXX_SIZEOF_DATA_PTR "8") -set(CMAKE_CXX_COMPILER_ABI "") -set(CMAKE_CXX_LIBRARY_ARCHITECTURE "") - -if(CMAKE_CXX_SIZEOF_DATA_PTR) - set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}") -endif() - -if(CMAKE_CXX_COMPILER_ABI) - set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}") -endif() - -if(CMAKE_CXX_LIBRARY_ARCHITECTURE) - set(CMAKE_LIBRARY_ARCHITECTURE "") -endif() - -set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "") -if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX) - set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}") -endif() - - - - - -set(CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES "/Library/Developer/CommandLineTools/usr/include/c++/v1;/Library/Developer/CommandLineTools/usr/lib/clang/12.0.0/include;/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/include;/Library/Developer/CommandLineTools/usr/include") -set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "c++") -set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/lib") -set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/System/Library/Frameworks") diff --git a/server/cmake-build-debug/CMakeFiles/3.17.3/CMakeDetermineCompilerABI_C.bin b/server/cmake-build-debug/CMakeFiles/3.17.3/CMakeDetermineCompilerABI_C.bin deleted file mode 100755 index 3f11f96e93dae73e933aa88fd1acbfa68f04d539..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16592 zcmeI3%WD%+6vl5FMWNLed}9~Eg{X_9n1VqBqd1zNv_TsvO1U=4lm?na^1wz=yKxaj zDB{AM{WDyN;-a|HKf#T=6kJvj@%v^bWX4C=F1|xf?)mQH%(=gr?fLk9>*pS0VsT^4 z2z)<01M$Qp5E*j}o`YLkxOC0A?cAK@Y}8^=`B%j}8Emw6&Y7Q!Zt>1%qjM(EyD?2? zeKc#^?rPhQeI3nr_aZKXg>1chggM4I4qbB!%*^vK@{LFRdN`AmD>)&(0X)t~Y5|M$&HP9!FS(^&t z9fz#{zFE^zcmbOCUB`%@8HE?%VdJ}@ho2W--znzzmVl4JQ=L{bwNfpmD&3U|H0?N? zbxcmrzkPWi^ZeD3Z|M)+t#@ZJmw@}vWL2YH?0+YVBWEx(0Uy{Y+@E>)J%o+V&A_?F zJEIbOZn0r4sOMI<)pl#i%SqH#EqR;FNes-N%Nny6Y zKmYKmYKmYKmYKmYKmY;Qu60%=Nx(IzL!k@8Nc?*ZI2X^r>=XXFK<7-z38E zHwR2o^f$J=67DR#>3Q@9Q4tn4;$-#ja*N{F*5Wlfe!jVYw^12BUMi OR=ZQOCG^~*X!8r?hM0!{ diff --git a/server/cmake-build-debug/CMakeFiles/3.17.3/CMakeDetermineCompilerABI_CXX.bin b/server/cmake-build-debug/CMakeFiles/3.17.3/CMakeDetermineCompilerABI_CXX.bin deleted file mode 100755 index 32d15dddb8ea8946246c50b1313252c811dd546e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16576 zcmeI3%WD%+6vpo)6_v!MizBp-9>O&M2hE|2buAOD_7rv!@b|V=bn4+Z)STweEYJqTPY*1 zl!}R`#Oop+skF?LIwW2c*Lv~tb#ukMv4GX68BzILg*hASZZBux4NT*KiBut&$r({1Rcp2P9}4$ zd#!c5RnvBBt?lY)eXsp|UspPRF!b&-hWb#osyLa@xV^V`;iC#L)dUH z-itlFLybL_6vn6)si!(UoteoEGZ?)HS?Vi)Q zoy)J{IQpJ(78V}S!;Bv1b27r8`~A+Cqc=J!Cnwy~B9O+=(qA9b&APVwR<-9?x^9(g zR!1FemhG0B@|wFpK6JyC3MQvTkIP=rACIt<;dNZ2wgayAY6)tU5n-;SrBnXbJGFZ! d+P`(z=~Z+^I_aeptykt|&ZDDVhfuhAegJFjn4>24 & 0x00FF) -# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) -# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) - -#elif defined(__BORLANDC__) -# define COMPILER_ID "Borland" - /* __BORLANDC__ = 0xVRR */ -# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) -# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) - -#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 -# define COMPILER_ID "Watcom" - /* __WATCOMC__ = VVRR */ -# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) -# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) -# if (__WATCOMC__ % 10) > 0 -# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) -# endif - -#elif defined(__WATCOMC__) -# define COMPILER_ID "OpenWatcom" - /* __WATCOMC__ = VVRP + 1100 */ -# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) -# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) -# if (__WATCOMC__ % 10) > 0 -# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) -# endif - -#elif defined(__SUNPRO_C) -# define COMPILER_ID "SunPro" -# if __SUNPRO_C >= 0x5100 - /* __SUNPRO_C = 0xVRRP */ -# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>12) -# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xFF) -# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) -# else - /* __SUNPRO_CC = 0xVRP */ -# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>8) -# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xF) -# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) -# endif - -#elif defined(__HP_cc) -# define COMPILER_ID "HP" - /* __HP_cc = VVRRPP */ -# define COMPILER_VERSION_MAJOR DEC(__HP_cc/10000) -# define COMPILER_VERSION_MINOR DEC(__HP_cc/100 % 100) -# define COMPILER_VERSION_PATCH DEC(__HP_cc % 100) - -#elif defined(__DECC) -# define COMPILER_ID "Compaq" - /* __DECC_VER = VVRRTPPPP */ -# define COMPILER_VERSION_MAJOR DEC(__DECC_VER/10000000) -# define COMPILER_VERSION_MINOR DEC(__DECC_VER/100000 % 100) -# define COMPILER_VERSION_PATCH DEC(__DECC_VER % 10000) - -#elif defined(__IBMC__) && defined(__COMPILER_VER__) -# define COMPILER_ID "zOS" - /* __IBMC__ = VRP */ -# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) -# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) - -#elif defined(__ibmxl__) && defined(__clang__) -# define COMPILER_ID "XLClang" -# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) -# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) -# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) -# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) - - -#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ >= 800 -# define COMPILER_ID "XL" - /* __IBMC__ = VRP */ -# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) -# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) - -#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ < 800 -# define COMPILER_ID "VisualAge" - /* __IBMC__ = VRP */ -# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) -# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) - -#elif defined(__PGI) -# define COMPILER_ID "PGI" -# define COMPILER_VERSION_MAJOR DEC(__PGIC__) -# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) -# if defined(__PGIC_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) -# endif - -#elif defined(_CRAYC) -# define COMPILER_ID "Cray" -# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) -# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) - -#elif defined(__TI_COMPILER_VERSION__) -# define COMPILER_ID "TI" - /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ -# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) -# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) -# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) - -#elif defined(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version) -# define COMPILER_ID "Fujitsu" - -#elif defined(__ghs__) -# define COMPILER_ID "GHS" -/* __GHS_VERSION_NUMBER = VVVVRP */ -# ifdef __GHS_VERSION_NUMBER -# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100) -# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10) -# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10) -# endif - -#elif defined(__TINYC__) -# define COMPILER_ID "TinyCC" - -#elif defined(__BCC__) -# define COMPILER_ID "Bruce" - -#elif defined(__SCO_VERSION__) -# define COMPILER_ID "SCO" - -#elif defined(__ARMCC_VERSION) && !defined(__clang__) -# define COMPILER_ID "ARMCC" -#if __ARMCC_VERSION >= 1000000 - /* __ARMCC_VERSION = VRRPPPP */ - # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) - # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) - # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) -#else - /* __ARMCC_VERSION = VRPPPP */ - # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) - # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) - # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) -#endif - - -#elif defined(__clang__) && defined(__apple_build_version__) -# define COMPILER_ID "AppleClang" -# if defined(_MSC_VER) -# define SIMULATE_ID "MSVC" -# endif -# define COMPILER_VERSION_MAJOR DEC(__clang_major__) -# define COMPILER_VERSION_MINOR DEC(__clang_minor__) -# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) -# if defined(_MSC_VER) - /* _MSC_VER = VVRR */ -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) -# endif -# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) - -#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION) -# define COMPILER_ID "ARMClang" - # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000) - # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100) - # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION % 10000) -# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION) - -#elif defined(__clang__) -# define COMPILER_ID "Clang" -# if defined(_MSC_VER) -# define SIMULATE_ID "MSVC" -# endif -# define COMPILER_VERSION_MAJOR DEC(__clang_major__) -# define COMPILER_VERSION_MINOR DEC(__clang_minor__) -# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) -# if defined(_MSC_VER) - /* _MSC_VER = VVRR */ -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) -# endif - -#elif defined(__GNUC__) -# define COMPILER_ID "GNU" -# define COMPILER_VERSION_MAJOR DEC(__GNUC__) -# if defined(__GNUC_MINOR__) -# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) -# endif -# if defined(__GNUC_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) -# endif - -#elif defined(_MSC_VER) -# define COMPILER_ID "MSVC" - /* _MSC_VER = VVRR */ -# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) -# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) -# if defined(_MSC_FULL_VER) -# if _MSC_VER >= 1400 - /* _MSC_FULL_VER = VVRRPPPPP */ -# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) -# else - /* _MSC_FULL_VER = VVRRPPPP */ -# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) -# endif -# endif -# if defined(_MSC_BUILD) -# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) -# endif - -#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) -# define COMPILER_ID "ADSP" -#if defined(__VISUALDSPVERSION__) - /* __VISUALDSPVERSION__ = 0xVVRRPP00 */ -# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24) -# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF) -# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF) -#endif - -#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) -# define COMPILER_ID "IAR" -# if defined(__VER__) && defined(__ICCARM__) -# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) -# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) -# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) -# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) -# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__)) -# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100) -# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100)) -# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__) -# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) -# endif - -#elif defined(__SDCC_VERSION_MAJOR) || defined(SDCC) -# define COMPILER_ID "SDCC" -# if defined(__SDCC_VERSION_MAJOR) -# define COMPILER_VERSION_MAJOR DEC(__SDCC_VERSION_MAJOR) -# define COMPILER_VERSION_MINOR DEC(__SDCC_VERSION_MINOR) -# define COMPILER_VERSION_PATCH DEC(__SDCC_VERSION_PATCH) -# else - /* SDCC = VRP */ -# define COMPILER_VERSION_MAJOR DEC(SDCC/100) -# define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10) -# define COMPILER_VERSION_PATCH DEC(SDCC % 10) -# endif - - -/* These compilers are either not known or too old to define an - identification macro. Try to identify the platform and guess that - it is the native compiler. */ -#elif defined(__hpux) || defined(__hpua) -# define COMPILER_ID "HP" - -#else /* unknown compiler */ -# define COMPILER_ID "" -#endif - -/* Construct the string literal in pieces to prevent the source from - getting matched. Store it in a pointer rather than an array - because some compilers will just produce instructions to fill the - array rather than assigning a pointer to a static array. */ -char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; -#ifdef SIMULATE_ID -char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; -#endif - -#ifdef __QNXNTO__ -char const* qnxnto = "INFO" ":" "qnxnto[]"; -#endif - -#if defined(__CRAYXE) || defined(__CRAYXC) -char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; -#endif - -#define STRINGIFY_HELPER(X) #X -#define STRINGIFY(X) STRINGIFY_HELPER(X) - -/* Identify known platforms by name. */ -#if defined(__linux) || defined(__linux__) || defined(linux) -# define PLATFORM_ID "Linux" - -#elif defined(__CYGWIN__) -# define PLATFORM_ID "Cygwin" - -#elif defined(__MINGW32__) -# define PLATFORM_ID "MinGW" - -#elif defined(__APPLE__) -# define PLATFORM_ID "Darwin" - -#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) -# define PLATFORM_ID "Windows" - -#elif defined(__FreeBSD__) || defined(__FreeBSD) -# define PLATFORM_ID "FreeBSD" - -#elif defined(__NetBSD__) || defined(__NetBSD) -# define PLATFORM_ID "NetBSD" - -#elif defined(__OpenBSD__) || defined(__OPENBSD) -# define PLATFORM_ID "OpenBSD" - -#elif defined(__sun) || defined(sun) -# define PLATFORM_ID "SunOS" - -#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) -# define PLATFORM_ID "AIX" - -#elif defined(__hpux) || defined(__hpux__) -# define PLATFORM_ID "HP-UX" - -#elif defined(__HAIKU__) -# define PLATFORM_ID "Haiku" - -#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) -# define PLATFORM_ID "BeOS" - -#elif defined(__QNX__) || defined(__QNXNTO__) -# define PLATFORM_ID "QNX" - -#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) -# define PLATFORM_ID "Tru64" - -#elif defined(__riscos) || defined(__riscos__) -# define PLATFORM_ID "RISCos" - -#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) -# define PLATFORM_ID "SINIX" - -#elif defined(__UNIX_SV__) -# define PLATFORM_ID "UNIX_SV" - -#elif defined(__bsdos__) -# define PLATFORM_ID "BSDOS" - -#elif defined(_MPRAS) || defined(MPRAS) -# define PLATFORM_ID "MP-RAS" - -#elif defined(__osf) || defined(__osf__) -# define PLATFORM_ID "OSF1" - -#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) -# define PLATFORM_ID "SCO_SV" - -#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) -# define PLATFORM_ID "ULTRIX" - -#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) -# define PLATFORM_ID "Xenix" - -#elif defined(__WATCOMC__) -# if defined(__LINUX__) -# define PLATFORM_ID "Linux" - -# elif defined(__DOS__) -# define PLATFORM_ID "DOS" - -# elif defined(__OS2__) -# define PLATFORM_ID "OS2" - -# elif defined(__WINDOWS__) -# define PLATFORM_ID "Windows3x" - -# else /* unknown platform */ -# define PLATFORM_ID -# endif - -#elif defined(__INTEGRITY) -# if defined(INT_178B) -# define PLATFORM_ID "Integrity178" - -# else /* regular Integrity */ -# define PLATFORM_ID "Integrity" -# endif - -#else /* unknown platform */ -# define PLATFORM_ID - -#endif - -/* For windows compilers MSVC and Intel we can determine - the architecture of the compiler being used. This is because - the compilers do not have flags that can change the architecture, - but rather depend on which compiler is being used -*/ -#if defined(_WIN32) && defined(_MSC_VER) -# if defined(_M_IA64) -# define ARCHITECTURE_ID "IA64" - -# elif defined(_M_X64) || defined(_M_AMD64) -# define ARCHITECTURE_ID "x64" - -# elif defined(_M_IX86) -# define ARCHITECTURE_ID "X86" - -# elif defined(_M_ARM64) -# define ARCHITECTURE_ID "ARM64" - -# elif defined(_M_ARM) -# if _M_ARM == 4 -# define ARCHITECTURE_ID "ARMV4I" -# elif _M_ARM == 5 -# define ARCHITECTURE_ID "ARMV5I" -# else -# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) -# endif - -# elif defined(_M_MIPS) -# define ARCHITECTURE_ID "MIPS" - -# elif defined(_M_SH) -# define ARCHITECTURE_ID "SHx" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__WATCOMC__) -# if defined(_M_I86) -# define ARCHITECTURE_ID "I86" - -# elif defined(_M_IX86) -# define ARCHITECTURE_ID "X86" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) -# if defined(__ICCARM__) -# define ARCHITECTURE_ID "ARM" - -# elif defined(__ICCRX__) -# define ARCHITECTURE_ID "RX" - -# elif defined(__ICCRH850__) -# define ARCHITECTURE_ID "RH850" - -# elif defined(__ICCRL78__) -# define ARCHITECTURE_ID "RL78" - -# elif defined(__ICCRISCV__) -# define ARCHITECTURE_ID "RISCV" - -# elif defined(__ICCAVR__) -# define ARCHITECTURE_ID "AVR" - -# elif defined(__ICC430__) -# define ARCHITECTURE_ID "MSP430" - -# elif defined(__ICCV850__) -# define ARCHITECTURE_ID "V850" - -# elif defined(__ICC8051__) -# define ARCHITECTURE_ID "8051" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__ghs__) -# if defined(__PPC64__) -# define ARCHITECTURE_ID "PPC64" - -# elif defined(__ppc__) -# define ARCHITECTURE_ID "PPC" - -# elif defined(__ARM__) -# define ARCHITECTURE_ID "ARM" - -# elif defined(__x86_64__) -# define ARCHITECTURE_ID "x64" - -# elif defined(__i386__) -# define ARCHITECTURE_ID "X86" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif -#else -# define ARCHITECTURE_ID -#endif - -/* Convert integer to decimal digit literals. */ -#define DEC(n) \ - ('0' + (((n) / 10000000)%10)), \ - ('0' + (((n) / 1000000)%10)), \ - ('0' + (((n) / 100000)%10)), \ - ('0' + (((n) / 10000)%10)), \ - ('0' + (((n) / 1000)%10)), \ - ('0' + (((n) / 100)%10)), \ - ('0' + (((n) / 10)%10)), \ - ('0' + ((n) % 10)) - -/* Convert integer to hex digit literals. */ -#define HEX(n) \ - ('0' + ((n)>>28 & 0xF)), \ - ('0' + ((n)>>24 & 0xF)), \ - ('0' + ((n)>>20 & 0xF)), \ - ('0' + ((n)>>16 & 0xF)), \ - ('0' + ((n)>>12 & 0xF)), \ - ('0' + ((n)>>8 & 0xF)), \ - ('0' + ((n)>>4 & 0xF)), \ - ('0' + ((n) & 0xF)) - -/* Construct a string literal encoding the version number components. */ -#ifdef COMPILER_VERSION_MAJOR -char const info_version[] = { - 'I', 'N', 'F', 'O', ':', - 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', - COMPILER_VERSION_MAJOR, -# ifdef COMPILER_VERSION_MINOR - '.', COMPILER_VERSION_MINOR, -# ifdef COMPILER_VERSION_PATCH - '.', COMPILER_VERSION_PATCH, -# ifdef COMPILER_VERSION_TWEAK - '.', COMPILER_VERSION_TWEAK, -# endif -# endif -# endif - ']','\0'}; -#endif - -/* Construct a string literal encoding the internal version number. */ -#ifdef COMPILER_VERSION_INTERNAL -char const info_version_internal[] = { - 'I', 'N', 'F', 'O', ':', - 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', - 'i','n','t','e','r','n','a','l','[', - COMPILER_VERSION_INTERNAL,']','\0'}; -#endif - -/* Construct a string literal encoding the version number components. */ -#ifdef SIMULATE_VERSION_MAJOR -char const info_simulate_version[] = { - 'I', 'N', 'F', 'O', ':', - 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', - SIMULATE_VERSION_MAJOR, -# ifdef SIMULATE_VERSION_MINOR - '.', SIMULATE_VERSION_MINOR, -# ifdef SIMULATE_VERSION_PATCH - '.', SIMULATE_VERSION_PATCH, -# ifdef SIMULATE_VERSION_TWEAK - '.', SIMULATE_VERSION_TWEAK, -# endif -# endif -# endif - ']','\0'}; -#endif - -/* Construct the string literal in pieces to prevent the source from - getting matched. Store it in a pointer rather than an array - because some compilers will just produce instructions to fill the - array rather than assigning a pointer to a static array. */ -char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; -char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; - - - - -#if !defined(__STDC__) -# if (defined(_MSC_VER) && !defined(__clang__)) \ - || (defined(__ibmxl__) || defined(__IBMC__)) -# define C_DIALECT "90" -# else -# define C_DIALECT -# endif -#elif __STDC_VERSION__ >= 201000L -# define C_DIALECT "11" -#elif __STDC_VERSION__ >= 199901L -# define C_DIALECT "99" -#else -# define C_DIALECT "90" -#endif -const char* info_language_dialect_default = - "INFO" ":" "dialect_default[" C_DIALECT "]"; - -/*--------------------------------------------------------------------------*/ - -#ifdef ID_VOID_MAIN -void main() {} -#else -# if defined(__CLASSIC_C__) -int main(argc, argv) int argc; char *argv[]; -# else -int main(int argc, char* argv[]) -# endif -{ - int require = 0; - require += info_compiler[argc]; - require += info_platform[argc]; - require += info_arch[argc]; -#ifdef COMPILER_VERSION_MAJOR - require += info_version[argc]; -#endif -#ifdef COMPILER_VERSION_INTERNAL - require += info_version_internal[argc]; -#endif -#ifdef SIMULATE_ID - require += info_simulate[argc]; -#endif -#ifdef SIMULATE_VERSION_MAJOR - require += info_simulate_version[argc]; -#endif -#if defined(__CRAYXE) || defined(__CRAYXC) - require += info_cray[argc]; -#endif - require += info_language_dialect_default[argc]; - (void)argv; - return require; -} -#endif diff --git a/server/cmake-build-debug/CMakeFiles/3.17.3/CompilerIdCXX/CMakeCXXCompilerId.cpp b/server/cmake-build-debug/CMakeFiles/3.17.3/CompilerIdCXX/CMakeCXXCompilerId.cpp deleted file mode 100644 index 69cfdba..0000000 --- a/server/cmake-build-debug/CMakeFiles/3.17.3/CompilerIdCXX/CMakeCXXCompilerId.cpp +++ /dev/null @@ -1,660 +0,0 @@ -/* This source file must have a .cpp extension so that all C++ compilers - recognize the extension without flags. Borland does not know .cxx for - example. */ -#ifndef __cplusplus -# error "A C compiler has been selected for C++." -#endif - - -/* Version number components: V=Version, R=Revision, P=Patch - Version date components: YYYY=Year, MM=Month, DD=Day */ - -#if defined(__COMO__) -# define COMPILER_ID "Comeau" - /* __COMO_VERSION__ = VRR */ -# define COMPILER_VERSION_MAJOR DEC(__COMO_VERSION__ / 100) -# define COMPILER_VERSION_MINOR DEC(__COMO_VERSION__ % 100) - -#elif defined(__INTEL_COMPILER) || defined(__ICC) -# define COMPILER_ID "Intel" -# if defined(_MSC_VER) -# define SIMULATE_ID "MSVC" -# endif -# if defined(__GNUC__) -# define SIMULATE_ID "GNU" -# endif - /* __INTEL_COMPILER = VRP */ -# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) -# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) -# if defined(__INTEL_COMPILER_UPDATE) -# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) -# else -# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) -# endif -# if defined(__INTEL_COMPILER_BUILD_DATE) - /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ -# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) -# endif -# if defined(_MSC_VER) - /* _MSC_VER = VVRR */ -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) -# endif -# if defined(__GNUC__) -# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) -# elif defined(__GNUG__) -# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) -# endif -# if defined(__GNUC_MINOR__) -# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) -# endif -# if defined(__GNUC_PATCHLEVEL__) -# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) -# endif - -#elif defined(__PATHCC__) -# define COMPILER_ID "PathScale" -# define COMPILER_VERSION_MAJOR DEC(__PATHCC__) -# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) -# if defined(__PATHCC_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) -# endif - -#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) -# define COMPILER_ID "Embarcadero" -# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF) -# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) -# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) - -#elif defined(__BORLANDC__) -# define COMPILER_ID "Borland" - /* __BORLANDC__ = 0xVRR */ -# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) -# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) - -#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 -# define COMPILER_ID "Watcom" - /* __WATCOMC__ = VVRR */ -# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) -# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) -# if (__WATCOMC__ % 10) > 0 -# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) -# endif - -#elif defined(__WATCOMC__) -# define COMPILER_ID "OpenWatcom" - /* __WATCOMC__ = VVRP + 1100 */ -# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) -# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) -# if (__WATCOMC__ % 10) > 0 -# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) -# endif - -#elif defined(__SUNPRO_CC) -# define COMPILER_ID "SunPro" -# if __SUNPRO_CC >= 0x5100 - /* __SUNPRO_CC = 0xVRRP */ -# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12) -# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF) -# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) -# else - /* __SUNPRO_CC = 0xVRP */ -# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8) -# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF) -# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) -# endif - -#elif defined(__HP_aCC) -# define COMPILER_ID "HP" - /* __HP_aCC = VVRRPP */ -# define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000) -# define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100) -# define COMPILER_VERSION_PATCH DEC(__HP_aCC % 100) - -#elif defined(__DECCXX) -# define COMPILER_ID "Compaq" - /* __DECCXX_VER = VVRRTPPPP */ -# define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000) -# define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000 % 100) -# define COMPILER_VERSION_PATCH DEC(__DECCXX_VER % 10000) - -#elif defined(__IBMCPP__) && defined(__COMPILER_VER__) -# define COMPILER_ID "zOS" - /* __IBMCPP__ = VRP */ -# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) -# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) - -#elif defined(__ibmxl__) && defined(__clang__) -# define COMPILER_ID "XLClang" -# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) -# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) -# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) -# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) - - -#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800 -# define COMPILER_ID "XL" - /* __IBMCPP__ = VRP */ -# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) -# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) - -#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800 -# define COMPILER_ID "VisualAge" - /* __IBMCPP__ = VRP */ -# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) -# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) - -#elif defined(__PGI) -# define COMPILER_ID "PGI" -# define COMPILER_VERSION_MAJOR DEC(__PGIC__) -# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) -# if defined(__PGIC_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) -# endif - -#elif defined(_CRAYC) -# define COMPILER_ID "Cray" -# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) -# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) - -#elif defined(__TI_COMPILER_VERSION__) -# define COMPILER_ID "TI" - /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ -# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) -# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) -# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) - -#elif defined(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version) -# define COMPILER_ID "Fujitsu" - -#elif defined(__ghs__) -# define COMPILER_ID "GHS" -/* __GHS_VERSION_NUMBER = VVVVRP */ -# ifdef __GHS_VERSION_NUMBER -# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100) -# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10) -# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10) -# endif - -#elif defined(__SCO_VERSION__) -# define COMPILER_ID "SCO" - -#elif defined(__ARMCC_VERSION) && !defined(__clang__) -# define COMPILER_ID "ARMCC" -#if __ARMCC_VERSION >= 1000000 - /* __ARMCC_VERSION = VRRPPPP */ - # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) - # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) - # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) -#else - /* __ARMCC_VERSION = VRPPPP */ - # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) - # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) - # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) -#endif - - -#elif defined(__clang__) && defined(__apple_build_version__) -# define COMPILER_ID "AppleClang" -# if defined(_MSC_VER) -# define SIMULATE_ID "MSVC" -# endif -# define COMPILER_VERSION_MAJOR DEC(__clang_major__) -# define COMPILER_VERSION_MINOR DEC(__clang_minor__) -# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) -# if defined(_MSC_VER) - /* _MSC_VER = VVRR */ -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) -# endif -# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) - -#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION) -# define COMPILER_ID "ARMClang" - # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000) - # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100) - # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION % 10000) -# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION) - -#elif defined(__clang__) -# define COMPILER_ID "Clang" -# if defined(_MSC_VER) -# define SIMULATE_ID "MSVC" -# endif -# define COMPILER_VERSION_MAJOR DEC(__clang_major__) -# define COMPILER_VERSION_MINOR DEC(__clang_minor__) -# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) -# if defined(_MSC_VER) - /* _MSC_VER = VVRR */ -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) -# endif - -#elif defined(__GNUC__) || defined(__GNUG__) -# define COMPILER_ID "GNU" -# if defined(__GNUC__) -# define COMPILER_VERSION_MAJOR DEC(__GNUC__) -# else -# define COMPILER_VERSION_MAJOR DEC(__GNUG__) -# endif -# if defined(__GNUC_MINOR__) -# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) -# endif -# if defined(__GNUC_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) -# endif - -#elif defined(_MSC_VER) -# define COMPILER_ID "MSVC" - /* _MSC_VER = VVRR */ -# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) -# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) -# if defined(_MSC_FULL_VER) -# if _MSC_VER >= 1400 - /* _MSC_FULL_VER = VVRRPPPPP */ -# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) -# else - /* _MSC_FULL_VER = VVRRPPPP */ -# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) -# endif -# endif -# if defined(_MSC_BUILD) -# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) -# endif - -#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) -# define COMPILER_ID "ADSP" -#if defined(__VISUALDSPVERSION__) - /* __VISUALDSPVERSION__ = 0xVVRRPP00 */ -# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24) -# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF) -# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF) -#endif - -#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) -# define COMPILER_ID "IAR" -# if defined(__VER__) && defined(__ICCARM__) -# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) -# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) -# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) -# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) -# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__)) -# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100) -# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100)) -# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__) -# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) -# endif - - -/* These compilers are either not known or too old to define an - identification macro. Try to identify the platform and guess that - it is the native compiler. */ -#elif defined(__hpux) || defined(__hpua) -# define COMPILER_ID "HP" - -#else /* unknown compiler */ -# define COMPILER_ID "" -#endif - -/* Construct the string literal in pieces to prevent the source from - getting matched. Store it in a pointer rather than an array - because some compilers will just produce instructions to fill the - array rather than assigning a pointer to a static array. */ -char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; -#ifdef SIMULATE_ID -char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; -#endif - -#ifdef __QNXNTO__ -char const* qnxnto = "INFO" ":" "qnxnto[]"; -#endif - -#if defined(__CRAYXE) || defined(__CRAYXC) -char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; -#endif - -#define STRINGIFY_HELPER(X) #X -#define STRINGIFY(X) STRINGIFY_HELPER(X) - -/* Identify known platforms by name. */ -#if defined(__linux) || defined(__linux__) || defined(linux) -# define PLATFORM_ID "Linux" - -#elif defined(__CYGWIN__) -# define PLATFORM_ID "Cygwin" - -#elif defined(__MINGW32__) -# define PLATFORM_ID "MinGW" - -#elif defined(__APPLE__) -# define PLATFORM_ID "Darwin" - -#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) -# define PLATFORM_ID "Windows" - -#elif defined(__FreeBSD__) || defined(__FreeBSD) -# define PLATFORM_ID "FreeBSD" - -#elif defined(__NetBSD__) || defined(__NetBSD) -# define PLATFORM_ID "NetBSD" - -#elif defined(__OpenBSD__) || defined(__OPENBSD) -# define PLATFORM_ID "OpenBSD" - -#elif defined(__sun) || defined(sun) -# define PLATFORM_ID "SunOS" - -#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) -# define PLATFORM_ID "AIX" - -#elif defined(__hpux) || defined(__hpux__) -# define PLATFORM_ID "HP-UX" - -#elif defined(__HAIKU__) -# define PLATFORM_ID "Haiku" - -#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) -# define PLATFORM_ID "BeOS" - -#elif defined(__QNX__) || defined(__QNXNTO__) -# define PLATFORM_ID "QNX" - -#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) -# define PLATFORM_ID "Tru64" - -#elif defined(__riscos) || defined(__riscos__) -# define PLATFORM_ID "RISCos" - -#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) -# define PLATFORM_ID "SINIX" - -#elif defined(__UNIX_SV__) -# define PLATFORM_ID "UNIX_SV" - -#elif defined(__bsdos__) -# define PLATFORM_ID "BSDOS" - -#elif defined(_MPRAS) || defined(MPRAS) -# define PLATFORM_ID "MP-RAS" - -#elif defined(__osf) || defined(__osf__) -# define PLATFORM_ID "OSF1" - -#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) -# define PLATFORM_ID "SCO_SV" - -#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) -# define PLATFORM_ID "ULTRIX" - -#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) -# define PLATFORM_ID "Xenix" - -#elif defined(__WATCOMC__) -# if defined(__LINUX__) -# define PLATFORM_ID "Linux" - -# elif defined(__DOS__) -# define PLATFORM_ID "DOS" - -# elif defined(__OS2__) -# define PLATFORM_ID "OS2" - -# elif defined(__WINDOWS__) -# define PLATFORM_ID "Windows3x" - -# else /* unknown platform */ -# define PLATFORM_ID -# endif - -#elif defined(__INTEGRITY) -# if defined(INT_178B) -# define PLATFORM_ID "Integrity178" - -# else /* regular Integrity */ -# define PLATFORM_ID "Integrity" -# endif - -#else /* unknown platform */ -# define PLATFORM_ID - -#endif - -/* For windows compilers MSVC and Intel we can determine - the architecture of the compiler being used. This is because - the compilers do not have flags that can change the architecture, - but rather depend on which compiler is being used -*/ -#if defined(_WIN32) && defined(_MSC_VER) -# if defined(_M_IA64) -# define ARCHITECTURE_ID "IA64" - -# elif defined(_M_X64) || defined(_M_AMD64) -# define ARCHITECTURE_ID "x64" - -# elif defined(_M_IX86) -# define ARCHITECTURE_ID "X86" - -# elif defined(_M_ARM64) -# define ARCHITECTURE_ID "ARM64" - -# elif defined(_M_ARM) -# if _M_ARM == 4 -# define ARCHITECTURE_ID "ARMV4I" -# elif _M_ARM == 5 -# define ARCHITECTURE_ID "ARMV5I" -# else -# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) -# endif - -# elif defined(_M_MIPS) -# define ARCHITECTURE_ID "MIPS" - -# elif defined(_M_SH) -# define ARCHITECTURE_ID "SHx" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__WATCOMC__) -# if defined(_M_I86) -# define ARCHITECTURE_ID "I86" - -# elif defined(_M_IX86) -# define ARCHITECTURE_ID "X86" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) -# if defined(__ICCARM__) -# define ARCHITECTURE_ID "ARM" - -# elif defined(__ICCRX__) -# define ARCHITECTURE_ID "RX" - -# elif defined(__ICCRH850__) -# define ARCHITECTURE_ID "RH850" - -# elif defined(__ICCRL78__) -# define ARCHITECTURE_ID "RL78" - -# elif defined(__ICCRISCV__) -# define ARCHITECTURE_ID "RISCV" - -# elif defined(__ICCAVR__) -# define ARCHITECTURE_ID "AVR" - -# elif defined(__ICC430__) -# define ARCHITECTURE_ID "MSP430" - -# elif defined(__ICCV850__) -# define ARCHITECTURE_ID "V850" - -# elif defined(__ICC8051__) -# define ARCHITECTURE_ID "8051" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__ghs__) -# if defined(__PPC64__) -# define ARCHITECTURE_ID "PPC64" - -# elif defined(__ppc__) -# define ARCHITECTURE_ID "PPC" - -# elif defined(__ARM__) -# define ARCHITECTURE_ID "ARM" - -# elif defined(__x86_64__) -# define ARCHITECTURE_ID "x64" - -# elif defined(__i386__) -# define ARCHITECTURE_ID "X86" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif -#else -# define ARCHITECTURE_ID -#endif - -/* Convert integer to decimal digit literals. */ -#define DEC(n) \ - ('0' + (((n) / 10000000)%10)), \ - ('0' + (((n) / 1000000)%10)), \ - ('0' + (((n) / 100000)%10)), \ - ('0' + (((n) / 10000)%10)), \ - ('0' + (((n) / 1000)%10)), \ - ('0' + (((n) / 100)%10)), \ - ('0' + (((n) / 10)%10)), \ - ('0' + ((n) % 10)) - -/* Convert integer to hex digit literals. */ -#define HEX(n) \ - ('0' + ((n)>>28 & 0xF)), \ - ('0' + ((n)>>24 & 0xF)), \ - ('0' + ((n)>>20 & 0xF)), \ - ('0' + ((n)>>16 & 0xF)), \ - ('0' + ((n)>>12 & 0xF)), \ - ('0' + ((n)>>8 & 0xF)), \ - ('0' + ((n)>>4 & 0xF)), \ - ('0' + ((n) & 0xF)) - -/* Construct a string literal encoding the version number components. */ -#ifdef COMPILER_VERSION_MAJOR -char const info_version[] = { - 'I', 'N', 'F', 'O', ':', - 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', - COMPILER_VERSION_MAJOR, -# ifdef COMPILER_VERSION_MINOR - '.', COMPILER_VERSION_MINOR, -# ifdef COMPILER_VERSION_PATCH - '.', COMPILER_VERSION_PATCH, -# ifdef COMPILER_VERSION_TWEAK - '.', COMPILER_VERSION_TWEAK, -# endif -# endif -# endif - ']','\0'}; -#endif - -/* Construct a string literal encoding the internal version number. */ -#ifdef COMPILER_VERSION_INTERNAL -char const info_version_internal[] = { - 'I', 'N', 'F', 'O', ':', - 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', - 'i','n','t','e','r','n','a','l','[', - COMPILER_VERSION_INTERNAL,']','\0'}; -#endif - -/* Construct a string literal encoding the version number components. */ -#ifdef SIMULATE_VERSION_MAJOR -char const info_simulate_version[] = { - 'I', 'N', 'F', 'O', ':', - 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', - SIMULATE_VERSION_MAJOR, -# ifdef SIMULATE_VERSION_MINOR - '.', SIMULATE_VERSION_MINOR, -# ifdef SIMULATE_VERSION_PATCH - '.', SIMULATE_VERSION_PATCH, -# ifdef SIMULATE_VERSION_TWEAK - '.', SIMULATE_VERSION_TWEAK, -# endif -# endif -# endif - ']','\0'}; -#endif - -/* Construct the string literal in pieces to prevent the source from - getting matched. Store it in a pointer rather than an array - because some compilers will just produce instructions to fill the - array rather than assigning a pointer to a static array. */ -char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; -char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; - - - - -#if defined(__INTEL_COMPILER) && defined(_MSVC_LANG) && _MSVC_LANG < 201403L -# if defined(__INTEL_CXX11_MODE__) -# if defined(__cpp_aggregate_nsdmi) -# define CXX_STD 201402L -# else -# define CXX_STD 201103L -# endif -# else -# define CXX_STD 199711L -# endif -#elif defined(_MSC_VER) && defined(_MSVC_LANG) -# define CXX_STD _MSVC_LANG -#else -# define CXX_STD __cplusplus -#endif - -const char* info_language_dialect_default = "INFO" ":" "dialect_default[" -#if CXX_STD > 201703L - "20" -#elif CXX_STD >= 201703L - "17" -#elif CXX_STD >= 201402L - "14" -#elif CXX_STD >= 201103L - "11" -#else - "98" -#endif -"]"; - -/*--------------------------------------------------------------------------*/ - -int main(int argc, char* argv[]) -{ - int require = 0; - require += info_compiler[argc]; - require += info_platform[argc]; -#ifdef COMPILER_VERSION_MAJOR - require += info_version[argc]; -#endif -#ifdef COMPILER_VERSION_INTERNAL - require += info_version_internal[argc]; -#endif -#ifdef SIMULATE_ID - require += info_simulate[argc]; -#endif -#ifdef SIMULATE_VERSION_MAJOR - require += info_simulate_version[argc]; -#endif -#if defined(__CRAYXE) || defined(__CRAYXC) - require += info_cray[argc]; -#endif - require += info_language_dialect_default[argc]; - (void)argv; - return require; -} diff --git a/server/cmake-build-debug/CMakeFiles/CMakeDirectoryInformation.cmake b/server/cmake-build-debug/CMakeFiles/CMakeDirectoryInformation.cmake deleted file mode 100644 index 7eb1087..0000000 --- a/server/cmake-build-debug/CMakeFiles/CMakeDirectoryInformation.cmake +++ /dev/null @@ -1,16 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Unix Makefiles" Generator, CMake Version 3.17 - -# Relative path conversion top directories. -set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/Users/konstantinviesure/workspace/compLIB/server") -set(CMAKE_RELATIVE_PATH_TOP_BINARY "/Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug") - -# Force unix paths in dependencies. -set(CMAKE_FORCE_UNIX_PATHS 1) - - -# The C and CXX include file regular expressions for this directory. -set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") -set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") -set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) -set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/server/cmake-build-debug/CMakeFiles/CMakeError.log b/server/cmake-build-debug/CMakeFiles/CMakeError.log deleted file mode 100644 index b5c3aaa..0000000 --- a/server/cmake-build-debug/CMakeFiles/CMakeError.log +++ /dev/null @@ -1,22 +0,0 @@ -Compiling the C compiler identification source file "CMakeCCompilerId.c" failed. -Compiler: /Library/Developer/CommandLineTools/usr/bin/cc -Build flags: -Id flags: - -The output was: -1 -ld: library not found for -lSystem -clang: error: linker command failed with exit code 1 (use -v to see invocation) - - -Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" failed. -Compiler: /Library/Developer/CommandLineTools/usr/bin/c++ -Build flags: -Id flags: - -The output was: -1 -ld: library not found for -lc++ -clang: error: linker command failed with exit code 1 (use -v to see invocation) - - diff --git a/server/cmake-build-debug/CMakeFiles/CMakeOutput.log b/server/cmake-build-debug/CMakeFiles/CMakeOutput.log deleted file mode 100644 index c48fb14..0000000 --- a/server/cmake-build-debug/CMakeFiles/CMakeOutput.log +++ /dev/null @@ -1,334 +0,0 @@ -The system is: Darwin - 21.3.0 - x86_64 -Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded. -Compiler: /Library/Developer/CommandLineTools/usr/bin/cc -Build flags: -Id flags: -c - -The output was: -0 - - -Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "CMakeCCompilerId.o" - -The C compiler identification is AppleClang, found in "/Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CMakeFiles/3.17.3/CompilerIdC/CMakeCCompilerId.o" - -Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" succeeded. -Compiler: /Library/Developer/CommandLineTools/usr/bin/c++ -Build flags: -Id flags: -c - -The output was: -0 - - -Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "CMakeCXXCompilerId.o" - -The CXX compiler identification is AppleClang, found in "/Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CMakeFiles/3.17.3/CompilerIdCXX/CMakeCXXCompilerId.o" - -Determining if the C compiler works passed with the following output: -Change Dir: /Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CMakeFiles/CMakeTmp - -Run Build Command(s):/usr/bin/make cmTC_32f82/fast && /Library/Developer/CommandLineTools/usr/bin/make -f CMakeFiles/cmTC_32f82.dir/build.make CMakeFiles/cmTC_32f82.dir/build -Building C object CMakeFiles/cmTC_32f82.dir/testCCompiler.c.o -/Library/Developer/CommandLineTools/usr/bin/cc -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk -o CMakeFiles/cmTC_32f82.dir/testCCompiler.c.o -c /Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CMakeFiles/CMakeTmp/testCCompiler.c -Linking C executable cmTC_32f82 -/Applications/CLion.app/Contents/bin/cmake/mac/bin/cmake -E cmake_link_script CMakeFiles/cmTC_32f82.dir/link.txt --verbose=1 -/Library/Developer/CommandLineTools/usr/bin/cc -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk -Wl,-search_paths_first -Wl,-headerpad_max_install_names CMakeFiles/cmTC_32f82.dir/testCCompiler.c.o -o cmTC_32f82 - - - -Detecting C compiler ABI info compiled with the following output: -Change Dir: /Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CMakeFiles/CMakeTmp - -Run Build Command(s):/usr/bin/make cmTC_ab439/fast && /Library/Developer/CommandLineTools/usr/bin/make -f CMakeFiles/cmTC_ab439.dir/build.make CMakeFiles/cmTC_ab439.dir/build -Building C object CMakeFiles/cmTC_ab439.dir/CMakeCCompilerABI.c.o -/Library/Developer/CommandLineTools/usr/bin/cc -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk -v -Wl,-v -o CMakeFiles/cmTC_ab439.dir/CMakeCCompilerABI.c.o -c /Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/CMakeCCompilerABI.c -Apple clang version 12.0.0 (clang-1200.0.31.1) -Target: x86_64-apple-darwin21.3.0 -Thread model: posix -InstalledDir: /Library/Developer/CommandLineTools/usr/bin -clang: warning: -Wl,-v: 'linker' input unused [-Wunused-command-line-argument] - "/Library/Developer/CommandLineTools/usr/bin/clang" -cc1 -triple x86_64-apple-macosx11.0.0 -Wdeprecated-objc-isa-usage -Werror=deprecated-objc-isa-usage -Werror=implicit-function-declaration -emit-obj -mrelax-all -disable-free -disable-llvm-verifier -discard-value-names -main-file-name CMakeCCompilerABI.c -mrelocation-model pic -pic-level 2 -mthread-model posix -mframe-pointer=all -fno-strict-return -masm-verbose -munwind-tables -target-sdk-version=11.0 -target-cpu penryn -dwarf-column-info -debugger-tuning=lldb -target-linker-version 609 -v -resource-dir /Library/Developer/CommandLineTools/usr/lib/clang/12.0.0 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk -internal-isystem /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/local/include -internal-isystem /Library/Developer/CommandLineTools/usr/lib/clang/12.0.0/include -internal-externc-isystem /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/include -internal-externc-isystem /Library/Developer/CommandLineTools/usr/include -Wno-reorder-init-list -Wno-implicit-int-float-conversion -Wno-c99-designator -Wno-final-dtor-non-final-class -Wno-extra-semi-stmt -Wno-misleading-indentation -Wno-quoted-include-in-framework-header -Wno-implicit-fallthrough -Wno-enum-enum-conversion -Wno-enum-float-conversion -fdebug-compilation-dir /Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CMakeFiles/CMakeTmp -ferror-limit 19 -fmessage-length 0 -stack-protector 1 -fstack-check -mdarwin-stkchk-strong-link -fblocks -fencode-extended-block-signature -fregister-global-dtors-with-atexit -fgnuc-version=4.2.1 -fobjc-runtime=macosx-11.0.0 -fmax-type-align=16 -fdiagnostics-show-option -o CMakeFiles/cmTC_ab439.dir/CMakeCCompilerABI.c.o -x c /Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/CMakeCCompilerABI.c -clang -cc1 version 12.0.0 (clang-1200.0.31.1) default target x86_64-apple-darwin21.3.0 -ignoring nonexistent directory "/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/local/include" -ignoring nonexistent directory "/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/Library/Frameworks" -#include "..." search starts here: -#include <...> search starts here: - /Library/Developer/CommandLineTools/usr/lib/clang/12.0.0/include - /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/include - /Library/Developer/CommandLineTools/usr/include - /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/System/Library/Frameworks (framework directory) -End of search list. -Linking C executable cmTC_ab439 -/Applications/CLion.app/Contents/bin/cmake/mac/bin/cmake -E cmake_link_script CMakeFiles/cmTC_ab439.dir/link.txt --verbose=1 -/Library/Developer/CommandLineTools/usr/bin/cc -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk -Wl,-search_paths_first -Wl,-headerpad_max_install_names -v -Wl,-v CMakeFiles/cmTC_ab439.dir/CMakeCCompilerABI.c.o -o cmTC_ab439 -Apple clang version 12.0.0 (clang-1200.0.31.1) -Target: x86_64-apple-darwin21.3.0 -Thread model: posix -InstalledDir: /Library/Developer/CommandLineTools/usr/bin - "/Library/Developer/CommandLineTools/usr/bin/ld" -demangle -lto_library /Library/Developer/CommandLineTools/usr/lib/libLTO.dylib -dynamic -arch x86_64 -platform_version macos 11.0.0 11.0 -syslibroot /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk -o cmTC_ab439 -search_paths_first -headerpad_max_install_names -v CMakeFiles/cmTC_ab439.dir/CMakeCCompilerABI.c.o -lSystem /Library/Developer/CommandLineTools/usr/lib/clang/12.0.0/lib/darwin/libclang_rt.osx.a -@(#)PROGRAM:ld PROJECT:ld64-609 -BUILD 04:42:03 Aug 10 2020 -configured to support archs: armv6 armv7 armv7s arm64 arm64e arm64_32 i386 x86_64 x86_64h armv6m armv7k armv7m armv7em -Library search paths: - /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/lib -Framework search paths: - /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/System/Library/Frameworks/ - - - -Parsed C implicit include dir info from above output: rv=done - found start of include info - found start of implicit include info - add: [/Library/Developer/CommandLineTools/usr/lib/clang/12.0.0/include] - add: [/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/include] - add: [/Library/Developer/CommandLineTools/usr/include] - end of search list found - collapse include dir [/Library/Developer/CommandLineTools/usr/lib/clang/12.0.0/include] ==> [/Library/Developer/CommandLineTools/usr/lib/clang/12.0.0/include] - collapse include dir [/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/include] ==> [/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/include] - collapse include dir [/Library/Developer/CommandLineTools/usr/include] ==> [/Library/Developer/CommandLineTools/usr/include] - implicit include dirs: [/Library/Developer/CommandLineTools/usr/lib/clang/12.0.0/include;/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/include;/Library/Developer/CommandLineTools/usr/include] - - -Parsed C implicit link information from above output: - link line regex: [^( *|.*[/\])(ld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\]+-)?ld|collect2)[^/\]*( |$)] - ignore line: [Change Dir: /Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CMakeFiles/CMakeTmp] - ignore line: [] - ignore line: [Run Build Command(s):/usr/bin/make cmTC_ab439/fast && /Library/Developer/CommandLineTools/usr/bin/make -f CMakeFiles/cmTC_ab439.dir/build.make CMakeFiles/cmTC_ab439.dir/build] - ignore line: [Building C object CMakeFiles/cmTC_ab439.dir/CMakeCCompilerABI.c.o] - ignore line: [/Library/Developer/CommandLineTools/usr/bin/cc -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk -v -Wl -v -o CMakeFiles/cmTC_ab439.dir/CMakeCCompilerABI.c.o -c /Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/CMakeCCompilerABI.c] - ignore line: [Apple clang version 12.0.0 (clang-1200.0.31.1)] - ignore line: [Target: x86_64-apple-darwin21.3.0] - ignore line: [Thread model: posix] - ignore line: [InstalledDir: /Library/Developer/CommandLineTools/usr/bin] - ignore line: [clang: warning: -Wl -v: 'linker' input unused [-Wunused-command-line-argument]] - ignore line: [ "/Library/Developer/CommandLineTools/usr/bin/clang" -cc1 -triple x86_64-apple-macosx11.0.0 -Wdeprecated-objc-isa-usage -Werror=deprecated-objc-isa-usage -Werror=implicit-function-declaration -emit-obj -mrelax-all -disable-free -disable-llvm-verifier -discard-value-names -main-file-name CMakeCCompilerABI.c -mrelocation-model pic -pic-level 2 -mthread-model posix -mframe-pointer=all -fno-strict-return -masm-verbose -munwind-tables -target-sdk-version=11.0 -target-cpu penryn -dwarf-column-info -debugger-tuning=lldb -target-linker-version 609 -v -resource-dir /Library/Developer/CommandLineTools/usr/lib/clang/12.0.0 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk -internal-isystem /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/local/include -internal-isystem /Library/Developer/CommandLineTools/usr/lib/clang/12.0.0/include -internal-externc-isystem /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/include -internal-externc-isystem /Library/Developer/CommandLineTools/usr/include -Wno-reorder-init-list -Wno-implicit-int-float-conversion -Wno-c99-designator -Wno-final-dtor-non-final-class -Wno-extra-semi-stmt -Wno-misleading-indentation -Wno-quoted-include-in-framework-header -Wno-implicit-fallthrough -Wno-enum-enum-conversion -Wno-enum-float-conversion -fdebug-compilation-dir /Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CMakeFiles/CMakeTmp -ferror-limit 19 -fmessage-length 0 -stack-protector 1 -fstack-check -mdarwin-stkchk-strong-link -fblocks -fencode-extended-block-signature -fregister-global-dtors-with-atexit -fgnuc-version=4.2.1 -fobjc-runtime=macosx-11.0.0 -fmax-type-align=16 -fdiagnostics-show-option -o CMakeFiles/cmTC_ab439.dir/CMakeCCompilerABI.c.o -x c /Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/CMakeCCompilerABI.c] - ignore line: [clang -cc1 version 12.0.0 (clang-1200.0.31.1) default target x86_64-apple-darwin21.3.0] - ignore line: [ignoring nonexistent directory "/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/local/include"] - ignore line: [ignoring nonexistent directory "/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/Library/Frameworks"] - ignore line: [#include "..." search starts here:] - ignore line: [#include <...> search starts here:] - ignore line: [ /Library/Developer/CommandLineTools/usr/lib/clang/12.0.0/include] - ignore line: [ /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/include] - ignore line: [ /Library/Developer/CommandLineTools/usr/include] - ignore line: [ /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/System/Library/Frameworks (framework directory)] - ignore line: [End of search list.] - ignore line: [Linking C executable cmTC_ab439] - ignore line: [/Applications/CLion.app/Contents/bin/cmake/mac/bin/cmake -E cmake_link_script CMakeFiles/cmTC_ab439.dir/link.txt --verbose=1] - ignore line: [/Library/Developer/CommandLineTools/usr/bin/cc -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk -Wl -search_paths_first -Wl -headerpad_max_install_names -v -Wl -v CMakeFiles/cmTC_ab439.dir/CMakeCCompilerABI.c.o -o cmTC_ab439 ] - ignore line: [Apple clang version 12.0.0 (clang-1200.0.31.1)] - ignore line: [Target: x86_64-apple-darwin21.3.0] - ignore line: [Thread model: posix] - ignore line: [InstalledDir: /Library/Developer/CommandLineTools/usr/bin] - link line: [ "/Library/Developer/CommandLineTools/usr/bin/ld" -demangle -lto_library /Library/Developer/CommandLineTools/usr/lib/libLTO.dylib -dynamic -arch x86_64 -platform_version macos 11.0.0 11.0 -syslibroot /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk -o cmTC_ab439 -search_paths_first -headerpad_max_install_names -v CMakeFiles/cmTC_ab439.dir/CMakeCCompilerABI.c.o -lSystem /Library/Developer/CommandLineTools/usr/lib/clang/12.0.0/lib/darwin/libclang_rt.osx.a] - arg [/Library/Developer/CommandLineTools/usr/bin/ld] ==> ignore - arg [-demangle] ==> ignore - arg [-lto_library] ==> ignore, skip following value - arg [/Library/Developer/CommandLineTools/usr/lib/libLTO.dylib] ==> skip value of -lto_library - arg [-dynamic] ==> ignore - arg [-arch] ==> ignore - arg [x86_64] ==> ignore - arg [-platform_version] ==> ignore - arg [macos] ==> ignore - arg [11.0.0] ==> ignore - arg [11.0] ==> ignore - arg [-syslibroot] ==> ignore - arg [/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk] ==> ignore - arg [-o] ==> ignore - arg [cmTC_ab439] ==> ignore - arg [-search_paths_first] ==> ignore - arg [-headerpad_max_install_names] ==> ignore - arg [-v] ==> ignore - arg [CMakeFiles/cmTC_ab439.dir/CMakeCCompilerABI.c.o] ==> ignore - arg [-lSystem] ==> lib [System] - arg [/Library/Developer/CommandLineTools/usr/lib/clang/12.0.0/lib/darwin/libclang_rt.osx.a] ==> lib [/Library/Developer/CommandLineTools/usr/lib/clang/12.0.0/lib/darwin/libclang_rt.osx.a] - Library search paths: [;/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/lib] - Framework search paths: [;/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/System/Library/Frameworks/] - remove lib [System] - remove lib [/Library/Developer/CommandLineTools/usr/lib/clang/12.0.0/lib/darwin/libclang_rt.osx.a] - collapse library dir [/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/lib] ==> [/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/lib] - collapse framework dir [/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/System/Library/Frameworks/] ==> [/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/System/Library/Frameworks] - implicit libs: [] - implicit dirs: [/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/lib] - implicit fwks: [/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/System/Library/Frameworks] - - -Determining if the CXX compiler works passed with the following output: -Change Dir: /Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CMakeFiles/CMakeTmp - -Run Build Command(s):/usr/bin/make cmTC_61ac6/fast && /Library/Developer/CommandLineTools/usr/bin/make -f CMakeFiles/cmTC_61ac6.dir/build.make CMakeFiles/cmTC_61ac6.dir/build -Building CXX object CMakeFiles/cmTC_61ac6.dir/testCXXCompiler.cxx.o -/Library/Developer/CommandLineTools/usr/bin/c++ -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk -o CMakeFiles/cmTC_61ac6.dir/testCXXCompiler.cxx.o -c /Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CMakeFiles/CMakeTmp/testCXXCompiler.cxx -Linking CXX executable cmTC_61ac6 -/Applications/CLion.app/Contents/bin/cmake/mac/bin/cmake -E cmake_link_script CMakeFiles/cmTC_61ac6.dir/link.txt --verbose=1 -/Library/Developer/CommandLineTools/usr/bin/c++ -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk -Wl,-search_paths_first -Wl,-headerpad_max_install_names CMakeFiles/cmTC_61ac6.dir/testCXXCompiler.cxx.o -o cmTC_61ac6 - - - -Detecting CXX compiler ABI info compiled with the following output: -Change Dir: /Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CMakeFiles/CMakeTmp - -Run Build Command(s):/usr/bin/make cmTC_c87a3/fast && /Library/Developer/CommandLineTools/usr/bin/make -f CMakeFiles/cmTC_c87a3.dir/build.make CMakeFiles/cmTC_c87a3.dir/build -Building CXX object CMakeFiles/cmTC_c87a3.dir/CMakeCXXCompilerABI.cpp.o -/Library/Developer/CommandLineTools/usr/bin/c++ -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk -v -Wl,-v -o CMakeFiles/cmTC_c87a3.dir/CMakeCXXCompilerABI.cpp.o -c /Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/CMakeCXXCompilerABI.cpp -Apple clang version 12.0.0 (clang-1200.0.31.1) -Target: x86_64-apple-darwin21.3.0 -Thread model: posix -InstalledDir: /Library/Developer/CommandLineTools/usr/bin -clang: warning: -Wl,-v: 'linker' input unused [-Wunused-command-line-argument] -ignoring nonexistent directory "/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/include/c++/v1" - "/Library/Developer/CommandLineTools/usr/bin/clang" -cc1 -triple x86_64-apple-macosx11.0.0 -Wdeprecated-objc-isa-usage -Werror=deprecated-objc-isa-usage -Werror=implicit-function-declaration -emit-obj -mrelax-all -disable-free -disable-llvm-verifier -discard-value-names -main-file-name CMakeCXXCompilerABI.cpp -mrelocation-model pic -pic-level 2 -mthread-model posix -mframe-pointer=all -fno-strict-return -masm-verbose -munwind-tables -target-sdk-version=11.0 -target-cpu penryn -dwarf-column-info -debugger-tuning=lldb -target-linker-version 609 -v -resource-dir /Library/Developer/CommandLineTools/usr/lib/clang/12.0.0 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk -stdlib=libc++ -internal-isystem /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1 -internal-isystem /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/local/include -internal-isystem /Library/Developer/CommandLineTools/usr/lib/clang/12.0.0/include -internal-externc-isystem /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/include -internal-externc-isystem /Library/Developer/CommandLineTools/usr/include -Wno-reorder-init-list -Wno-implicit-int-float-conversion -Wno-c99-designator -Wno-final-dtor-non-final-class -Wno-extra-semi-stmt -Wno-misleading-indentation -Wno-quoted-include-in-framework-header -Wno-implicit-fallthrough -Wno-enum-enum-conversion -Wno-enum-float-conversion -fdeprecated-macro -fdebug-compilation-dir /Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CMakeFiles/CMakeTmp -ferror-limit 19 -fmessage-length 0 -stack-protector 1 -fstack-check -mdarwin-stkchk-strong-link -fblocks -fencode-extended-block-signature -fregister-global-dtors-with-atexit -fgnuc-version=4.2.1 -fobjc-runtime=macosx-11.0.0 -fcxx-exceptions -fexceptions -fmax-type-align=16 -fdiagnostics-show-option -o CMakeFiles/cmTC_c87a3.dir/CMakeCXXCompilerABI.cpp.o -x c++ /Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/CMakeCXXCompilerABI.cpp -clang -cc1 version 12.0.0 (clang-1200.0.31.1) default target x86_64-apple-darwin21.3.0 -ignoring nonexistent directory "/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/local/include" -ignoring nonexistent directory "/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/Library/Frameworks" -#include "..." search starts here: -#include <...> search starts here: - /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1 - /Library/Developer/CommandLineTools/usr/lib/clang/12.0.0/include - /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/include - /Library/Developer/CommandLineTools/usr/include - /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/System/Library/Frameworks (framework directory) -End of search list. -Linking CXX executable cmTC_c87a3 -/Applications/CLion.app/Contents/bin/cmake/mac/bin/cmake -E cmake_link_script CMakeFiles/cmTC_c87a3.dir/link.txt --verbose=1 -/Library/Developer/CommandLineTools/usr/bin/c++ -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk -Wl,-search_paths_first -Wl,-headerpad_max_install_names -v -Wl,-v CMakeFiles/cmTC_c87a3.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_c87a3 -Apple clang version 12.0.0 (clang-1200.0.31.1) -Target: x86_64-apple-darwin21.3.0 -Thread model: posix -InstalledDir: /Library/Developer/CommandLineTools/usr/bin - "/Library/Developer/CommandLineTools/usr/bin/ld" -demangle -lto_library /Library/Developer/CommandLineTools/usr/lib/libLTO.dylib -dynamic -arch x86_64 -platform_version macos 11.0.0 11.0 -syslibroot /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk -o cmTC_c87a3 -search_paths_first -headerpad_max_install_names -v CMakeFiles/cmTC_c87a3.dir/CMakeCXXCompilerABI.cpp.o -lc++ -lSystem /Library/Developer/CommandLineTools/usr/lib/clang/12.0.0/lib/darwin/libclang_rt.osx.a -@(#)PROGRAM:ld PROJECT:ld64-609 -BUILD 04:42:03 Aug 10 2020 -configured to support archs: armv6 armv7 armv7s arm64 arm64e arm64_32 i386 x86_64 x86_64h armv6m armv7k armv7m armv7em -Library search paths: - /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/lib -Framework search paths: - /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/System/Library/Frameworks/ - - - -Parsed CXX implicit include dir info from above output: rv=done - found start of include info - found start of implicit include info - add: [/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1] - add: [/Library/Developer/CommandLineTools/usr/lib/clang/12.0.0/include] - add: [/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/include] - add: [/Library/Developer/CommandLineTools/usr/include] - end of search list found - collapse include dir [/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1] ==> [/Library/Developer/CommandLineTools/usr/include/c++/v1] - collapse include dir [/Library/Developer/CommandLineTools/usr/lib/clang/12.0.0/include] ==> [/Library/Developer/CommandLineTools/usr/lib/clang/12.0.0/include] - collapse include dir [/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/include] ==> [/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/include] - collapse include dir [/Library/Developer/CommandLineTools/usr/include] ==> [/Library/Developer/CommandLineTools/usr/include] - implicit include dirs: [/Library/Developer/CommandLineTools/usr/include/c++/v1;/Library/Developer/CommandLineTools/usr/lib/clang/12.0.0/include;/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/include;/Library/Developer/CommandLineTools/usr/include] - - -Parsed CXX implicit link information from above output: - link line regex: [^( *|.*[/\])(ld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\]+-)?ld|collect2)[^/\]*( |$)] - ignore line: [Change Dir: /Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CMakeFiles/CMakeTmp] - ignore line: [] - ignore line: [Run Build Command(s):/usr/bin/make cmTC_c87a3/fast && /Library/Developer/CommandLineTools/usr/bin/make -f CMakeFiles/cmTC_c87a3.dir/build.make CMakeFiles/cmTC_c87a3.dir/build] - ignore line: [Building CXX object CMakeFiles/cmTC_c87a3.dir/CMakeCXXCompilerABI.cpp.o] - ignore line: [/Library/Developer/CommandLineTools/usr/bin/c++ -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk -v -Wl -v -o CMakeFiles/cmTC_c87a3.dir/CMakeCXXCompilerABI.cpp.o -c /Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/CMakeCXXCompilerABI.cpp] - ignore line: [Apple clang version 12.0.0 (clang-1200.0.31.1)] - ignore line: [Target: x86_64-apple-darwin21.3.0] - ignore line: [Thread model: posix] - ignore line: [InstalledDir: /Library/Developer/CommandLineTools/usr/bin] - ignore line: [clang: warning: -Wl -v: 'linker' input unused [-Wunused-command-line-argument]] - ignore line: [ignoring nonexistent directory "/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/include/c++/v1"] - ignore line: [ "/Library/Developer/CommandLineTools/usr/bin/clang" -cc1 -triple x86_64-apple-macosx11.0.0 -Wdeprecated-objc-isa-usage -Werror=deprecated-objc-isa-usage -Werror=implicit-function-declaration -emit-obj -mrelax-all -disable-free -disable-llvm-verifier -discard-value-names -main-file-name CMakeCXXCompilerABI.cpp -mrelocation-model pic -pic-level 2 -mthread-model posix -mframe-pointer=all -fno-strict-return -masm-verbose -munwind-tables -target-sdk-version=11.0 -target-cpu penryn -dwarf-column-info -debugger-tuning=lldb -target-linker-version 609 -v -resource-dir /Library/Developer/CommandLineTools/usr/lib/clang/12.0.0 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk -stdlib=libc++ -internal-isystem /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1 -internal-isystem /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/local/include -internal-isystem /Library/Developer/CommandLineTools/usr/lib/clang/12.0.0/include -internal-externc-isystem /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/include -internal-externc-isystem /Library/Developer/CommandLineTools/usr/include -Wno-reorder-init-list -Wno-implicit-int-float-conversion -Wno-c99-designator -Wno-final-dtor-non-final-class -Wno-extra-semi-stmt -Wno-misleading-indentation -Wno-quoted-include-in-framework-header -Wno-implicit-fallthrough -Wno-enum-enum-conversion -Wno-enum-float-conversion -fdeprecated-macro -fdebug-compilation-dir /Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CMakeFiles/CMakeTmp -ferror-limit 19 -fmessage-length 0 -stack-protector 1 -fstack-check -mdarwin-stkchk-strong-link -fblocks -fencode-extended-block-signature -fregister-global-dtors-with-atexit -fgnuc-version=4.2.1 -fobjc-runtime=macosx-11.0.0 -fcxx-exceptions -fexceptions -fmax-type-align=16 -fdiagnostics-show-option -o CMakeFiles/cmTC_c87a3.dir/CMakeCXXCompilerABI.cpp.o -x c++ /Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/CMakeCXXCompilerABI.cpp] - ignore line: [clang -cc1 version 12.0.0 (clang-1200.0.31.1) default target x86_64-apple-darwin21.3.0] - ignore line: [ignoring nonexistent directory "/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/local/include"] - ignore line: [ignoring nonexistent directory "/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/Library/Frameworks"] - ignore line: [#include "..." search starts here:] - ignore line: [#include <...> search starts here:] - ignore line: [ /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1] - ignore line: [ /Library/Developer/CommandLineTools/usr/lib/clang/12.0.0/include] - ignore line: [ /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/include] - ignore line: [ /Library/Developer/CommandLineTools/usr/include] - ignore line: [ /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/System/Library/Frameworks (framework directory)] - ignore line: [End of search list.] - ignore line: [Linking CXX executable cmTC_c87a3] - ignore line: [/Applications/CLion.app/Contents/bin/cmake/mac/bin/cmake -E cmake_link_script CMakeFiles/cmTC_c87a3.dir/link.txt --verbose=1] - ignore line: [/Library/Developer/CommandLineTools/usr/bin/c++ -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk -Wl -search_paths_first -Wl -headerpad_max_install_names -v -Wl -v CMakeFiles/cmTC_c87a3.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_c87a3 ] - ignore line: [Apple clang version 12.0.0 (clang-1200.0.31.1)] - ignore line: [Target: x86_64-apple-darwin21.3.0] - ignore line: [Thread model: posix] - ignore line: [InstalledDir: /Library/Developer/CommandLineTools/usr/bin] - link line: [ "/Library/Developer/CommandLineTools/usr/bin/ld" -demangle -lto_library /Library/Developer/CommandLineTools/usr/lib/libLTO.dylib -dynamic -arch x86_64 -platform_version macos 11.0.0 11.0 -syslibroot /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk -o cmTC_c87a3 -search_paths_first -headerpad_max_install_names -v CMakeFiles/cmTC_c87a3.dir/CMakeCXXCompilerABI.cpp.o -lc++ -lSystem /Library/Developer/CommandLineTools/usr/lib/clang/12.0.0/lib/darwin/libclang_rt.osx.a] - arg [/Library/Developer/CommandLineTools/usr/bin/ld] ==> ignore - arg [-demangle] ==> ignore - arg [-lto_library] ==> ignore, skip following value - arg [/Library/Developer/CommandLineTools/usr/lib/libLTO.dylib] ==> skip value of -lto_library - arg [-dynamic] ==> ignore - arg [-arch] ==> ignore - arg [x86_64] ==> ignore - arg [-platform_version] ==> ignore - arg [macos] ==> ignore - arg [11.0.0] ==> ignore - arg [11.0] ==> ignore - arg [-syslibroot] ==> ignore - arg [/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk] ==> ignore - arg [-o] ==> ignore - arg [cmTC_c87a3] ==> ignore - arg [-search_paths_first] ==> ignore - arg [-headerpad_max_install_names] ==> ignore - arg [-v] ==> ignore - arg [CMakeFiles/cmTC_c87a3.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore - arg [-lc++] ==> lib [c++] - arg [-lSystem] ==> lib [System] - arg [/Library/Developer/CommandLineTools/usr/lib/clang/12.0.0/lib/darwin/libclang_rt.osx.a] ==> lib [/Library/Developer/CommandLineTools/usr/lib/clang/12.0.0/lib/darwin/libclang_rt.osx.a] - Library search paths: [;/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/lib] - Framework search paths: [;/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/System/Library/Frameworks/] - remove lib [System] - remove lib [/Library/Developer/CommandLineTools/usr/lib/clang/12.0.0/lib/darwin/libclang_rt.osx.a] - collapse library dir [/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/lib] ==> [/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/lib] - collapse framework dir [/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/System/Library/Frameworks/] ==> [/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/System/Library/Frameworks] - implicit libs: [c++] - implicit dirs: [/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/usr/lib] - implicit fwks: [/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk/System/Library/Frameworks] - - -Determining if the include file pthread.h exists passed with the following output: -Change Dir: /Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CMakeFiles/CMakeTmp - -Run Build Command(s):/usr/bin/make cmTC_d9087/fast && /Library/Developer/CommandLineTools/usr/bin/make -f CMakeFiles/cmTC_d9087.dir/build.make CMakeFiles/cmTC_d9087.dir/build -Building C object CMakeFiles/cmTC_d9087.dir/CheckIncludeFile.c.o -/Library/Developer/CommandLineTools/usr/bin/cc -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk -o CMakeFiles/cmTC_d9087.dir/CheckIncludeFile.c.o -c /Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CMakeFiles/CMakeTmp/CheckIncludeFile.c -Linking C executable cmTC_d9087 -/Applications/CLion.app/Contents/bin/cmake/mac/bin/cmake -E cmake_link_script CMakeFiles/cmTC_d9087.dir/link.txt --verbose=1 -/Library/Developer/CommandLineTools/usr/bin/cc -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk -Wl,-search_paths_first -Wl,-headerpad_max_install_names CMakeFiles/cmTC_d9087.dir/CheckIncludeFile.c.o -o cmTC_d9087 - - - -Performing C SOURCE FILE Test CMAKE_HAVE_LIBC_PTHREAD succeeded with the following output: -Change Dir: /Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CMakeFiles/CMakeTmp - -Run Build Command(s):/usr/bin/make cmTC_f391b/fast && /Library/Developer/CommandLineTools/usr/bin/make -f CMakeFiles/cmTC_f391b.dir/build.make CMakeFiles/cmTC_f391b.dir/build -Building C object CMakeFiles/cmTC_f391b.dir/src.c.o -/Library/Developer/CommandLineTools/usr/bin/cc -DCMAKE_HAVE_LIBC_PTHREAD -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk -o CMakeFiles/cmTC_f391b.dir/src.c.o -c /Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CMakeFiles/CMakeTmp/src.c -Linking C executable cmTC_f391b -/Applications/CLion.app/Contents/bin/cmake/mac/bin/cmake -E cmake_link_script CMakeFiles/cmTC_f391b.dir/link.txt --verbose=1 -/Library/Developer/CommandLineTools/usr/bin/cc -DCMAKE_HAVE_LIBC_PTHREAD -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk -Wl,-search_paths_first -Wl,-headerpad_max_install_names CMakeFiles/cmTC_f391b.dir/src.c.o -o cmTC_f391b - - -Source file was: -#include - -void* test_func(void* data) -{ - return data; -} - -int main(void) -{ - pthread_t thread; - pthread_create(&thread, NULL, test_func, NULL); - pthread_detach(thread); - pthread_cancel(thread); - pthread_join(thread, NULL); - pthread_atfork(NULL, NULL, NULL); - pthread_exit(NULL); - - return 0; -} - diff --git a/server/cmake-build-debug/CMakeFiles/CMakeRuleHashes.txt b/server/cmake-build-debug/CMakeFiles/CMakeRuleHashes.txt deleted file mode 100644 index 1a4e1ba..0000000 --- a/server/cmake-build-debug/CMakeFiles/CMakeRuleHashes.txt +++ /dev/null @@ -1,2 +0,0 @@ -# Hashes of file build rules. -5913e48a20eface1ffb15536ae350601 CompLib.pb.h diff --git a/server/cmake-build-debug/CMakeFiles/Makefile.cmake b/server/cmake-build-debug/CMakeFiles/Makefile.cmake deleted file mode 100644 index e61f812..0000000 --- a/server/cmake-build-debug/CMakeFiles/Makefile.cmake +++ /dev/null @@ -1,64 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Unix Makefiles" Generator, CMake Version 3.17 - -# The generator used is: -set(CMAKE_DEPENDS_GENERATOR "Unix Makefiles") - -# The top level Makefile was generated from the following files: -set(CMAKE_MAKEFILE_DEPENDS - "CMakeCache.txt" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/CMakeCInformation.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/CMakeCXXInformation.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/CMakeCheckCompilerFlagCommonPatterns.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/CMakeCommonLanguageInclude.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/CMakeExtraGeneratorDetermineCompilerMacrosAndIncludeDirs.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/CMakeFindCodeBlocks.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/CMakeGenericSystem.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/CMakeInitializeConfigs.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/CMakeLanguageInformation.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/CMakeSystemSpecificInformation.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/CMakeSystemSpecificInitialize.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/CheckCSourceCompiles.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/CheckIncludeFile.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/CheckLibraryExists.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/Compiler/AppleClang-C.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/Compiler/AppleClang-CXX.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/Compiler/CMakeCommonCompilerMacros.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/Compiler/Clang.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/Compiler/GNU.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/FindPackageMessage.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/FindProtobuf.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/FindThreads.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/Internal/CMakeCheckCompilerFlag.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/Platform/Apple-AppleClang-C.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/Platform/Apple-AppleClang-CXX.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/Platform/Apple-Clang-C.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/Platform/Apple-Clang-CXX.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/Platform/Apple-Clang.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/Platform/Darwin-Initialize.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/Platform/Darwin.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/Platform/UnixPaths.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/ProcessorCount.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.17/Modules/SelectLibraryConfigurations.cmake" - "../CMakeLists.txt" - "CMakeFiles/3.17.3/CMakeCCompiler.cmake" - "CMakeFiles/3.17.3/CMakeCXXCompiler.cmake" - "CMakeFiles/3.17.3/CMakeSystem.cmake" - ) - -# The corresponding makefile is: -set(CMAKE_MAKEFILE_OUTPUTS - "Makefile" - "CMakeFiles/cmake.check_cache" - ) - -# Byproducts of CMake generate step: -set(CMAKE_MAKEFILE_PRODUCTS - "CMakeFiles/CMakeDirectoryInformation.cmake" - ) - -# Dependency information for all targets: -set(CMAKE_DEPEND_INFO_FILES - "CMakeFiles/compLib_server.dir/DependInfo.cmake" - ) diff --git a/server/cmake-build-debug/CMakeFiles/Makefile2 b/server/cmake-build-debug/CMakeFiles/Makefile2 deleted file mode 100644 index 904cb34..0000000 --- a/server/cmake-build-debug/CMakeFiles/Makefile2 +++ /dev/null @@ -1,126 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Unix Makefiles" Generator, CMake Version 3.17 - -# Default target executed when no arguments are given to make. -default_target: all - -.PHONY : default_target - -#============================================================================= -# Special targets provided by cmake. - -# Disable implicit rules so canonical targets will work. -.SUFFIXES: - - -# Disable VCS-based implicit rules. -% : %,v - - -# Disable VCS-based implicit rules. -% : RCS/% - - -# Disable VCS-based implicit rules. -% : RCS/%,v - - -# Disable VCS-based implicit rules. -% : SCCS/s.% - - -# Disable VCS-based implicit rules. -% : s.% - - -.SUFFIXES: .hpux_make_needs_suffix_list - - -# Command-line flag to silence nested $(MAKE). -$(VERBOSE)MAKESILENT = -s - -# Suppress display of executed commands. -$(VERBOSE).SILENT: - - -# A target that is always out of date. -cmake_force: - -.PHONY : cmake_force - -#============================================================================= -# Set environment variables for the build. - -# The shell in which to execute make rules. -SHELL = /bin/sh - -# The CMake executable. -CMAKE_COMMAND = /Applications/CLion.app/Contents/bin/cmake/mac/bin/cmake - -# The command to remove a file. -RM = /Applications/CLion.app/Contents/bin/cmake/mac/bin/cmake -E rm -f - -# Escaping for special characters. -EQUALS = = - -# The top-level source directory on which CMake was run. -CMAKE_SOURCE_DIR = /Users/konstantinviesure/workspace/compLIB/server - -# The top-level build directory on which CMake was run. -CMAKE_BINARY_DIR = /Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug - -#============================================================================= -# Directory level rules for the build root directory - -# The main recursive "all" target. -all: CMakeFiles/compLib_server.dir/all - -.PHONY : all - -# The main recursive "preinstall" target. -preinstall: - -.PHONY : preinstall - -# The main recursive "clean" target. -clean: CMakeFiles/compLib_server.dir/clean - -.PHONY : clean - -#============================================================================= -# Target rules for target CMakeFiles/compLib_server.dir - -# All Build rule for target. -CMakeFiles/compLib_server.dir/all: - $(MAKE) $(MAKESILENT) -f CMakeFiles/compLib_server.dir/build.make CMakeFiles/compLib_server.dir/depend - $(MAKE) $(MAKESILENT) -f CMakeFiles/compLib_server.dir/build.make CMakeFiles/compLib_server.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CMakeFiles --progress-num=1,2,3,4,5 "Built target compLib_server" -.PHONY : CMakeFiles/compLib_server.dir/all - -# Build rule for subdir invocation for target. -CMakeFiles/compLib_server.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CMakeFiles 5 - $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 CMakeFiles/compLib_server.dir/all - $(CMAKE_COMMAND) -E cmake_progress_start /Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CMakeFiles 0 -.PHONY : CMakeFiles/compLib_server.dir/rule - -# Convenience name for target. -compLib_server: CMakeFiles/compLib_server.dir/rule - -.PHONY : compLib_server - -# clean rule for target. -CMakeFiles/compLib_server.dir/clean: - $(MAKE) $(MAKESILENT) -f CMakeFiles/compLib_server.dir/build.make CMakeFiles/compLib_server.dir/clean -.PHONY : CMakeFiles/compLib_server.dir/clean - -#============================================================================= -# Special targets to cleanup operation of make. - -# Special rule to run CMake to check the build system integrity. -# No rule that depends on this can have commands that come from listfiles -# because they might be regenerated. -cmake_check_build_system: - $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 -.PHONY : cmake_check_build_system - diff --git a/server/cmake-build-debug/CMakeFiles/TargetDirectories.txt b/server/cmake-build-debug/CMakeFiles/TargetDirectories.txt deleted file mode 100644 index 1dbc010..0000000 --- a/server/cmake-build-debug/CMakeFiles/TargetDirectories.txt +++ /dev/null @@ -1,3 +0,0 @@ -/Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CMakeFiles/rebuild_cache.dir -/Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CMakeFiles/edit_cache.dir -/Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CMakeFiles/compLib_server.dir diff --git a/server/cmake-build-debug/CMakeFiles/clion-environment.txt b/server/cmake-build-debug/CMakeFiles/clion-environment.txt deleted file mode 100644 index 270d93c..0000000 --- a/server/cmake-build-debug/CMakeFiles/clion-environment.txt +++ /dev/null @@ -1,3 +0,0 @@ -ToolSet: 1.0 (local)Options: - -Options: \ No newline at end of file diff --git a/server/cmake-build-debug/CMakeFiles/clion-log.txt b/server/cmake-build-debug/CMakeFiles/clion-log.txt deleted file mode 100644 index 95a55a6..0000000 --- a/server/cmake-build-debug/CMakeFiles/clion-log.txt +++ /dev/null @@ -1,4 +0,0 @@ -/Applications/CLion.app/Contents/bin/cmake/mac/bin/cmake -DCMAKE_BUILD_TYPE=Debug -G "CodeBlocks - Unix Makefiles" /Users/konstantinviesure/workspace/compLIB/server --- Configuring done --- Generating done --- Build files have been written to: /Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug diff --git a/server/cmake-build-debug/CMakeFiles/cmake.check_cache b/server/cmake-build-debug/CMakeFiles/cmake.check_cache deleted file mode 100644 index 3dccd73..0000000 --- a/server/cmake-build-debug/CMakeFiles/cmake.check_cache +++ /dev/null @@ -1 +0,0 @@ -# This file is generated by cmake for dependency checking of the CMakeCache.txt file diff --git a/server/cmake-build-debug/CMakeFiles/compLib_server.dir/CXX.includecache b/server/cmake-build-debug/CMakeFiles/compLib_server.dir/CXX.includecache deleted file mode 100644 index dec4c63..0000000 --- a/server/cmake-build-debug/CMakeFiles/compLib_server.dir/CXX.includecache +++ /dev/null @@ -1,958 +0,0 @@ -#IncludeRegexLine: ^[ ]*[#%][ ]*(include|import)[ ]*[<"]([^">]+)([">]) - -#IncludeRegexScan: ^.*$ - -#IncludeRegexComplain: ^$ - -#IncludeRegexTransform: - -../include/errorMessages.hpp - -../include/messageBuilder.hpp -CompLib.pb.h -- - -/Users/konstantinviesure/workspace/compLIB/server/src/main.cpp -iostream -- -CompLib.pb.h -- -sys/un.h -- -sys/socket.h -- -zconf.h -- -include/messageBuilder.hpp -/Users/konstantinviesure/workspace/compLIB/server/src/include/messageBuilder.hpp -include/errorMessages.hpp -/Users/konstantinviesure/workspace/compLIB/server/src/include/errorMessages.hpp - -/usr/local/include/google/protobuf/any.h -string -- -google/protobuf/stubs/common.h -- -google/protobuf/arenastring.h -- -google/protobuf/message_lite.h -- -google/protobuf/port_def.inc -- -google/protobuf/port_undef.inc -- - -/usr/local/include/google/protobuf/arena.h -limits -- -type_traits -- -utility -- -exception -- -typeinfo -- -typeinfo -- -type_traits -- -google/protobuf/arena_impl.h -- -google/protobuf/port.h -- -google/protobuf/port_def.inc -- -google/protobuf/port_undef.inc -- - -/usr/local/include/google/protobuf/arena_impl.h -atomic -- -limits -- -typeinfo -- -google/protobuf/stubs/common.h -- -google/protobuf/stubs/logging.h -- -sanitizer/asan_interface.h -- -google/protobuf/port_def.inc -- -google/protobuf/port_undef.inc -- - -/usr/local/include/google/protobuf/arenastring.h -string -- -type_traits -- -utility -- -google/protobuf/stubs/logging.h -- -google/protobuf/stubs/common.h -- -google/protobuf/arena.h -- -google/protobuf/port.h -- -google/protobuf/port_def.inc -- -google/protobuf/port_undef.inc -- - -/usr/local/include/google/protobuf/descriptor.h -atomic -- -map -- -memory -- -set -- -string -- -vector -- -google/protobuf/stubs/common.h -- -google/protobuf/stubs/logging.h -- -google/protobuf/stubs/mutex.h -- -google/protobuf/stubs/once.h -- -google/protobuf/port.h -- -google/protobuf/port_def.inc -- -google/protobuf/port_undef.inc -- - -/usr/local/include/google/protobuf/explicitly_constructed.h -stdint.h -- -utility -- -google/protobuf/stubs/logging.h -- -google/protobuf/stubs/common.h -- -google/protobuf/port_def.inc -- -google/protobuf/port_undef.inc -- - -/usr/local/include/google/protobuf/extension_set.h -algorithm -- -cassert -- -map -- -string -- -utility -- -vector -- -google/protobuf/stubs/common.h -- -google/protobuf/stubs/logging.h -- -google/protobuf/parse_context.h -- -google/protobuf/io/coded_stream.h -- -google/protobuf/port.h -- -google/protobuf/repeated_field.h -- -google/protobuf/wire_format_lite.h -- -google/protobuf/port_def.inc -- -google/protobuf/port_undef.inc -- - -/usr/local/include/google/protobuf/generated_enum_reflection.h -string -- -google/protobuf/generated_enum_util.h -- -google/protobuf/port.h -- -google/protobuf/stubs/strutil.h -- -google/protobuf/port_def.inc -- -google/protobuf/port_undef.inc -- - -/usr/local/include/google/protobuf/generated_enum_util.h -type_traits -- -google/protobuf/message_lite.h -- -google/protobuf/stubs/strutil.h -- -google/protobuf/port_def.inc -- -google/protobuf/port_undef.inc -- - -/usr/local/include/google/protobuf/generated_message_reflection.h -string -- -vector -- -google/protobuf/stubs/casts.h -- -google/protobuf/stubs/common.h -- -google/protobuf/descriptor.h -- -google/protobuf/generated_enum_reflection.h -- -google/protobuf/stubs/once.h -- -google/protobuf/port.h -- -google/protobuf/unknown_field_set.h -- -google/protobuf/port_def.inc -- -google/protobuf/port_undef.inc -- - -/usr/local/include/google/protobuf/generated_message_table_driven.h -google/protobuf/map.h -- -google/protobuf/map_entry_lite.h -- -google/protobuf/map_field_lite.h -- -google/protobuf/message_lite.h -- -google/protobuf/wire_format_lite.h -- -google/protobuf/port_def.inc -- -google/protobuf/port_undef.inc -- - -/usr/local/include/google/protobuf/generated_message_util.h -assert.h -- -atomic -- -climits -- -string -- -vector -- -google/protobuf/stubs/common.h -- -google/protobuf/any.h -- -google/protobuf/has_bits.h -- -google/protobuf/implicit_weak_message.h -- -google/protobuf/message_lite.h -- -google/protobuf/stubs/once.h -- -google/protobuf/port.h -- -google/protobuf/repeated_field.h -- -google/protobuf/wire_format_lite.h -- -google/protobuf/stubs/strutil.h -- -google/protobuf/stubs/casts.h -- -google/protobuf/port_def.inc -- -google/protobuf/port_undef.inc -- - -/usr/local/include/google/protobuf/has_bits.h -google/protobuf/stubs/common.h -- -google/protobuf/port.h -- -google/protobuf/port_def.inc -- -google/protobuf/port_undef.inc -- - -/usr/local/include/google/protobuf/implicit_weak_message.h -string -- -google/protobuf/io/coded_stream.h -- -google/protobuf/arena.h -- -google/protobuf/message_lite.h -- -google/protobuf/repeated_field.h -- -google/protobuf/port_def.inc -- -google/protobuf/port_undef.inc -- - -/usr/local/include/google/protobuf/inlined_string_field.h -string -- -utility -- -google/protobuf/stubs/logging.h -- -google/protobuf/stubs/common.h -- -google/protobuf/arenastring.h -- -google/protobuf/message_lite.h -- -google/protobuf/port.h -- -google/protobuf/stubs/strutil.h -- -google/protobuf/port_def.inc -- -google/protobuf/port_undef.inc -- - -/usr/local/include/google/protobuf/io/coded_stream.h -assert.h -- -atomic -- -climits -- -cstddef -- -cstring -- -limits -- -string -- -type_traits -- -utility -- -machine/endian.h -- -sys/endian.h -- -sys/isa_defs.h -- -sys/machine.h -- -endian.h -- -google/protobuf/stubs/common.h -- -google/protobuf/stubs/logging.h -- -google/protobuf/stubs/strutil.h -- -google/protobuf/port.h -- -google/protobuf/stubs/port.h -- -google/protobuf/port_def.inc -- -google/protobuf/port_undef.inc -- - -/usr/local/include/google/protobuf/io/zero_copy_stream.h -string -- -google/protobuf/stubs/common.h -- -google/protobuf/port_def.inc -- -google/protobuf/port_undef.inc -- - -/usr/local/include/google/protobuf/io/zero_copy_stream_impl_lite.h -iosfwd -- -memory -- -string -- -google/protobuf/stubs/callback.h -- -google/protobuf/stubs/common.h -- -google/protobuf/io/zero_copy_stream.h -- -google/protobuf/stubs/stl_util.h -- -google/protobuf/port_def.inc -- -google/protobuf/port_undef.inc -- - -/usr/local/include/google/protobuf/map.h -functional -- -initializer_list -- -iterator -- -limits -- -map -- -string -- -type_traits -- -utility -- -string_view -- -mach/mach_time.h -- -google/protobuf/stubs/common.h -- -google/protobuf/arena.h -- -google/protobuf/generated_enum_util.h -- -google/protobuf/map_type_handler.h -- -google/protobuf/stubs/hash.h -- -google/protobuf/port_def.inc -- -google/protobuf/port_undef.inc -- - -/usr/local/include/google/protobuf/map_entry_lite.h -assert.h -- -string -- -google/protobuf/stubs/casts.h -- -google/protobuf/parse_context.h -- -google/protobuf/io/coded_stream.h -- -google/protobuf/arena.h -- -google/protobuf/arenastring.h -- -google/protobuf/generated_message_util.h -- -google/protobuf/map.h -- -google/protobuf/map_type_handler.h -- -google/protobuf/port.h -- -google/protobuf/wire_format_lite.h -- -google/protobuf/port_def.inc -- -google/protobuf/port_undef.inc -- - -/usr/local/include/google/protobuf/map_field_lite.h -type_traits -- -google/protobuf/parse_context.h -- -google/protobuf/io/coded_stream.h -- -google/protobuf/map.h -- -google/protobuf/map_entry_lite.h -- -google/protobuf/port.h -- -google/protobuf/wire_format_lite.h -- -google/protobuf/port_def.inc -- -google/protobuf/port_undef.inc -- - -/usr/local/include/google/protobuf/map_type_handler.h -google/protobuf/parse_context.h -- -google/protobuf/io/coded_stream.h -- -google/protobuf/arena.h -- -google/protobuf/wire_format_lite.h -- - -/usr/local/include/google/protobuf/message.h -iosfwd -- -string -- -type_traits -- -vector -- -google/protobuf/stubs/casts.h -- -google/protobuf/stubs/common.h -- -google/protobuf/arena.h -- -google/protobuf/descriptor.h -- -google/protobuf/generated_message_reflection.h -- -google/protobuf/generated_message_util.h -- -google/protobuf/message_lite.h -- -google/protobuf/port.h -- -google/protobuf/port_def.inc -- -google/protobuf/port_undef.inc -- - -/usr/local/include/google/protobuf/message_lite.h -climits -- -string -- -google/protobuf/stubs/common.h -- -google/protobuf/stubs/logging.h -- -google/protobuf/io/coded_stream.h -- -google/protobuf/arena.h -- -google/protobuf/explicitly_constructed.h -- -google/protobuf/metadata_lite.h -- -google/protobuf/stubs/once.h -- -google/protobuf/port.h -- -google/protobuf/stubs/strutil.h -- -google/protobuf/port_def.inc -- -google/protobuf/port_undef.inc -- - -/usr/local/include/google/protobuf/metadata_lite.h -string -- -google/protobuf/stubs/common.h -- -google/protobuf/arena.h -- -google/protobuf/port.h -- -google/protobuf/port_def.inc -- -google/protobuf/port_undef.inc -- - -/usr/local/include/google/protobuf/parse_context.h -cstdint -- -cstring -- -string -- -google/protobuf/io/coded_stream.h -- -google/protobuf/io/zero_copy_stream.h -- -google/protobuf/arena.h -- -google/protobuf/arenastring.h -- -google/protobuf/implicit_weak_message.h -- -google/protobuf/inlined_string_field.h -- -google/protobuf/metadata_lite.h -- -google/protobuf/port.h -- -google/protobuf/repeated_field.h -- -google/protobuf/wire_format_lite.h -- -google/protobuf/stubs/strutil.h -- -google/protobuf/port_def.inc -- -google/protobuf/port_undef.inc -- - -/usr/local/include/google/protobuf/port.h - -/usr/local/include/google/protobuf/port_def.inc - -/usr/local/include/google/protobuf/port_undef.inc - -/usr/local/include/google/protobuf/repeated_field.h -utility -- -algorithm -- -iterator -- -limits -- -string -- -type_traits -- -google/protobuf/stubs/logging.h -- -google/protobuf/stubs/common.h -- -google/protobuf/repeated_ptr_field.h -- -google/protobuf/arena.h -- -google/protobuf/message_lite.h -- -google/protobuf/port.h -- -google/protobuf/port_def.inc -- -google/protobuf/port_undef.inc -- - -/usr/local/include/google/protobuf/repeated_ptr_field.h -utility -- -algorithm -- -iterator -- -limits -- -string -- -type_traits -- -google/protobuf/stubs/logging.h -- -google/protobuf/stubs/common.h -- -google/protobuf/arena.h -- -google/protobuf/message_lite.h -- -google/protobuf/port.h -- -google/protobuf/port_def.inc -- -google/protobuf/port_undef.inc -- - -/usr/local/include/google/protobuf/stubs/callback.h -type_traits -- -google/protobuf/stubs/macros.h -- -google/protobuf/port_def.inc -- -google/protobuf/port_undef.inc -- - -/usr/local/include/google/protobuf/stubs/casts.h -google/protobuf/stubs/common.h -- -google/protobuf/port_def.inc -- -type_traits -- -google/protobuf/port_undef.inc -- - -/usr/local/include/google/protobuf/stubs/common.h -algorithm -- -iostream -- -map -- -memory -- -set -- -string -- -vector -- -google/protobuf/stubs/macros.h -- -google/protobuf/stubs/platform_macros.h -- -google/protobuf/stubs/port.h -- -google/protobuf/stubs/stringpiece.h -- -exception -- -TargetConditionals.h -- -pthread.h -- -google/protobuf/port_def.inc -- -google/protobuf/port_undef.inc -- - -/usr/local/include/google/protobuf/stubs/hash.h -cstring -- -string -- -unordered_map -- -unordered_set -- - -/usr/local/include/google/protobuf/stubs/logging.h -google/protobuf/stubs/macros.h -- -google/protobuf/stubs/port.h -- -google/protobuf/stubs/status.h -- -google/protobuf/stubs/stringpiece.h -- -google/protobuf/port_def.inc -- -google/protobuf/port_undef.inc -- - -/usr/local/include/google/protobuf/stubs/macros.h - -/usr/local/include/google/protobuf/stubs/mutex.h -mutex -- -windows.h -- -google/protobuf/stubs/macros.h -- -google/protobuf/port_def.inc -- -google/protobuf/port_undef.inc -- - -/usr/local/include/google/protobuf/stubs/once.h -mutex -- -utility -- -google/protobuf/port_def.inc -- -google/protobuf/port_undef.inc -- - -/usr/local/include/google/protobuf/stubs/platform_macros.h -Availability.h -- -TargetConditionals.h -- - -/usr/local/include/google/protobuf/stubs/port.h -assert.h -- -cstdint -- -stdlib.h -- -cstddef -- -string -- -string.h -- -google/protobuf/stubs/platform_macros.h -- -google/protobuf/port_def.inc -- -machine/endian.h -- -sys/endian.h -- -sys/isa_defs.h -- -sys/machine.h -- -endian.h -- -stdlib.h -- -intrin.h -- -libkern/OSByteOrder.h -- -byteswap.h -- -google/protobuf/port_undef.inc -- - -/usr/local/include/google/protobuf/stubs/status.h -string -- -google/protobuf/stubs/stringpiece.h -- -google/protobuf/port_def.inc -- -google/protobuf/port_undef.inc -- - -/usr/local/include/google/protobuf/stubs/stl_util.h -google/protobuf/stubs/common.h -- -algorithm -- - -/usr/local/include/google/protobuf/stubs/stringpiece.h -assert.h -- -stddef.h -- -string.h -- -iosfwd -- -limits -- -string -- -string_view -- -google/protobuf/stubs/hash.h -- -google/protobuf/port_def.inc -- -google/protobuf/port_undef.inc -- - -/usr/local/include/google/protobuf/stubs/strutil.h -google/protobuf/stubs/common.h -- -google/protobuf/stubs/stringpiece.h -- -stdlib.h -- -cstring -- -google/protobuf/port_def.inc -- -vector -- -google/protobuf/port_undef.inc -- - -/usr/local/include/google/protobuf/unknown_field_set.h -assert.h -- -string -- -vector -- -google/protobuf/stubs/common.h -- -google/protobuf/stubs/logging.h -- -google/protobuf/parse_context.h -- -google/protobuf/io/coded_stream.h -- -google/protobuf/io/zero_copy_stream_impl_lite.h -- -google/protobuf/message_lite.h -- -google/protobuf/port.h -- -google/protobuf/port_def.inc -- -google/protobuf/port_undef.inc -- - -/usr/local/include/google/protobuf/wire_format_lite.h -string -- -google/protobuf/stubs/common.h -- -google/protobuf/stubs/logging.h -- -google/protobuf/io/coded_stream.h -- -google/protobuf/arenastring.h -- -google/protobuf/message_lite.h -- -google/protobuf/port.h -- -google/protobuf/repeated_field.h -- -google/protobuf/stubs/casts.h -- -google/protobuf/port_def.inc -- -google/protobuf/port_undef.inc -- - -CompLib.pb.h -limits -- -string -- -google/protobuf/port_def.inc -- -google/protobuf/port_undef.inc -- -google/protobuf/io/coded_stream.h -- -google/protobuf/arena.h -- -google/protobuf/arenastring.h -- -google/protobuf/generated_message_table_driven.h -- -google/protobuf/generated_message_util.h -- -google/protobuf/metadata_lite.h -- -google/protobuf/generated_message_reflection.h -- -google/protobuf/message.h -- -google/protobuf/repeated_field.h -- -google/protobuf/extension_set.h -- -google/protobuf/unknown_field_set.h -- -google/protobuf/port_def.inc -- -google/protobuf/port_undef.inc -- - diff --git a/server/cmake-build-debug/CMakeFiles/compLib_server.dir/DependInfo.cmake b/server/cmake-build-debug/CMakeFiles/compLib_server.dir/DependInfo.cmake deleted file mode 100644 index 42c030b..0000000 --- a/server/cmake-build-debug/CMakeFiles/compLib_server.dir/DependInfo.cmake +++ /dev/null @@ -1,32 +0,0 @@ -# The set of languages for which implicit dependencies are needed: -set(CMAKE_DEPENDS_LANGUAGES - "CXX" - ) -# The set of files for implicit dependencies of each language: -set(CMAKE_DEPENDS_CHECK_CXX - "/Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CompLib.pb.cc" "/Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CMakeFiles/compLib_server.dir/CompLib.pb.cc.o" - "/Users/konstantinviesure/workspace/compLIB/server/src/Spi.cpp" "/Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CMakeFiles/compLib_server.dir/src/Spi.cpp.o" - "/Users/konstantinviesure/workspace/compLIB/server/src/main.cpp" "/Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CMakeFiles/compLib_server.dir/src/main.cpp.o" - ) -set(CMAKE_CXX_COMPILER_ID "AppleClang") - -# The include file search paths: -set(CMAKE_CXX_TARGET_INCLUDE_PATH - "../third_party/asio" - "." - "../" - "/usr/local/include" - ) - -# Pairs of files generated by the same build rule. -set(CMAKE_MULTIPLE_OUTPUT_PAIRS - "/Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CompLib.pb.cc" "/Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CompLib.pb.h" - ) - - -# Targets to which this target links. -set(CMAKE_TARGET_LINKED_INFO_FILES - ) - -# Fortran module output directory. -set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/server/cmake-build-debug/CMakeFiles/compLib_server.dir/build.make b/server/cmake-build-debug/CMakeFiles/compLib_server.dir/build.make deleted file mode 100644 index e9f1ff2..0000000 --- a/server/cmake-build-debug/CMakeFiles/compLib_server.dir/build.make +++ /dev/null @@ -1,158 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Unix Makefiles" Generator, CMake Version 3.17 - -# Delete rule output on recipe failure. -.DELETE_ON_ERROR: - - -#============================================================================= -# Special targets provided by cmake. - -# Disable implicit rules so canonical targets will work. -.SUFFIXES: - - -# Disable VCS-based implicit rules. -% : %,v - - -# Disable VCS-based implicit rules. -% : RCS/% - - -# Disable VCS-based implicit rules. -% : RCS/%,v - - -# Disable VCS-based implicit rules. -% : SCCS/s.% - - -# Disable VCS-based implicit rules. -% : s.% - - -.SUFFIXES: .hpux_make_needs_suffix_list - - -# Command-line flag to silence nested $(MAKE). -$(VERBOSE)MAKESILENT = -s - -# Suppress display of executed commands. -$(VERBOSE).SILENT: - - -# A target that is always out of date. -cmake_force: - -.PHONY : cmake_force - -#============================================================================= -# Set environment variables for the build. - -# The shell in which to execute make rules. -SHELL = /bin/sh - -# The CMake executable. -CMAKE_COMMAND = /Applications/CLion.app/Contents/bin/cmake/mac/bin/cmake - -# The command to remove a file. -RM = /Applications/CLion.app/Contents/bin/cmake/mac/bin/cmake -E rm -f - -# Escaping for special characters. -EQUALS = = - -# The top-level source directory on which CMake was run. -CMAKE_SOURCE_DIR = /Users/konstantinviesure/workspace/compLIB/server - -# The top-level build directory on which CMake was run. -CMAKE_BINARY_DIR = /Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug - -# Include any dependencies generated for this target. -include CMakeFiles/compLib_server.dir/depend.make - -# Include the progress variables for this target. -include CMakeFiles/compLib_server.dir/progress.make - -# Include the compile flags for this target's objects. -include CMakeFiles/compLib_server.dir/flags.make - -CompLib.pb.h: ../protos/CompLib.proto -CompLib.pb.h: /usr/local/bin/protoc - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --blue --bold --progress-dir=/Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Running cpp protocol buffer compiler on protos/CompLib.proto" - /usr/local/bin/protoc --cpp_out /Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug -I /Users/konstantinviesure/workspace/compLIB/server/protos /Users/konstantinviesure/workspace/compLIB/server/protos/CompLib.proto - -CompLib.pb.cc: CompLib.pb.h - @$(CMAKE_COMMAND) -E touch_nocreate CompLib.pb.cc - -CMakeFiles/compLib_server.dir/src/main.cpp.o: CMakeFiles/compLib_server.dir/flags.make -CMakeFiles/compLib_server.dir/src/main.cpp.o: ../src/main.cpp - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Building CXX object CMakeFiles/compLib_server.dir/src/main.cpp.o" - /Library/Developer/CommandLineTools/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/compLib_server.dir/src/main.cpp.o -c /Users/konstantinviesure/workspace/compLIB/server/src/main.cpp - -CMakeFiles/compLib_server.dir/src/main.cpp.i: cmake_force - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/compLib_server.dir/src/main.cpp.i" - /Library/Developer/CommandLineTools/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /Users/konstantinviesure/workspace/compLIB/server/src/main.cpp > CMakeFiles/compLib_server.dir/src/main.cpp.i - -CMakeFiles/compLib_server.dir/src/main.cpp.s: cmake_force - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/compLib_server.dir/src/main.cpp.s" - /Library/Developer/CommandLineTools/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /Users/konstantinviesure/workspace/compLIB/server/src/main.cpp -o CMakeFiles/compLib_server.dir/src/main.cpp.s - -CMakeFiles/compLib_server.dir/src/Spi.cpp.o: CMakeFiles/compLib_server.dir/flags.make -CMakeFiles/compLib_server.dir/src/Spi.cpp.o: ../src/Spi.cpp - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_3) "Building CXX object CMakeFiles/compLib_server.dir/src/Spi.cpp.o" - /Library/Developer/CommandLineTools/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/compLib_server.dir/src/Spi.cpp.o -c /Users/konstantinviesure/workspace/compLIB/server/src/Spi.cpp - -CMakeFiles/compLib_server.dir/src/Spi.cpp.i: cmake_force - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/compLib_server.dir/src/Spi.cpp.i" - /Library/Developer/CommandLineTools/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /Users/konstantinviesure/workspace/compLIB/server/src/Spi.cpp > CMakeFiles/compLib_server.dir/src/Spi.cpp.i - -CMakeFiles/compLib_server.dir/src/Spi.cpp.s: cmake_force - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/compLib_server.dir/src/Spi.cpp.s" - /Library/Developer/CommandLineTools/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /Users/konstantinviesure/workspace/compLIB/server/src/Spi.cpp -o CMakeFiles/compLib_server.dir/src/Spi.cpp.s - -CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: CMakeFiles/compLib_server.dir/flags.make -CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: CompLib.pb.cc - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_4) "Building CXX object CMakeFiles/compLib_server.dir/CompLib.pb.cc.o" - /Library/Developer/CommandLineTools/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/compLib_server.dir/CompLib.pb.cc.o -c /Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CompLib.pb.cc - -CMakeFiles/compLib_server.dir/CompLib.pb.cc.i: cmake_force - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/compLib_server.dir/CompLib.pb.cc.i" - /Library/Developer/CommandLineTools/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CompLib.pb.cc > CMakeFiles/compLib_server.dir/CompLib.pb.cc.i - -CMakeFiles/compLib_server.dir/CompLib.pb.cc.s: cmake_force - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/compLib_server.dir/CompLib.pb.cc.s" - /Library/Developer/CommandLineTools/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CompLib.pb.cc -o CMakeFiles/compLib_server.dir/CompLib.pb.cc.s - -# Object files for target compLib_server -compLib_server_OBJECTS = \ -"CMakeFiles/compLib_server.dir/src/main.cpp.o" \ -"CMakeFiles/compLib_server.dir/src/Spi.cpp.o" \ -"CMakeFiles/compLib_server.dir/CompLib.pb.cc.o" - -# External object files for target compLib_server -compLib_server_EXTERNAL_OBJECTS = - -compLib_server: CMakeFiles/compLib_server.dir/src/main.cpp.o -compLib_server: CMakeFiles/compLib_server.dir/src/Spi.cpp.o -compLib_server: CMakeFiles/compLib_server.dir/CompLib.pb.cc.o -compLib_server: CMakeFiles/compLib_server.dir/build.make -compLib_server: /usr/local/lib/libprotobuf.dylib -compLib_server: CMakeFiles/compLib_server.dir/link.txt - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_5) "Linking CXX executable compLib_server" - $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/compLib_server.dir/link.txt --verbose=$(VERBOSE) - -# Rule to build all files generated by this target. -CMakeFiles/compLib_server.dir/build: compLib_server - -.PHONY : CMakeFiles/compLib_server.dir/build - -CMakeFiles/compLib_server.dir/clean: - $(CMAKE_COMMAND) -P CMakeFiles/compLib_server.dir/cmake_clean.cmake -.PHONY : CMakeFiles/compLib_server.dir/clean - -CMakeFiles/compLib_server.dir/depend: CompLib.pb.h -CMakeFiles/compLib_server.dir/depend: CompLib.pb.cc - cd /Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /Users/konstantinviesure/workspace/compLIB/server /Users/konstantinviesure/workspace/compLIB/server /Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug /Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug /Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CMakeFiles/compLib_server.dir/DependInfo.cmake --color=$(COLOR) -.PHONY : CMakeFiles/compLib_server.dir/depend - diff --git a/server/cmake-build-debug/CMakeFiles/compLib_server.dir/cmake_clean.cmake b/server/cmake-build-debug/CMakeFiles/compLib_server.dir/cmake_clean.cmake deleted file mode 100644 index f78f2b6..0000000 --- a/server/cmake-build-debug/CMakeFiles/compLib_server.dir/cmake_clean.cmake +++ /dev/null @@ -1,14 +0,0 @@ -file(REMOVE_RECURSE - "CMakeFiles/compLib_server.dir/CompLib.pb.cc.o" - "CMakeFiles/compLib_server.dir/src/Spi.cpp.o" - "CMakeFiles/compLib_server.dir/src/main.cpp.o" - "CompLib.pb.cc" - "CompLib.pb.h" - "compLib_server" - "compLib_server.pdb" -) - -# Per-language clean rules from dependency scanning. -foreach(lang CXX) - include(CMakeFiles/compLib_server.dir/cmake_clean_${lang}.cmake OPTIONAL) -endforeach() diff --git a/server/cmake-build-debug/CMakeFiles/compLib_server.dir/depend.internal b/server/cmake-build-debug/CMakeFiles/compLib_server.dir/depend.internal deleted file mode 100644 index bd43152..0000000 --- a/server/cmake-build-debug/CMakeFiles/compLib_server.dir/depend.internal +++ /dev/null @@ -1,107 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Unix Makefiles" Generator, CMake Version 3.17 - -CMakeFiles/compLib_server.dir/CompLib.pb.cc.o - /Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CompLib.pb.cc - /Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CompLib.pb.h - /usr/local/include/google/protobuf/any.h - /usr/local/include/google/protobuf/arena.h - /usr/local/include/google/protobuf/arena_impl.h - /usr/local/include/google/protobuf/arenastring.h - /usr/local/include/google/protobuf/descriptor.h - /usr/local/include/google/protobuf/explicitly_constructed.h - /usr/local/include/google/protobuf/extension_set.h - /usr/local/include/google/protobuf/generated_enum_reflection.h - /usr/local/include/google/protobuf/generated_enum_util.h - /usr/local/include/google/protobuf/generated_message_reflection.h - /usr/local/include/google/protobuf/generated_message_table_driven.h - /usr/local/include/google/protobuf/generated_message_util.h - /usr/local/include/google/protobuf/has_bits.h - /usr/local/include/google/protobuf/implicit_weak_message.h - /usr/local/include/google/protobuf/inlined_string_field.h - /usr/local/include/google/protobuf/io/coded_stream.h - /usr/local/include/google/protobuf/io/zero_copy_stream.h - /usr/local/include/google/protobuf/io/zero_copy_stream_impl_lite.h - /usr/local/include/google/protobuf/map.h - /usr/local/include/google/protobuf/map_entry_lite.h - /usr/local/include/google/protobuf/map_field_lite.h - /usr/local/include/google/protobuf/map_type_handler.h - /usr/local/include/google/protobuf/message.h - /usr/local/include/google/protobuf/message_lite.h - /usr/local/include/google/protobuf/metadata_lite.h - /usr/local/include/google/protobuf/parse_context.h - /usr/local/include/google/protobuf/port.h - /usr/local/include/google/protobuf/port_def.inc - /usr/local/include/google/protobuf/port_undef.inc - /usr/local/include/google/protobuf/reflection_ops.h - /usr/local/include/google/protobuf/repeated_field.h - /usr/local/include/google/protobuf/repeated_ptr_field.h - /usr/local/include/google/protobuf/stubs/callback.h - /usr/local/include/google/protobuf/stubs/casts.h - /usr/local/include/google/protobuf/stubs/common.h - /usr/local/include/google/protobuf/stubs/hash.h - /usr/local/include/google/protobuf/stubs/logging.h - /usr/local/include/google/protobuf/stubs/macros.h - /usr/local/include/google/protobuf/stubs/mutex.h - /usr/local/include/google/protobuf/stubs/once.h - /usr/local/include/google/protobuf/stubs/platform_macros.h - /usr/local/include/google/protobuf/stubs/port.h - /usr/local/include/google/protobuf/stubs/status.h - /usr/local/include/google/protobuf/stubs/stl_util.h - /usr/local/include/google/protobuf/stubs/stringpiece.h - /usr/local/include/google/protobuf/stubs/strutil.h - /usr/local/include/google/protobuf/unknown_field_set.h - /usr/local/include/google/protobuf/wire_format.h - /usr/local/include/google/protobuf/wire_format_lite.h -CMakeFiles/compLib_server.dir/src/main.cpp.o - ../include/errorMessages.hpp - ../include/messageBuilder.hpp - /Users/konstantinviesure/workspace/compLIB/server/src/main.cpp - /usr/local/include/google/protobuf/any.h - /usr/local/include/google/protobuf/arena.h - /usr/local/include/google/protobuf/arena_impl.h - /usr/local/include/google/protobuf/arenastring.h - /usr/local/include/google/protobuf/descriptor.h - /usr/local/include/google/protobuf/explicitly_constructed.h - /usr/local/include/google/protobuf/extension_set.h - /usr/local/include/google/protobuf/generated_enum_reflection.h - /usr/local/include/google/protobuf/generated_enum_util.h - /usr/local/include/google/protobuf/generated_message_reflection.h - /usr/local/include/google/protobuf/generated_message_table_driven.h - /usr/local/include/google/protobuf/generated_message_util.h - /usr/local/include/google/protobuf/has_bits.h - /usr/local/include/google/protobuf/implicit_weak_message.h - /usr/local/include/google/protobuf/inlined_string_field.h - /usr/local/include/google/protobuf/io/coded_stream.h - /usr/local/include/google/protobuf/io/zero_copy_stream.h - /usr/local/include/google/protobuf/io/zero_copy_stream_impl_lite.h - /usr/local/include/google/protobuf/map.h - /usr/local/include/google/protobuf/map_entry_lite.h - /usr/local/include/google/protobuf/map_field_lite.h - /usr/local/include/google/protobuf/map_type_handler.h - /usr/local/include/google/protobuf/message.h - /usr/local/include/google/protobuf/message_lite.h - /usr/local/include/google/protobuf/metadata_lite.h - /usr/local/include/google/protobuf/parse_context.h - /usr/local/include/google/protobuf/port.h - /usr/local/include/google/protobuf/port_def.inc - /usr/local/include/google/protobuf/port_undef.inc - /usr/local/include/google/protobuf/repeated_field.h - /usr/local/include/google/protobuf/repeated_ptr_field.h - /usr/local/include/google/protobuf/stubs/callback.h - /usr/local/include/google/protobuf/stubs/casts.h - /usr/local/include/google/protobuf/stubs/common.h - /usr/local/include/google/protobuf/stubs/hash.h - /usr/local/include/google/protobuf/stubs/logging.h - /usr/local/include/google/protobuf/stubs/macros.h - /usr/local/include/google/protobuf/stubs/mutex.h - /usr/local/include/google/protobuf/stubs/once.h - /usr/local/include/google/protobuf/stubs/platform_macros.h - /usr/local/include/google/protobuf/stubs/port.h - /usr/local/include/google/protobuf/stubs/status.h - /usr/local/include/google/protobuf/stubs/stl_util.h - /usr/local/include/google/protobuf/stubs/stringpiece.h - /usr/local/include/google/protobuf/stubs/strutil.h - /usr/local/include/google/protobuf/unknown_field_set.h - /usr/local/include/google/protobuf/wire_format_lite.h - CompLib.pb.h diff --git a/server/cmake-build-debug/CMakeFiles/compLib_server.dir/depend.make b/server/cmake-build-debug/CMakeFiles/compLib_server.dir/depend.make deleted file mode 100644 index 3d50325..0000000 --- a/server/cmake-build-debug/CMakeFiles/compLib_server.dir/depend.make +++ /dev/null @@ -1,107 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Unix Makefiles" Generator, CMake Version 3.17 - -CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: CompLib.pb.cc -CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: CompLib.pb.h -CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/any.h -CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/arena.h -CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/arena_impl.h -CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/arenastring.h -CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/descriptor.h -CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/explicitly_constructed.h -CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/extension_set.h -CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/generated_enum_reflection.h -CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/generated_enum_util.h -CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/generated_message_reflection.h -CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/generated_message_table_driven.h -CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/generated_message_util.h -CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/has_bits.h -CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/implicit_weak_message.h -CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/inlined_string_field.h -CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/io/coded_stream.h -CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/io/zero_copy_stream.h -CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/io/zero_copy_stream_impl_lite.h -CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/map.h -CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/map_entry_lite.h -CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/map_field_lite.h -CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/map_type_handler.h -CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/message.h -CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/message_lite.h -CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/metadata_lite.h -CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/parse_context.h -CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/port.h -CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/port_def.inc -CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/port_undef.inc -CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/reflection_ops.h -CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/repeated_field.h -CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/repeated_ptr_field.h -CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/stubs/callback.h -CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/stubs/casts.h -CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/stubs/common.h -CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/stubs/hash.h -CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/stubs/logging.h -CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/stubs/macros.h -CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/stubs/mutex.h -CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/stubs/once.h -CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/stubs/platform_macros.h -CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/stubs/port.h -CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/stubs/status.h -CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/stubs/stl_util.h -CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/stubs/stringpiece.h -CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/stubs/strutil.h -CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/unknown_field_set.h -CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/wire_format.h -CMakeFiles/compLib_server.dir/CompLib.pb.cc.o: /usr/local/include/google/protobuf/wire_format_lite.h - -CMakeFiles/compLib_server.dir/src/main.cpp.o: ../include/errorMessages.hpp -CMakeFiles/compLib_server.dir/src/main.cpp.o: ../include/messageBuilder.hpp -CMakeFiles/compLib_server.dir/src/main.cpp.o: ../src/main.cpp -CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/any.h -CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/arena.h -CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/arena_impl.h -CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/arenastring.h -CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/descriptor.h -CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/explicitly_constructed.h -CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/extension_set.h -CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/generated_enum_reflection.h -CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/generated_enum_util.h -CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/generated_message_reflection.h -CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/generated_message_table_driven.h -CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/generated_message_util.h -CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/has_bits.h -CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/implicit_weak_message.h -CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/inlined_string_field.h -CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/io/coded_stream.h -CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/io/zero_copy_stream.h -CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/io/zero_copy_stream_impl_lite.h -CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/map.h -CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/map_entry_lite.h -CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/map_field_lite.h -CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/map_type_handler.h -CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/message.h -CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/message_lite.h -CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/metadata_lite.h -CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/parse_context.h -CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/port.h -CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/port_def.inc -CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/port_undef.inc -CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/repeated_field.h -CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/repeated_ptr_field.h -CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/stubs/callback.h -CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/stubs/casts.h -CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/stubs/common.h -CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/stubs/hash.h -CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/stubs/logging.h -CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/stubs/macros.h -CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/stubs/mutex.h -CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/stubs/once.h -CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/stubs/platform_macros.h -CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/stubs/port.h -CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/stubs/status.h -CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/stubs/stl_util.h -CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/stubs/stringpiece.h -CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/stubs/strutil.h -CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/unknown_field_set.h -CMakeFiles/compLib_server.dir/src/main.cpp.o: /usr/local/include/google/protobuf/wire_format_lite.h -CMakeFiles/compLib_server.dir/src/main.cpp.o: CompLib.pb.h - diff --git a/server/cmake-build-debug/CMakeFiles/compLib_server.dir/flags.make b/server/cmake-build-debug/CMakeFiles/compLib_server.dir/flags.make deleted file mode 100644 index b077e13..0000000 --- a/server/cmake-build-debug/CMakeFiles/compLib_server.dir/flags.make +++ /dev/null @@ -1,10 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Unix Makefiles" Generator, CMake Version 3.17 - -# compile CXX with /Library/Developer/CommandLineTools/usr/bin/c++ -CXX_FLAGS = -g -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk -std=gnu++17 - -CXX_DEFINES = - -CXX_INCLUDES = -I/Users/konstantinviesure/workspace/compLIB/server/third_party/asio -I/Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug -I/Users/konstantinviesure/workspace/compLIB/server -I/usr/local/include - diff --git a/server/cmake-build-debug/CMakeFiles/compLib_server.dir/link.txt b/server/cmake-build-debug/CMakeFiles/compLib_server.dir/link.txt deleted file mode 100644 index 2ad5a89..0000000 --- a/server/cmake-build-debug/CMakeFiles/compLib_server.dir/link.txt +++ /dev/null @@ -1 +0,0 @@ -/Library/Developer/CommandLineTools/usr/bin/c++ -g -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk -Wl,-search_paths_first -Wl,-headerpad_max_install_names CMakeFiles/compLib_server.dir/src/main.cpp.o CMakeFiles/compLib_server.dir/src/Spi.cpp.o CMakeFiles/compLib_server.dir/CompLib.pb.cc.o -o compLib_server /usr/local/lib/libprotobuf.dylib diff --git a/server/cmake-build-debug/CMakeFiles/compLib_server.dir/progress.make b/server/cmake-build-debug/CMakeFiles/compLib_server.dir/progress.make deleted file mode 100644 index 33e6bff..0000000 --- a/server/cmake-build-debug/CMakeFiles/compLib_server.dir/progress.make +++ /dev/null @@ -1,6 +0,0 @@ -CMAKE_PROGRESS_1 = 1 -CMAKE_PROGRESS_2 = 2 -CMAKE_PROGRESS_3 = 3 -CMAKE_PROGRESS_4 = 4 -CMAKE_PROGRESS_5 = 5 - diff --git a/server/cmake-build-debug/CMakeFiles/progress.marks b/server/cmake-build-debug/CMakeFiles/progress.marks deleted file mode 100644 index 7ed6ff8..0000000 --- a/server/cmake-build-debug/CMakeFiles/progress.marks +++ /dev/null @@ -1 +0,0 @@ -5 diff --git a/server/cmake-build-debug/CMakeFiles/server.dir/CXX.includecache b/server/cmake-build-debug/CMakeFiles/server.dir/CXX.includecache deleted file mode 100644 index 13eadc2..0000000 --- a/server/cmake-build-debug/CMakeFiles/server.dir/CXX.includecache +++ /dev/null @@ -1,12 +0,0 @@ -#IncludeRegexLine: ^[ ]*[#%][ ]*(include|import)[ ]*[<"]([^">]+)([">]) - -#IncludeRegexScan: ^.*$ - -#IncludeRegexComplain: ^$ - -#IncludeRegexTransform: - -/Users/konstantinviesure/workspace/compLIB/server/src/main.cpp -iostream -- - diff --git a/server/cmake-build-debug/CMakeFiles/server.dir/DependInfo.cmake b/server/cmake-build-debug/CMakeFiles/server.dir/DependInfo.cmake deleted file mode 100644 index 27fe24b..0000000 --- a/server/cmake-build-debug/CMakeFiles/server.dir/DependInfo.cmake +++ /dev/null @@ -1,20 +0,0 @@ -# The set of languages for which implicit dependencies are needed: -set(CMAKE_DEPENDS_LANGUAGES - "CXX" - ) -# The set of files for implicit dependencies of each language: -set(CMAKE_DEPENDS_CHECK_CXX - "/Users/konstantinviesure/workspace/compLIB/server/src/main.cpp" "/Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CMakeFiles/server.dir/src/main.cpp.o" - ) -set(CMAKE_CXX_COMPILER_ID "AppleClang") - -# The include file search paths: -set(CMAKE_CXX_TARGET_INCLUDE_PATH - ) - -# Targets to which this target links. -set(CMAKE_TARGET_LINKED_INFO_FILES - ) - -# Fortran module output directory. -set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/server/cmake-build-debug/CMakeFiles/server.dir/build.make b/server/cmake-build-debug/CMakeFiles/server.dir/build.make deleted file mode 100644 index e5c3fe4..0000000 --- a/server/cmake-build-debug/CMakeFiles/server.dir/build.make +++ /dev/null @@ -1,118 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Unix Makefiles" Generator, CMake Version 3.17 - -# Delete rule output on recipe failure. -.DELETE_ON_ERROR: - - -#============================================================================= -# Special targets provided by cmake. - -# Disable implicit rules so canonical targets will work. -.SUFFIXES: - - -# Disable VCS-based implicit rules. -% : %,v - - -# Disable VCS-based implicit rules. -% : RCS/% - - -# Disable VCS-based implicit rules. -% : RCS/%,v - - -# Disable VCS-based implicit rules. -% : SCCS/s.% - - -# Disable VCS-based implicit rules. -% : s.% - - -.SUFFIXES: .hpux_make_needs_suffix_list - - -# Command-line flag to silence nested $(MAKE). -$(VERBOSE)MAKESILENT = -s - -# Suppress display of executed commands. -$(VERBOSE).SILENT: - - -# A target that is always out of date. -cmake_force: - -.PHONY : cmake_force - -#============================================================================= -# Set environment variables for the build. - -# The shell in which to execute make rules. -SHELL = /bin/sh - -# The CMake executable. -CMAKE_COMMAND = /Applications/CLion.app/Contents/bin/cmake/mac/bin/cmake - -# The command to remove a file. -RM = /Applications/CLion.app/Contents/bin/cmake/mac/bin/cmake -E rm -f - -# Escaping for special characters. -EQUALS = = - -# The top-level source directory on which CMake was run. -CMAKE_SOURCE_DIR = /Users/konstantinviesure/workspace/compLIB/server - -# The top-level build directory on which CMake was run. -CMAKE_BINARY_DIR = /Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug - -# Include any dependencies generated for this target. -include CMakeFiles/server.dir/depend.make - -# Include the progress variables for this target. -include CMakeFiles/server.dir/progress.make - -# Include the compile flags for this target's objects. -include CMakeFiles/server.dir/flags.make - -CMakeFiles/server.dir/src/main.cpp.o: CMakeFiles/server.dir/flags.make -CMakeFiles/server.dir/src/main.cpp.o: ../src/main.cpp - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/server.dir/src/main.cpp.o" - /Library/Developer/CommandLineTools/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/server.dir/src/main.cpp.o -c /Users/konstantinviesure/workspace/compLIB/server/src/main.cpp - -CMakeFiles/server.dir/src/main.cpp.i: cmake_force - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/server.dir/src/main.cpp.i" - /Library/Developer/CommandLineTools/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /Users/konstantinviesure/workspace/compLIB/server/src/main.cpp > CMakeFiles/server.dir/src/main.cpp.i - -CMakeFiles/server.dir/src/main.cpp.s: cmake_force - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/server.dir/src/main.cpp.s" - /Library/Developer/CommandLineTools/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /Users/konstantinviesure/workspace/compLIB/server/src/main.cpp -o CMakeFiles/server.dir/src/main.cpp.s - -# Object files for target server -server_OBJECTS = \ -"CMakeFiles/server.dir/src/main.cpp.o" - -# External object files for target server -server_EXTERNAL_OBJECTS = - -server: CMakeFiles/server.dir/src/main.cpp.o -server: CMakeFiles/server.dir/build.make -server: CMakeFiles/server.dir/link.txt - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable server" - $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/server.dir/link.txt --verbose=$(VERBOSE) - -# Rule to build all files generated by this target. -CMakeFiles/server.dir/build: server - -.PHONY : CMakeFiles/server.dir/build - -CMakeFiles/server.dir/clean: - $(CMAKE_COMMAND) -P CMakeFiles/server.dir/cmake_clean.cmake -.PHONY : CMakeFiles/server.dir/clean - -CMakeFiles/server.dir/depend: - cd /Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /Users/konstantinviesure/workspace/compLIB/server /Users/konstantinviesure/workspace/compLIB/server /Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug /Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug /Users/konstantinviesure/workspace/compLIB/server/cmake-build-debug/CMakeFiles/server.dir/DependInfo.cmake --color=$(COLOR) -.PHONY : CMakeFiles/server.dir/depend - diff --git a/server/cmake-build-debug/CMakeFiles/server.dir/cmake_clean.cmake b/server/cmake-build-debug/CMakeFiles/server.dir/cmake_clean.cmake deleted file mode 100644 index 7c9a8b5..0000000 --- a/server/cmake-build-debug/CMakeFiles/server.dir/cmake_clean.cmake +++ /dev/null @@ -1,10 +0,0 @@ -file(REMOVE_RECURSE - "CMakeFiles/server.dir/src/main.cpp.o" - "server" - "server.pdb" -) - -# Per-language clean rules from dependency scanning. -foreach(lang CXX) - include(CMakeFiles/server.dir/cmake_clean_${lang}.cmake OPTIONAL) -endforeach() diff --git a/server/cmake-build-debug/CMakeFiles/server.dir/depend.internal b/server/cmake-build-debug/CMakeFiles/server.dir/depend.internal deleted file mode 100644 index 6611099..0000000 --- a/server/cmake-build-debug/CMakeFiles/server.dir/depend.internal +++ /dev/null @@ -1,5 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Unix Makefiles" Generator, CMake Version 3.17 - -CMakeFiles/server.dir/src/main.cpp.o - /Users/konstantinviesure/workspace/compLIB/server/src/main.cpp diff --git a/server/cmake-build-debug/CMakeFiles/server.dir/depend.make b/server/cmake-build-debug/CMakeFiles/server.dir/depend.make deleted file mode 100644 index 13b5f16..0000000 --- a/server/cmake-build-debug/CMakeFiles/server.dir/depend.make +++ /dev/null @@ -1,5 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Unix Makefiles" Generator, CMake Version 3.17 - -CMakeFiles/server.dir/src/main.cpp.o: ../src/main.cpp - diff --git a/server/cmake-build-debug/CMakeFiles/server.dir/flags.make b/server/cmake-build-debug/CMakeFiles/server.dir/flags.make deleted file mode 100644 index 8b2adb6..0000000 --- a/server/cmake-build-debug/CMakeFiles/server.dir/flags.make +++ /dev/null @@ -1,10 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Unix Makefiles" Generator, CMake Version 3.17 - -# compile CXX with /Library/Developer/CommandLineTools/usr/bin/c++ -CXX_FLAGS = -g -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk -std=gnu++17 - -CXX_DEFINES = - -CXX_INCLUDES = - diff --git a/server/cmake-build-debug/CMakeFiles/server.dir/link.txt b/server/cmake-build-debug/CMakeFiles/server.dir/link.txt deleted file mode 100644 index ed0c718..0000000 --- a/server/cmake-build-debug/CMakeFiles/server.dir/link.txt +++ /dev/null @@ -1 +0,0 @@ -/Library/Developer/CommandLineTools/usr/bin/c++ -g -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk -Wl,-search_paths_first -Wl,-headerpad_max_install_names CMakeFiles/server.dir/src/main.cpp.o -o server diff --git a/server/cmake-build-debug/CMakeFiles/server.dir/progress.make b/server/cmake-build-debug/CMakeFiles/server.dir/progress.make deleted file mode 100644 index abadeb0..0000000 --- a/server/cmake-build-debug/CMakeFiles/server.dir/progress.make +++ /dev/null @@ -1,3 +0,0 @@ -CMAKE_PROGRESS_1 = 1 -CMAKE_PROGRESS_2 = 2 - diff --git a/server/cmake-build-debug/CompLib.pb.cc b/server/cmake-build-debug/CompLib.pb.cc deleted file mode 100644 index 3fa4db7..0000000 --- a/server/cmake-build-debug/CompLib.pb.cc +++ /dev/null @@ -1,1654 +0,0 @@ -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: CompLib.proto - -#include "CompLib.pb.h" - -#include - -#include -#include -#include -#include -#include -#include -#include -// @@protoc_insertion_point(includes) -#include - -PROTOBUF_PRAGMA_INIT_SEG -namespace CompLib { -constexpr Header::Header( - ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized) - : message_type_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string){} -struct HeaderDefaultTypeInternal { - constexpr HeaderDefaultTypeInternal() - : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {} - ~HeaderDefaultTypeInternal() {} - union { - Header _instance; - }; -}; -PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT HeaderDefaultTypeInternal _Header_default_instance_; -constexpr Status::Status( - ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized) - : error_message_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string) - , successful_(false){} -struct StatusDefaultTypeInternal { - constexpr StatusDefaultTypeInternal() - : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {} - ~StatusDefaultTypeInternal() {} - union { - Status _instance; - }; -}; -PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT StatusDefaultTypeInternal _Status_default_instance_; -constexpr GenericRequest::GenericRequest( - ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized) - : header_(nullptr){} -struct GenericRequestDefaultTypeInternal { - constexpr GenericRequestDefaultTypeInternal() - : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {} - ~GenericRequestDefaultTypeInternal() {} - union { - GenericRequest _instance; - }; -}; -PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT GenericRequestDefaultTypeInternal _GenericRequest_default_instance_; -constexpr GenericResponse::GenericResponse( - ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized) - : header_(nullptr) - , status_(nullptr){} -struct GenericResponseDefaultTypeInternal { - constexpr GenericResponseDefaultTypeInternal() - : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {} - ~GenericResponseDefaultTypeInternal() {} - union { - GenericResponse _instance; - }; -}; -PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT GenericResponseDefaultTypeInternal _GenericResponse_default_instance_; -constexpr ReadSensorsRequest::ReadSensorsRequest( - ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized) - : header_(nullptr){} -struct ReadSensorsRequestDefaultTypeInternal { - constexpr ReadSensorsRequestDefaultTypeInternal() - : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {} - ~ReadSensorsRequestDefaultTypeInternal() {} - union { - ReadSensorsRequest _instance; - }; -}; -PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT ReadSensorsRequestDefaultTypeInternal _ReadSensorsRequest_default_instance_; -constexpr ReadSensorsResponse::ReadSensorsResponse( - ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized) - : header_(nullptr) - , status_(nullptr) - , ir_1_(0u) - , ir_2_(0u) - , ir_3_(0u) - , ir_4_(0u) - , ir_5_(0u){} -struct ReadSensorsResponseDefaultTypeInternal { - constexpr ReadSensorsResponseDefaultTypeInternal() - : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {} - ~ReadSensorsResponseDefaultTypeInternal() {} - union { - ReadSensorsResponse _instance; - }; -}; -PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT ReadSensorsResponseDefaultTypeInternal _ReadSensorsResponse_default_instance_; -} // namespace CompLib -static ::PROTOBUF_NAMESPACE_ID::Metadata file_level_metadata_CompLib_2eproto[6]; -static constexpr ::PROTOBUF_NAMESPACE_ID::EnumDescriptor const** file_level_enum_descriptors_CompLib_2eproto = nullptr; -static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const** file_level_service_descriptors_CompLib_2eproto = nullptr; - -const uint32_t TableStruct_CompLib_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { - ~0u, // no _has_bits_ - PROTOBUF_FIELD_OFFSET(::CompLib::Header, _internal_metadata_), - ~0u, // no _extensions_ - ~0u, // no _oneof_case_ - ~0u, // no _weak_field_map_ - ~0u, // no _inlined_string_donated_ - PROTOBUF_FIELD_OFFSET(::CompLib::Header, message_type_), - ~0u, // no _has_bits_ - PROTOBUF_FIELD_OFFSET(::CompLib::Status, _internal_metadata_), - ~0u, // no _extensions_ - ~0u, // no _oneof_case_ - ~0u, // no _weak_field_map_ - ~0u, // no _inlined_string_donated_ - PROTOBUF_FIELD_OFFSET(::CompLib::Status, successful_), - PROTOBUF_FIELD_OFFSET(::CompLib::Status, error_message_), - ~0u, // no _has_bits_ - PROTOBUF_FIELD_OFFSET(::CompLib::GenericRequest, _internal_metadata_), - ~0u, // no _extensions_ - ~0u, // no _oneof_case_ - ~0u, // no _weak_field_map_ - ~0u, // no _inlined_string_donated_ - PROTOBUF_FIELD_OFFSET(::CompLib::GenericRequest, header_), - ~0u, // no _has_bits_ - PROTOBUF_FIELD_OFFSET(::CompLib::GenericResponse, _internal_metadata_), - ~0u, // no _extensions_ - ~0u, // no _oneof_case_ - ~0u, // no _weak_field_map_ - ~0u, // no _inlined_string_donated_ - PROTOBUF_FIELD_OFFSET(::CompLib::GenericResponse, header_), - PROTOBUF_FIELD_OFFSET(::CompLib::GenericResponse, status_), - ~0u, // no _has_bits_ - PROTOBUF_FIELD_OFFSET(::CompLib::ReadSensorsRequest, _internal_metadata_), - ~0u, // no _extensions_ - ~0u, // no _oneof_case_ - ~0u, // no _weak_field_map_ - ~0u, // no _inlined_string_donated_ - PROTOBUF_FIELD_OFFSET(::CompLib::ReadSensorsRequest, header_), - ~0u, // no _has_bits_ - PROTOBUF_FIELD_OFFSET(::CompLib::ReadSensorsResponse, _internal_metadata_), - ~0u, // no _extensions_ - ~0u, // no _oneof_case_ - ~0u, // no _weak_field_map_ - ~0u, // no _inlined_string_donated_ - PROTOBUF_FIELD_OFFSET(::CompLib::ReadSensorsResponse, header_), - PROTOBUF_FIELD_OFFSET(::CompLib::ReadSensorsResponse, status_), - PROTOBUF_FIELD_OFFSET(::CompLib::ReadSensorsResponse, ir_1_), - PROTOBUF_FIELD_OFFSET(::CompLib::ReadSensorsResponse, ir_2_), - PROTOBUF_FIELD_OFFSET(::CompLib::ReadSensorsResponse, ir_3_), - PROTOBUF_FIELD_OFFSET(::CompLib::ReadSensorsResponse, ir_4_), - PROTOBUF_FIELD_OFFSET(::CompLib::ReadSensorsResponse, ir_5_), -}; -static const ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { - { 0, -1, -1, sizeof(::CompLib::Header)}, - { 7, -1, -1, sizeof(::CompLib::Status)}, - { 15, -1, -1, sizeof(::CompLib::GenericRequest)}, - { 22, -1, -1, sizeof(::CompLib::GenericResponse)}, - { 30, -1, -1, sizeof(::CompLib::ReadSensorsRequest)}, - { 37, -1, -1, sizeof(::CompLib::ReadSensorsResponse)}, -}; - -static ::PROTOBUF_NAMESPACE_ID::Message const * const file_default_instances[] = { - reinterpret_cast(&::CompLib::_Header_default_instance_), - reinterpret_cast(&::CompLib::_Status_default_instance_), - reinterpret_cast(&::CompLib::_GenericRequest_default_instance_), - reinterpret_cast(&::CompLib::_GenericResponse_default_instance_), - reinterpret_cast(&::CompLib::_ReadSensorsRequest_default_instance_), - reinterpret_cast(&::CompLib::_ReadSensorsResponse_default_instance_), -}; - -const char descriptor_table_protodef_CompLib_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = - "\n\rCompLib.proto\022\007CompLib\"\036\n\006Header\022\024\n\014me" - "ssage_type\030\001 \001(\t\"3\n\006Status\022\022\n\nsuccessful" - "\030\001 \001(\010\022\025\n\rerror_message\030\002 \001(\t\"1\n\016Generic" - "Request\022\037\n\006header\030\001 \001(\0132\017.CompLib.Header" - "\"S\n\017GenericResponse\022\037\n\006header\030\001 \001(\0132\017.Co" - "mpLib.Header\022\037\n\006status\030\002 \001(\0132\017.CompLib.S" - "tatus\"5\n\022ReadSensorsRequest\022\037\n\006header\030\001 " - "\001(\0132\017.CompLib.Header\"\235\001\n\023ReadSensorsResp" - "onse\022\037\n\006header\030\001 \001(\0132\017.CompLib.Header\022\037\n" - "\006status\030\002 \001(\0132\017.CompLib.Status\022\014\n\004ir_1\030\003" - " \001(\r\022\014\n\004ir_2\030\004 \001(\r\022\014\n\004ir_3\030\005 \001(\r\022\014\n\004ir_4" - "\030\006 \001(\r\022\014\n\004ir_5\030\007 \001(\rb\006proto3" - ; -static ::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_CompLib_2eproto_once; -const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_CompLib_2eproto = { - false, false, 468, descriptor_table_protodef_CompLib_2eproto, "CompLib.proto", - &descriptor_table_CompLib_2eproto_once, nullptr, 0, 6, - schemas, file_default_instances, TableStruct_CompLib_2eproto::offsets, - file_level_metadata_CompLib_2eproto, file_level_enum_descriptors_CompLib_2eproto, file_level_service_descriptors_CompLib_2eproto, -}; -PROTOBUF_ATTRIBUTE_WEAK const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable* descriptor_table_CompLib_2eproto_getter() { - return &descriptor_table_CompLib_2eproto; -} - -// Force running AddDescriptors() at dynamic initialization time. -PROTOBUF_ATTRIBUTE_INIT_PRIORITY static ::PROTOBUF_NAMESPACE_ID::internal::AddDescriptorsRunner dynamic_init_dummy_CompLib_2eproto(&descriptor_table_CompLib_2eproto); -namespace CompLib { - -// =================================================================== - -class Header::_Internal { - public: -}; - -Header::Header(::PROTOBUF_NAMESPACE_ID::Arena* arena, - bool is_message_owned) - : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { - SharedCtor(); - if (!is_message_owned) { - RegisterArenaDtor(arena); - } - // @@protoc_insertion_point(arena_constructor:CompLib.Header) -} -Header::Header(const Header& from) - : ::PROTOBUF_NAMESPACE_ID::Message() { - _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); - message_type_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); - #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING - message_type_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation()); - #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING - if (!from._internal_message_type().empty()) { - message_type_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_message_type(), - GetArenaForAllocation()); - } - // @@protoc_insertion_point(copy_constructor:CompLib.Header) -} - -inline void Header::SharedCtor() { -message_type_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); -#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING - message_type_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation()); -#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING -} - -Header::~Header() { - // @@protoc_insertion_point(destructor:CompLib.Header) - if (GetArenaForAllocation() != nullptr) return; - SharedDtor(); - _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); -} - -inline void Header::SharedDtor() { - GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); - message_type_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); -} - -void Header::ArenaDtor(void* object) { - Header* _this = reinterpret_cast< Header* >(object); - (void)_this; -} -void Header::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) { -} -void Header::SetCachedSize(int size) const { - _cached_size_.Set(size); -} - -void Header::Clear() { -// @@protoc_insertion_point(message_clear_start:CompLib.Header) - uint32_t cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - message_type_.ClearToEmpty(); - _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); -} - -const char* Header::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) { -#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure - while (!ctx->Done(&ptr)) { - uint32_t tag; - ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag); - switch (tag >> 3) { - // string message_type = 1; - case 1: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 10)) { - auto str = _internal_mutable_message_type(); - ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); - CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "CompLib.Header.message_type")); - CHK_(ptr); - } else - goto handle_unusual; - continue; - default: - goto handle_unusual; - } // switch - handle_unusual: - if ((tag == 0) || ((tag & 7) == 4)) { - CHK_(ptr); - ctx->SetLastTag(tag); - goto message_done; - } - ptr = UnknownFieldParse( - tag, - _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), - ptr, ctx); - CHK_(ptr != nullptr); - } // while -message_done: - return ptr; -failure: - ptr = nullptr; - goto message_done; -#undef CHK_ -} - -uint8_t* Header::_InternalSerialize( - uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { - // @@protoc_insertion_point(serialize_to_array_start:CompLib.Header) - uint32_t cached_has_bits = 0; - (void) cached_has_bits; - - // string message_type = 1; - if (!this->_internal_message_type().empty()) { - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( - this->_internal_message_type().data(), static_cast(this->_internal_message_type().length()), - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, - "CompLib.Header.message_type"); - target = stream->WriteStringMaybeAliased( - 1, this->_internal_message_type(), target); - } - - if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray( - _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); - } - // @@protoc_insertion_point(serialize_to_array_end:CompLib.Header) - return target; -} - -size_t Header::ByteSizeLong() const { -// @@protoc_insertion_point(message_byte_size_start:CompLib.Header) - size_t total_size = 0; - - uint32_t cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - // string message_type = 1; - if (!this->_internal_message_type().empty()) { - total_size += 1 + - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( - this->_internal_message_type()); - } - - return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_); -} - -const ::PROTOBUF_NAMESPACE_ID::Message::ClassData Header::_class_data_ = { - ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck, - Header::MergeImpl -}; -const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*Header::GetClassData() const { return &_class_data_; } - -void Header::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, - const ::PROTOBUF_NAMESPACE_ID::Message& from) { - static_cast