hugo stoutjesdijk schreef: ↑20 feb 2024 14:58
Ik heb hier dus ook helemaal geen verstand van, maar ergens zit er iets wat knaagt.
Lijkt me dus helemaal niet logisch dat zo'n "
CncConnectServer(“”)" afhankelijk is van de programmeertaal.
EdingCNC is geschreven in C++ en om toegang te krijgen tot de Parameters, en machinefuncties moet ik dat toch op één of andere manier koppelen..
in de GUI's die ik geschreven, moest ik de VBApiNet.dll gebruiken om te verbinden met de CNCServer. in C# had ik een andere (door een ander geschreven) C# dll nodig.. naar wat ik van Software begrepen heb is een DLL een Dynamic Link Library, in mijn beleving dus een "Bibliotheek" die de koppeling verzorgt tussen diverse stukken software..
de "Usings" die ik bovenin een Class heb staan in C#, dat zijn toch ook DLL's?.. zo is er een die Text behandeld, één die Forms regelt, en als ik video wil gebruiken, gooi ik daar using AForge.Video.dll in, en zo ook met allerhande andere bibliotheken om verbindingen aan te leggen..
Probeer ik in C# gewoon de cncapi.dll toe te voegen.. dan krijg ik dikke foutmeldingen.. dus dat gaat blijkbaar niet zo..
Nou moet ik toegeven, ondanks wat ik schijnbaar voor elkaar boks.. ik ben nog maar een beginneling.. ik heb laten we zeggen 2½ jaar ervaring met het schrijven in Visual Basic en VBA, nu ongeveer een jaar in C#, en 2 weken in C (Arduino), maar ik zou graag de stap maken naar C++, omdat C++ qua tijdkritische applicaties gewoon beter is..
hfjbuis schreef: ↑20 feb 2024 16:49
Ik kan mij niet voorstellen dat in visual studio iets met C++ wel kan, maar niet met C#. Mocht het toch zo zijn, dan voeg je aan je project een stukje code (module) toe in C++ waarin je een class definieert die dan met eding communiceert. Die class (module) gebruik je dan weer gebruikt in alle C# code met een "uses".
Net wat ik zeg.. in VB.Net, had ik een DLL, in C# is er een (door een ander geschreven en niet meer onderhouden) DLL, de VBAPINet.DLL wordt niet meer ondersteund, dus in VB.NET kan ik dat niet meer gebruiken, omdat er het nodige bijgekomen is in EdingCNC.. de niet meer onderhouden C# DLL zal datzelfde lot ondergaan.. dus zou ik het liefst rechtstreeks in C++ die koppeling maken, en dat kan klaarblijkelijk dus met de eerder beschreven CNCConnectServer("");endan kan ik dus gewoon met :
CncGetToolData(), tool data ophalen
CncUpdateToolData(), tool data weg scrijven
CncLoadToolTable() , staat de wijzigingen op in de ini file en maakt de wijzigingen actief in de interpreter.
CncDisconnectServer() als de applicatie eindigt.
de Boel regelen, aldus Bert.. en hij kan het weten, want hij heeft het geschreven.. Net als ik in het verleden al gezegd heb, als de GUI van EdingCNC je niet bevalt.. Bouw dan lekker je eigen GUI.. dat kan gewoon in C++, al dan niet met QT..
't lastige is dat ik met Visual Studio niet weet waar ik de CNCConnectServer("") moet neerpoten, noch waar ik mijn Form kan vinden, om daar mijn Camerabeeld weer te geven.. hoe de Camera te linken zal ik nog een uit moeten vlooien, maar meer dan bijvoorbeeld:
Code: Selecteer alles
#include <opencv2/opencv.hpp>
#include <iostream>
int main(int, char**) {
// open the first webcam plugged in the computer
cv::VideoCapture camera(0); // in linux check $ ls /dev/video0
if (!camera.isOpened()) {
std::cerr << "ERROR: Could not open camera" << std::endl;
return 1;
}
zou het toch echt niet moeten zijn..Nou heb ik nog geen ervaring in het schrijven in C++, maar de Code ziet er vrij "rechttoe-rechtaan-rechtzodiegaat uit.. eerst #include <opencv2/opencv.hpp> om de Camera te koppelen, #include <iostream> om het signaal binnen te halen, en dan in int main, trekken we de camera binnen met cv::VideoCapture camera(0), en dan controleren of de Camera open is.. niet heel spannend..
Maar..ik weet dus nog steeds niet waar ik dat moet zetten, en hoe ik mijn Form moet maken..en bewerken..