J5/노드 종료 시 불꽃 충돌(빨간색 SOS)

4812 단어 voodoospark

묘사

spark io 플러그인을 사용하는 Johnny Five 프로그램을 실행하고 있습니다.노드(Ctrl-C)를 종료하면 불꽃이 충돌하여 깜빡이는 빨간색 SOS 시퀀스(메모리?)에 들어갑니다.
다음은 내가 이 문제를 재현하는 데 사용한 예시 프로그램이다.
https://gist.github.com/Resseguie/0f2303b9a064ca4e02e1
RGB LED를 사용하고 있습니다.나는 표준 led로 그것을 복제할 수 없다.blink() 테스트를 수행하므로 RGB 프로세스에 특정할 수 있습니다.
복도교 격자:2.4.0
존니5:0.8.9
Spark IO:0.5.1
새로운 검은 불꽃 핵심
@rwaldron의 건의하에 나도 바꾸어 보았다https://github.com/voodootikigod/voodoospark/blob/master/src/voodoospark.cpp#L280- L300 재설정 기능에서 이 옵션을 사용합니다.
  memset(&reporting[0], 0, sizeof(reporting));
  memset(&buffer[0], 0, sizeof(buffer));
  memset(&cached[0], 0, sizeof(cached));

  for (int i = 0; i < 8; i++) {
    if (servos[i].attached()) {
      servos[i].detach();
    }
  }
같은 결과.나도 더 빠른 버전의 복도교 방주(6월 10일)에서 탈퇴해 같은 결과를 얻었다.(버전이 작동하려면 네트워크 ->WiFi를 교체해야 합니다.)
나는 복도교의 리셋 기능에 문제가 있다고 가정한다.하지만 J5나 spark io의 문제를 완전히 배제하지는 않습니다.
나는 똑같은 결과를 얻었는지 원시적인 스파크 핵을 꺼내서 업데이트할 것이다.

토론 #1

예를 단순화합니다.RGB LED는 재현할 필요가 없습니다.너는 스파크에서 그것을 운행해서 같은 결과를 얻을 수 있다.시작하고 Ctrl-C 키를 눌러 종료합니다.불꽃이 SOS에 들어갔다.
https://gist.github.com/Resseguie/b8297d36dd41b320f29f
나는 또 낡은 흰색 불꽃 내핵을 시험해 보았는데 (깊이 있는 업데이트를 응용했다) 같은 결과를 얻었다.

토론 #2

지금까지 우리가 전자메일로 토론한 바에 의하면 이것은 무독세계의 문제라고 생각하지 않지만 연구 결과를 기록하는 곳으로 삼자.전화선 뽑아본 적 있어요? reset()https://github.com/voodootikigod/voodoospark/blob/master/src/voodoospark.cpp#L755?

토론 #셋

최신spark 펌웨어를 사용하십니까?https://github.com/spark/core-firmware/releases/tag/spark_10

토론 #4

Spark IDE에서는 "Spark 펌웨어 V0.3.2(8월 19일)를 사용하여 구축 중"이라고 표시됩니다.
나는 심지어 이 점을 어떻게 바꿔야 할지 모르겠다.몰라요.

토론 #5

네, 대발견입니다.reset () 에 대한 L755 호출을 주석을 달았을 때, 이것은 유효합니다.SOS 없이 Ctrl-C 키를 눌러 종료할 수 있습니다.

토론 #6

쿨, 그럼 내가 잘못된 출처를 틀렸어.나는 네가 지금 디버깅을 하고 있다고 가정한다.) 네가 증거를 수집할 때 무엇을 발견했는지 알게 해 줘.

토론 #7

