2016-06-03 1 views
-1

나는 Aldebaran의 Nao와 일하고 있으며 배터리 충전 여부를 확인하기 위해 python 스크립트를 작성하고 싶습니다.로봇이 충전 스테이션에 연결되어 있고 연결이 끊어져 있는지 확인하십시오.

naoqi 모듈에 대한 문서가 있습니다. 이 이벤트는 1입니다. 그러나 이것은 하나의 사건입니다. 내 생각에 나는 사건을 기다릴 수는 있지만, 나는 그것을 bool처럼 읽을 수는 없다. 내가 맞습니까?

답변

1

This linked page은 읽을 수있는 현재 및 충전 % 값이 있음을 보여줍니다. 나는 그것들을 시험해보고 현재의 변화가 배터리로 작동하는 것과 비교하여 충전 할 때 변화 하는지를 확인한다. 또는 충전이 진행 중임을 감지 할 수있을만큼 충전 %가 빠르게 상승하는지 확인하십시오.

0

당신은 이벤트 "BatteryChargingFlagChanged"에 가입 ALMemory API를 사용할 수 있습니다 http://doc.aldebaran.com/2-4/naoqi/core/almemory-api.html#ALMemoryProxy::subscribeToEvent__ssCR.ssCR.ssCR

이 방법은 콜백을합니다 : 당신이 사용할 수있는 플래그를 설정을 정의합니다.

+0

글쎄, 결과를 즉시 제공하는 스크립트를 원하기 때문에 이벤트에 가입하고 싶지 않습니다. 따라서 "전류 센서"를 사용하는 것이 더 좋습니다. – tux007

0

제 의견으로는 이벤트를 기다릴 수는 있지만, 부울처럼 읽을 수는 없습니다. 내가 맞습니까?

배터리는 불가능합니다. 게시 된 각 이벤트는 신호를 보내고 ALMemory의 스위치를 "뒤집습니다". 이러한 메모리 키가있는 경우 수량 또는 값의 상태 만 읽을 수 있습니다. 그렇지 않으면 정보가 손실되어 검색 할 수 없습니다. 예를 들어

때마다 충전 비율 변경 이벤트가 트리거이 메모리 키에 신호를 보냅니다 그런 다음 직접 제공된 API를 사용하여이 값을 읽을 수 있습니다

Device/SubDeviceList/Battery/Charge/Sensor/Value 

, 당신이 설명 된 것과 동일한 방법으로 귀하의 질문에 방법으로. 위탁을 위해, 간단하게 그런 열쇠가 없다.

mem = ALProxy(ALMemory, pip, pport) 
mem.getData("BatteryPowerPluggedChanged") 

이벤트의 부울 변수에 액세스하려면 :

당신은 시도 할 수 있었다 "BatteryPowerPluggedChanged을"당신은 참/거짓 얻을 것이다. 그러나 이것은 사전에 이벤트에 가입하지 않으면 실시간 변화를 반영하지 않기 때문에 도움이되지 않습니다.

희망이 도움이됩니다.

관련 문제