Fejl ved COMPort.Open()
Hej EksperterJeg har et problem med at få kontakt til Serial porten i mit program.
Jeg skriver i C# i Visual Studio 2005 miljøet.
Lad mig starte med at sige at jeg har fået kontakt til porten i andre programmer som hyperterminalen, så porten virker og er ledig.
Min kode ser således ud (indtil videre forsøger jeg blot at få kontakt til porten:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO.Ports;
namespace WindowsApplication1
{
public partial class Form1 : Form
{
SerialPort COMPort = new SerialPort("COM1",9600, Parity.None, 8, StopBits.One);
public Form1()
{
InitializeComponent();
}
private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
listBox1.Items.Add("Fra COM");
}
private void button1_Click(object sender, EventArgs e)
{
listBox1.Items.Add("Fra Knap");
}
private void serialPort1_ErrorReceived(object sender, System.IO.Ports.SerialErrorReceivedEventArgs e)
{
listBox1.Items.Add("Error on receive");
}
private void Form1_Load(object sender, EventArgs e)
{
// set read time out to 2 seconds
COMPort.ReadTimeout = 2000;
if (COMPort.IsOpen == false)
try
{
COMPort.Open();
}
catch (Exception oex)
{
richTextBox1.AppendText(oex.ToString());
}
//Enable Event Handler
COMPort.DataReceived += new SerialDataReceivedEventHandler(port_DataReceived);
}
private void port_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
this.Invoke(new EventHandler(DoUpDate));
}
private void DoUpDate(object s, EventArgs e)
{
listBox1.Items.Add(COMPort.ReadLine());
}
private void COMPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
}
}
}
Jeg har skudt mig ind på at problemet opstår ved COMPort.Open(); Her smides en exception som ser således ud:
System.Security.SecurityException: Request for the permission of type 'System.Security.Permissions.SecurityPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.
at System.Security.CodeAccessSecurityEngine.Check(Object demand, StackCrawlMark& stackMark, Boolean isPermSet)
at System.Security.CodeAccessPermission.Demand()
at System.IO.Ports.SerialPort.Open()
at WindowsApplication1.Form1.button2_Click(Object sender, EventArgs e)
The action that failed was:
Demand
The type of the first permission that failed was:
System.Security.Permissions.SecurityPermission
The Zone of the assembly that failed was:
Intranet
Jeg sidder på en computer hvor jeg ikke har admin rights og jeg ved ikke om det har noget med problemet at gøre, men det burde det da ikke være. Vi har før lavet programmer i ansi c og c++, hvor der ikke var noget brok over at kontakte porten.
Da problemet er ret akut giver jeg max points for hjælp.
På forhånd tak
Mvh Jens