박쥐에서 벗어난 나는 모든 멍청한 놈이다. 그래서 어떤 도움이라도 대단히 감사 할 것이다.Node-Red : JSON 데이터를 파싱하여 바이너리로 변환합니다.
INJECT- 셀프 explanitory
NAME- 반환 {페이로드 : "= 00ECC90AG001XQ01"내 스크린 샷에서 볼 수 있듯이 여기
내 문제의 고장이며, 여기에 노드입니다 };HTTP 요청 = "http://192.168.63/get_points/"+ msg.payload msg.method = "GET"점 - msg.url를 얻을; 돌아 오는 메시지;
http 요청- GET으로 설정하십시오.
JSONpath- .points [0]이 http://192.168.63/get_points/=00ECC90AG001XQ01에있는 JSON를 파싱 설정되어 .ST $.
내가이 형성 얻을 출력은 내가 바이너리에이 번호를 변환하고 싶습니다 458886.
입니다. 그런 다음이 바이너리에서 -7 자릿수를 파싱하고 싶습니다.
입력을 이진수로 변환하기위한 이진 노드 (스크린 샷에서 연결이 끊어진 것)를 사용해 보았습니다. 나는 "패턴"요구 사항을 통과 할 수 없었다.
감사에서 7 번째 문자를 찾을 수 있습니다! 한 가지 더 질문하지만, 먼저 458886을 바이너리 (0b1110000000010000110)로 변환해야합니다. 어떤 아이디어? –
아니요, 함수의 첫 번째 행은 숫자를 2 진수로 변환합니다. '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; 메시지를 반환합니다. 한 가지 더 궁금한 점이 있다면, 변수가 msg 변수에 저장되지 않은 이유는 왜 msg.payload에 있어야합니까? 이것은 Node-Rd에 내장 된 메서드의 일부 유형입니까? –