Skip to content

Commit

Permalink
Merge branch 'develop'
Browse files Browse the repository at this point in the history
  • Loading branch information
GOB52 committed Sep 26, 2024
2 parents 61de621 + 8b62e6b commit f26938c
Show file tree
Hide file tree
Showing 66 changed files with 4,184 additions and 456 deletions.
6 changes: 3 additions & 3 deletions .clang-format
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
Language: Cpp
BasedOnStyle: Google
AccessModifierOffset: -1
AccessModifierOffset: -4
AlignAfterOpenBracket: Align
AlignConsecutiveMacros: true
AlignConsecutiveAssignments: true
Expand Down Expand Up @@ -29,7 +29,7 @@ BraceWrapping:
AfterClass: false
AfterControlStatement: false
AfterEnum: false
AfterFunction: false
AfterFunction: true
AfterNamespace: false
AfterObjCDeclaration: false
AfterStruct: false
Expand All @@ -42,7 +42,7 @@ BraceWrapping:
SplitEmptyRecord: true
SplitEmptyNamespace: true
BreakBeforeBinaryOperators: None
BreakBeforeBraces: Attach
BreakBeforeBraces: Custom
BreakBeforeInheritanceComma: false
BreakInheritanceList: BeforeColon
BreakBeforeTernaryOperators: true
Expand Down
52 changes: 40 additions & 12 deletions .github/workflows/clang-format-check.yml
Original file line number Diff line number Diff line change
@@ -1,23 +1,51 @@
name: clang-format Check
on: [push, pull_request]

env:
INCLUDE_REGEX: ^.*\.((((c|C)(c|pp|xx|\+\+)?$)|((h|H)h?(pp|xx|\+\+)?$))|(inl|ino|pde|proto|cu))$

on:
push:
paths:
- '**.ino'
- '**.cpp'
- '**.hpp'
- '**.h'
- '**.c'
- '**.inl'
- '**clang-format-check.yml'
pull_request:
- '**.ino'
- '**.cpp'
- '**.hpp'
- '**.h'
- '**.c'
- '**.inl'
- '**clang-format-check.yml'

jobs:
formatting-check:
name: Formatting Check
runs-on: ubuntu-latest
strategy:
matrix:
path:
#- check: './' # path to include
# exclude: '' # path to exclude
- check: 'src'
exclude: ''
- check: 'examples'
exclude: ''
- check: 'test'
exclude: ''
- check: 'examples'
# exclude: '(Fonts)' # Exclude file paths containing "Fonts"

steps:
- uses: actions/[email protected]
- name: Run clang-format style check for C/C++/Protobuf programs.
uses: jidicula/[email protected]
with:
clang-format-version: '13'
check-path: ${{ matrix.path['check'] }}
exclude-regex: ${{ matrix.path['exclude'] }}
- name: Checkout
uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.sha }}

- name: Run clang-format style check for C/C++/Protobuf programs.
uses: jidicula/[email protected] # Using include-regex 10.x or later
with:
clang-format-version: '13'
check-path: ${{ matrix.path['check'] }}
exclude-regex: ${{ matrix.path['exclude'] }}
include-regex: ${{ env.INCLUDE_REGEX }}
3 changes: 1 addition & 2 deletions .github/workflows/doxygen-gh-pages.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
name: Deploy Doxygen docuemnt on GitHub Pages
on: [workflow_dispatch]
# on: [released, workflow_dispatch]
on: [release, workflow_dispatch]
# branches:
# - main
# - master
Expand Down
153 changes: 153 additions & 0 deletions README.ja.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,153 @@

# M5UnitUnified(α リリース)

[English](README.md)

**M5Stack に色々な M5 ユニットをつないで扱う為の新たなアプローチ**
M5Stack シリーズ、 M5Unitシリーズの為のライブラリです。

**注意: 現在αバージョンです**
ご意見ご要望などは Issue または PR にてお願いします。

## 概要
M5UnitUnified は、様々な M5 ユニット製品を統一的に扱うためのライブラリです。

### APIの統一化
各ユニットの外部ライブラリは、それぞれ独自の API デザインがされています。
基本的なAPIを統一し、すべてのユニットが同じように扱えるようにします。

