gpt4 book ai didi

戈朗 : steering window covering

转载 作者:数据小太阳 更新时间:2023-10-29 03:26:25 25 4
gpt4 key购买 nike

我想用我的智能手机操作我的窗帘。现在每次我改变手机的位置时都有一个方法

func main() {
OnUpdate(func(tPos int) {
wc(tPos,cPos)
cPos = tPos
}
}

被调用,其中 tPos 是 0 到 100 之间的整数,它是目标位置。当前位置 cPos 也有一个变量。 OnUpdate 应该调用一个函数,该函数根据 cPos 和 tPos 之间的顺序关系打开或关闭窗帘。这个函数看起来像这样。

func wc(tPos int, cPos int){
switch{
case tPos == 0:
log.Println("close")
case tPos == 100:
log.Println("open")
case tPos > cPos:
t := time.Duration( (tPos - cPos)*10*openTime)
log.Println("open")
time.Sleep( t * time.Millisecond)
log.Println("stop")
case tPos < cPos:
t := time.Duration( (cPos - tPos)*10*closeTime)
log.Println("close")
time.Sleep( t * time.Millisecond)
log.Println("stop")
}
}

我现在的问题是应该有一些延迟。我希望在调用 OnUpdate 之后有一个大约 3 秒的计时器,然后调用 wc 除非在那 3 秒内再次调用 OnUpdate。

但是我不知道该怎么做。谁能告诉我这样做的好方法是什么?

最佳答案

不完全确定你的意思,但我还是会试一试。什么叫 OnUpdate?你手机上有吗?您是否只想在提供给 OnUpdate 的回调中调用 wc 之前休眠?

考虑到这一点,请查看:https://play.golang.org/p/4vVpEEUcqg

我的理解是您希望确保 wc 不会被过于频繁地调用。 run 中的 for/select 语句确保 wc 最多每 3 秒调用一次。

关于戈朗 : steering window covering,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40286492/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com