diff --git a/Scripts/cli/Makefile b/Scripts/cli/Makefile index 502d9d8..2af2ac8 100644 --- a/Scripts/cli/Makefile +++ b/Scripts/cli/Makefile @@ -5,11 +5,5 @@ help: @grep -h -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' -prepare: ## Install prerequisites - pip3 install -r requirements.txt - -install: prepare ## Build and install the application - python3 setup.py install --user - -.PHONY: all -all: install \ No newline at end of file +install: ## Install application + pip3 install . --break-system-packages \ No newline at end of file diff --git a/Scripts/cli/README.md b/Scripts/cli/README.md index a374a49..aaf126f 100644 --- a/Scripts/cli/README.md +++ b/Scripts/cli/README.md @@ -18,7 +18,7 @@ All the operations are perform with the usage of **ProtocolBuffers**. ## Setup First of all connect your board with device installed to serial port. Your board needs to have -already installed software build, which allows communication with TSL2591X device. +already installed software build, which allows communication with **TSL2591X** device. ![](https://www.waveshare.com/w/A6Y79bcq/Kdy80nYY.php?f=TSL25911-Arduino-WS.jpg&width=900) diff --git a/Scripts/cli/setup.py b/Scripts/cli/setup.py index 9f7b054..a93a6d3 100644 --- a/Scripts/cli/setup.py +++ b/Scripts/cli/setup.py @@ -43,6 +43,6 @@ def read_requirements() -> list[str]: packages=find_packages(exclude=["tests", ".github"]), install_requires=read_requirements(), entry_points={ - "console_scripts": ["light-sensor-cli = src.cli.__main__:main"] + "console_scripts": ["light-sensor-cli = src.__main__:main"] }, ) diff --git a/Scripts/cli/src/__init__.py b/Scripts/cli/src/__init__.py index d8e24e0..16e6210 100644 --- a/Scripts/cli/src/__init__.py +++ b/Scripts/cli/src/__init__.py @@ -1,10 +1,17 @@ import logging -from pathlib import Path import sys +from .cli import * +from .client import * +from .command import * +from .dto import * +from .middleware import * +from .proto import * +from .tools import * +from .visualizer import * + sys.path.insert(0, "./") # Initializes logger general configuration. -logging.basicConfig( - filename=f"{str(Path.home())}/light-detector-cli.log", level=logging.INFO, filemode='w', format='%(name)s - %(message)s') \ No newline at end of file +logging.basicConfig(level=logging.INFO, filemode='w', format='%(name)s - %(message)s') \ No newline at end of file diff --git a/Scripts/cli/src/__main__.py b/Scripts/cli/src/__main__.py index ddb3d45..5e491bd 100644 --- a/Scripts/cli/src/__main__.py +++ b/Scripts/cli/src/__main__.py @@ -1,4 +1,4 @@ -from cli import main +from .cli import main if __name__ == "__main__": """Represents external entrypoint.""" diff --git a/Scripts/cli/src/cli.py b/Scripts/cli/src/cli.py index 0d41a6a..4768a6d 100644 --- a/Scripts/cli/src/cli.py +++ b/Scripts/cli/src/cli.py @@ -1,6 +1,6 @@ import fire -from command import BaseCommand +from .command import BaseCommand def main() -> None: diff --git a/Scripts/cli/src/client/client.py b/Scripts/cli/src/client/client.py index 9910bbb..29e3a1e 100644 --- a/Scripts/cli/src/client/client.py +++ b/Scripts/cli/src/client/client.py @@ -5,18 +5,18 @@ from serial import SerialException from serial import EIGHTBITS -from proto.Content import data_pb2 as DataBus -from proto.Content import info_pb2 as InfoBus -from proto.Content import settings_pb2 as SettingsBus -from proto import request_pb2 as Request -from proto import response_pb2 as Response - -from dto import DataTypeCompound -from dto import RetrievedDataDto -from dto import InfoTypeCompound -from dto import RetrievedInfoDto -from dto import SettingsTypeCompound -from dto import SetSettingsDto +from ..proto import data_pb2 as DataBus +from ..proto import info_pb2 as InfoBus +from ..proto import settings_pb2 as SettingsBus +from ..proto import request_pb2 as Request +from ..proto import response_pb2 as Response + +from ..dto import DataTypeCompound +from ..dto import RetrievedDataDto +from ..dto import InfoTypeCompound +from ..dto import RetrievedInfoDto +from ..dto import SettingsTypeCompound +from ..dto import SetSettingsDto class Client: diff --git a/Scripts/cli/src/command/base.py b/Scripts/cli/src/command/base.py index 4adf12c..e8fb91e 100644 --- a/Scripts/cli/src/command/base.py +++ b/Scripts/cli/src/command/base.py @@ -4,7 +4,8 @@ from .get_data import GetDataCommand from .get_info import GetInfoCommand from .set_settings import SetSettingsCommand -from visualizer import Visualizer + +from ..visualizer import Visualizer class BaseCommand: diff --git a/Scripts/cli/src/command/get_available_devices.py b/Scripts/cli/src/command/get_available_devices.py index c70f1f0..2b09234 100644 --- a/Scripts/cli/src/command/get_available_devices.py +++ b/Scripts/cli/src/command/get_available_devices.py @@ -1,10 +1,10 @@ import logging from serial.tools import list_ports -from middleware import is_manufacturer_allowed -from middleware import is_description_valid -from dto import AvailableDevicesDto -from tools import print_output +from ..middleware import is_manufacturer_allowed +from ..middleware import is_description_valid +from ..dto import AvailableDevicesDto +from ..tools import print_output class GetAvailableDevicesCommand: @@ -25,4 +25,4 @@ def handle() -> None: logging.info("Available devices have been successfully retrieved.") else: - logging.error("No available devices found.") + logging.info("No available devices found.") diff --git a/Scripts/cli/src/command/get_data.py b/Scripts/cli/src/command/get_data.py index 622a658..b51bda0 100644 --- a/Scripts/cli/src/command/get_data.py +++ b/Scripts/cli/src/command/get_data.py @@ -1,14 +1,14 @@ import logging -from middleware import is_device_available -from middleware import is_export_valid +from ..middleware import is_device_available +from ..middleware import is_export_valid -from visualizer import Visualizer +from ..visualizer import Visualizer -from dto import RetrievedDataDto -from dto import VisualizerMetadataDto -from client import Client -from tools import print_output +from ..dto import RetrievedDataDto +from ..dto import VisualizerMetadataDto +from ..client import Client +from ..tools import print_output class GetDataCommand: @@ -24,7 +24,7 @@ def handle(device: str, baud_rate: int, type: str, series: int, export: str, gen """Handles the execution of command wrapper.""" if not is_device_available(device): - logging.error("Selected device is not available") + logging.info("Selected device is not available") return data: list[RetrievedDataDto] = [] @@ -44,7 +44,7 @@ def handle(device: str, baud_rate: int, type: str, series: int, export: str, gen data.append(GetDataCommand.process_get_visible_data(device, baud_rate)) case _: - logging.error("Given data type is not valid.") + logging.info("Given data type is not valid.") return print_output(data) @@ -67,7 +67,7 @@ def handle(device: str, baud_rate: int, type: str, series: int, export: str, gen visualizer.select_stairs() case _: - logging.error("Given figure type is not valid.") + logging.info("Given figure type is not valid.") return visualizer.save() diff --git a/Scripts/cli/src/command/get_info.py b/Scripts/cli/src/command/get_info.py index ae6672b..1591a5e 100644 --- a/Scripts/cli/src/command/get_info.py +++ b/Scripts/cli/src/command/get_info.py @@ -1,9 +1,9 @@ import logging -from middleware import is_device_available -from dto import RetrievedInfoDto -from client import Client -from tools import print_output +from ..middleware import is_device_available +from ..dto import RetrievedInfoDto +from ..client import Client +from ..tools import print_output class GetInfoCommand: @@ -19,7 +19,7 @@ def handle(device: str, baud_rate: int, type: str) -> None: """Handles the execution of command wrapper.""" if not is_device_available(device): - logging.error("Selected device is not available") + logging.info("Selected device is not available") return data: RetrievedInfoDto @@ -38,7 +38,7 @@ def handle(device: str, baud_rate: int, type: str) -> None: data = GetInfoCommand.process_get_device_available_info(device, baud_rate) case _: - logging.error("Given info type is not valid.") + logging.info("Given info type is not valid.") return print_output(data) diff --git a/Scripts/cli/src/command/set_settings.py b/Scripts/cli/src/command/set_settings.py index 85935cc..a253b75 100644 --- a/Scripts/cli/src/command/set_settings.py +++ b/Scripts/cli/src/command/set_settings.py @@ -1,10 +1,10 @@ import logging from typing import Optional -from middleware import is_device_available -from dto import SetSettingsDto -from client import Client -from tools import print_output +from ..middleware import is_device_available +from ..dto import SetSettingsDto +from ..client import Client +from ..tools import print_output class SetSettingsCommand: @@ -54,7 +54,7 @@ def handle(device: str, baud_rate: int, type: str, value: Optional[str] = None) """Handles the execution of command wrapper.""" if not is_device_available(device): - logging.error("Selected device is not available") + logging.info("Selected device is not available") return data: SetSettingsDto @@ -78,7 +78,7 @@ def handle(device: str, baud_rate: int, type: str, value: Optional[str] = None) data = SetSettingsCommand.process_set_gain_max_settings(device, baud_rate) case _: - logging.error("Given settings value type is not valid.") + logging.info("Given settings value type is not valid.") return case SetSettingsCommand.SET_INTEGRAL_TIME_TYPE: @@ -108,11 +108,11 @@ def handle(device: str, baud_rate: int, type: str, value: Optional[str] = None) device, baud_rate) case _: - logging.error("Given settings value type is not valid.") + logging.info("Given settings value type is not valid.") return case _: - logging.error("Given settings type is not valid.") + logging.info("Given settings type is not valid.") return print_output(data) diff --git a/Scripts/cli/src/proto/__init__.py b/Scripts/cli/src/proto/__init__.py index ad495d1..ec2e89f 100644 --- a/Scripts/cli/src/proto/__init__.py +++ b/Scripts/cli/src/proto/__init__.py @@ -1,2 +1,4 @@ -from .request_pb2 import RequestContainer -from .response_pb2 import ResponseContainer +from .request_pb2 import * +from .response_pb2 import * + +from .Content import * diff --git a/Scripts/cli/src/proto/request_pb2.py b/Scripts/cli/src/proto/request_pb2.py index 94036d2..5c793a3 100644 --- a/Scripts/cli/src/proto/request_pb2.py +++ b/Scripts/cli/src/proto/request_pb2.py @@ -12,9 +12,9 @@ _sym_db = _symbol_database.Default() -from proto.Content import data_pb2 as Content_dot_data__pb2 -from proto.Content import info_pb2 as Content_dot_info__pb2 -from proto.Content import settings_pb2 as Content_dot_settings__pb2 +from .Content import data_pb2 as Content_dot_data__pb2 +from .Content import info_pb2 as Content_dot_info__pb2 +from .Content import settings_pb2 as Content_dot_settings__pb2 DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\rrequest.proto\x12\x0elight_detector\x1a\x12\x43ontent/data.proto\x1a\x12\x43ontent/info.proto\x1a\x16\x43ontent/settings.proto\"\xd3\x01\n\x10RequestContainer\x12\x38\n\x07\x64\x61taBus\x18\x01 \x01(\x0b\x32%.light_detector.DataBusRequestContentH\x00\x12\x38\n\x07infoBus\x18\x02 \x01(\x0b\x32%.light_detector.InfoBusRequestContentH\x00\x12@\n\x0bsettingsBus\x18\x03 \x01(\x0b\x32).light_detector.SettingsBusRequestContentH\x00\x42\t\n\x07\x63ontentb\x06proto3') diff --git a/Scripts/cli/src/proto/response_pb2.py b/Scripts/cli/src/proto/response_pb2.py index fc08d43..5cc5076 100644 --- a/Scripts/cli/src/proto/response_pb2.py +++ b/Scripts/cli/src/proto/response_pb2.py @@ -12,9 +12,9 @@ _sym_db = _symbol_database.Default() -from proto.Content import data_pb2 as Content_dot_data__pb2 -from proto.Content import info_pb2 as Content_dot_info__pb2 -from proto.Content import settings_pb2 as Content_dot_settings__pb2 +from .Content import data_pb2 as Content_dot_data__pb2 +from .Content import info_pb2 as Content_dot_info__pb2 +from .Content import settings_pb2 as Content_dot_settings__pb2 DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0eresponse.proto\x12\x0elight_detector\x1a\x12\x43ontent/data.proto\x1a\x12\x43ontent/info.proto\x1a\x16\x43ontent/settings.proto\"\xd7\x01\n\x11ResponseContainer\x12\x39\n\x07\x64\x61taBus\x18\x01 \x01(\x0b\x32&.light_detector.DataBusResponseContentH\x00\x12\x39\n\x07infoBus\x18\x02 \x01(\x0b\x32&.light_detector.InfoBusResponseContentH\x00\x12\x41\n\x0bsettingsBus\x18\x03 \x01(\x0b\x32*.light_detector.SettingsBusResponseContentH\x00\x42\t\n\x07\x63ontentb\x06proto3') diff --git a/Scripts/cli/src/visualizer/visualizer.py b/Scripts/cli/src/visualizer/visualizer.py index c02a324..84fd937 100644 --- a/Scripts/cli/src/visualizer/visualizer.py +++ b/Scripts/cli/src/visualizer/visualizer.py @@ -1,7 +1,7 @@ import matplotlib.pyplot as plt -from dto import RetrievedDataDto -from dto import VisualizerMetadataDto +from ..dto import RetrievedDataDto +from ..dto import VisualizerMetadataDto class Visualizer: