2017-10-19 4 views
0

J'appelle une fonction CAPL à partir d'une fonction C# et j'obtiens en C# la valeur que la fonction CAPL renvoie mais elle renvoie toujours la même valeur qui n'a rien à voir avec celui que j'affecte dans la fonction CAPL. Y a-t-il quelque chose que j'ai besoin d'ajouter dans ma fonction CAPL pour qu'elle puisse transmettre la valeur correcte à la fonction C# à laquelle je l'appelle? Voici comment j'appelle la fonction CAPL de C# et en attribuant la valeur de retour à une variable:Valeur de retour de la fonction CAPL à la fonction C#

int var = (int)this.SendRawDiagnosticF.Call(id, bytestosend[0], bytestosend[1], bytestosend[2], bytestosend[3], bytestosend[4], bytestosend[5], bytestosend[6], bytestosend[7]); 

C'est la façon dont la fonction CAPL ressemble:

int ReturnRXIDMessage(long ID, long DLC, long a, long b, long c, long d, long e, long f, long g, long h) 
{ 
    long o = 0; 
    if (messageID == ID + 0x40) 
    { 
    o = messageID; 
    } 
    return (o); 
} 

Répondre

0

Je ne suis pas Assurez-vous de ce que vous faites, mais pour appeler la fonction CAPL à partir de .NET, vous devez appeler la fonction directement via CaplFunctions.MyCaplFile.MyFunction(param); Le reste dépend de votre configuration. Si vous utilisez vTESTstudio, vous devez simplement exporter la fonction avec le mot clé export. Si vous utilisez l'ancien jeu de fonctionnalités de test .NET, vous devez référencer le fichier CAPL dans votre nœud de test. Si vous utilisez Visual Studio, vous devrez peut-être également référencer la bibliothèque de types générée.