大多数情况下,我最终会为订阅和接收操作创建具有相同内容的 AWS IoT 策略。如果允许某人订阅一个主题,则必须允许其接收发布到该主题的消息。
另一种方法是指定要订阅的确切主题并使用所有通配符 (*) 进行 Receive 操作。如果允许某人订阅主题列表,它将永远不会收到来自其他主题的消息,那么为什么还要在 Receive 操作中指定确切的主题呢?
Receive 与 Subscribe 不同的唯一用例是,必须禁止已连接和订阅的事物/用户接收发布到已订阅主题的消息。然而,这是一个非常特殊的情况。
这是我第一次在 Python 中使用 gettext(通常也是 gettext)。我了解了很多事情,并且我的测试应用程序运行良好:一个命令行参数可以更改输出消息的语言。
现在我想让用户在启动时更改语言。
我知道我可以加载许多翻译并在运行时安装其中之一,但是许多字符串已经用旧语言翻译,并且不会再次更改。
有什么简单的解决办法吗?
import gettext
language = "it"
t_en = gettext.translation("messages", localedir="locale", languages=["en"], fallback=True)
t_it = gettext.translation("messages", localedir="locale", languages=["it"], fallback=True)
def language_install():
if language == "it":
t_it.install()
else:
t_en.install()
language_install()
main_menu = [_("First item"), _("Second item"), _("Switch language"), _("Exit")]
while True:
print("MAIN MENU")
print("---------")
for (n, item) in enumerate(main_menu):
print("{:d}: ".format(n + 1) + item)
print("")
ans = input(_("Select an item") + ": ")
if ans == "4":
break
elif ans == "3":
if language …
Run Code Online (Sandbox Code Playgroud) 我刚开始玩 AWS IoT。我创建了一个东西并使用 mqtt-spy 连接到 AWS 服务器。一切正常。
现在我想在网络控制台中检查每件事的状态,但是我在设备附近找不到这样有用的信息。
extern void myprint(unsigned char *);
static inline void
myfunc(unsigned char *buf)
{
for (unsigned int i = 0; i < 20; i++) {
buf[i] = i;
}
}
int
main(void)
{
unsigned char buf[10];
myfunc(buf);
myprint(buf);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
$ gcc.exe -O2 -pedantic -Wextra -Wall -Wstringop-overflow -Wuninitialized -Wunused -Warray-bounds=2 -Wformat-overflow -Wstringop-overread -g -c C:\temp\cb\main.c -o build\mingw\obj\main.o
$ gcc.exe -o build\mingw\test.exe build\mingw\obj\main.o build\mingw\obj\mod.o -O2
Run Code Online (Sandbox Code Playgroud)
$ gcc --version
gcc (i686-posix-sjlj-rev1, Built by MinGW-W64 project) 11.2.0
Copyright (C) 2021 Free Software Foundation, Inc. …
Run Code Online (Sandbox Code Playgroud)