Tag: 嵌入式

如何在状态模式代码中传递中断的本机事件处理程序

我转向我的netmf项目的状态模式。 基于此的东西: http : //www.dofactory.com/Patterns/PatternState.aspx#_self2 我有一个旋转编码器旋钮,在每种状态下都会有不同的作用。 我一直在试图绕过这个,并且无法在我的头上做任何工作。 我不知道在哪里以及如何将中断处理程序注入每个状态以及如何调用中断处理程序的开关。 没有状态模式,代码看起来像: RotaryEncoder RE = new RotaryEncoder(pin1, pin2);//create new instance of knob RE.OnRotationEvent += OnRotationEventHandler;//subscribe to an event handler. //do other things … … static void OnRotationEventHandler(uint data1, uint data2, DateTime time) { //do something } 那么,正确的编码方式是什么,为每个州都有单独的“OnRotationEventHandlers”? 它是上下文的一部分吗? 抽象基类的一部分? 谢谢您的帮助!

PID控制器积分项导致极端不稳定

我有一个在机器人上运行的PID控制器,旨在使机器人转向指南针前进。 以20Hz的速率重新计算/应用PID校正。 虽然PID控制器在PD模式下运行良好(IE,积分项为零),但即使是最轻微的积分也会迫使输出不稳定,使得转向执行器被推到左或右极限。 码: private static void DoPID(object o) { // Bring the LED up to signify frame start BoardLED.Write(true); // Get IMU heading float currentHeading = (float)RazorIMU.Yaw; // We just got the IMU heading, so we need to calculate the time from the last correction to the heading read // *immediately*. The units don’t […]

用于C#/ .NET应用程序的沙箱中的脚本语言

[这个问题类似于这个问题,但我也对沙箱的可能性感兴趣。] 我正在考虑在我的C#/ .NET应用程序中嵌入脚本语言,然后将我的一些应用程序API暴露给脚本。 似乎有很多好的选择(Lua,Boo,IronPython等),但是有没有简单的选项限制脚本语言的内置函数被使用? 例如,我不希望脚本能够执行I / O,除非通过我明确公开的API,因此不打印到控制台,打开文件等。这些脚本语言中的任何一种都提供了一种简单的方法这个?

C ++或C#编程移动条码设备?

我将使用移动条形码扫描仪开发一些应用程序,需要在C ++和C#之间进行选择,以便在扫描仪上进行编码。 我正在考虑Intermec的CK31或类似的WiFi,扫描选择,可编程性和用户界面选项的组合。 它根据规格表运行Windows CE .NET 4.2。 Intermec的开发人员库附带.Net和C ++ SDK。 我以前的Win CE 2003经验是用C ++(MFC GUI,套接字和串行通信)。 我对使用WPF的C#很满意,如果必须的话可以学习其他GUI框架。 这让我有选择语言的自由 – 任何建议都是这样或那样的? 我不是在寻找C ++而不是C#作为语言的答案 – 我的工作效率相似,而且我有足够的经验来创建复杂,强大的C ++解决方案。 我将欣赏的是战争故事或因素,我们的平台评估, 以及这些设备上的编程。 例如:C#apps与C ++应用程序的电池寿命,内存消耗或语言选择的其他环境影响。 如果要避免使用特定版本的.Net CE,那将是一个很好的提示。