Ik heb dit lang geleden eens gemaakt met een ActiveX control "MSComm32.ocx" maar in het 4.5 .NET framework schijnt dit maar niet te lukken. Iemand een (Eenvoudige) werkwijze om hieraan te beginnen?

Alvast bedankt!

Thnx Damic, nu zie ik dat ik vergeten ben erbij te zetten dat het niet over Forms gaat, maar een MFC applicatie...

Misschien komt het omdat ik niks van MS weet maar waar is de link met elektronica?

Op 26 december 2013 20:37:38 schreef GJ_:
Misschien komt het omdat ik niks van MS weet maar waar is de link met elektronica?

Euh, is dit niet het software en interface forum?
Bedoeling is via seriële poort een verbinding te maken met mijn PIC Dimmer.
Lijkt me behoorlijk Software en interfacing gerelateerd...

Dan wel ja, maar dat had je nog niet vermeld.

Op 26 december 2013 21:09:54 schreef GJ_:
Dan wel ja, maar dat had je nog niet vermeld.

Ok, bij deze gebeurd, my bad ;)
Ik hoop alleen dat iemand me kan helpen, want ikheb de rolluikcontroller ook af en als alles aan elkaar geknoopt is is het het grootste project dat ik ooit gemaakt heb...

Is MFC niet hetzelfde in backend?

*kuch* met de volgende zoek syntax ( vc++ .net mfc serial port ) kreeg ik deze link: http://www.ontrak.net/mfc.htm en http://forums.codeguru.com/showthread.php?534729-How-to-read-and-write…

[Bericht gewijzigd door Damic op (25%)]

Damic, deze had ik nog niet gevonden, bedankt! Ik ga hier eens mee prutsen en hopen dat er iets uitkomt. Lijkt me redelijk basic, hopelijk krijg ik de controle lijnen er ook mee aangestuurd...

Op 26 december 2013 21:09:54 schreef GJ_:
Dan wel ja, maar dat had je nog niet vermeld.

Waarom denk je anders dat die op dit forum zit? :D

Soms beetje touwtjes laten vieren kan ook geen kwaad. ;)

Je weet toch waar MFC voor staat? => Microsoft Frustration Classes :-).

Nu even wat serieuzer: Ik heb eens gehoord dat in de originele seriele comm class lib een zwik bugs zitten waardoor die eigenlijk onbruikbaar is.

Er schijnt ergens een betere dll te downloaden te zijn die wel goed werkt. Helaas ben ik de details daarvan al jaren geleden kwijtgeraakt. Dat wordt dus even zoeken op het net.

Waarom een OCX gebruiken? Als je toch het .Net 4.5 framework gebruikt kun je net zo goed de System.IO.Ports namespace gebruiken:

http://msdn.microsoft.com/en-us/library/system.io.ports.serialport(v=v…

Er zijn verschillende mogelijkheden.

- Gebruik de CFile klasse om een compoort te openen. Filename is "COMx". Voorbeelden te over het internet.

- Gebruik de ANSI C functies (open, write,... functies) of Windows SDK (API) (Createfile, Writefile,... functies) en bouw een C++ wrapper rondom deze functies.

- Gebruik het .Net framework zoals RobDeVeer hiertboven reeds zei.

De 2de methode heb ik ooit gebruikt in een op Qt3 gebaseerd project. Qt3 (QFile) laat geen asynchrone/ongebufferde fileoperaties toe, en dit was dus de enige manier was om zoiets tot stand te brengen.

Groetjes

Zou ook te maken kunnen hebben met 64-bit systeem.
Bij compile options heb je de keuze om de applicatie uit te voeren als 32-bit. Dan werken sommige references wel.

Op 27 december 2013 23:04:55 schreef RobvdVeer:
Waarom een OCX gebruiken? Als je toch het .Net 4.5 framework gebruikt kun je net zo goed de System.IO.Ports namespace gebruiken:

http://msdn.microsoft.com/en-us/library/system.io.ports.serialport(v=v…

Rob, kan je hier ook een voorbeeld van geven welke files ik moet includen? En evt een syntax van de namespace system.io.ports?

