問題タブ [telemetry]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
499 参照

c# - ユーザーがテレメトリ データの評価に使用する式を入力できるようにする

現在、センサー データをデータベースにダンプしています。これは生データであり、エンド ユーザーにとって意味のあるものにするためには、方程式を適用する必要があります。私が抱えている問題は、まだ式のほとんどを知らないことです。また、新しいセンサーがシステムに追加されたときに、ユーザーがキャリブレーション方程式を入力できるように、プログラムを十分に柔軟にしたいと考えています。生データを有用なものに変換できます。

ユーザーが数式を入力してデータを操作できるようにしたことはありません。役立つ情報をいただければ幸いです。ラムダ式ツリーを試したり、方程式を評価して CodeDom を使用してコンパイルしたり、別の方向を見たりする必要がありますか? 私はラムダ式ツリーまたは CodeDom のどちらもあまり使用したことがなく、いつものようにかなりタイトなスケジュールで作業しているため、学習曲線は重要です。後で戻って改善する機会があります。彼らは今のところ稼働する必要があるだけです.

ご意見ありがとうございます。

0 投票する
1 に答える
1172 参照

windows-phone-7 - WP7 バッテリー テレメトリ データを取得しますか?

Windows Phone 7 で現在のバッテリ テレメトリを取得する方法を探しています。フレームワークの最も近い部分は次のようMicrosoft.Phone.Info.DeviceExtendedProperties.GetValue()に見えますが、デバイス情報 (モデル、シリアル) と現在のメモリ消費しか照会できないようです。

この WP7 SDK のイテレーションではバッテリー データにアクセスできませんか、それとも単に何か不足していますか?

0 投票する
1 に答える
2755 参照

performance - テレメトリ / SCADA システムの設計とプログラミングに最適なフレームワークまたはシステム アーキテクチャ

このトピックに適した本について質問しました。

あまり返事が来ないので、良い本がないのかもしれません (奇妙なことに、自分で Amazon を検索する必要があります)。

書籍がなくても、適切なフレームワーク、適切な URL、または一般的なアドバイスがあるかもしれません。

私が他の質問で尋ねたように:

私はいくつかのプロジェクトを見ていますが、すべてほぼ同じ機能を持っています。

一部の計測器は、一部のデータを収集します (または一部の機能を制御します)。それらはインターネット (イーサネット/wifi/GPRS/サテライト) を介して、測定値を保存し、データの照会、レポートの作成などを行うブラウザー ベースの手段を提供するデータベース サーバーと通信します (また、リモート機器の制御も可能にする可能性があります)。

そのようなソフトウェア アーキテクチャを開発するアプローチを説明し、汎用性を維持し、どのツールや言語を使用するかを説明している優れた本を、誰でもお勧めできますか。使用するテスト方法など?

「本」の代わりに「フレームワーク、適切な URL、または一般的なアドバイス」を使用してください。

これは非常に一般的なシステム パターンです。誰がアドバイスできますか?

0 投票する
1 に答える
325 参照

collections - 大量のテレメトリの処理

大量のテレメトリ データを読み取るプロジェクトがあります。テレメトリは「チャネル」で構成されます。チャネルは多くの場合、単一のセンサーからの値です。たとえば、温度センサー。


A: 測定値B
: チャネル ID
C: 測定時刻

テレメトリは、最大 500 Hz (毎秒 500 サンプル) までのかなり高いレートで受信され、チャネルごとに 1 Hz という低いレートで受信されます。同時チャンネル数は通常約 150 です。

各チャネルのレートは正確であるとは期待できず、異なる場合があります。

そのため、データを処理し、後で値を表示するためのコレクション/アルゴリズムを探しています。表示はグラフと数値の読み出しで構成されています。

通常、データは順次受信されますが、より長い期間の停止が発生する可能性があります。また、停止によって失われたデータを後で受け取ることもできます。

簡単に言えば、データを構造化できるコレクションが必要
です。
B: 時間 a から b までの値をシーケンシャルに読み取れる必要があります。
C: 末尾または途中に新しい値を挿入します。

