小编mtr*_*trw的帖子

.NET SerialPort DataReceived事件未触发

我有一个WPF测试应用程序,用于评估基于事件的串行端口通信(与轮询串行端口).问题是DataReceived事件似乎根本没有触发.

我有一个非常基本的WPF表单,其中包含用于用户输入的TextBox,用于输出的TextBlock以及用于将输入写入串行端口的按钮.

这是代码:

public partial class Window1 : Window
{
    SerialPort port;

    public Window1()
    {
        InitializeComponent();

        port = new SerialPort("COM2", 9600, Parity.None, 8, StopBits.One);
        port.DataReceived +=
            new SerialDataReceivedEventHandler(port_DataReceived);  
        port.Open();
    }

    void port_DataReceived(object sender, SerialDataReceivedEventArgs e)
    {
        Debug.Print("receiving!");
        string data = port.ReadExisting();
        Debug.Print(data);
        outputText.Text = data;
    }

    private void Button_Click(object sender, RoutedEventArgs e)
    {
        Debug.Print("sending: " + inputText.Text);
        port.WriteLine(inputText.Text);
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,以下是复杂因素:

  1. 我正在使用的笔记本电脑没有串口,所以我使用一个名为Virtual Serial Port Emulator的软件来设置COM2.VSPE过去曾经令人钦佩地工作,并且不清楚为什么它只会出现.NET的SerialPort类故障,但我提到它以防万一.

  2. 当我点击表单上的按钮发送数据时,我的超级终端窗口(在COM2上连接)显示数据正在通过.是的,当我想测试我的表单读取端口的能力时,我断开Hyperterminal的连接.

  3. 在尝试连接事件之前,我尝试打开端口.没变.

我已经阅读了另一篇文章,其中有人遇到了类似的问题.在这种情况下,这些信息都没有帮助我.

编辑:

这是控制台版本(从http://mark.michaelis.net/Blog/TheBasicsOfSystemIOPortsSerialPort.aspx修改):

class Program
{
    static SerialPort port;

    static void …
Run Code Online (Sandbox Code Playgroud)

.net serial-port

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

如何使用PyAudio或PortAudio获取设备的音频采样率列表?

我想查询我的音频设备并获取所有可用的采样率.我在使用Python 2.6的Ubuntu机器上使用PyAudio 0.2,它运行在PortAudio v19之上.

audio portaudio pyaudio

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

在numpy数组中找到none和nan的索引

我有一个数组,它看起来像:

array([[  1.,   2.,   None],
       [ nan,   4.,   5.]])
Run Code Online (Sandbox Code Playgroud)

我正在尝试以下操作:

np.equal(A, None) #works and finds index of None correctly
np.equal(A, np.nan) #doesn't work
np.isnan(A) #errors out
Run Code Online (Sandbox Code Playgroud)

错误是:

TypeError: ufunc 'isnan' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ''safe''
Run Code Online (Sandbox Code Playgroud)

我应该如何解决这个问题,我试图在给定的数组中找到 None 和 nan 的索引。

我的最终输出应如下所示:

array([[False, False,  True],
       [True, False, False]], dtype=bool)
Run Code Online (Sandbox Code Playgroud)

python numpy nan

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

使用FFT结果重新创建时间序列数据,而不使用ifft

我使用fft分析了sunspots.dat数据(下面),这是该领域的一个典型例子.我从真实和想象部分的fft中获得了结果.然后我尝试使用这些系数(前20个)来重建符合傅立叶变换公式的数据.思考真实的部分对应于a_n和想象到b_n,我有

import numpy as np
from scipy import *
from matplotlib import pyplot as gplt
from scipy import fftpack

def f(Y,x):
    total = 0
    for i in range(20):
        total += Y.real[i]*np.cos(i*x) + Y.imag[i]*np.sin(i*x)
    return total

tempdata = np.loadtxt("sunspots.dat")

year=tempdata[:,0]
wolfer=tempdata[:,1]

Y=fft(wolfer)
n=len(Y)
print n

xs = linspace(0, 2*pi,1000)
gplt.plot(xs, [f(Y, x) for x in xs], '.')
gplt.show()       
Run Code Online (Sandbox Code Playgroud)

但是出于某种原因,我的情节并不反映ifft生成的情节(我在两侧使用相同数量的系数).可能有什么不对?

数据:

http://linuxgazette.net/115/misc/andreasen/sunspots.dat

python math signal-processing fft

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

Matlab中数字的二进制表示

是否有Matlab函数返回浮点数的二进制表示形式?

floating-point binary matlab representation

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

在蟒蛇中将山地标准时间转换为东部标准时间

我有一个时间datetime对象..它有日期和时间..

所以例如

    d = (2011,11,1,8,11,22)  (24 hour time time format)
Run Code Online (Sandbox Code Playgroud)

但这张时间戳是在山地标准时间..(亚利桑那州.凤凰城)

现在我想在EST中转换这个时间...

现在这只是时间增量调整..

但是,这也是夏令时问题.

我想知道是否有一种内置的方法来处理夏令时调整时区.

python timezone datetime

5
推荐指数
2
解决办法
1348
查看次数

我如何修复此代码以允许我的AVR通过串口通话?

我最近一直在拉我的头发试图让我的STK200上的ATmega162通过RS232与我的电脑通话.我检查并确保STK200包含MAX202CPE芯片.

我已经将芯片配置为使用其内部8MHz时钟并将其除以8.

我试图从数据表中复制代码(并在编译器抱怨的地方进行了更改),但无济于事.

我的代码如下,有人可以帮我解决我遇到的问题吗?

我已经确认我的串口可以在其他设备上运行并且没有故障.

谢谢!

#include <avr/io.h>
#include <avr/iom162.h>

#define BAUDRATE 4800

void USART_Init(unsigned int baud)
{
    UBRR0H = (unsigned char)(baud >> 8);
    UBRR0L = (unsigned char)baud;

    UCSR0B = (1 << RXEN0) | (1 << TXEN0);

    UCSR0C = (1 << URSEL0) | (1 << USBS0) | (3 << UCSZ00);
}

void USART_Transmit(unsigned char data)
{
    while(!(UCSR0A & (1 << UDRE0)));

    UDR0 = data;
}

unsigned char USART_Receive()
{
    while(!(UCSR0A & (1 << RXC0)));

    return UDR0;
}

int main()
{ …
Run Code Online (Sandbox Code Playgroud)

embedded avr serial-port

4
推荐指数
3
解决办法
1055
查看次数

乘法在不精确的浮点运算中总是可交换的吗?

我试图理解D语言运行时中的一些代码.对于以下两件事似乎有单独的功能:

array1[] += scalar * array2[];
array1[] += array2[] * scalar;
Run Code Online (Sandbox Code Playgroud)

为什么不能用一个功能来完成这些?我认为即使在不精确的浮点运算中,乘法也是可交换的.

arrays floating-point d operator-overloading

4
推荐指数
2
解决办法
1133
查看次数

为什么归一化数字的最高有效位始终为1?

Wikipedia中的Significand条目

当使用二进制时,有效位的特征在于其宽度以二进制数字(位)表示。因为对于一个归一化的数字,最高有效位始终为1,所以通常不存储该位,因此将其称为“隐藏位”。根据上下文,隐藏位可能会或可能不会计入有效数字的宽度。例如,通常将相同的IEEE 754双精度格式描述为具有53位有效数字(包括隐藏位)或52位有效数字(不包括隐藏位)。隐藏位的概念仅适用于二进制表示形式。IEEE 754将精度p定义为有效位数,包括任何隐含的前导位(例如,双精度格式的精度p为53)。

为什么对于归一化数,最高有效位始终为1?可以请一个例子解释一下吗?

algorithm floating-point mantissa exponent

4
推荐指数
2
解决办法
1292
查看次数

Android 的标准 FFT 类/库?

我计划通过音频“可视化”一些图形数据。简而言之:我从一些图像数据中得到了一堆频率和相关的幅度值。这个频率/幅度表 - 假设有 256 对数据 - 必须转换成相关的正弦波形。

一种解决方案是为每个表条目生成具有不同频率的正弦波形。这意味着生成多达 256 次的正弦波形。但我猜这很慢。那么使用 FFT 转换应该是一个更好的解决方案吗?

所以我的问题是:是否有某种可用于 Android 的快速且易于使用的 FFT 标准可用于此目的?

android trigonometry signal-processing fft frequency

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