Rust drivers for the SIM7000 series of modems

Related tags

Utilities sim7000
Overview
Comments
  • Redesign line reader

    Redesign line reader

    The current line reader was horribly broken. The redesign makes the reader match the datasheet more closely. Insead of reading until \r\n and returning all text up until then, the new reader finds the leading \r\n that preceeds all sim7000 lines. It then reads up to the following \r\n to terminate the line. This resolves intermittent issues with echo as well as some unsolicited result codes.

    opened by ZoeyR 1
  • Fix issue with AT+CPSI in GSM mode

    Fix issue with AT+CPSI in GSM mode

    The sim7000 has a bug where in GSM mode the AT+CPSI command will respond with two newlines after the informational line instead of just one. Change the parser to be able to handle this and add tests to prevent regression.

    opened by ZoeyR 1
  • Log improvements

    Log improvements

    • Make logging generally less verbose (change some log::infos to log::debugs, etc)
    • Add ATRequest: Debug bound (or defmt::Format if defmt feature is enabled)
    • Add error log on failed AT commands, telling us what command failed
    • Fix parsing of CMS and CME error codes
    opened by hulthe 0
  • Fix AT+CIPRXGET decoding

    Fix AT+CIPRXGET decoding

    The sim7000 does not follow the specification in the datasheet for responding to AT+CIPRXGET. The datasheet indicates that there should only be one +CIPRXGET: line, however there can be more than one if data is not ready yet. In this case the sim7000 will respond with a potentially arbitrary number of lines containing +CIPRXGET: 1 before responding with the expected response and data.

    opened by ZoeyR 0
  • [WIP] Reliability improvements

    [WIP] Reliability improvements

    • Fix AsyncDrop hanging when modem restarts
    • Add timeouts to all AT commands
    • Purge windows line endings
    • Make line reader only look for \n instead of \r\n (voltage warnings only ends with \n)
    • Add more docs
    • Other stuff
    opened by hulthe 0
  • fix: Add release system base on semver

    fix: Add release system base on semver

    Here a sample of CI to use if you want to deliver a library on crate.io and docs.rs.

    You will need to configure a GH_TOKEN with public_repo right.

    You will need to configure CARGO_REGISTRY_TOKEN too, https://crates.io/settings/tokens, it's here to create a new token for the project.

    opened by lperdereau 0
  • Contribution to your project

    Contribution to your project

    Hello,

    With a friend we starting developing multiple clients for SIM7000, as a first rust project. And we found out your project after few week of work. Could it be possible to publish your work on crate.io ? We made a little GitHub CI to publish our work on crate.io and docs.rs

    Here our project githu.com docs.rs crate.io . It's not very good and we will be happy to work with you a few to use your work.

    We will be happy to submit a PR for CI and explain it to you if necessary. Moreover we can contribute for a feature like MQTT support as this document is describing it.

    Regards

    opened by lperdereau 2
Owner
The Techno Creatives
Making an impact through digital products and services.
The Techno Creatives
miette is a diagnostic library for Rust. It includes a series of traits/protocols that allow you to hook into its error reporting facilities, and even write your own error reports!

miette is a diagnostic library for Rust. It includes a series of traits/protocols that allow you to hook into its error reporting facilities, and even write your own error reports!

Kat Marchán 1.2k Jan 1, 2023
k-mer counter in Rust using the rust-bio and rayon crates

krust is a k-mer counter written in Rust and run from the command line that will output canonical k-mers and their frequency across the records in a f

null 14 Jan 7, 2023
Experimental Rust tool for generating FFI definitions allowing many other languages to call Rust code

Diplomat is an experimental Rust tool for generating FFI definitions allowing many other languages to call Rust code. With Diplomat, you can simply define Rust APIs to be exposed over FFI and get high-level C, C++, and JavaScript bindings automatically!

null 255 Dec 30, 2022
Aws-sdk-rust - AWS SDK for the Rust Programming Language

The AWS SDK for Rust This repo contains the new AWS SDK for Rust (the SDK) and its public roadmap. Please Note: The SDK is currently released as a dev

Amazon Web Services - Labs 2k Jan 3, 2023
Rust + Yew + Axum + Tauri, full-stack Rust development for Desktop apps.

rust-yew-axum-tauri-desktop template Rust + Yew + Axum + Tauri, full-stack Rust development for Desktop apps. Crates frontend: Yew frontend app for de

Jet Li 54 Dec 23, 2022
A lightning fast version of tmux-fingers written in Rust, copy/pasting tmux like vimium/vimperator

tmux-thumbs A lightning fast version of tmux-fingers written in Rust for copy pasting with vimium/vimperator like hints. Usage Press ( prefix + Space

Ferran Basora 598 Jan 2, 2023
A command-line tool collection to assist development written in RUST

dtool dtool is a command-line tool collection to assist development Table of Contents Description Usage Tips Installation Description Now dtool suppor

GB 314 Dec 18, 2022
Rust mid-level IR Abstract Interpreter

MIRAI MIRAI is an abstract interpreter for the Rust compiler's mid-level intermediate representation (MIR). It is intended to become a widely used sta

Facebook Experimental 793 Jan 2, 2023
Migrate C code to Rust

C2Rust helps you migrate C99-compliant code to Rust. The translator (or transpiler) produces unsafe Rust code that closely mirrors the input C code. T

Immunant 3k Jan 8, 2023
C to Rust translator

Corrode: Automatic semantics-preserving translation from C to Rust This program reads a C source file and prints an equivalent module in Rust syntax.

Jamey Sharp 2.1k Dec 14, 2022
Astronomical algorithms in Rust

astro-rust Contents API Docs About Usage Contributing References About astro-rust is a library of advanced astronomical algorithms for the Rust progra

Saurav Sachidanand 213 Jan 7, 2023
A Rust library for calculating sun positions

sun A rust port of the JS library suncalc. Install Add the following to your Cargo.toml [dependencies] sun = "0.2" Usage pub fn main() { let unixti

Markus Kohlhase 36 Dec 28, 2022
Macro for Python-esque comprehensions in Rust

Cute Macro for Python-esque list comprehensions in Rust. The c! macro implements list and hashmap comprehensions similar to those found in Python, all

Matt Gathu 306 Jan 6, 2023
Language Integrated Query in Rust.

Linq in Rust Language Integrated Query in Rust (created by declarative macros). Inspired by LINQ in .NET. What's LINQ This project is under developmen

StardustDL 91 Dec 8, 2022
A cross-platform serial port library in Rust.

Introduction serialport-rs is a general-purpose cross-platform serial port library for Rust. It provides a blocking I/O interface and port enumeration

Bryant Mairs 143 Nov 5, 2021
A Rust macro for writing regex pattern matching.

regexm A Rust macro for writing regex pattern matching.

Takayuki Maeda 46 Oct 24, 2022
Simple ray tracer written in Rust

Simple ray tracer written in Rust from scratch I've just finished my first semester at the Faculty of Applied Mathematics and Computer Science at the

Vladislav 190 Dec 21, 2022
A high level diffing library for rust based on diffs

Similar: A Diffing Library Similar is a dependency free crate for Rust that implements different diffing algorithms and high level interfaces for it.

Armin Ronacher 617 Dec 30, 2022
A reactive DOM library for Rust in WASM

maple A VDOM-less web library with fine-grained reactivity. Getting started The recommended build tool is Trunk. Start by adding maple-core to your Ca

Luke Chu 1.8k Jan 3, 2023