V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  mylovesaber  ›  全部回复第 12 页 / 共 12 页
回复总数  229
1 ... 3  4  5  6  7  8  9  10  11  12  
@minamike 是的,我因为信了网上说的苹果官方有意弃用 crontab 才折腾查找老半天,最终发现原来 launchd 就目前的功能性来看,是从根本上无法替代我这种用法下的 crontab ,为了实现相同功能,launched 需要写三百行左右的规则才能替代 crontab ,但一旦需要改动时间的话,等于推倒重来,然后直接 `echo "*/30 * * * * root /usr/bin/bash /usr/bin/hosts-tool run" >> /var/at/tabs/root` 就可以了。。。。
@huntagain2008 谢谢,其实没有这么复杂的,一个 echo 就解决了,其实 find 出来的是一个结果一行,然后通过 for 循环可以数行数的,我最初需要做到的是超过 1 行就报错,也感谢分享其他写法哈
2021-12-23 20:27:37 +08:00
回复了 xdbytes1 创建的主题 程序员 Tabby,最近被吹的神乎其神的 SSH 客户端
mac 下我试用了好些 ssh 软件,唯一能代替 win10 下 xshell 的只有 SecureCRT ,而且这货多平台各自使用的配置文件相同,可以通过 onedrive 实现同步, 也有模板,比 xshell 方便太多了
@ryd994 感谢提醒!看来我得早点睡觉了。。。。脑子浑了。。。
@bakujin 我 ctrl+shift+p 输入 diff 提示没有此命令。。奇怪,我看我装了 partialdiff 插件也启用了,但照着作者的操作 gif 发现没有对应的命令,只有默认的 compare for selected
文档中有个 window.timeout(delay)函数,能以非阻塞方式轮询

import time
import curses

screen = curses.initscr()
curses.noecho()
screen.timeout(0) # 设置 screen 为非阻塞读取(无延迟模式)

while True:
char = screen.getch() # 在无延迟模式下,getch 会立即返回不管有没有输入
if char == -1: # 如果没有输入,getch 会返回 -1
print("没有输入")
else:
print("输入了 {} ({})".format(chr(char), char))
time.sleep(0.2) # sleep 避免轮询过快


我滴妈,我的问题终于解决了
网上其他所谓键盘遥控自动避障小车项目好像都没有用到这个函数所以都不完整
此贴终结
@no1xsyzy @wangkai0351
![避障逻辑图]( https://s1.ax1x.com/2020/04/22/JYEuKU.png)
我重读了 curses 的文档,是我疏忽了 getch()函数的特性,
即: `char = screen.getch()` 这行代码功能是等待读取键值

进入这行代码的执行的时候,读取到按键之前一定会出现整个程序的暂停,所以出现一旦我取消注释,一楼程序就进入等待按键的阶段,后面的红外测距判断就不会被执行的情况,但现在发现问题需要解决的逻辑我好像没想出来。。

再说明白点就是这两行代码是先后绑定在一起的,避障生效只能是在运行这两行代码之前,但避障使用的这个红外一直在读取到信息,也就是不停读取非 0 即 1,直接进行 if-else 进行判断的话,一旦小车动起来第一时间树莓派没有读取到 0 的值时就进入了等待输入 ok 键的阶段导致这个避障功能不生效,所以我第一反应是使用一个循环,但后面怎么改善我蒙逼了:
```python
char = screen.getch()
print("这段话绝对不会被打印在屏幕上")
if char == 10:
print("读取到 ok 键被按下这段话就会被输出到屏幕上")
```
请教下二位有没有什么可能的思路来解决呢?
@wangkai0351 谢谢,其实键值不是问题,都是测试能用的,而且这个 curses 库识别键值如果是英文字母直接就是它本身,根本不用考虑,只是这个在子循环加上读取键值就红外失效,不加上按键失效就有点尴尬。。。
问题来源于子循环里面 screen = curses.initscr()和 char = screen.getch(),在同样“小车前进时没有障碍物”的条件下出现:
1. 这俩行注释了,小车在按下 ok 键无反映,只能等快撞上由红外强行停止
2. 这俩行不注释,小车可以通过 ok 键停止,但红外防撞功能失效

另外发现这个 getch()好像会累计你的按键,比如我使用问题 1,我按上,ok,下键,没反映,但靠近红外模块后小车立马停车后紧接着后退

不知道我这逻辑写法哪里出错了,各位前辈如果能看懂的话可否介绍下经验呢?感谢!
1 ... 3  4  5  6  7  8  9  10  11  12  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2686 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 49ms · UTC 15:25 · PVG 23:25 · LAX 07:25 · JFK 10:25
Developed with CodeLauncher
♥ Do have faith in what you're doing.