3D打印实战:通过socket获取klipper模块的属性值

通过socket获取klipper模块的属性值

  1. 启用API服务器
    klipper.py运行时应加上 -a 参数, -a /tmp/klippy_uds
  2. 建立tcp连接
    使用/tmp/klippy_uds
  3. 请求
    使用json
    json末尾加0x30
    请求字必须包含一个”method”字段,其值应包含一个可用的Klipper端点”endpoint”名称字符串
  4. objects/subscribe订阅后,如果数据有变化,klipper主动发json数据
  5. 添加字段
    在load_config模块对应类中添加get_status方法
    def get_status(self, eventtime):
    return {‘aaa’: self.a}

总结:建立socket -> 发json -> 根据method的值找到endpoint -> 遍历所有订阅的模块,调用get_status方法 -> 返回json

参见Moonraker项目,该项目是一个流行的工具,可以将HTTP请求转发到Klipper的API服务器Unix域插座。
python3 /home/lhgcs/klipper/scripts/whconsole.py /tmp/klippy_uds

import socket
import time
import json

"""
ip = "127.0.0.1"
port = 80
# 创建一个socket对象
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 定义服务器的IP地址和端口号
server_address = (ip, port)
# 连接到服务器
client.connect(server_address)
"""

uds_filename = "/home/lhgcs/printer_data/comms/klippy.sock"
# uds_filename = "/tmp/klippy_uds
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值