在我的 Choregraphe 项目中,机器人调用 API 来检索将在其平板电脑中显示的图像(以 base64 编码)。
因此机器人调用 API,获取数据的 JSON 并将其保存在文件中。之后,它打开文件,读取图像并对其进行解码。解码后的图像被保存为一个时间文件,最后,它调用这个时间图像在平板电脑上显示tabletService.showImage(url)
我遇到的问题是机器人没有显示任何图像,也没有抛出任何错误或异常。我不知道如何解决它。
def onInput_onStart(self):
# We create TabletService here in order to avoid
# problems with connections and disconnections of the tablet during the life of the application
import json
import base64
import tempfile
tabletService = self._getTabletService()
if tabletService:
try:
senaleticas = ''
with open('senaleticas.json', 'r') as fr:
strSenaleticas = fr.read()
senaleticas = json.loads(strSenaleticas)
image64 = senaleticas[0]['_mapa']
image = base64.b64decode(image64)
f = tempfile.NamedTemporaryFile()
f.write(image)
url = self._getAbsoluteUrl(f.name)
self.logger.info("-> " + url)
tabletService.showImage(url)
except Exception as err:
self.logger.error("Error during ShowImage : %s " % err)
self.onStopped()
else:
self.logger.warning("No ALTabletService, can't display the image.")
self.onStopped()
日志显示 varlog
具有值 http://198.18.0.1/apps/.lastUploadedChoregrapheBehavior/tmp/tmpEhJeOS
注意:如果有另一种显示图像的方式,我对此很感兴趣。