欢迎回到我的Google Summer Code(GSOC)2023旅程中的另一个进度更新!如果您还没有,请确保赶上我以前的博客文章,涵盖第1周和第2周。在此博客中,我将分享第3、4和5周的成就和发展。
。完成的工作(6月12日 - 7月5日):
如我以前的博客所述,我几乎完成了状态机器任务和模拟器崩溃恢复任务。但是,在第三周和第四周,我安排了需要注意的大学考试,因此在那段时间我无法从事该项目。我已经事先告知了我的导师。考试结束后,我恢复了项目。在考试前与导师的最后一次会面中,我们讨论了对模拟器崩溃恢复任务进行一些更改。另外,我确定了状态计算机任务的问题。
因此,我通过解决这些更改和问题并完成了两个任务的必要拉请求,从而开始了工作。这是我们决定的更改:
- 模拟器崩溃恢复任务:最初,我与Scheduebackup()函数一起调用Autosave函数。但是,经过讨论后,我们同意以特定的时间间隔安排自动赛。因此,我对代码进行了相应的修改。现在,我们每三秒钟检查一次备份中的任何增量。如果在备份的长度中检测到增量,则会触发自动架功能,否则将跳过。
- 状态机器任务:存在一个问题,国家将实时从正常变为错误,但是要从错误恢复到正常,我们必须单击模拟区域,这不是最佳用户体验。我解决了这个问题,现在,状态实时从错误恢复到正常。此外,对导师进行了一些建议的更改。
完成这些任务后,我开始处理一项新任务,该任务涉及创建一个更好的系统来处理高阻碍值。在Circulverse中,我们有两个与高阻碍条件有关的元素:Tristate和受控的逆变器。受控逆变器最初被打破了,因此首先,我将其修复。在此之后,我确定并解决了与Tristate元素有关的几个问题,该问题涉及解决缺点并确保正确的功能。我使用Logisim验证了更改,现在Tristate和受控的逆变器都可以正常运行。
接下来,我开始处理另一个任务,该任务包括暴露有用的功能以进行调试电路。我为此创建了四个功能:
- load():此功能将电路数据作为参数并绘制画布上的电路。
- removebugnodes():此函数可以用电路中的错误去除节点。
- next():此功能将电路带到下一个状态。
- 上一个():此功能将电路带到了先前的状态。 这些功能将极大地有助于调试电路。我计划讨论实施并探索我们在即将举行的会议期间可以实施的其他有用功能。
拉请求:
- Implemented safe recovery from simulator crash
- Implemented state machine for simulator
- Better system for high impedence values
- Added helpful functions for debugging of circuit
更新:
根据我的提案时间表,我的目标是在中期评估之前完成其余两个任务。我决心要尽最大努力完成这些任务,并在中期评估之前确保它们完成。
那么,下一步是什么?
在接下来的一周中,我的主要重点将是完成以下任务:
- '仿真堆栈超过'错误:我计划开发一种解决方案,该解决方案允许识别被添加到仿真堆栈中的组件异常数量,从而导致错误。通过解决此问题,我们可以提高模拟器的稳定性和效率。
- 识别和修改所选组件:我的议程上的另一个任务是实现一个功能,该功能可以识别画布上当前选择的组件。此功能将使用户在全局范围内方便地修改所选组件的属性。
总结了我的GSOC23项目第3、4和第5周的进度更新。我将继续分享我的旅程的定期更新,因此请继续关注更多。