From fd9bbbef16d5694dccc3f693457343959f6c00b7 Mon Sep 17 00:00:00 2001 From: Luke Berndt Date: Tue, 11 Jun 2024 16:29:18 -0400 Subject: [PATCH] Updated Docs --- LICENSE | 2 +- README.md | 22 +++++++++++----------- images/logo.png | Bin 7959 -> 13678 bytes 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/LICENSE b/LICENSE index 01b87b6..ad43c47 100644 --- a/LICENSE +++ b/LICENSE @@ -186,7 +186,7 @@ same "printed page" as the copyright notice for easier identification within third-party archives. - Copyright (c) 2020-2023 IQT Labs LLC, All Rights Reserved. + Copyright (c) 2020-2024 IQT Labs LLC, All Rights Reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/README.md b/README.md index c37cc27..da4939e 100644 --- a/README.md +++ b/README.md @@ -26,8 +26,8 @@
- - Logo + + Logo

SkyScan C2

@@ -40,16 +40,16 @@ SkyScan C2 makes it selection based on the distance of aircraft from the camera - **MIN_ALTITUDE**: The minimum altitude of an aircraft. This is useful when there are nearby aircraft that are on the ground and should be ignored. - **MAX_ALTITUDE**: The maximum altitude of an aircraft. This is useful when there are clouds and you want to ignore any aircrafts that are in the clouds. -### Docker Compose -SkyScan is designed to be stood up as a series of Docker containers. Docker Compose makes it easy to do coordinate all of the containers. The SkyScan repo provides an example of a `docker-compose.yaml` file that can be used to startup an instance. The `docker-compose.yaml` file include in this repo provides a minimal example of how to start and configure a SkyScan C2 container. You can use this Docker Compose file as a starting point if you wish to include the SkyScan C2 container in a custom system. +## Usage +This module is designed to be used in concert with other modules to +build a complete tracking system. [SkyScan](https://github.com/IQTLabs/SkyScan), +which tracks aircraft using ADS-B transmissions, is an example of the type of +system that can be built. -Make Contribution -· -Report Bug -· -Request Feature - + Checkout the `docker-compose.yml` in that repo to see how these modules + can be connected together. The configuration for the system is stored in `.env` environment files. Examples of the different environment files + are included in the **SkyScan** repo and can be configured them to match your setup. ### Built With @@ -61,7 +61,7 @@ SkyScan is designed to be stood up as a series of Docker containers. Docker Comp ## License -Distributed under the [Apache 2.0](https://github.com/IQTLabs/edgetech-template/blob/main/LICENSE). See `LICENSE.txt` for more information. +Distributed under the [Apache 2.0](https://github.com/IQTLabs/edgetech-skyscan-c2/blob/main/LICENSE). See `LICENSE.txt` for more information. ## Contact IQTLabs diff --git a/images/logo.png b/images/logo.png index 626102af99126767fca8b4a2d9a8411101af5def..34f572795282d6384348cd1d9f5c8f3f4a17ea47 100644 GIT binary patch literal 13678 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 literal 7959 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 aTTPsw*n~aiyPIwRK<>SgROvgzkN*cFto-)?