Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

(BUG) Rotator Control Disengaging Due To Error Counter

未关闭
#302 1 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
3/5
预计耗时
1-2 天
新手友好度
22/100
Issue 类型
缺陷
描述清晰度
基本清楚
活跃度
停滞
技术栈
c
领域
desktop-dev

调研方向

Start with rot_ctrl_timeout_cb and the MAX_ERROR_COUNT check, then trace how gtk-rot-ctrl.c returns false from set_pos and get_pos on RPRT -5 errors. The reporter links commit b56d77d as the likely cause. Reproducing needs a rotctld or Yaesu GS-232B setup, so a simulated rotator is the practical route. Done means either the error counter no longer disengages intermittent timeouts, or a user option to disable auto-disconnect exists and is documented.

由索引模型根据 Issue 内容生成。

描述

Gpredict: 2.3
OS: Ubuntu 16.04.4 LTS
Rotator Control: Yarsu G-5500 az-el rotator with the Yaesu GS-232B PC interface

Hi All,

We've noticed a bug where the engage button does not remain selected when trying to connect to use the rot controller. When using version 2.2.1, we see the following in the error log:

2022/07/19 13:44:58|3|sat_log_init: Session started
2022/07/19 13:44:58|4|sat_cfg_load: Everything OK.
2022/07/19 13:45:29|1|gtk-rot-ctrl.c:386: rotctld returned error -5 with az 92.963905 el 0.000000(RPRT -5)
2022/07/19 13:45:33|1|gtk-rot-ctrl.c:386: rotctld returned error -5 with az 92.963905 el 0.000000(RPRT -5)
2022/07/19 13:45:36|1|gtk-rot-ctrl.c:386: rotctld returned error -5 with az 92.963905 el 0.000000(RPRT -5)
2022/07/19 13:45:40|1|gtk-rot-ctrl.c:386: rotctld returned error -5 with az 92.963905 el 0.000000(RPRT -5)
2022/07/19 13:45:44|1|gtk-rot-ctrl.c:386: rotctld returned error -5 with az 92.963905 el 0.000000(RPRT -5)

However, when using a newer version, we see the following:

2022/07/19 13:48:52|3|sat_log_init: Session started
2022/07/19 13:48:52|4|sat_cfg_load: Everything OK.
2022/07/19 13:49:19|1|gtk-rot-ctrl.c:322: rotctld returned error (RPRT -5)
2022/07/19 13:49:33|1|gtk-rot-ctrl.c:385: rotctld returned error -5 with az 131.777359 el 0.000000(RPRT -5)
2022/07/19 13:49:37|1|gtk-rot-ctrl.c:1180: rotctld returned error -5 with stop-cmd (RPRT -5)
2022/07/19 13:49:38|1|gtk-rot-ctrl.c:385: rotctld returned error -5 with az 131.777359 el 0.000000(RPRT -5)
2022/07/19 13:49:45|1|gtk-rot-ctrl.c:322: rotctld returned error (RPRT -5)
2022/07/19 13:50:03|1|gtk-rot-ctrl.c:385: rotctld returned error -5 with az 92.999634 el 0.000000(RPRT -5)
2022/07/19 13:50:06|1|gtk-rot-ctrl.c:1180: rotctld returned error -5 with stop-cmd (RPRT -5)
2022/07/19 13:50:08|1|gtk-rot-ctrl.c:385: rotctld returned error -5 with az 92.999634 el 0.000000(RPRT -5)
2022/07/19 13:50:11|1|rot_ctrl_timeout_cb: MAX_ERROR_COUNT (5) reached. Disengaging device!

We believe the issue is associated with this commit, which has set_pos and get_pos return false when there is an issue with the rotator control, causing some error counter to reach its limit and disengage the control. In previous versions, these errors were simply logged and the rotator control was allowed to remain engaged.

The hamlib rotctld daemon message log contained the following:

read_string(): Timed out 0.400445 seconds after 0 chars
write_block(): TX 2 bytes
0000 53 0d S.
read_string(): Timed out 0.400619 seconds after 0 chars
write_block(): TX 2 bytes
0000 53 0d S.
read_string(): Timed out 0.400483 seconds after 0 chars
write_block(): TX 2 bytes
0000 53 0d S.
read_string(): Timed out 0.400576 seconds after 0 chars
rotctl(d): p '' '' '' ''

It is worth noting that these timeouts occur intermittently and do not prevent the useful operation of the rotator control. A possible solution to this might be to include an option to disable the auto-disconnect-on-error-count-maximum-exceeded “feature”.

Thanks all for any help on this issue.

主要语言
C
星标
1.2k
派生
305
平均合并
8 小时 48 分钟
30 天内合并 PR
3

环境准备

  • 没有 Dockerfile 或 Docker Compose 文件
  • 没有 Pull Request 模板
  • 阅读贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

csete/gpredict 的其他 Issue

查看 csete/gpredict 的全部 Issue

相似的 Issue

更多 C Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。