小编tmw*_*ods的帖子

使用serialport.open()时IO异常错误

最终更新 这是我们的固件.令人尴尬到一​​定程度,但我很高兴我们可以前进,我可以把学习Java关闭一天.我的答案如下.

更新 所以我或多或少地放弃了这一点.我认为这是一个可以归结为API的错误,但我没有时间,资源和技能来深入了解它.我认为存在一些Windows只是中指的硬件.我已经下载了Eclipse,切换到Java并将尝试查看是否有效.如果没有,你会看到我回到这里.但是,我绝对喜欢解决这个问题,所以如果有人有时间或倾向深入研究这个问题,我很乐意看到你提出的问题.显然我会不时回来看看.请确保你在评论中'@'我,所以我收到了提醒.


原始邮政

我知道还有其他一些人在处理这个问题,但我希望有人可以帮助我.我正在尝试连接到COM端口,但是当我尝试使用该serialport.Open()命令时,我收到了IO异常:

System.IO.IOException: The parameter is incorrect.

   at System.IO.Ports.InternalResources.WinIOError(Int32 errorCode, String str)
   at System.IO.Ports.InternalResources.WinIOError()
   at System.IO.Ports.SerialStream.InitializeDCB(Int32 baudRate, Parity parity, Int32 dataBits, StopBits stopBits, Boolean discardNull)
   at System.IO.Ports.SerialStream..ctor(String portName, Int32 baudRate, Parity parity, Int32 dataBits, StopBits stopBits, Int32 readTimeout, Int32 writeTimeout, Handshake handshake, Boolean dtrEnable, Boolean rtsEnable, Boolean discardNull, Byte parityReplace)
   at System.IO.Ports.SerialPort.Open()
   at *programtitlehere.cs*:line 90
Run Code Online (Sandbox Code Playgroud)

我使用Stellaris LM4F232来模拟COM端口.我可以使用Termite(终端程序)打开,访问并获得良好的结果,但每当我尝试使用Visual Studio时,它甚至都无法连接,我收到此错误.现在我甚至不知道这个错误意味着什么,尽管我试图在别处读书,但我仍然感到迷茫.

任何人都可以向我解释这里发生了什么,也许我可以开始尝试解决这个问题吗?我可以包含更多代码,但说实话,那里没有太多代码; 串口设备的所有属性都是正常的,它只发生在这个设备上(我可以使用MSP430没有相同细节的问题).

对于想要看到它的人,我的代码如下所示(注意这只是一个'沙盒',而不是实际的程序,但症状是相同的):