skiplist (http://en.wikipedia.org/wiki/Skiplist) を使用して実装を行いました。すべての要件を満たしているように見えますが、多くのメモリを消費します。私の最初の計算では、測定値の 5 倍から 10 倍の間のどこかが示されました。実際にはそれよりも高くなります。

また、値をデータベースに追加してそこから読み取ることも検討しましたが、遅いようです-SQLサーバーがそれほど多くの値を高速に挿入することはありません。

それで、これを行うことができるコレクション/アルゴリズムについて何か考えはありますか?

0 投票する
2 に答える
4059 参照

mysql - 数万のノードからのテレメトリ データを保存する

10000 を超えるノード (増加する可能性があります) から数分ごとに生成されるテレメトリ データを保存する必要があり、それぞれがインターネット経由でサーバーにログ記録用のデータを提供します。また、Web アプリケーションからこのデータをクエリする必要があります。

最適なストレージ ソリューションを決定するのに少し苦労しています。

各ノードには一意の ID があり、変数の各パケットにはタイムスタンプがあります。(おそらく、サーバーによって生成される必要があります)。

テレメトリ データにはすべての変数が同じパケットに含まれているため、概念的には、変数ごとに列を持つ 1 つのデータベース テーブルに簡単に格納できます。シリアル番号 + タイムスタンプがキーとして十分です。各テレメトリ パケットのサイズは、デバイス ID とタイムスタンプを含めて 64 バイトです。つまり、年間約 100Gb+ です。

データをクエリして時間範囲全体の変数を取得し、このデータの集計レポートを保存してグラフを描画できるようにしたいと考えています。

さて、これをどのように処理するのが最善でしょうか?私は MySQL の使用にかなり慣れているので、これに傾倒しています。MySQL を使用する場合、デバイス ID ごとに個別のテーブルを用意することは理にかなっていますか? - これによりクエリがはるかに高速になりますか、それとも数万のテーブルが問題になるでしょうか?

一度にすべてのデバイスから変数を照会する必要はないと思いますが、必要になる可能性があります。または、すべてを単一のテーブルに貼り付けて、MySQL クラスターが非常に大きくなった場合に使用する必要がありますか?

または、より良い解決策はありますか?私はいくつかの非リレーショナル データベースを見回してきましたが、法案に完全に適合するものや非常に成熟しているように見えるものは見当たりません。たとえば、MongoDB は行ごとにかなりのサイズのオーバーヘッドがあり、MySQL と比較して、単一の変数の値を広い時間範囲でクエリする際にどれほど効率的かはわかりません。また、MySQL はしばらく前から存在しており、堅牢です。

また、データの複製とバックアップを簡単に行えるようにしたいと考えています。

任意のアイデア、または誰かが同様のことを行っている場合は、入力していただければ幸いです。

0 投票する
3 に答える
1299 参照

java - Blue Pelican Java プロジェクト「Masking Telemetry Data」; コンパイルしているが実行していない?

Blue Pelican Java でこのプロジェクトを 1 時間以上試してみましたが、うまくいかない理由がよくわかりません。基本的に私がしなければならないことは、通常の数を 2 進数に変換することです。1 はスイッチが開いていることを意味し、0 はスイッチが閉じていることを意味し、2 進数の各桁を調べて、開いているか閉じているかを出力します。彼らは私にこれをしてほしいと述べました:

「左から 3 番目のビットを調べたいとします。3 番目のビットのみを調べるには、以下に示すようにマスクを使用して、元の数値とビットごとに AND します。1 0 1 1 0 0 0 1bin = 177dec 0 0 1 0 0 0 0 0bin = 32dec (これはマスクです)

0 0 1 0 0 0 0 0bin = 32dec = (177 & 32)

32 のマスク値 (左から 3 番目のビット位置の位置値は 25 であるため 25) をビットごとに AND 演算するこのスキームは、元の数値の 3 番目のビット位置と正確に等しい 3 番目のビット位置の値を生成することに注意してください。 . 他のすべてのビット位置は 0 であることが保証されています。したがって、このビットごとの AND 演算の結果をテストして、その値全体が 0 かどうかを確認できます。0 より大きい場合、これは、テストされた位置のビットが 1 だったことを意味します。」

この時点で、Switches.in フォルダー内の最初の数字 22 をテストしているだけで、フォルダー全体をコード用にまだインポートしていません。コードがコンパイルされ、必要なものの出力が開始されますが、突然切断され、次のようなエラー メッセージが表示されます。

これが私のコードです:

コードの何が問題なのかわかりません。アドバイスをいただければ幸いです。ありがとう、そして長い投稿でごめんなさい!

0 投票する
1 に答える
975 参照

architecture - テレメトリ設計パターン - デバイスとサーバー間の相互運用性 (SMS、GPRS など)

私は現在、リモートカー管理に関連するプロジェクトに取り組んでいます。

車のエンジンを始動/停止したり、GPS 座標を提供したり、ドアロックの状態を確認したりできるデバイスがあります。このデバイスには SIM カードがインストールされています。

2 番目の側は、デバイスと通信し、消費者が iPhone、Android、および WM7 電話を介して自分の車を管理できるようにするサーバーです。

私にとっての主な質問は、デバイスとサーバー間の通信に対してどのような技術要件を定義する必要があるかということです。

そのような種類のデータ転送の標準設計パターンに関する本や記事があることを知っている人はいますか?

以下は、私を悩ませている問題の例です

デバイスにいくつかのリクエストを送信する必要があります (例: 「車を始動してください」または「走行距離を教えてください」)。それを提供するために、サーバーはこのリクエストを送信するアドレスを持っている必要があります。

私が正しく理解していれば、それを行うには次の方法があります。

  • VPN を整理する (高価)
  • SMS トランスポートを使用する (高価)
  • TCPソケットを使用して、デバイスとサーバー間の永続的なセッションを編成します(ロシアのGSMネットワークの現実で機能するかどうかはわかりません)

似たような専門知識を持ち、どこに移動すべきかアドバイスをくれる人がここにいるのではないでしょうか?

0 投票する
1 に答える
1225 参照

python - ケーブルを使用して ArduPilot のテレメトリ ポートからデータを読み取る

良い一日。

SERIAL-USB コンバーターと USB ケーブルを使用して、ArduPilotMega のテレメトリー ポートからテレメトリーを読み取る必要があります。

どうすればできますか?

ここに画像の説明を入力

私はpythonを使用しようとします:

結果は次のようになります。

接続先: /dev/ttyUSB0 ['\x1c', '\x01', '\x1e', 'V', '\x00', '\x8c', '=', '\xe2', '\xbc' , 'v', '\xc0', '\xf6', '8', ',', '\xba', 'E', '8', '%', '\x14', '\x01', 'J'、'\x00'、'\x00'、'\x00'、'\x00'、'Q'、'\xc0'、'c'、'>'、'\x00'、'\x00' , '\xc2', '\x1a', '\x01', '\x1b', '\x12', '"', '\x00', '\x00', '\xff', '\xff', '\xfc', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\xa1', '\x0e', '\x01', '\x1d'、'V'、'\x00'、'\xdb'、'D'、'f'、'>'、'\r'、'\xec'、'\x1f'、'\x01'、'\x01'、'\xfc'、'\x00 '、'\xfc'、'\x00'、'\xfc'、'\x00'、'\x01'、'\x00'、'\xff'、'\x00'、'\x00'、'\x00 '、'\x00'、'\x00'、'\x00'、'\xed'、'\xfe'、'\xa4'、'\x01'、'\xf6'、'.'、....\xed'、'\xfe'、'\xa4'、'\x01'、'\xf6'、'.'、....\xed'、'\xfe'、'\xa4'、'\x01'、'\xf6'、'.'、....

どうすればデコードできますか?

正しい方法ですか?

ありがとうございました!