小编chr*_*892的帖子

使用C#.NET从操纵杆输入

我在Google上搜索了这个,但我想出的唯一的东西已经过时而且没有用.

有没有人有关于如何使用C#.NET获取操纵杆数据的任何信息?

.net c# input joystick human-interface

19
推荐指数
2
解决办法
6万
查看次数

使用termios api检测字符设备是否已在Linux中断开连接(c ++)

我在Linux中使用termios api与串行设备通信.我正在尝试检测设备是否已断开连接,以便在超时后尝试重新连接.我有以下示例代码:

while(1)
{
    FD_ZERO(&rfds);
    FD_SET(tty_fd, &rfds);

    // have tried checking fcntl(tty_fd, F_GETFL); too

    // Blocking call to wait until we have data
    select(tty_fd+1, &rfds, NULL, NULL, NULL);

    // While we have data, collect it
    while (read(tty_fd, &c, 1)>0 && bytesRead++<200)
    {
        serialBuffer.push_back(c);
    }

    bytesRead = 0;

    // Try to parse it
    BufferParse();
}
Run Code Online (Sandbox Code Playgroud)

在ttyUSB设备物理断开连接后,我实际上并没有看到select()或fcntl返回错误值(-1).当然,我可以检查/ dev /中的文件是否存在,但我希望有一个更优雅的解决方案.

非常感谢任何建议,谢谢!

c++ linux serial-port termios

16
推荐指数
1
解决办法
2219
查看次数

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 so much matter, but we are converting Ticks to milliseconds
        int deltaTime = (int)((LastCorrectionTime - DateTime.Now.Ticks) / 10000);

        // Calculate error
        // (let's just assume CurrentHeading …
Run Code Online (Sandbox Code Playgroud)

c# embedded control-theory

12
推荐指数
2
解决办法
5946
查看次数

获得两个标题之间的区别

我有这种方法来计算2 0-360指南针标题之间的区别.

虽然这可以用来确定我的绝对距离(例如,总是正输出),但我无法弄清楚要将标志引入输出需要做些什么.

理想情况下,如果从初始航向到最终航向的最短距离是顺时针方向,我希望error有一个正号,如果标题之间的最短距离涉及逆时针方向,我会喜欢error有一个负号.

一些期望的输入/输出的例子

initial- final-error

0 .................... 30 .......... 30

30 .................... 0 .......... -30

360 .................... 1 .......... 1

1 .................... 360 .......... -1

