本文整理汇总了Python中dialog.Dialog.prompt方法的典型用法代码示例。如果您正苦于以下问题:Python Dialog.prompt方法的具体用法?Python Dialog.prompt怎么用?Python Dialog.prompt使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类dialog.Dialog
的用法示例。
在下文中一共展示了Dialog.prompt方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: IotConsole
# 需要导入模块: from dialog import Dialog [as 别名]
# 或者: from dialog.Dialog import prompt [as 别名]
#.........这里部分代码省略.........
encodedBytes = base64.urlsafe_b64encode(str(encryptedBytes))
interestName = Name(self.prefix).append("addDevice").append(encodedBytes)
interest = Interest(interestName)
# todo: have the controller register this console as a listener
# and update it with pairing status
interest.setInterestLifetimeMilliseconds(5000)
self.face.makeCommandInterest(interest)
self.face.expressInterest(interest, self._onAddDeviceResponse, self._onAddDeviceTimeout)
def _onAddDeviceResponse(self, interest, data):
try:
responseCode = int(str(data.getContent()))
if responseCode == 202:
self.ui.alert("Gateway received pairing info")
else:
self.ui.alert("Error encountered while sending pairing info")
except:
self.ui.alert("Exception encountered while decoding gateway reply")
finally:
self.loop.call_soon(self.displayMenu)
def _onAddDeviceTimeout(self, interest):
self.ui.alert("Timed out sending pairing info to gateway")
self.loop.call_soon(self.displayMenu)
######
# Express interest
#####
def expressInterest(self):
if len(self.foundCommands) == 0:
self._requestDeviceList(self._showInterestMenu, self._showInterestMenu)
else:
self.loop.call_soon(self._showInterestMenu)
def _showInterestMenu(self):
# display a menu of all available interests, on selection allow user to
# (1) extend it
# (2) send it signed/unsigned
# NOTE: should it add custom ones to the list?
commandSet = set()
wildcard = "<Enter Interest Name>"
try:
for commands in self.foundCommands.values():
commandSet.update([c["name"] for c in commands])
commandList = list(commandSet)
commandList.append(wildcard)
(returnCode, returnStr) = self.ui.menu("Choose a command", commandList, prefix=" ")
if returnCode == Dialog.DIALOG_OK:
if returnStr == wildcard:
returnStr = self.networkPrefix.toUri()
self.loop.call_soon(self._expressCustomInterest, returnStr)
else:
self.loop.call_soon(self.displayMenu)
except:
self.loop.call_soon(self.displayMenu)
def _expressCustomInterest(self, interestName):
# TODO: make this a form, add timeout field
try:
handled = False
(returnCode, returnStr) = self.ui.prompt(
"Send interest",
interestName,
preExtra=["--extra-button", "--extra-label", "Signed", "--ok-label", "Unsigned"],
)
if returnCode == Dialog.DIALOG_ESC or returnCode == Dialog.DIALOG_CANCEL:
self.loop.call_soon(self.expressInterest)
else:
interestName = Name(returnStr)
doSigned = returnCode == Dialog.DIALOG_EXTRA
interest = Interest(interestName)
interest.setInterestLifetimeMilliseconds(5000)
interest.setChildSelector(1)
interest.setMustBeFresh(True)
if doSigned:
self.face.makeCommandInterest(interest)
self.ui.alert("Waiting for response to {}".format(interestName.toUri()), False)
self.face.expressInterest(interest, self.onDataReceived, self.onInterestTimeout)
except:
self.loop.call_soon(self.expressInterest)
def onInterestTimeout(self, interest):
try:
self.ui.alert("Interest timed out:\n{}".format(interest.getName().toUri()))
except:
self.ui.alert("Interest timed out")
finally:
self.loop.call_soon(self.expressInterest)
def onDataReceived(self, interest, data):
try:
dataString = "{}\n\n".format(data.getName().toUri())
dataString += "Contents:\n{}".format(repr(data.getContent().toRawStr()))
self.ui.alert(dataString)
except:
self.ui.alert("Exception occured displaying data contents")
finally:
self.loop.call_soon(self.expressInterest)