voodoospark에서reset () 호출을 취소했습니다.
니가 led라고 부르면이사회 내부에서준비 완료 기능에서는 SOS가 종료될 때 전송됩니다.또한 RGB LED는 예상되는 흰색이 아닌 빨간색으로 변경됩니다.
https://gist.github.com/Resseguie/b8297d36dd41b320f29f
led등을 켜면setTimeout에서 on () 을 호출할 때 충돌하지 않습니다.
https://gist.github.com/Resseguie/e9418f05d6db50f1c774
led를 사용합니다.두 방법 모두 색상("#fffff")은 문제가 되지 않습니다.
그래서 무독세계에 없을지도 몰라요.여전히 범위를 좁힐 것을 찾고 있다.

토론 #8

If you call led.on() inside the board.on("ready") function, it give SOS when you exit.


리셋 () 을 호출하지 않았음에도 불구하고?

If you put the led.on() call inside a setTimeout, it doesn't crash.


흥미로운 것은 소식 전달 속도를 늦추면 문제를 해결할 수 있을 것 같다는 것이다...

It also turns the RGB LED red instead ... Using led.color("#ffffff") doesn't cause the problem in either approach.


유일한 진정한 차이는 이 줄이다.https://github.com/rwaldron/johnny-five/blob/master/lib/led.js#L612, 무슨 일이 일어날지 평론해 볼 수 있습니까?

토론 #9

If you call led.on() inside the board.on("ready") function, it give SOS when you exit.


리셋 () 을 호출하지 않았음에도 불구하고?
아니오, 주의하십시오. 이 테스트들을 다시 리셋 () 으로 돌려놓을게요.
나는 6월에 내가 만든 표준spark io RGB LED 예시로 다시 돌아왔지만 지금은 안 된다.
https://github.com/rwaldron/spark-io/blob/master/eg/led-rgb.js
만약 내가 이걸 꺼낸다면:
https://github.com/rwaldron/spark-io/blob/master/eg/led-rgb.js#L41-L42
이것은 다음과 같습니다.
https://github.com/rwaldron/spark-io/blob/master/eg/led-rgb.js#L64
그리고 그것이 또 작용했다.
그래서 이게 싸움인 것 같아.의 ()에 있습니다.on(준비) 기능은 문제를 초래할 수 있습니다.를 참고하십시오.옆에 있어요.색상()이 문제를 일으킬 수 있습니다.
하지만 그가 앞서고 있다.상술한 테스트가 성공한 후 J5의 js는 변하지 않았다.은마르코프 모형...

토론 #10

이것은 내가 끊임없이 발전하는 신념에 부합된다.만약 우리가 (on() 함수에서) led가 이미 켜져 있는지 검사한다면, 이미 켜져 있다면 아무것도 하지 않으면 어떻게 됩니까?

토론 #11

SOS와의 관계는 아직 확실하지 않지만 Led의 논리는 틀림없이 잘못된 것이다.RGB.정보()
위의 J5 PR은 Led를 빛나게 합니다.RGB.on () 동작이 일치하고 색 상태를 저장합니다.이것도 디버깅에 도움이 된다.

토론 #12

상술한 PR이 있어서 제 간소화 예시가 이제 정상적으로 작동할 수 있습니다. 제가 호출한 예시입니다.회로판 내부에 직접 있다.시간 초과를 설정하지 않고도 준비(준비) 기능이 켜집니다.
(https://gist.github.com/Resseguie/b8297d36dd41b320f29f)
근데 전화해.() 및 입니다.color () 는 여전히 충돌을 초래할 수 있습니다:
https://gist.github.com/Resseguie/e308663338f38ed7770c
그래서 사람들은 여전히 명령이 너무 빨리 오는 것이 원인이라고 생각한다.위의 공관은 추가 통화가 없기 때문에 그 중의 일부 추가 통화를 삭제했을 뿐이다.() 및 입니다.단일 RGB 트랙의 밝기().문제를 해결하지 않고 최소한 열 수 있도록 합니다.:)
나의 직감은 나에게 이것과
https://github.com/rwaldron/spark-io/issues/30

토론 #13

우리는 순환 기능을 늦출 수 있다.)

토론 #14

와!010c717e6e0744f63204841e9811dd2ace5f57b3로 고정

좋은 웹페이지 즐겨찾기