我在Google上搜索了这个,但我想出的唯一的东西已经过时而且没有用.
有没有人有关于如何使用C#.NET获取操纵杆数据的任何信息?
我在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 /中的文件是否存在,但我希望有一个更优雅的解决方案.
非常感谢任何建议,谢谢!
我有一个在机器人上运行的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) 我有这种方法来计算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#中重载复合赋值运算符?
将a转换float为a byte[4]然后再转换为'float' 的最佳方法是什么?
我在C#.NET Micro Framework中这样做,所以没有BitConverter我可以使用的.
我正在开发一个项目,其中涉及解析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 …
我有一个项目,要求我在应用程序关闭时运行一些代码.应用程序只是一个在执行后几乎立即隐藏的表单,因此可以关闭的唯一方法是使用任务管理器手动终止它.
如果我使用onclose事件,在这种情况下是否会调用它?此外,有人可以发布一个简短的代码示例来设置onclose事件吗?
我在.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) 有谁知道MSDN的Visual Studio 2010许可是如何工作的?我注意到它不需要钥匙.这是否意味着我可以在多台计算机上安装它?
我在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只能提取它的价值?
我的评估也可能是不正确的,如果情况确实如此,请告诉我
谢谢!
我有一个包含一些数据的文件(例如,"00927E2B112DB958 ......").此数据以ASCII格式表示字节.字节为8位,因此2个ASCII字符映射到需要进入最终输出缓冲区数组的每个字节.
做这个的最好方式是什么?
编辑:我想要做的是从一个看起来像"00DFFF"的字符串到一个字节数组{0x00,0xDF,0xFF},例如.我想这还不清楚.
谢谢!