### 接続と通信の統一化
各ユニットの外部ライブラリは独自の通信機能と前提条件が必要です。
前提条件や通信方法を統一化します。
将来的には[M5HAL(Hardware Abstraction Layer)](https://github.com/m5stack/M5HAL)と連携し、各ユニットとの通信を統一する予定です。

### ライセンスの統一化
各ユニットの外部ライブラリのライセンスは様々な物が混在しています。
すべてのM5UnitUnifiedおよび関連ライブラリは、[MITライセンス](LICENSE)下にあります。


## インストール方法
アルファ版ですが Arduino/PlatformIO のライブラリマネージャーに登録されています

### ArduinoIDE
1. ライブリマネージャから使用したいユニットのライブラリ (M5Unit-Foo) を選択してください

依存する M5UnitUnfied 関連のライブラリは自動で DL されます

### PlatformIO
1. platformio.ini の lib\_deps に記述してください
```ini
lib_deps=m5stack/M5Unit-foo ;使用したいユニットのライブラリ
```

依存する M5UnitUnfied 関連のライブラリは自動で DL されます

## 使い方

各ユニットのレポジトリの例も参照のこと。

### Unit コンポーネントを UnitUnified とともに使用する (標準的な使用法)

```cpp
// 他のユニットを使用する場合、インクルードファイル (*1)、インスタンス (*2)、値の取得 (*3) を変更する
#include <M5Unified.h>
#include <M5UnitUnified.h>
#include <M5UnitUnifiedENV.h> // *1 使用するユニットのヘッダ

m5::unit::UnitUnified Units;
m5::unit::UnitCO2 unit; // *2 使用するユニットのインスタンス

void setup() {
M5.begin();

auto pin_num_sda = M5.getPin(m5::pin_name_t::port_a_sda);
auto pin_num_scl = M5.getPin(m5::pin_name_t::port_a_scl);
M5_LOGI("getPin: SDA:%u SCL:%u", pin_num_sda, pin_num_scl);
Wire.begin(pin_num_sda, pin_num_scl, 400 * 1000U);

M5.Display.clear(TFT_DARKGREEN);
if (!Units.add(unit, Wire) // unit を UnitUnified マネージャへ追加
|| !Units.begin()) { // ユニットの始動
M5_LOGE("Failed to add/begin");
M5.Display.clear(TFT_RED);
}
}

void loop() {
M5.begin();
Units.update();
if (unit.updated()) {
// *3 ユニット固有の計測値の取得
M5_LOGI("CO2:%u Temp:%f Hum:%f", unit.co2(), unit.temperature(), unit.humidity());
}
}
```

- 標準外の使い方
- [自分でユニットの更新を行う例](examples/Basic/SelfUpdate)
- [UnitUnified マネージャを使用せず、コンポーネントのみでの例](examples/Basic/ComponentOnly)


## サポートされているもの
### サポートされるフレームワーク
- Arduino

ESP-IDF は将来対応予定です。

### サポートされる通信
- TwoWire による I2C 通信

GPIO、UART は将来対応予定です。


### サポートされる Core デバイス (動作確認済)
- M5Stack Core (BASIC / GRAY / FIRE)
- M5Stack Core2
- M5Stick CPlus
- M5Paper
- M5Stack CoreS3 CoreS3SE
- M5ATOMS3
- M5STAMPS3
- M5Dial
- M5Capsule
- M5NanoC6

他のデバイスは動作確認されたのち追加されます。

### サポートされるユニット

#### 動作確認済
- [UnitCO2](https://github.com/m5stack/M5Unit-ENV)
- [UnitENVIII](https://github.com/m5stack/M5Unit-ENV)
- [UnitAmeter](https://github.com/m5stack/M5Unit-METER)
- [UnitVmeter](https://github.com/m5stack/M5Unit-METER)
- [UnitPaHub2](https://github.com/m5stack/M5Unit-HUB)
- [UnitGESTURE](https://github.com/m5stack/M5Unit-GESTURE)
- [UnitHEART](https://github.com/m5stack/M5Unit-HEART)
- [UnitKmeterISO](https://github.com/m5stack/M5Unit-KMeterISO)
- [UnitTVOC](https://github.com/m5stack/M5Unit-TVOC)

#### 問題があり修正中
- [UnitENVPro]((https://github.com/m5stack/M5Unit-ENV))

他のユニットは開発、確認後追加されます。


## Examples
各ユニットのサンプルについては、各ユニットのリポジトリを参照してください。
このリポジトリにあるサンプルはM5UnitUnified全般のものです。


## Doxygen ドキュメント
あなたのローカルマシンでドキュメントを生成したい場合は、以下のコマンドを実行してください。
```
bash docs/doxy.sh
```
docs/html の下に出力されます。
Git コミットのハッシュを html に出力したい場合は、 git クローンしたフォルダに対して実行してください。

### 必要な物
- [Doxyegn](https://www.doxygen.nl/)
- [pcregrep](https://formulae.brew.sh/formula/pcre2)
- [Git](https://git-scm.com/)

Loading

0 comments on commit f26938c

Please sign in to comment.