码:

    /// <summary>
    /// Calculate the error from a given initial heading to a final heading
    /// </summary>
    /// <param name="inital"></param>
    /// <param name="final"></param>
    /// <returns></returns>
    private double GetHeadingError(double initial, double final)
    {
        double directionA = final - initial;
        double directionB = 360 - (final + …
Run Code Online (Sandbox Code Playgroud)

c# 360-degrees compass-geolocation

9
推荐指数
2
解决办法
4064
查看次数

在C#中重载复合赋值运算符的简单方法?

有没有人有一个非常简单的例子,说明如何在C#中重载复合赋值运算符?

c# overloading operator-overloading

6
推荐指数
1
解决办法
1123
查看次数

在.NET Micro Framework中将'float'转换为'byte [4]'并返回'float'

将a转换float为a byte[4]然后再转换为'float' 的最佳方法是什么?

我在C#.NET Micro Framework中这样做,所以没有BitConverter我可以使用的.

c# embedded .net-micro-framework

6
推荐指数
2
解决办法
3万
查看次数

Arm:objcopy 如何知道 elf 中的哪些部分包含在二进制或 ihex 中?

我正在开发一个项目,其中涉及解析arm elf 文件并从中提取部分。

显然,elf 文件中有很多部分没有加载到闪存中,但我想知道 objcopy 到底如何知道要在二进制文件中包含哪些部分以直接闪存到闪存中?

以arm elf文件的以下readelf为例:

节标题: [Nr] 名称 类型 地址 关闭大小 ES Flg Lk Inf Al

[0] 空 00000000 000000 000000 00 0 0 0

[1] .isr_vector PROGBITS 08020000 010000 0001f8 00 WA 0 0 4

[2].firmware_header_PROGBITS 080201f8 0101f8 000004 00 WA 0 0 4

[3] .text PROGBITS 08020200 010200 01e11c 00 AX 0 0 64

[4] .ARM.extab PROGBITS 0803e31c 033a68 000000 00 W 0 0 1

[5] .exidx ARM_EXIDX 0803e31c 02e31c 000008 00 AL 3 …

c embedded linker elf stm32

5
推荐指数
1
解决办法
1380
查看次数

关闭程序的C#

我有一个项目,要求我在应用程序关闭时运行一些代码.应用程序只是一个在执行后几乎立即隐藏的表单,因此可以关闭的唯一方法是使用任务管理器手动终止它.

如果我使用onclose事件,在这种情况下是否会调用它?此外,有人可以发布一个简短的代码示例来设置onclose事件吗?

.net c# visual-studio winforms

2
推荐指数
1
解决办法
908
查看次数

Visual Studio报告并非所有代码路径都返回值,即使它们确实如此

我在.NETMF C#中有一个API,它包含一个发送HTTP请求的函数.对于那些熟悉NETMF的人来说,这是"webClient"示例的一个经过大量修改的版本,该示例是一个简单的应用程序,演示了如何提交HTTP请求并回复响应.在示例中,它只是打印响应并返回void.但是,在我的版本中,我需要它来返回HTTP响应.

出于某种原因,Visual Studio报告并非所有代码路径都返回一个值,尽管我可以告诉他们这样做.

这是我的代码......

  /// <summary>
  /// This is a modified webClient
  /// </summary>
  /// <param name="url"></param>
  private string httpRequest(string url)
  {
   // Create an HTTP Web request.
   HttpWebRequest request = HttpWebRequest.Create(url) as HttpWebRequest;

   // Set request.KeepAlive to use a persistent connection. 
   request.KeepAlive = true;

   // Get a response from the server.
    WebResponse resp = request.GetResponse();

   // Get the network response stream to read the page data.
   if (resp != null)
   {
    Stream respStream = resp.GetResponseStream();
    string page = …
Run Code Online (Sandbox Code Playgroud)

.net c# http .net-micro-framework

1
推荐指数
1
解决办法
1169
查看次数

Visual Studio 2010 MSDN许可?

有谁知道MSDN的Visual Studio 2010许可是如何工作的?我注意到它不需要钥匙.这是否意味着我可以在多台计算机上安装它?

visual-studio

1
推荐指数
1
解决办法
5078
查看次数

C#中的"取消引用"变量

我在C#中有一些使用结构的代码:

ArrayList addrs = new ArrayList();
byte[] addr = new byte[8];
while (oneWire.Search_GetNextDevice(addr))
{
    addrs.Add(addr);
}
Run Code Online (Sandbox Code Playgroud)

在这个例子中,它中的每个元素ArrayList都与找到的最后一个设备相同,因为它看起来好像addr是通过引用传递出来的,而我只是将该引用复制到了ArrayList.

有没有办法"解除引用" addr只能提取它的价值?

我的评估也可能是不正确的,如果情况确实如此,请告诉我

谢谢!

.net c#

1
推荐指数
1
解决办法
2401
查看次数

将包含ASCII字节表示的文件转换为实际字节C#.NET的最佳方法

我有一个包含一些数据的文件(例如,"00927E2B112DB958 ......").此数据以ASCII格式表示字节.字节为8位,因此2个ASCII字符映射到需要进入最终输出缓冲区数组的每个字节.

做这个的最好方式是什么?

编辑:我想要做的是从一个看起来像"00DFFF"的字符串到一个字节数组{0x00,0xDF,0xFF},例如.我想这还不清楚.

谢谢!

.net c#

1
推荐指数
1
解决办法
310
查看次数