Linux USB 中persist的作用

对应一个USB device设备可以设置persist的属性,一般默认为1表示STR开机后可以做reset恢复

/sys/bus/usb/devices/2-1/power/persist

 

但是通常情况,嵌入式USB在STR之后处于断电状态,需要重新连接,则将/sys/bus/usb/devices/2-1/power/persist设置为0即可。

主要区别在:hub_activate()中,如果为0则会走到:

            /* The power session is gone; tell hub_wq */
            usb_set_device_state(udev, USB_STATE_NOTATTACHED);

这样这个USB设备相当于被移除了

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
`goka.Persist` 是 Goka 框架的一个函数,用于指定流处理应用程序的消息处理逻辑。具体来说,`goka.Persist` 函数需要传入一个 `goka.ProcessCallback` 类型的参数,用于指定消息的处理逻辑。 在 Goka 的流处理应用程序,消息处理逻辑通常会涉及到对输入消息的处理、状态的更新以及输出消息的发送等操作。`goka.Persist` 函数可以帮助应用程序开发者在处理消息时方便地完成这些操作,从而简化应用程序的实现。 举个例子,如果你的 Goka 应用程序需要从一个名为 `input` 的流读取消息,并将其转换为大写形式后发送到一个名为 `output` 的流,你可以使用如下代码指定消息处理逻辑: ```go func handler(ctx goka.Context, msg interface{}) { // 对输入消息进行处理 upperMsg := strings.ToUpper(msg.(string)) // 更新状态 ctx.SetValue(upperMsg) // 发送输出消息 ctx.Emit("output", ctx.Key(), upperMsg) } // ... goka.DefineGroup( "my-group", goka.Input("input", new(codec.String), partitioner), goka.Persist(new(codec.String), handler), goka.Output("output", new(codec.String)), ) ``` 在上面的代码,`handler` 函数指定了消息的处理逻辑,它将输入消息转换为大写形式后,使用 `ctx.SetValue` 方法更新状态,并使用 `ctx.Emit` 方法将处理结果发送到指定的输出流。`goka.Persist` 函数会在每次接收到新的消息时调用 `handler` 函数,从而完成对输入消息的处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值