Ik heb al constant vanalles geprobeerd sinds ik dit draadje begonnen ben. Het moet heel eenvoudig zijn om te doen, maar ik doe iets verkeerd. Ik heb talloze voorbeelden vanop internet gevolgd, maar visual C++ heeft problemen met de namespace system.io.ports

Veel kaas heb ik hiervan nog niet gegeten (ik lust geen kaas) maar vroet met de mscomm32.ocx ging het wel als een fluitje van een cent, en men beweert dat het .net framework 4.5 nog makkelijker is.. Jawadde!

Op 29 december 2013 21:35:24 schreef Wiebo:
[...]

Rob, kan je hier ook een voorbeeld van geven welke files ik moet includen? En evt een syntax van de namespace system.io.ports?

Eeerm. in de link die ik meestuurde heb je alle documentatie, inclusief voorbeeldcode en class definities. Ik zou niet weten wat ik daar aan moet uitleggen/toevoegen. Je hoeft niets te downloaden, geen externe libraries te openen, niets van dat. Gewoon 'using System.IO.Ports;' en gaan. Je bent toch wel een .Net applicatie aan het bouwen? Want vanuit hardcore C++ gaat dit natuurlijk niet werken..

Grappig he dat was mijn eerste post al VS VC++ .net is altijd .net in de code.

Op 29 december 2013 21:48:35 schreef Damic:
Grappig he dat was mijn eerste post al VS VC++ .net is altijd .net in de code.

Ja, wel gelezen maar alweer vergeten. Ik wist niet dat er nog hobbyisten waren die voor de lol MFC gebruikten.

Het gaat als volgt:
- Ik open Visual Studio 2013
- Nieuw -> Project -> MFC -> MFC Application (Boven me in een drop-down menu staat ".NET Framework 4.5" dus dat moet goed zijn)
- Ik geef het kind een naam "SerialTest" en druk OK, en next...
- kies "Dialog based" en "Finish"

Ik voeg toe: "using System.IO.Ports;"

// SerialTestDlg.cpp : implementation file
//

#include "stdafx.h"
#include "SerialTest.h"
#include "SerialTestDlg.h"
#include "afxdialogex.h"

using System.IO.Ports; // Hier heb ik de boel geplakt

#ifdef _DEBUG
#define new DEBUG_NEW
#endif

// CAboutDlg dialog used for App About

class CAboutDlg : public CDialogEx
{
public:
CAboutDlg();

// Dialog Data
enum { IDD = IDD_ABOUTBOX };

etc...

Ik run de boel, vervolgens krijg ik:

1>g:\backup oude schijven\projects\serialtest\serialtest\serialtestdlg.cpp(10): error C2143: syntax error : missing ';' before '.'

en

1>g:\backup oude schijven\projects\serialtest\serialtest\serialtestdlg.cpp(10): error C2873: 'System' : symbol cannot be used in a using-declaration

en

1>g:\backup oude schijven\projects\serialtest\serialtest\serialtestdlg.cpp(10): error C2059: syntax error : '.'

Pfff, weeral niks. Wat doe ik fout?

namespace System::IO::Ports;

geeft:

1>g:\backup oude schijven\projects\mfcapplication1\mfcapplication1\mfcapplication1dlg.cpp(10): error C2653: 'System' : is not a class or namespace name

http://i.imgur.com/MGsX0DWl.jpg

Klik op de taalvan uw keuze om de voorbeeldcode te zien. Ik spreek geen C++, wellicht helpt het..

Het lijkt erop dat je een #using mist.

[Bericht gewijzigd door RobvdVeer op (13%)]

Rob, bedankt voor de hulp, maar het werkt nog steeds niet. Ik denk dat er iets met de computer mis is, want dit is niet normaal meer. Ik ga de oude versie terug bovenhalen, en op windows XP verder werken met de MSComm32.ocx erop, geen gekl*** meer voor mij met dat .NET gefrot...

Succes daarmee. Ik droom in C#/ASP.Net/MVC/WPF, maar MFC ga ik me niet meer in verdiepen.