Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]7617[/thread]

kompliziertes Problem



<< >> 5 Einträge, 1 Seite
fritz
 2006-01-12 16:02
#61855 #61855
User since
2005-10-19
44 Artikel
BenutzerIn
[default_avatar]
Hi liebe Perlgemeinde,

mich plagt folgendes, kompliziertes Problem.


Mein Perl Thread oeffnet waehrend der Abarbeitung eine C Funktion.

Diese C Funktion oeffnet einen zweiten Thread (C Thread)
in dem ebenfalls etwas abgearbeitet wird.

Nach kurzer Zeit will der C Thread dem Perl Thread eine Nachricht zukommen lassen ( 4 Parameter ).

Ich hab es folgendermassen versucht.

C- Code:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
void Callback(unsigned int MsgId, unsigned int wParam, long lParam, long clientHandle)
{

 dSP;
 
 ENTER;
   SAVETMPS;
     PUSHMARK(SP);
      XPUSHs(sv_2mortal(newSViv(MsgId)));
     XPUSHs(sv_2mortal(newSViv(wParam)));
XPUSHs(sv_2mortal(newSViv(lParam)));
       XPUSHs(sv_2mortal(newSViv(clientHandle)));
     PUTBACK;
     perl_call_pv("MSP430DLL::callback", G_DISCARD);//
   FREETMPS;
 LEAVE;

}

Aufnahme der Parameter in Perl

Code: (dl )
1
2
3
4
5
sub callback
{
  print "Hi, this is the callback\n";
  print "@_\n";
}


Das Problem ist nun das ich auf den Perl Thread keinen Zugriff bekomme weil dieser ja noch laeuft und ich somit den Interpreter nicht benutzen kann.

Die Fehlermeldung in C lautet:

Unhandled exeption in perl.exe: 0xC0000005: Access Violation

Jetzt meine Frage, wie realisiere ich das?


Hab mir ueberlegt ob es vielleicht moeglich waere aehnlich wie mit
$a = <STDIN>
nicht auf eine Tastatureingabe zu warten sondern auf die Parameter aus C.

Dann waere naemlich der Interpreter von Perl darauf vorbereitet das etwas kommen muss, waehrend er zur Zeit ja nicht damit rechnet das er von C Daten bekommen soll.

Hoffe auf baldige Hilfe

MFG

fritz\n\n

<!--EDIT|esskar|1137082874-->
Strat
 2006-01-12 18:41
#61856 #61856
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
vielleicht besser auf http://www.perlmonks.org/ fragen? da gibt es mehr leute, die sich mit sowas auskennen (ich bin da ueberfragt)
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
renee
 2006-01-12 23:57
#61857 #61857
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Kann man vielleicht mit Pipes arbeiten?
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Crian
 2006-01-16 14:40
#61858 #61858
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Ich kann mich Strat nur anschließen, ich kenn mich damit auch nicht aus und bei den Monks kann man dir sicherlich helfen.
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
esskar
 2006-01-17 01:43
#61859 #61859
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
ich denke eher, dass der namespace MSP430DLL:: falsch ist!
<< >> 5 Einträge, 1 Seite



View all threads created 2006-01-12 16:02.