Új hozzászólás Aktív témák

  • tototos

    addikt

    Sziasztok!

    A múltkori struktúrás kérdésemre kapott válaszokat köszönöm. Sajnos valamiért nem akart összejönni a dolog, így kicsit módosítottam a dolgokon.

    Adott egy .c fájl amiben megvalósítom a meghívható get_Signal függvényt
    ennek a paramétere egy struktúrára mutató pointer, amiben át kell adnom egy lokálisan tárolt struktúrát, aminek az értékeit csak egyszer adom meg és onnantól ne lehessen módosítani

    signal.h:
    typedef struct{
    Signal_Types name;
    uint16_t id;
    uint8_t pos;
    uint8_t length;
    uint8_t order;
    float factor;
    float offset;
    }Signal_TypeDef;

    signal.c
    static Signal_TypeDef SIGNALS[9];
    uint8_t CAN_Signal_Init()
    {
    SIGNALS[NEW_SIGNAL_12].name = NEW_SIGNAL_12__NAME;
    SIGNALS[NEW_SIGNAL_12].id = NEW_SIGNAL_12__ID;
    SIGNALS[NEW_SIGNAL_12].pos = NEW_SIGNAL_12__POS;
    SIGNALS[NEW_SIGNAL_12].length = NEW_SIGNAL_12__LENGTH;
    SIGNALS[NEW_SIGNAL_12].order = NEW_SIGNAL_12__ORDER;
    SIGNALS[NEW_SIGNAL_12].factor = NEW_SIGNAL_12__FACTOR;
    SIGNALS[NEW_SIGNAL_12].offset = NEW_SIGNAL_12__OFFSET;
    ...
    }

    uint8_t get_Signal(SignalName name, Signal_struct** signal)
    {
    *signal = &SIGNALS[name];
    }




    main.c:

    Signal_Struct* signal;

    get_Signal(NWE_SIGNAL_12, &signal);

    signal->id = 0x200; //ez ne tudjon lefutni vagy jelezzen a fordító hibát

    Az utolsó sort kellene valahogy megoldanom, hogy ne tudjak a struktúrába módosítani.

Új hozzászólás Aktív témák