*** stock_iot-lab_M3/openwsn/02b-MAChigh/schedule.h Thu Apr 24 11:01:36 2014 --- riot-openwsn-wip/openwsn/02b-MAChigh/schedule.h Thu Apr 24 16:55:54 2014 *************** *** 17,26 **** The superframe repears over time and can be arbitrarly long. */ ! #define SUPERFRAME_LENGTH 9 #define NUMADVSLOTS 1 ! #define NUMSHAREDTXRX 4 #define NUMSERIALRX 3 /** --- 17,26 ---- The superframe repears over time and can be arbitrarly long. */ ! #define SUPERFRAME_LENGTH 11 //should be 101 #define NUMADVSLOTS 1 ! #define NUMSHAREDTXRX 5 #define NUMSERIALRX 3 /** *************** *** 50,56 **** See MINBE for an explanation of backoff. */ #define MAXBE 4 ! //=========================== typedef ========================================= --- 50,61 ---- See MINBE for an explanation of backoff. */ #define MAXBE 4 ! //6tisch minimal draft ! #define SCHEDULE_MINIMAL_6TISCH_ACTIVE_CELLS 5 ! #define SCHEDULE_MINIMAL_6TISCH_EB_CELLS 1 ! #define SCHEDULE_MINIMAL_6TISCH_SLOTFRAME_SIZE 101 ! #define SCHEDULE_MINIMAL_6TISCH_DEFAULT_SLOTFRAME_HANDLE 1 //id of slotframe ! #define SCHEDULE_MINIMAL_6TISCH_DEFAULT_SLOTFRAME_NUMBER 1 //1 slotframe by default. //=========================== typedef ========================================= *************** *** 84,94 **** } scheduleEntry_t; //PRAGMA(pack()); ! //copy of the previous one but without the pointer and packed PRAGMA(pack(1)); typedef struct { slotOffset_t slotOffset; ! cellType_t type; bool shared; uint8_t channelOffset; open_addr_t neighbor; --- 89,109 ---- } scheduleEntry_t; //PRAGMA(pack()); ! //used to debug through ipv6 pkt. ! ! PRAGMA(pack(1)); ! typedef struct { ! uint8_t last_addr_byte;//last byte of the address; poipoi could be [0]; endianness ! uint8_t slotOffset; ! channelOffset_t channelOffset; ! }netDebugScheduleEntry_t; ! PRAGMA(pack()); ! PRAGMA(pack(1)); typedef struct { + uint8_t row; slotOffset_t slotOffset; ! uint8_t type; bool shared; uint8_t channelOffset; open_addr_t neighbor; *************** *** 96,148 **** uint8_t numTx; uint8_t numTxACK; asn_t lastUsedAsn; ! } scheduleEntryDebug_t; PRAGMA(pack()); ! //used to debug through ipv6 pkt. ! ! PRAGMA(pack(1)); typedef struct { ! uint8_t last_addr_byte;//last byte of the address; poipoi could be [0]; endianness ! uint8_t slotOffset; ! uint8_t channelOffset; ! }netDebugScheduleEntry_t; PRAGMA(pack()); - PRAGMA(pack(1)); typedef struct { ! uint8_t row; ! scheduleEntryDebug_t scheduleEntry; ! } debugScheduleEntry_t; ! PRAGMA(pack()); ! //=========================== variables ======================================= //=========================== prototypes ====================================== // admin ! void schedule_init(); ! bool debugPrint_schedule(); ! bool debugPrint_backoff(); // from uRES void schedule_setFrameLength(frameLength_t newFrameLength); ! void schedule_addActiveSlot( slotOffset_t slotOffset, cellType_t type, bool shared, uint8_t channelOffset, ! open_addr_t* neighbor ! ); // from IEEE802154E void schedule_syncSlotOffset(slotOffset_t targetSlotOffset); ! void schedule_advanceSlot(); ! slotOffset_t schedule_getNextActiveSlotOffset(); ! frameLength_t schedule_getFrameLength(); ! cellType_t schedule_getType(); void schedule_getNeighbor(open_addr_t* addrToWrite); ! channelOffset_t schedule_getChannelOffset(); ! bool schedule_getOkToSend(); ! void schedule_resetBackoff(); void schedule_indicateRx(asn_t* asnTimestamp); void schedule_indicateTx( asn_t* asnTimestamp, --- 111,179 ---- uint8_t numTx; uint8_t numTxACK; asn_t lastUsedAsn; ! } debugScheduleEntry_t; PRAGMA(pack()); ! PRAGMA(pack(1)); //elements for slot info typedef struct { ! uint8_t address[LENGTH_ADDR64b];// ! cellType_t link_type;// rx,tx etc... ! bool shared; ! slotOffset_t slotOffset; ! channelOffset_t channelOffset; ! }slotinfo_element_t; PRAGMA(pack()); + //=========================== variables ======================================= typedef struct { ! scheduleEntry_t scheduleBuf[MAXACTIVESLOTS]; ! scheduleEntry_t* currentScheduleEntry; ! uint16_t frameLength; ! uint8_t backoffExponent; ! uint8_t backoff; ! slotOffset_t debugPrintRow; ! } schedule_vars_t; ! typedef struct { ! uint8_t numActiveSlotsCur; ! uint8_t numActiveSlotsMax; ! uint8_t numUpdatedSlotsCur; ! } schedule_dbg_t; //=========================== prototypes ====================================== // admin ! void schedule_init(void); ! bool debugPrint_schedule(void); ! bool debugPrint_backoff(void); // from uRES void schedule_setFrameLength(frameLength_t newFrameLength); ! owerror_t schedule_addActiveSlot( slotOffset_t slotOffset, cellType_t type, bool shared, uint8_t channelOffset, ! open_addr_t* neighbor, ! bool isUpdate); ! ! void schedule_getSlotInfo(slotOffset_t slotOffset, ! open_addr_t* neighbor, ! slotinfo_element_t* info); ! ! owerror_t schedule_removeActiveSlot(slotOffset_t slotOffset, ! open_addr_t* neighbor); ! ! // from IEEE802154E void schedule_syncSlotOffset(slotOffset_t targetSlotOffset); ! void schedule_advanceSlot(void); ! slotOffset_t schedule_getNextActiveSlotOffset(void); ! frameLength_t schedule_getFrameLength(void); ! cellType_t schedule_getType(void); void schedule_getNeighbor(open_addr_t* addrToWrite); ! channelOffset_t schedule_getChannelOffset(void); ! bool schedule_getOkToSend(void); ! void schedule_resetBackoff(void); void schedule_indicateRx(asn_t* asnTimestamp); void schedule_indicateTx( asn_t* asnTimestamp, *************** *** 154,158 **** \} \} */ - #endif --- 185,188 ----