1- # GeoComPy
1+ <h1 align =" center " >
2+ <img src =" https://raw.githubusercontent.com/mrclock8163/geocompy/main/docs/geocompy_logo.png " alt =" GeoComPy logo " width =" 300 " >
3+ </h1 ><br >
4+
5+ [ ![ PyPI - Version] ( https://img.shields.io/pypi/v/geocompy )] ( https://pypi.org/project/geocompy/ )
6+ [ ![ Python Version] ( https://img.shields.io/python/required-version-toml?tomlFilePath=https%3A%2F%2Fraw.githubusercontent.com%2FMrClock8163%2FGeoComPy%2Frefs%2Fheads%2Fmain%2Fpyproject.toml )] ( https://pypi.org/project/geocompy/ )
7+ [ ![ GPLv3] ( https://img.shields.io/github/license/mrclock8163/geocompy )] ( https://www.gnu.org/licenses/gpl-3.0.html )
8+ [ ![ Tests status] ( https://img.shields.io/github/actions/workflow/status/mrclock8163/geocompy/run-tests.yml?label=tests )] ( https://github.com/MrClock8163/GeoComPy )
9+ [ ![ Docs status] ( https://app.readthedocs.org/projects/geocompy/badge/?version=latest )] ( https://geocompy.readthedocs.io/latest/ )
10+ [ ![ Typed] ( https://img.shields.io/pypi/types/geocompy )] ( https://pypi.org/project/geocompy/ )
211
312GeoComPy is a Python library providing wrapper functions for serial
413communication protocols of Leica surveying instruments.
@@ -7,3 +16,72 @@ The package is mainly built around the GeoCom ASCII protocol, supported by
716a number of total stations and other instruments running TPS1000, 1100, 1200
817and other firmware. For some older instruments that do not support GeoCom,
918the GSI Online command set is used for communication.
19+
20+ - ** Download:** https://pypi.org/project/geocompy/
21+ - ** Documentation:** https://geocompy.readthedocs.io/
22+ - ** Source:** https://github.com/MrClock8163/GeoComPy
23+ - ** Bug reports:** https://github.com/MrClock8163/GeoComPy/issues
24+
25+ ## Main features
26+
27+ - Pure Python implementation
28+ - Support for type checkers
29+ - Primitives for relevant data
30+ - Command building and parsing through function calls
31+ - Multiple supported protocols (e.g. GeoCom, GSI Online)
32+
33+ ## Requirements
34+
35+ To use the package, Python 3.11 or higher is required.
36+ For the platform independent serial communication, GeoComPy relies on the
37+ [ pySerial] ( https://pypi.org/project/pyserial/ ) package to provide the
38+ necessary abstractions.
39+
40+ ## Installation
41+
42+ The preferred method to install GeoComPy is through PyPI, where both wheel
43+ and source distributions are made available.
44+
45+ ``` shell
46+ python -m pip install geocompy
47+ ```
48+
49+ If not yet published changes/fixes are needed, that are only available in
50+ source, GeoComPy can also be installed locally from source, without any
51+ external tools. Once the repository is cloned to a directory, it can be
52+ installed with pip.
53+
54+ ``` shell
55+ git clone https://github.com/MrClock8163/GeoComPy.git
56+ cd GeoComPy
57+ python -m pip install .
58+ ```
59+
60+ ## Short example
61+
62+ The below example demonstrates how to connect to a TPS1000 instrument
63+ through a serial connection. Once the connection is up and running, the
64+ total station is instructed to turn to horizontal 0, and position the
65+ telescope parallel to the ground.
66+
67+ ``` py
68+ from geocompy import (
69+ Angle,
70+ open_serial,
71+ TPS1000
72+ )
73+
74+
75+ with open_serial(" COM1" ) as comm:
76+ tps = TPS1000(comm)
77+ tps.aut.turn_to(Angle(0 ), Angle(90 , ' DEG' ))
78+ ```
79+
80+ ## License
81+
82+ GeoComPy is free and open source software, and it is distributed under
83+ the terms of the [ GPLv3] ( https://www.gnu.org/licenses/gpl-3.0.html )
84+ license.
85+
86+ You should have received a copy of the GNU General Public License
87+ along with this program. If not, see https://www.gnu.org/licenses/ .
0 commit comments