Giter VIP home page Giter VIP logo

pydwm1001's People

Contributors

adamlm avatar

Stargazers

 avatar  avatar

Watchers

 avatar

pydwm1001's Issues

Add generic function to get shell reponses

There is a generic function to sending shell commands, so it makes sense to have a similar feature for getting shell responses. It could be named something like get_shell_response(...).

Bump version for first release

The version 0.1.0 has been overloaded through various commits and is no longer unique. The version number should be bumped to 0.1.1.

Rename Listener and Tag classes to use proper terminology

It seems that "listener" is an informal name for passive tags, while "tags" typically refer to active tags. The Listener and Tag classes should be renamed to PassiveTag and ActiveTag, respectively, to make their intended uses clearer.

Update minimum required Python version

The library's packaging documentation claims to support Python versions starting at 3.7, but it uses some functions that were introduced in later versions. For example, removeprefix was introduced in Python 3.9. The library's packaging documentation should be updated.

Remove `removeprefix` function

The removeprefix function was added to Python 3.9, but some downstream library users need to run in Python 3.8. Therefore, we need to replace the function with a different implementation.

Rename `tag_name` property to `label`

From the system information response, it appears that the tag_name property actually represents its label. Therefore, the property should be renamed to label.

This may be a pedantic change given "name" and "label" are synonymous is many applications, but it's a good practice to keep the library's naming conventions consistent with the actual device's.

Move `tag_id` property to base class

Right now, only the ActiveTag has a tag_id property. However, passive and active tags both have identifiers. Moving this function to the base class would allow PassiveTag instances to get their identifiers, even if they are unused.

Add property for tag name and update tag_id property

There are two ways to identify a DWM1001: its "name" and its ID. The name uses part of the tag's full identifier. An example would be DW1234. The ID is the unique identification number used within the network. For example, 987654301234. In this case, the tag's name is the last four digits (1234) with DW prepended to it: DW1234.

The current tag_id property should be refactored to use the tag's actual identifying number, and a new name property should be added for the short-hand string.

Add `pyserial` as project dependency

The pydwm1001 installation configuration does not install pyserial, which leads to import errors for environments that do not already have it installed.

Remove `uwb_address` property

This property is redundant because it device's UWB address is already contained in the SystemInfo object returned by the system_info property.

Rename `tag_id` property to `uwb_address`

From the system information reported by the DWM1001, it appears that they tag_id property actually represents the device's ultra-wideband address. Therefore, it should be renamed to uwb_address to describe the value more accurately.

Add a listener anchor and a tag

Listeners (anchors in passive mode) and tags are the two most used DWM1001 types, so the library should support these easily. Our current use-case for these devices is getting position information.

In the listener's case, we want to get all reported positions from tags. In the tag's case, we want to get its own position.

Add usage example

It would be nice to have a usage example so newcomers could see how to use the library.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.