Avatar billede gigs Nybegynder
10. januar 2006 - 08:37 Der er 2 kommentarer og
1 løsning

Fejl ved COMPort.Open()

Hej Eksperter

Jeg 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
Avatar billede Syska Mester
10. januar 2006 - 11:06 #1
Eneste jeg kunne forstille mig, var at der er et eller andet lorte program der bruger den COM port... har du eventuelt en anden COM port eller en helt anden computer du kan teste på?

Tror også at C og C# tager fat i porten på 2 forskellige måder, altså at du skal have flere rettigheder end du egentlig har....

Hvis et C program virker på den nu, så ved vi da i det mindste at andre programmer ikke bruger den?

Kører du din kode fra Ekstern Drev? altså netværks share? Siden Zonen den ikke har nok rettigheder på hedder "Intranet"....? hvis, så smid det over lokalt og kør det derfra....

// ouT
Avatar billede gigs Nybegynder
10. januar 2006 - 17:04 #2
Skarpt set buzzzz

Det var fordi den blev kørt fra netværks drevet

Hvis du smider et svar, får du hele baduljen :)

Mvh Jens
Avatar billede Syska Mester
10. januar 2006 - 18:02 #3
Helt tilfældigt jeg lige så det efter jeg havde skrevet alt det andet :-) *heheh*

takker for point
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester