我正在使用这个python脚本来实现一个基本的Paho(MQTT)订阅者,但在某些情况下它不会调用on_connect.
我尝试了以下内容,所有代码完全相同:
我通常也这样做:
还尝试了官方网站上列出的所有设置方法.所以python的paho库似乎与我的本地经纪人不相处,除非我从我的树莓中运行它.但是使用相同的代理可以很好地与c ++的paho库一起使用,如果使用终端的MQTT.什么可以发生的想法?
import paho.mqtt.client as mqtt
def on_connect(mqtt_client, obj, flags, rc):
mqtt_client.subscribe("test")
print "on_connect"
def on_message(mqtt_client, obj, msg):
print "on_message"
mqtt_client = mqtt.Client()
mqtt_client.on_connect = on_connect
mqtt_client.on_message = on_message
mqtt_client.connect("127.0.0.1",1883)
mqtt_client.loop_forever()
Run Code Online (Sandbox Code Playgroud) 我正在使用Intel x64汇编,NASM编译器,尝试将"0x4000000000000000"常量移动到内存,在ieee 754标准double中应该等于2.0.
我正在使用的代码是:
%define two 0x4000000000000000
section .text
foo:
push rbp
mov rbp, rsp
mov QWORD [rdi], two
pop rbp
ret
Run Code Online (Sandbox Code Playgroud)
编译此抛出
警告:签名dword立即超出界限.
当我用C++打印值时,它显示"0"而不是"2".
我已经找到了获得正确价值的方法,即:
mov r9, 0x4000000000000000
mov [rdi], r9
Run Code Online (Sandbox Code Playgroud)
但我想知道是否有办法在不使用寄存器的情况下实现这一目标.
顺便说一句,我用这个脚本编译代码:
#!/bin/bash
nasm -f elf64 -g -F dwarf vvp_asm.asm -o vvp_asm.o
g++ -c -m64 -std=c++11 main.cpp -o main.o
g++ -o main -m64 vvp_asm.o main.o
Run Code Online (Sandbox Code Playgroud)