我在一个表中有一个字段,其中包含从lora设备发送的打包数据。这个设备把它包装成这样:
# LoRa payload format
# (2 Bytes for device ID, 8 float numbers: temp humid ph1 ph2 ph3 volt1 volt2 volt3)
LORA_PKG_FORMAT = "!Hffffffff"
msg = struct.pack(LORA_PKG_FORMAT, config.DEVICE_ID, temp_read, humid_read, ph1_read, ph2_read, ph3_read, volt1_read, volt2_read, volt3_read)接收端的python应用程序能够像这样解码和解压缩它:
dev_msg = base64.b64decode(rx_pkt["data"])
focus_data = struct.unpack(config.LORA_PKG_FORMAT, dev_msg)postgres表中的打包数据如下:
\x000141a4000042a0e3884147fd0f41477c3b4147a5303e0895213e0895213e089521尽管从python应用程序解压缩的值是:
logging.info('Decoded payload: ' + str(focus_data))解码有效载荷:(1,20.5,80.44439697265625,12.499281883239746,12.467829704284668,12.477828979492188,0.13338138163089752,0.13338138163089752,0.13338138163089752)
如果使用postgres查询,如何实现与struct.unpack函数相同的结果?我需要提取每一个元素来创建一个关于地堑的面板。
发布于 2021-12-01 20:26:11
编写一个PL/Python中的数据库功能并在一个SQL查询中调用它。
数据库函数在数据库中运行,可以在SQL中使用。
https://stackoverflow.com/questions/70187401
复制相似问题