try
{
    serialPort1.PortName = "COM5";
    serialPort1.Open();
    if (serialPort1.IsOpen == true)
    {
        textBox1.Text = …
Run Code Online (Sandbox Code Playgroud)

c# winapi serial-port ioexception baud-rate

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

鼠标滚轮事件未触发

我已经看过这个关于完全相同问题的线程,但该解决方案对我不起作用.
基本上我想要完成的是当用户与Windows窗体上的图表控件交互时的鼠标滚轮事件.
现在我尝试了一些不同的东西.

 public mainForm()
 {
     InitializeComponent();
     this.chData.MouseWheel +=new MouseEventHandler(chData_MouseWheel);
 }
Run Code Online (Sandbox Code Playgroud)

我也尝试将其添加到mainForm.Designer.cs:

this.chData.TabIndex = 2;
this.chData.Text = "chart2";

this.chData.MouseWheel += 
   new System.Windows.Forms.MouseEventHandler(this.chData_MouseWheel);

this.chData.MouseClick += 
   new System.Windows.Forms.MouseEventHandler(this.chData_MouseClick);

this.chData.MouseDoubleClick += 
   new System.Windows.Forms.MouseEventHandler(this.chData_MouseDoubleClick);

this.chData.MouseMove += 
   new System.Windows.Forms.MouseEventHandler(this.chData_MouseMove);
Run Code Online (Sandbox Code Playgroud)

(我在这里包括整个块用于演示).我也有如下定义的功能:

private void chData_MouseWheel(object sender, MouseEventArgs e)
{
   MessageBox.Show("FJDKS");
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,我无法解决这个问题?谁能告诉我哪里出错了?提前致谢!

c# events charts mousewheel winforms

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

从VID/PID查找USB驱动器盘符(需要XP及更高版本)

所以我想我会在这里包括最终答案,所以你不必理解这篇文章.非常感谢Simon Mourier抽出时间来解决这个问题.

我的工作代码

        try
        {
            //Get a list of available devices attached to the USB hub
            List<string> disks = new List<string>();
            var usbDevices = GetUSBDevices();

            //Enumerate the USB devices to see if any have specific VID/PID
            foreach (var usbDevice in usbDevices)
            {
                if (usbDevice.DeviceID.Contains(USB_PID) && usbDevice.DeviceID.Contains(USB_VID))
                {
                    foreach (string name in usbDevice.GetDiskNames())
                    {
                        //Open dialog to show file names
                        textbox1.Text = name.ToString();
                    }
                }                   
            }
Run Code Online (Sandbox Code Playgroud)

所以,只需使用GetUSBDevices我原来的问题,然后包括Simon Mourier的回答所显示的两个类,它应该是好的去!


原始问题

我知道之前已经问过这个问题(见这里)但是他们都没有得到确认答案,我已经尝试了所有建议的答案.不幸的是,这些线程已经很久了,我希望有人能在这里给出更好的答案.

到目前为止,我有两个"起点",我将在下面展示.


选项1 :(获取VID/PID但不是驱动器号)

我有一个嵌入式设备,我通过应用程序连接到该设备.我有代码可以成功扫描任何USB设备并检查VID/PID.我成功检测到我的设备,但我不知道如何获取驱动器号.有人可以帮我吗?我觉得我可以添加另一条线,class …

c# wmi usb-drive

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

激活特定注册期间发生错误

我已经创建了odata服务并将其打包到Web安装程序中。一旦我在计算机上安装了该软件包,它便可以正常工作,但是当我尝试在其他计算机上运行时,我无法在其他计算机上使用该软件包,它出现以下错误:

任何帮助将非常感激。

发生了错误。激活特定注册期间发生错误。有关详细信息,请参见内部异常。注册:激活程序= ConfigDataContext(ReflectionActivator),服务= [Deswik.MDM.Spatial.MDMPoints.DataContexts.Interface.IConfigDataContext],生命周期= Autofac.Core.Lifetime.CurrentScopeLifetime,共享=无,所有权= OwnedByLifetimeScope --->异常在类型'ConfigDataContext'上调用构造函数'Void .ctor(Deswik.MDM.SqlCommandBuilder.Interface.ISqlCommandBuilder,System.String)'时抛出。---> ConnectionString属性尚未初始化。(有关详细信息,请参阅内部异常。)(有关“在此处输入代码”的详细信息,请参阅内部异常。)Autofac.Core.Resolving.InstanceLookup处的Autofac.Core.DependencyResolutionException。System.Web.Http.Controllers.ActionFilterResult.d__2.MoveNext()处System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)处的ExceptionServices.ExceptionDispatchInfo.Throw()-从上次发生异常的位置开始的堆栈结束跟踪在System.Web.Http.Dispatcher.HttpControllerDispatcher.d__1.MoveNext()在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)在System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()抛出。在类型'ConfigDataContext'上调用构造函数'Void .ctor(Deswik.MDM.SqlCommandBuilder.Interface.ISqlCommandBuilder,System.String)'时引发了异常。---> ConnectionString属性尚未初始化。(有关详细信息,请参见内部异常。)Autofac处的Autofac.Core.Activators.Reflection.ReflectionActivator.ActivateInstance(IComponentContext上下文,IEnumerable'1参数)处的Autofac.Core.Activators.Reflection.ConstructorParameterBinding.Instantiate()处的Autofac.Core.DependencyResolutionException .Core.Resolving.InstanceLookup.Activate(IEnumerable'1参数)发生错误。ConnectionString属性尚未初始化。System.Data.SqlClient.SqlConnectionFactory.PermissionDemand(DbConnection externalConnection)的System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection externalConnection,DbConnectionFactory connectionFactory,TaskCompletionSource'1重试的System.Data.SqlClient.SqlConnection.PermissionDemand()的System.InvalidOperationException ,

.net c# web-services odata

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

图表中的光标线

我在C#windows窗体项目中使用图表控件.我想要的是当它在图表上移动时,我的鼠标会跟随虚线.我可以使线条以光标或数据点为中心; 在这一点上,我很灵活.我已经在屏幕截图中显示了我正在寻找的内容.
光标上的黑色虚线

所以在这里你可以看到黑色虚线(光标没有出现,因为它是一个屏幕抓取).我已经有了一个mouseMove事件,但我不确定要在该mousemove中包含哪些代码才能使其正常工作(现在它仅在我单击鼠标时有效,但我认为这只是因为我启用了CursorX.IsUserSelection).我已经在图表创建函数中格式化了行,但是有一些CursorX.LineEnable函数或类似的东西吗?我找不到任何东西.我知道我可以用彩绘物体来完成这个,但我希望避免麻烦.
提前致谢!我将在下面添加我的行格式.这是在图表创建部分.

        chData.ChartAreas[0].CursorX.IsUserEnabled = true;
        chData.ChartAreas[0].CursorX.IsUserSelectionEnabled = true;
        chData.ChartAreas[0].CursorY.IsUserEnabled = true;
        chData.ChartAreas[0].CursorY.IsUserSelectionEnabled = true;

        chData.ChartAreas[0].CursorX.Interval = 0;
        chData.ChartAreas[0].CursorY.Interval = 0;
        chData.ChartAreas[0].AxisX.ScaleView.Zoomable = true;
        chData.ChartAreas[0].AxisY.ScaleView.Zoomable = true;

        chData.ChartAreas[0].CursorX.LineColor = Color.Black;
        chData.ChartAreas[0].CursorX.LineWidth = 1;
        chData.ChartAreas[0].CursorX.LineDashStyle = ChartDashStyle.Dot;
        chData.ChartAreas[0].CursorX.Interval = 0;
        chData.ChartAreas[0].CursorY.LineColor = Color.Black;
        chData.ChartAreas[0].CursorY.LineWidth = 1;
        chData.ChartAreas[0].CursorY.LineDashStyle = ChartDashStyle.Dot;
        chData.ChartAreas[0].CursorY.Interval = 0;
Run Code Online (Sandbox Code Playgroud)

c# charts

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

无法在`MouseHover`事件中获取`MouseEventArgs`

我确信这有一个直接的答案,但我似乎无法弄明白.

我正在尝试添加tooltip使用我的mousehover活动.从历史上看,我已经使用过该mousemove事件,但不幸的是,这意味着tooltip更新程序可以像程序一样快速地进行更新.我只想让它显示鼠标在我的图表上静止不动.

问题是我无法获取e.Location属性,因为事件处理程序仅使用EventArgs,而不是MouseEventArgs.有没有办法可以改变这个?或者可能添加一行MouseEventArgs mouse = new MouseEventArgs();(我得到一个错误,说它需要更多的参数,但我不知道哪个).

任何帮助表示赞赏:)

        private void chSysData_MouseHover(object sender, EventArgs e)
        {
            //Add tooltip
            try
            {
                int cursorX = Convert.ToInt32(chSysData.ChartAreas[0].AxisX.PixelPositionToValue(e.Location.X));
                tipInfo = "System: " + systemVoltage[cursorX].ToString("0.00") + Environment.NewLine + "Current: " + currArray[cursorX].ToString("0.00") + Environment.NewLine;
                tooltip.SetToolTip(chSysData, tipInfo);
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error: " + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
        }
Run Code Online (Sandbox Code Playgroud)

c# charts mouseevent mousehover

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

如何忽略异常并完成尝试

因此,我已经与这个问题作斗争了大约一周,并且认为我知道这个问题,但在确定问题之前我不想在那里报告答案。

简而言之,我在尝试使用该SerialPort.Open()命令时收到 IOException。事实证明,这是很常见的,大多数终端程序实际上也是这样做的,但它们只是忽略它。请阅读我上面的帖子以了解完整的故事。现在我想做的是忽略 IOException 但仍然打开串行端口。我不能用 try/catch 来做到这一点,或者至少我不知道如何做。

我想知道是否有一种方法可以尝试某些事情并以某种方式声明“我知道会抛出一个问题,这是一个安全的问题,我选择忽略异常并继续执行任务”。需要明确的是,我不想忽略该错误然后继续。我想忽略该错误并仍然完成操作

以下是我的最佳猜测,但它不起作用。

        try
        {
            serialPort1.Open();               
        }
        catch (System.IO.IOException)
        {
            MessageBox.Show("An IO Exception occurred.");
        }
        finally
        {          
            //SAFELY IGNORE ERROR AND DO TASK ANYWAY HERE
        }
Run Code Online (Sandbox Code Playgroud)

如果有人能帮助我解决这个问题,我将不胜感激。

编辑:如果我之后添加代码,serialport1.Open我会得到: IOException 的屏幕截图

这基本上与没有 try/catch 时发生的情况相同。我想做的是说我正在尝试这样做:我不在乎它会引发错误,无论如何都要这样做。

c# serial-port ioexception

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

将小数字符串转换为十进制

我有几列的值要么是小数字符串(即 6 11/32),要么是小数(1.5)。是否有一个CASTCONVERT调用可以将这些转换为始终为小数?

错误:

消息 8114,级别 16,状态 5,第 1 行将数据类型 varchar 转换为数字时出错。

我可以避免进行任何类型的解析吗?

谢谢!

PS我在工作SQL Server Management Studio 2012

sql sql-server casting

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