Beste mensen,
Ik ben al een tijdje aan het kloten om de k8000 werkend te krijgen in C#.
Via het tesprogrammatje van velleman doet alles het, dus met de hardware geen gebrek. Echter krijg ik hetzelf niet gaande via de bijgeleverde K8D.dll.
namespace ConsoleApplication1 {
class Program {
[DllImport( "K8D.dll", EntryPoint = "Start_K8000" )]
public static extern void Start_K8000();
[DllImport( "K8D.dll", EntryPoint = "ConfigAllIOasOutput" )]
public static extern void ConfigAllIOasOutput();
[DllImport( "K8D.dll", EntryPoint = "UpdateAllIO" )]
public static extern void UpdateAllIO();
[DllImport( "K8D.dll", EntryPoint = "SelectI2CprinterPort" )]
public static extern void SelectI2CprinterPort( int Printer_no );
[DllImport( "K8D.dll", EntryPoint = "IOoutput" )]
public static extern void IOoutput( int Chip_no, int Data );
static void Main( string[] args ) {
Start_K8000();
SelectI2CprinterPort( 1 );
ConfigAllIOasOutput();
IOoutput( 0, 255 );
UpdateAllIO();
while( true );
}
}
}
Nu weet ik wel dat er gecommuniceerd wordt met de dll, want waneer ik de naam wijzig van een entrypoint dan zegt C# netjes dat de methode niet in de dll gevonden wordt.
Ik heb zelf sterk het idee dat het vanaf die dll naar de output mis gaat, maar wat...
Alvast bedankt!
[Bericht gewijzigd door NL Cortana op (13%)]
timmie
niet met me uitspraken(of opmerkingen) eens mail me.K8048 guide
1. weet je zeker dat je declares goed zijn? ik kan trouwens zo snel nix vinden behalve de borland listing
2. weet je zeker dat de dll wordt aangeroepen en dat deze zich in je win32 map bevind.
3. waarom eerst de K8000 starten en dan pas aangeven op welke poort hij zit????