すぐにバットを外して、私は全部の騒ぎですので、どんな助けでも大歓迎です。ここでNode-Red:JSONデータを解析し、バイナリに変換します。
は、ここでは、私の問題の内訳である私のスクリーンショットに見られるようなノードです:
INJECT- 自己explanitory
名 - リターン{ペイロード: "= 00ECC90AG001XQ01" };
HTTPリクエストは= "http://192.168.63/get_points/" + msg.payload msg.method = "GET" ポイント・ツー msg.urlを取得します。 返信msg;
httpリクエスト- GETに設定します。
JSONpath- $ .points [0]これはhttp://192.168.63/get_points/=00ECC90AG001XQ01に位置JSONをパースするように設定されている を.ST。
私はこれを形成し得る出力は、私はバイナリにこの数値を変換したい458886.
です。 それからそのバイナリから-7桁を解析したいと思います。
入力をバイナリに変換するためのバイナリノード(スクリーンショットで切断されたノード)を使用してみました。私は "パターン"要件を通過することができませんでした。
おかげから7文字を見つけます!しかしもう1つの質問ですが、私はまず458886をバイナリ(0b1110000000010000110)に変換する必要があります。何か案は? –
いいえ、関数の最初の行は数値をバイナリに変換します。 'toString(2)'は数字を基数2の文字列に変換します(正面に '0b'は付きません) – hardillb
あなたは正しいです、私が投げているのは、元の458886の番号を、バイナリに変換されている、1または0をピックアップする必要があります。これは私が今持っていると私の出力は5です。私はバイナリにその変換を失っている行に沿ってどこか:var binary = msg.payload.toString(2 ); var alarmBit = binary.charAt(binary.length-5); msg.payload = alarmBit;メッセージを返す。もう1つの質問ですが、変数がmsg変数に格納されていないのはなぜですか?msg.payloadにはどうしてですか?これはNode-Rdに組み込まれたメソッドの一部ですか? –