IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Structure en C#


Sujet :

C#

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Enseignant
    Inscrit en
    juin 2014
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : juin 2014
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Structure en C#
    Bonjour à Tous

    Je suis en train de bidouiller pour développer une dll en C#, qui me permet de lire et écrire des trames can depuis un superviseur. Le problème que j'ai actuellement, et qu’après avoir pu me connecter à mon bus can grace à ma dll, je suis en train de coder ma fonction d’écriture "EthCanWriteCanMsg", cette fonction (que j’appelle depuis une autre dll) prend en paramètre comme vous pouvez le voir un pointeur sur la structure de type tCANMsg , qui contient les données à écrire, mon problème est que je n’arrive à écrire que le premier objet de ma structure qui est le m_dwID (dans cette exemple 0x204) , et j'ignore pourquoi les autres objets ne sont pas écrit.


    Pourriez-vous m'aider svp?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    ....
    [ComVisible(true)]
     public unsafe class Class1
        {
     
          [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
           public  struct tCANMsg
            {
                // [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)]
                public  uint m_dwID;     // CAN identifier
                public uint m_bMsgType; // CAN message type
                public uint m_bLen;     // CAN data length code
               [MarshalAs(UnmanagedType.ByValArray, SizeConst = 8)]
                public uint[] m_bData; // CAN data
                //
            }
     
     
       [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
       public struct EthCanInstance
            {
                public uint m_dwHandle;
                public tEthCanHwParam m_EthCanHwParam;
                public tConnectionState m_ConnectionState;
                public tConnectionState m_LastConnectionState;
                public uint m_dwLastCanStatus;
                public bool m_fIsConnected;
                public uint m_dwCounter;
                public tCANMsg m_CANMsgSend;
                public tCANMsg m_CANMsgRecv;
                public uint m_fReceived;
     
            }
     
     
     public static EthCanInstance[] EthCanInst_g = new EthCanInstance[1];
     
       unsafe void  read() {
     
                uint dwReadRet;
                EthCanInst_g[0].m_CANMsgSend.m_bData = new  uint[8];
                tCANTimestamp TimeStamp;
                TimeStamp.m_dwMilliSec = (uint)Environment.TickCount;
                TimeStamp.m_wMicroSec = 0;
                TimeStamp.m_wMilliSec_Overflow = 0;
                EthCanInst_g[0].m_CANMsgSend.m_bMsgType = 0x0;
                EthCanInst_g[0].m_CANMsgSend.m_dwID = 0x204;
                EthCanInst_g[0].m_CANMsgSend.m_bLen = 0x3;
                EthCanInst_g[0].m_CANMsgSend.m_bData[0] = 0x57;
                EthCanInst_g[0].m_CANMsgSend.m_bData[1] = 0x2;
                EthCanInst_g[0].m_CANMsgSend.m_bData[2] = 0x0;
                EthCanInst_g[0].m_CANMsgSend.m_bData[3] = 0x0;
                EthCanInst_g[0].m_CANMsgSend.m_bData[4] = 0x0;
                EthCanInst_g[0].m_CANMsgSend.m_bData[5] = 0x0;
                EthCanInst_g[0].m_CANMsgSend.m_bData[6] = 0x0;
                EthCanInst_g[0].m_CANMsgSend.m_bData[7] = 0x0;
                //Write the CAN message into the transmit queue       
                dwReadRet = EthCanWriteCanMsg(EthCanInst_g[0].m_dwHandle, ref EthCanInst_g[0].m_CANMsgSend, ref TimeStamp);
     
     
            }
    ...
    ..

    Merci

  2. #2
    Membre confirmé
    Avatar de nouanda
    Homme Profil pro
    Hobbyist
    Inscrit en
    mai 2002
    Messages
    246
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Australie

    Informations professionnelles :
    Activité : Hobbyist

    Informations forums :
    Inscription : mai 2002
    Messages : 246
    Points : 627
    Points
    627
    Par défaut
    Bonjour,

    Tu pourrais aussi poster le code de la méthode EthCanWriteCanMsg?
    Une exécution pas-à-pas détaillé ne donne pas d'indication utilisable (par exemple, le contenu de EthCanInst_g[0].m_CANMsgSend, et comparer ce qui est envoyé par EthCanWriteCanMsg(EthCanInst_g[0].m_dwHandle, ref EthCanInst_g[0].m_CANMsgSend, ref TimeStamp); à ce qui est traité par la méthode EthCanWriteCanMsg).
    " Entre le Savoir et le Pouvoir, il y a le Vouloir "

    Desole pour les accents, je suis en QWERTY...

Discussions similaires

  1. recuperation de la structure d'une base
    Par pascalT dans le forum 4D
    Réponses: 7
    Dernier message: 07/06/2006, 16h32
  2. [tables systèmes] extraction de la structure d'une base
    Par laffreuxthomas dans le forum Autres SGBD
    Réponses: 6
    Dernier message: 23/03/2006, 14h24
  3. [VB6] [Fichier] Enregistrer des variables de structure
    Par de.bo dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 07/10/2002, 12h09
  4. Structure de données de type "RECORD"
    Par chaours dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 30/09/2002, 18h10
  5. longueur d'une structure
    Par bohemianvirtual dans le forum C
    Réponses: 6
    Dernier message: 28/05/2002, 19h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo