小编dso*_*ano的帖子

如何从AsymmetricCipherKeyPair获取PublicKey,而不是publickeycipher参数?

我使用Bouncy Castle软件包在平台上生成密钥对.

SecureRandom random = new SecureRandom();

ECKeyPairGenerator pGen = new ECKeyPairGenerator();

ECKeyGenerationParameters genParam = new ECKeyGenerationParameters(params,random);

pGen.init(genParam);

AsymmetricCipherKeyPair pair = pGen.generateKeyPair();
Run Code Online (Sandbox Code Playgroud)

这里pair是类型AsymmetricCipherKeyPair.而且,我需要使用这一对在服务器上生成X509V1Certificate.但是,X509Certificate setPublicKey(PublicKey pubkey)只接受类型的对象PublicKey.所以我需要PublicKeyAsymmetricCipherKeyPair服务器检索一个.但是,我得到了ECPublicKeyParameters,这在setPublicKey方法中是不被接受的.

所以,我在这里的要求是得到PublicKey一个AsymmetricCipherKeyPair.

java bouncycastle java-me x509certificate

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

Arduino串行中断

我正在研究Arduino Mega 2560项目.在Windows 7 PC上,我使用的是Arduino1.0 IDE.我需要建立一个波特率为115200的串行蓝牙通信.当RX上的数据可用时,我需要接收一个中断.我见过的每一段代码都使用"轮询",这是在Arduino循环中放置Serial.available的条件.如何在Arduino的循环中替换这种方法以获得中断及其服务程序?似乎attachInterrupt()没有提供此目的.我依靠中断从睡眠模式中唤醒Arduino.

