DecoderDB support

オープン
#121 コメント 11 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
5/5
見積もり時間
1週間以上
初心者へのやさしさ
20/100
issue の種類
機能追加
明瞭さ
説明が足りない
活発さ
停滞
技術スタック
dart, flutter
領域
frontend

調査の方向性

Start by reviewing the DecoderDB JSON URLs and the linked XSD schemas; the issue also mentions the programming screen and a possible NotifierProvider for CV programming. Clarify which part of this broad request is still outstanding and agree on completion criteria before making changes.

索引モデルが issue の本文から書いたものです。

説明

https://github.com/BiDiBorg/DecoderDB/

URLs:

(.xsd) Schemas here:
https://github.com/BiDiBorg/DecoderDB/tree/main/src/RepoGenerator/Data/Schema

I have now created @JsonSerializable() models for each of those because this allows certain parts of the model to stay private (instead of freezed, which generates a name clash with the JsonSerializable code gen...). Sadly there is a lot of repetitive naming in those models which makes it hard to auto-generate them. Will need to manually check again, already found some issues...

Created @freezed models for the 3 JSON files mentioned above. Naming is horrible because there are no namespaces in Dart...


On the programming screen I'd like to move the address into the "PoM" list tile. In order to do this the first two steps must be switched because at this point we need to know whether we need to validate loco or accessory addresses.
Image


The actual CV programming should move to a NotifierProvider (e.g. z21CvProvider). There should be some kind of CvRequest type which contains all the necessary information I guess? The biggest question is... how to deal with CV31/32? Even if we set it from inside the provider, the result will not contains this kind of information. 😢

And another issue I just found... the original Z21 protocol does not rely on a response when writing CVs with PoM. I can see how this makes sense, given some decoders don't support PoM reads but PoM writes... but how do we not flood the WebSocket with messages in such a case?


Some inspiration from different tools

BiDiB-Monitor and an ESU LS5 Image Image Image Image Image Image Image Image Image Image Image Image Image
Win-Digipet and MX645 Image Image Image Image Image Image Image Image Image Image Image Image Image Image Image Image Image Image Image Image Image Image Image Image Image
主要言語
Dart
スター
2
フォーク
2
平均マージ
23時間 16分
マージ済み PR(30日)
3

環境構築

このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

OpenRemise/Frontend のほかの issue

OpenRemise/Frontend の issue をすべて見る

似ている issue

Dart の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。