3D打印:点灯

[myled]
pin:mcu:PE4
pin_statue:0

class error(Exception):
    pass

class MyLED:
    def __init__(self, config):
        self.printer = config.get_printer()
        ppins = self.printer.lookup_object('pins')
        pin_params = ppins.lookup_pin(config.get('pin'))
        self.mcu = pin_params['chip']
        self.oid = self.mcu.create_oid()
        self.pin = pin_params['pin']	#获取引脚
        self.mcu.register_config_callback(self.build_config)
        self.pin_statue = config.getint('pin_statue',0) #获取pin_statue的值,当pin_statue没有在配置文件出现时,默认设置为0
        if self.pin_statue != 0 and self.pin_statue != 1: #保证pin_statue为0或1
            raise error("pin_statue must be 0 or 1 .now is:%d"%(self.pin_statue))

    def build_config(self):
        # 为给定的GPIO'pin'创建一个内部微控制器对象。该引脚将被配置为数字输出模式,并被设置为'value'指定的初始值(0为低,1为高)
        # max_duration 参数用于实现安全检查,max_duration是16000,那么如果主机将gpio设置为1,它必须在16000个时钟刻度内刷新gpio引脚的输出(为0或1)
        self.mcu.add_config_cmd("config_digital_out oid=%d pin=%s value=%d default_value=%d" % (self.oid, self.pin, self.pin_statue, 0))
        # self.mcu.add_config_cmd("config_digital_out oid=%d pin=%s value=%d default_value=%d max_duration=%d" % (self.oid, self.pin, self.pin_statue, 0, 10000))
    
        # config_analog_in oid=%c pin=%u:该命令用于将一个引脚配置为模拟输入采样模式。一旦配置完成,就可以使用query_analog_in命令(见下文)以固定的时间间隔对该引脚进行采样。

def load_config(config):
    return MyLED(config)

def load_config_prefix(config):
    return MyLED(config)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值