我开发了这个简单的代码,它应该打开连接到引脚13的LED.

    #include <avr/interrupt.h> 
    #include <avr/io.h> 
    void setup()
    {
       pinMode(13, OUTPUT);     //Set pin 13 as output

       UBRR0H = 0;//(BAUD_PRESCALE >> 8); // Load upper 8-bits of the baud rate value into the high byte of the UBRR register 
       UBRR0L = 8; // Load lower 8-bits of the baud rate value into the low byte of the UBRR register 
       UCSR0C |= (1 << UCSZ00) | (1 << UCSZ10); // Use 8-bit character sizes 
       UCSR0B |= (1 …
Run Code Online (Sandbox Code Playgroud)

microcontroller bluetooth arduino interrupt serial-communication

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

为什么在 Linux 上使用 RS-232 时 CTRL+C 不起作用?

首先,我不知道这个应该留在SO还是去SU:你告诉我。解决方案可能与编程有关。

我正在嵌入式设备上执行 Linux 并使用 RS-232 @ 9600 波特率与其进行通信。在 Windows 上使用 PuTTY 一​​切正常:我有一个 shell,可以键入和执行命令。

问题是:当我启动命令时,我无法使用 CTRL+C。例如,当 ping 某台机器时,ping 进入无限循环,我无法使用 CTRL+C 停止它。但是,当出现 Bash 提示符时,CTRL+C 会起作用并转到下一行(因此它会被传输)。^C我还注意到当我在运行命令时执行 CTRL+C 时,终端会显示。通过 Telnet 连接时,CTRL+C 在任何地方都可以正常工作。

我尝试使用 PuTTY 的“特殊命令”中断,但不起作用。我也尝试过不同的终端模拟器,同样的问题。

所以我猜这个问题与内核有关。对此我有什么可以调查的吗?

编辑:我正在运行 BusyBox v1.13.2。stty -a(RS-232)的输出为:

speed 9600 baud; rows 24; columns 80;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>;
eol2 = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = …
Run Code Online (Sandbox Code Playgroud)

linux putty serial-port linux-kernel

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

在C#中,如何通过串口通过Kermit进行通信?

我即将开始一个项目,我必须通过串口与医疗设备进行通信(从中提取数据).该设备的文档说它通过Kermit协议进行通信.我甚至想过克米特已经10年了.自从我使用它20年以来.这有什么图书馆吗?如果我自己滚动,涉及什么?

我在.NET 4.0 C#中开发.

c# serial-port serial-communication kermit

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

识别串口/ usb设备python

这个问题的解决方案可能非常简单,但我不熟悉动态地与设备连接.我正在做的是我正在制作一个python可执行代码,因此用户不必在他们的计算机或任何类型的python解释器上闲置,这意味着我不知道该设备将插入哪个USB端口至.该程序需要能够打开与通过串行转换为USB转换器连接的设备的连接.如何确定哪个连接设备是打开端口的正确设备?我正在使用pySerial与设备进行交互.任何帮助将不胜感激.

python serial-port usbserial pyserial

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

检测串口设置

有时我突然需要通过串行端口连接到设备的控制台。问题是,我从来不记得与每个特定设备一起使用的端口设置(波特率、数据位、停止位等),并且当真正需要时,文档似乎永远不会随处可见。

我编写了一个 Python 脚本,它使用简单的暴力方法(即迭代所有可能的设置,发送一些测试输入并显示响应,以便人们决定它是否有意义),但是:

  • 需要很长时间才能完成
  • 并不总是有效(可能是端口重置/超时问题)
  • 只是似乎不是一个正确的方法来做到这一点:)

所以问题是:有谁知道自动检测远程设备正在使用哪些端口设置的程序?

python serial-port communication

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

USB转串口

我买了一台通过USB连接电脑的设备.我即将使用Matlab对此设备进行编程.我希望我的计算机能够在通信端口中看到此设备(连接时),而不是USB设备.设备管理器将其视为带有USBasp驱动程序的"libusb".

我想要的是将其连接转换为COM端口,以便在我的程序中我可以轻松地声明连接设备的COM端口然后我可以在其上写入/读取数据.

usb matlab serial-port

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

如何确保Python while循环需要特定的时间才能运行?

我正在使用while循环读取串行数据.但是,我无法控制采样率.

代码本身似乎需要花费0.2秒才能运行,所以我知道我将无法以更快的速度运行.但我希望能够准确控制我采样的速度.

我觉得我可以使用'sleep'来做到这一点,但问题是有可能在不同的点上循环本身需要更长的时间来读取(取决于通过串行数据传输的精确内容),所以代码会有弥补平衡.

例如,假设我想每1秒采样一次,并且循环需要0.2s到0.3s才能运行.我的代码需要足够智能才能睡眠0.8秒(如果循环需要0.2秒)或0.7秒(如果循环需要0.3秒).

import serial
import csv
import time

#open serial stream
    while True:

        #read and print a line
        sample_value=ser.readline()
        sample_time=time.time()-zero
        sample_line=str(sample_time)+','+str(sample_value)
        outfile.write(sample_line)
        print 'time: ',sample_time,', value: ',sample_value
Run Code Online (Sandbox Code Playgroud)

python serial-port while-loop pyserial python-2.7

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

与Windows Phone 8的串行通信

Windows Phone 8是否支持串行通信?
我正在研究我的毕业设计.我打算用手机通过串口与RFID设备通信.

我得到三个解决方案.

  1. 使用Windows Mobile 6
  2. 使用Windows Phone 7或8
  3. 使用Android

就个人而言,我更喜欢2.但我不确定Windows Phone是否支持串行通信.如果没有,有什么解决方案吗?

android serial-port windows-phone

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

0xFF 变为 0x3F

我向串口发送0xFF

结果我看到 0x3F。

所有其他字节都是正确的。

情况是这样的……

外部盒将这些字节发送到 PC...

0xFF、0x0D、0x00、0x30、0x31、0x53、0x55、0x43、0x43、0x45、0x53、0x53

C# 在缓冲区中生成这个...

0x3F、0x0D、0x00、0x30、0x31、0x53、0x55、0x43、0x43、0x45、0x53、0x53

第一个字节缺少前两位。有没有人见过这个 ?

如果这里有一篇文章解释了发生了什么,更重要的是为什么,甚至最重要的是如何解决它,请指出我。谢谢。

这是代码;我希望我已经了解了 StackOverFlow 系统;我仍然是这个社区的新人,我的 C# 知识大约只有 1 或 2 个月的历史。

 public static void OurBackGroundSerialPortReceiver(object sender, SerialDataReceivedEventArgs e )
    {
                                                                //// Item 1, tell the world, particularly the
                                                                //// chief dispatch routin, that we are receiving

        aUartSemaphoreThatTells.WhatTheUartBackgroundRxIsDoing = (int)aValueWhichIndicatesThat.theUARTisReceivingData;

        SerialPort CurrentPort = (SerialPort)sender;            //// Int routine gave is this in the arguments

        int LastByteInUartBuffer = CurrentPort.ReadBufferSize;
        int TheLastByteTheBoxSent = CurrentPort.BytesToRead;
        string inputData = CurrentPort.ReadExisting();          //// This is a …
Run Code Online (Sandbox Code Playgroud)

c# serial-port

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