Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create a WebSocket network management for Luos_engine #462

Merged
merged 8 commits into from
Jan 22, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 10 additions & 9 deletions .github/ISSUE_TEMPLATE/porting-request.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ about: Suggest a new MCU to be compatible with Luos
title: "[MCU PORTING] "
labels: porting
assignees: simonbdy

---

## Before to begin
Expand All @@ -18,25 +17,27 @@ If you only have a usage question, ask it to the [Luos Community](https://discor
At last, feel free to read the [Luos contribution's guidelines](https://github.com/Luos-io/luos_engine/blob/main/CONTRIBUTING.md) and the [documentation page](https://www.luos.io/docs/contribute-to-luos) to have more insight about how to contribute to Luos!

## Details

Please replace the italic test by your inputs and details in each of the following sections:

### What MCU would you like Luos to be compatible with?
*List the MCU(s) you want Luos to be compatible with.*

_List the MCU(s) you want Luos to be compatible with._

### Link the datasheet of this MCU
*Please provide the links of the MCU's datasheet.*

_Please provide the links of the MCU's datasheet._

### Describe your project
*Describe your project and explain why you need the MCU(s) to be Luos compatible.*

_Describe your project and explain why you need the MCU(s) to be Luos compatible._

### Describe the electronic board hosting the MCU
*Add details about the network interface, the pins used, the device, etc. Don't hesitate to post a schematic.*

### Ensure that every box bellow is checked
- [ ] The MCU is not in the [compatible list](https://www.luos.io/docs/compatibility/mcu_demoboard) in the documentation.
- [ ] The MCU is not already in an existing [porting issue](https://github.com/Luos-io/luos_engine/issues).
_Add details about the network interface, the pins used, the device, etc. Don't hesitate to post a schematic._

### Additional context
*Add any other context about the porting request here.*

_Add any other context about the porting request here._

Thank you! Your issue will be reviewed by our admins.
52 changes: 27 additions & 25 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,17 @@

# Contributing to Luos

Thank you for devoting some of your time and resources for contributing in Luos!
Thank you for devoting some of your time and resources for contributing in Luos!

Your input and your help are valuable, and mean a lot to us. We are convinced that a great open source project can't grow without the help of its community. That's why we want to make contributing to this project as easy and transparent as possible, whether it is about:

* Reporting a bug
* Discussing the current state of the code
* Submitting a fix
* Proposing new features
* Becoming a maintainer
* Improving the flows
* ...
- Reporting a bug
- Discussing the current state of the code
- Submitting a fix
- Proposing new features
- Becoming a maintainer
- Improving the flows
- ...

This page is written to guide you into contribution of the Luos project, and make your journey enjoyable and gratifying. If you can't find what you are looking for, [please tell us](https://discord.gg/luos)!

Expand All @@ -29,31 +29,32 @@ This page is written to guide you into contribution of the Luos project, and mak

Contribution to a project is about dedicating own time and resources to help a project grow. It can be done in many different ways that are not all about code programming. Anyone can contribute to a project at their own level.

When done right, contribution brings a lot to a project, but also to the contributor.
When done right, contribution brings a lot to a project, but also to the contributor.

For example, it brings together external visions and skills to build, improve or fix parts of this project. Most of the contributors were first mere users of a project before to become contributors. They often got through contribution in order to add a feature they wanted, or fix an issue that was bothering them. The result is also, on their side, the feeling of being part of a great project.

Contribution allows contributors to learn faster and gain skills. In fact, some contributors in open source projects became quite famous and were able to build their carreer around their contributions. This is why contribution also brings a feeling of gratification for participating in something big.

Eventually, it allows to meet new people with common interest while talking to other contributors in the process of adding, improving or fixing.


## How can I contribute to Luos?

You can contribute to the Luos project by creating **issues** for signaling bugs or requesting features, and opening **pull rquests (PR)** to work on these issues. There are also **simpler ways** of contributing. But first, let us introduce to you the three layers of contribution for the Luos project.
You can contribute to the Luos project by creating **issues** for signaling bugs or requesting features, and opening **pull rquests (PR)** to work on these issues. There are also **simpler ways** of contributing. But first, let us introduce to you the three layers of contribution for the Luos project.

Before to even begin with the coding contributions, we will talk about the small but important contributions that make the project go on. Then we will describe the two next layers of contribution, from easy to advanced, where it is about creating issues and pull requests, and working on them.

### Where to find the issues and PR?

You can check and follow the [`Luos contribution project`](https://github.com/orgs/Luos-io/projects/21) on GitHub: it displays several tabs with the lists of issues and pull requests opened and/or worked on by the community. Each issue or PR has a status showing its progress (Todo, In progress, Done, etc.).

### Our calls for contribution

You will note that some issues and PR have the label `help wanted`. It is meant as a **call for contribution** for subjects we need community's help to work on.
You will note that some issues and PR have the label `help wanted`. It is meant as a **call for contribution** for subjects we need community's help to work on.

## First layer: the easiest contributions

The easiest contributions are as simple as every day tasks, such as:

- Connect to the [Luos Discord community](https://discord.gg/luos): This is where you can talk about Luos, embedded or edge systems, find resources, etc.
- Talk to Luos around you, with your family, friends, co-worker, etc.
- Give one of your precious GitHub stars ⭐ to our main repo [Luos engine](https://github.com/Luos-io/luos_engine/) (you will need a GitHub account, then just click on the star on the top right of the page.)
Expand All @@ -70,15 +71,15 @@ To make any change in the project, we use <a href="https://docs.github.com/en/ge

### Opening a new issue

Opening a new issue is a part of this layer of contribution, even if it is a very complex one, because it is an easy task to do. However, opening a PR and working on issues may be complex enough to be in the third layers, depending on their complexity.
Opening a new issue is a part of this layer of contribution, even if it is a very complex one, because it is an easy task to do. However, opening a PR and working on issues may be complex enough to be in the third layers, depending on their complexity.

<blockquote>💡 Tip<br />
Before to create an issue, be sure that no other issue exists with the same bug you found or feature you need. Then don't forget to follow the rules in the template in order to have a clean issue.
</blockquote>

### Working on basic issues and PR

Some issues are easy to solve, and you barely need to know how to code. In particular, issues related to documentation's typos, sentence fixes, or broken links are great to begin your journey as a contributor.
Some issues are easy to solve, and you barely need to know how to code. In particular, issues related to documentation's typos, sentence fixes, or broken links are great to begin your journey as a contributor.

If you are familiar enough with GitHub, you already know that some issues have the label `first good issue`. They are generally easy issues to begin with.

Expand All @@ -99,10 +100,12 @@ Only the mainteners in Luos organization are able to merge a PR you worked on. I
Here are the general steps to contributing to Luos.

Opening the issue:

- If not already existing, open a new issue and describe the problem or the feature. Follow the attached rule so that it is accepted by the moderation team.
- Be active in the discussion of the issue.

Working on the code:

- Fork the main repository you want to work on.
- Clone the forked repo to your machine.
- Create and checkout a new local branch.
Expand All @@ -111,6 +114,7 @@ Working on the code:
- Push your local branch to your forked remote repo.

Opening a pull request:

- Open a PR in the main repo and link the issue(s) you are working on.
- Comment the PR and add reviewers.
- Work on the eventual requests for changes.
Expand All @@ -126,26 +130,24 @@ Luos is open source. Keep in mind that any contribution you make will be under t

People love thorough bug reports or feature requests. They tend to have:

* Specific, understandable and respectful explanation
* A quick summary and/or background
* Detailed steps on how to reproduce it, if applicable
* Sample code
* What is expected to happen, if applicable
* What actually happens, if applicable
* Any other useful comments
- Specific, understandable and respectful explanation
- A quick summary and/or background
- Detailed steps on how to reproduce it, if applicable
- Sample code
- What is expected to happen, if applicable
- What actually happens, if applicable
- Any other useful comments

### Resources

- [The Luos documentation](https://luos.io/docs/).
- The [GitHub project](https://github.com/orgs/Luos-io/projects/21) listing the issues and pull requests that the community contributes to.
- The [GitHub project](https://github.com/orgs/Luos-io/projects/21) listing the issues and pull requests that the community contributes to.
- [A useful guide to contribution (opensource.guide)](https://opensource.guide/how-to-contribute/).
- [10 steps to contribute to open source projects (betterprogramming.pub)](https://betterprogramming.pub/10-step-guide-to-github-contributions-9aeeb38493a8).


### It is your turn to make some changes! Open a new issue or [go find an issue to work on](https://github.com/orgs/Luos-io/projects/21). Don't hesitate to read [our documentation](https://www.luos.io/docs/), or to post your questions/issues in the [Luos Discord](https://discord.gg/luos).
### It is your turn to make some changes! Open a new issue or [go find an issue to work on](https://github.com/orgs/Luos-io/projects/21). Don't hesitate to read [our documentation](https://www.luos.io/docs/), or to post your questions/issues in the [Luos Discord](https://discord.gg/luos).

[![](https://img.shields.io/badge/Luos-Documentation-34A3B4)](https://www.luos.io/docs/)
[![](https://img.shields.io/badge/LinkedIn-Follow%20us-0077B5?style=flat&logo=linkedin)](https://www.linkedin.com/company/luos)

[![](https://img.shields.io/discord/902486791658041364?label=Discord&logo=discord&style=social)](http://bit.ly/JoinLuosDiscord)
[![](https://img.shields.io/reddit/subreddit-subscribers/Luos?style=social)](https://www.reddit.com/r/Luos)
20 changes: 6 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,32 +7,24 @@
[![PlatformIO Registry](https://badges.registry.platformio.org/packages/luos/library/luos_engine.svg)](https://registry.platformio.org/libraries/luos/luos_engine)

[![](https://img.shields.io/discord/902486791658041364?label=Discord&logo=discord&style=social)](http://bit.ly/JoinLuosDiscord)
[![](https://img.shields.io/reddit/subreddit-subscribers/Luos?style=social)](https://www.reddit.com/r/Luos)

Version: 3.0.0

# Luos-engine: Empowering Developers

Luos-engine provides a simple and efficient way to manage your hardware products as a collection of independent software features. You can easily create and share these features with your team, external developers, or the wider community. Luos-engine is an open-source lightweight library that can be utilized on any microcontroller or computer, with any network, enabling free and fast development of multi-electronic-board connected products. Choosing Luos-engine for your product design empowers you to develop, debug, validate, monitor, and manage it from anywhere.

## Benefits for the Community

Many embedded developments start from scratch. By using Luos-engine, you can leverage the work already done by you, your company, or the Luos community. The reusability of features encapsulated in Luos-engine services accelerates the time it takes for your products to reach the market while ensuring the robustness and universality of your applications.

* Join the [Luos Discord server](http://discord.gg/luos) to connect with the community.
- Join the [Luos Discord server](http://discord.gg/luos) to connect with the community.

## Best Practices with Luos-engine

Luos-engine promotes organized and effective development practices, ensuring the scalability, flexibility, and adaptability of your product from the initial idea to maintaining an industrialized fleet.

## Let's do this​

* → Try on your own with the [get started](https://www.luos.io/tutorials/get-started)
* → Consult the full [documentation](https://www.luos.io/docs)










- → Try on your own with the [get started](https://www.luos.io/tutorials/get-started)
- → Consult the full [documentation](https://www.luos.io/docs)
11 changes: 7 additions & 4 deletions engine/HAL/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,6 @@
[![PlatformIO Registry](https://badges.registry.platformio.org/packages/luos/library/luos_engine.svg)](https://registry.platformio.org/libraries/luos_engine/luos_engine)

[![](https://img.shields.io/discord/902486791658041364?label=Discord&logo=discord&style=social)](http://bit.ly/JoinLuosDiscord)
[![](https://img.shields.io/reddit/subreddit-subscribers/Luos?style=social)](https://www.reddit.com/r/Luos)
[![](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Unleash%20electronic%20devices%20as%20microservices%20thanks%20to%20Luos&https://luos.io&via=Luos_io&hashtags=embeddedsystems,electronics,microservices,api)
[![](https://img.shields.io/badge/LinkedIn-Share-0077B5?style=social&logo=linkedin)](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fgit.luolix.top%2Fluos-io)

# Luos engine HAL
Expand All @@ -22,12 +20,14 @@ Do not hesitate to share your project and ask us about features on [our Discord]
## Compatible MCU

### STM32F0 family:

- STM32F0x0
- STM32F0x1
- STM32F0x2 -> LuosHAL default configuration on NUCLEO-F072RB
- STM32F0x8

### STM32F4 family:

- STM32F401
- STM32F405/415
- STM32F407/417
Expand All @@ -41,23 +41,27 @@ Do not hesitate to share your project and ask us about features on [our Discord]
- STM32F469/479

### STM32G4 family:
- STM32G4x1-> LuosHAL default configuration on NUCLEO-G431KB

- STM32G4x1-> LuosHAL default configuration on NUCLEO-G431KB
- STM32G4x3
- STM32G4x4

### STM32L4 family:

- STM32L4x1
- STM32L4x2-> LuosHAL default configuration on NUCLEO-L432KC
- STM32L4x3
- STM32L4x5
- STM32L4x6

### ATSAMD family:

- ATSAMD21Exx
- ATSAMD21Gxx
- ATSAMD21Jxx -> LuosHAL default configuration on SAMDJ18A

### ARDUINO family:

- ARDUINO_SAMD_ZERO -> LuosHAL default configuration on ARDUINO ZERO
- ARDUINO_SAMD_MKRZERO
- ARDUINO_SAMD_MKR1000
Expand All @@ -70,5 +74,4 @@ Do not hesitate to share your project and ask us about features on [our Discord]
- ARDUINO_SAMD_NANO_33_IOT
- ARDUINO_SAMD_MKRVIDOR4000


## Don't hesitate to read [our documentation](https://www.luos.io/docs/luos-technology), or to post your questions/issues on the [Luos' community](https://www.luos.io/community). :books:
8 changes: 3 additions & 5 deletions examples/apps/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,12 @@
[![PlatformIO Registry](https://badges.registry.platformio.org/packages/luos/library/luos_engine.svg)](https://registry.platformio.org/libraries/luos_engine/luos_engine)

[![](https://img.shields.io/discord/902486791658041364?label=Discord&logo=discord&style=social)](http://bit.ly/JoinLuosDiscord)
[![](https://img.shields.io/reddit/subreddit-subscribers/Luos?style=social)](https://www.reddit.com/r/Luos)
[![](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Unleash%20electronic%20devices%20as%20microservices%20thanks%20to%20Luos&https://luos.io&via=Luos_io&hashtags=embeddedsystems,electronics,microservices,api)
[![](https://img.shields.io/badge/LinkedIn-Share-0077B5?style=social&logo=linkedin)](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fgit.luolix.top%2Fluos-io)

# Apps

This folder contains the service's sources of each **app** project (see [Apps section](https://www.luos.io/docs/luos-technology/services/service-api#drivers-guidelines) in documentation). There are three folders:

- **Alarm_controller** - Part of the bike alarm App. This App communicates with an accelerometer service, and monitors for movement. If movement is detected, it will look for a Service to issue an alarm.
- **Gate** - A special App used in conjunction with the [Pyluos](https://github.com/Luos-io/Pyluos) library, this App allows Python to taeke control of the Luos network, and to communicate with the different Services located on the network.
- **Start_controller** - Part of the bike alarm App. This App looks for the bike lock. If the lock has been activated, then it will inform the Alarm Controller, and set detection in motion.
- **Alarm_controller** - Part of the bike alarm App. This App communicates with an accelerometer service, and monitors for movement. If movement is detected, it will look for a Service to issue an alarm.
- **Gate** - A special App used in conjunction with the [Pyluos](https://github.com/Luos-io/Pyluos) library, this App allows Python to taeke control of the Luos network, and to communicate with the different Services located on the network.
- **Start_controller** - Part of the bike alarm App. This App looks for the bike lock. If the lock has been activated, then it will inform the Alarm Controller, and set detection in motion.
6 changes: 3 additions & 3 deletions examples/apps/alarm_controller/README.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
<a href="https://luos.io"><img src="https://uploads-ssl.webflow.com/601a78a2b5d030260a40b7ad/603e0cc45afbb50963aa85f2_Gif%20noir%20rect.gif" alt="Luos logo" title="Luos" align="right" height="100" /></a>

[![](http://certified.luos.io)](https://luos.io)
[![](https://img.shields.io/github/license/Luos-io/examples)](
https://github.com/Luos-io/examples/blob/master/LICENSE)
[![](https://img.shields.io/github/license/Luos-io/examples)](https://github.com/Luos-io/examples/blob/master/LICENSE)

[![](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Unleash%20electronic%20devices%20as%20microservices%20thanks%20to%20Luos&https://luos.io&via=Luos_io&hashtags=embeddedsystems,electronics,microservices,api)
[![](https://img.shields.io/badge/LinkedIn-Share-0077B5?style=social&logo=linkedin)](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fgit.luolix.top%2Fluos-io)

# Alarm controller app

This app constantly watches for movements and raises an alarm if there is.

# Link project

This app is linked to the [bike_alarm/Alarm_controller project](../../projects/l0/bike_alarm/alarm_controller).

[![](https://img.shields.io/discourse/topics?server=https%3A%2F%2Fcommunity.luos.io&logo=Discourse)](https://community.luos.io)
Expand Down
Loading
Loading