我试图使用pic24fj128gb206枚举usb cdc设备.设备似乎正确枚举.
但是当我将我的设备连接到Linux PC时,我从内核收到以下警告消息.
cdc_acm 1-8.1.6.7:1.0: failed to set dtr/rts
Run Code Online (Sandbox Code Playgroud)
当我尝试使用屏幕连接时,此消息将重复.
screen /dev/ttyACM9 115200
Run Code Online (Sandbox Code Playgroud)
我无法通过PC与我的设备通信[Ubuntu,14.04]
使用wireshark分析数据时,看起来USB通信正常,主机发出URB_CONTROL_out并且设备响应URB状态为 Broken Pipe (-EPIPE ) (-32)
任何人都可以帮我解决如何调试此问题或任何进一步调试的方法?
我使用 gpg 只是为了加密和解密。
我使用的命令是:
for enc:
gpg --sign test
for dec:
gpg --decrypt test.gpg > test
Run Code Online (Sandbox Code Playgroud)
但我收到以下警告消息:
gpg: Signature made Fri Jun 24 17:29:00 2016 UTC using RSA key ID XXXX
gpg: Good signature from "XXXX@xxxx.com>"
gpg: WARNING: This key is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the owner.
Run Code Online (Sandbox Code Playgroud)
当然,我已经尝试过
--status-fd, --no-comment, --no-mdc-warning,--no-tty ,--no-verbose --quiet --batch, --no-greeting etc
基于互联网搜索。
有没有办法摆脱这些警告信息?
作为最后一个选项,我使用 如何在 bash 中隐藏命令输出
但我认为应该有一个简单的方法来抑制 gpg 中的警告。
我想检查shell脚本中的数字是否为十六进制.我已经尝试了以下代码来检查范围0-9A-Fa-f
.
即,如果HEX ="301D"[4个字符],则以下代码将起作用.我的目标是消除检查中字符数的依赖性.
#!/bin/bash
HEX="301DE8"
#if ! [[ $HEX =~ ^[[:xdigit:]]{10}$ ]] ; then
#if ! [[ $HEX =~ ^[0-9A-Fa-f]{10}$ ]] ; then
#if ! [[ $HEX =~ ^[0-9A-Fa-f]$ ]] ; then
if ! [[ $HEX =~ ^[0-9A-Fa-f]{4}$ ]] ; then
echo "string is not hex"
else
echo "string contains hex digits"
fi
Run Code Online (Sandbox Code Playgroud)
我试过增加限制并删除限制.但两者都没有用.我正在考虑使用while循环来检查每个字符作为最后一个选项.是否有更好的方法来实现检查而不指定no.人物?