[Tinyos-2-commits] CVS: tinyos-2.x/tos/lib/mac/tkn154 CoordRealignmentP.nc, 1.2, 1.3 ScanP.nc, 1.11, 1.12

Jan-Hinrich Hauer janhauer at users.sourceforge.net
Tue Jun 2 01:40:14 PDT 2009


Update of /cvsroot/tinyos/tinyos-2.x/tos/lib/mac/tkn154
In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv31981/tos/lib/mac/tkn154

Modified Files:
	CoordRealignmentP.nc ScanP.nc 
Log Message:
Fixed some issues with the orphan scan / coordinator realignment - this was reported/suggested by Daniel Pineiro.

Index: CoordRealignmentP.nc
===================================================================
RCS file: /cvsroot/tinyos/tinyos-2.x/tos/lib/mac/tkn154/CoordRealignmentP.nc,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** CoordRealignmentP.nc	4 Mar 2009 18:31:22 -0000	1.2
--- CoordRealignmentP.nc	2 Jun 2009 08:40:12 -0000	1.3
***************
*** 115,119 ****
      if (!AssociatedMember)
        txStatus = IEEE154_SUCCESS;
!     else if (m_busy || (txFrame = newRealignmentFrame(ORPHAN_RESPONSE, &dstAddress)) != NULL)
        txStatus = IEEE154_TRANSACTION_OVERFLOW;
      else {
--- 115,119 ----
      if (!AssociatedMember)
        txStatus = IEEE154_SUCCESS;
!     else if (m_busy || (txFrame = newRealignmentFrame(ORPHAN_RESPONSE, &dstAddress)) == NULL)
        txStatus = IEEE154_TRANSACTION_OVERFLOW;
      else {

Index: ScanP.nc
===================================================================
RCS file: /cvsroot/tinyos/tinyos-2.x/tos/lib/mac/tkn154/ScanP.nc,v
retrieving revision 1.11
retrieving revision 1.12
diff -C2 -d -r1.11 -r1.12
*** ScanP.nc	22 May 2009 08:56:32 -0000	1.11
--- ScanP.nc	2 Jun 2009 08:40:12 -0000	1.12
***************
*** 220,224 ****
        case ORPHAN_SCAN:
          // orphan notification frame
!         m_scanDuration = call MLME_GET.macResponseWaitTime();
          m_txFrame->header->mhr[MHR_INDEX_FC1] = FC1_FRAMETYPE_CMD | FC1_PAN_ID_COMPRESSION;
          m_txFrame->header->mhr[MHR_INDEX_FC2] = FC2_SRC_MODE_EXTENDED | FC2_DEST_MODE_SHORT;
--- 220,224 ----
        case ORPHAN_SCAN:
          // orphan notification frame
!         m_scanDuration = call MLME_GET.macResponseWaitTime() * IEEE154_aBaseSuperframeDuration;
          m_txFrame->header->mhr[MHR_INDEX_FC1] = FC1_FRAMETYPE_CMD | FC1_PAN_ID_COMPRESSION;
          m_txFrame->header->mhr[MHR_INDEX_FC2] = FC2_SRC_MODE_EXTENDED | FC2_DEST_MODE_SHORT;
***************
*** 227,231 ****
          for (i=0; i<4; i++) // broadcast dest PAN ID + broadcast dest addr
            m_txFrame->header->mhr[MHR_INDEX_ADDRESS + i] = 0xFF;
!         call FrameUtility.copyLocalExtendedAddressLE((uint8_t*) &(m_txFrame->header[MHR_INDEX_ADDRESS + i]));
          m_txFrame->headerLen = 15;
          m_payload[0] = CMD_FRAME_ORPHAN_NOTIFICATION;
--- 227,231 ----
          for (i=0; i<4; i++) // broadcast dest PAN ID + broadcast dest addr
            m_txFrame->header->mhr[MHR_INDEX_ADDRESS + i] = 0xFF;
!         call FrameUtility.copyLocalExtendedAddressLE((uint8_t*) &(m_txFrame->header->mhr[MHR_INDEX_ADDRESS + i]));
          m_txFrame->headerLen = 15;
          m_payload[0] = CMD_FRAME_ORPHAN_NOTIFICATION;
***************
*** 348,354 ****
  
      if (m_scanType == ORPHAN_SCAN) {
        if (!m_resultIndex)
          if ((MHR(frame)[0] & FC1_FRAMETYPE_MASK) == FC1_FRAMETYPE_CMD &&
!             ((uint8_t*)call Frame.getPayload(frame))[0] == CMD_FRAME_COORDINATOR_REALIGNMENT) {
            m_resultIndex++; 
            dbg_serial("ScanP", "Received coordinator realignment frame.\n");
--- 348,363 ----
  
      if (m_scanType == ORPHAN_SCAN) {
+       uint8_t *payload = call Frame.getPayload(frame);
        if (!m_resultIndex)
          if ((MHR(frame)[0] & FC1_FRAMETYPE_MASK) == FC1_FRAMETYPE_CMD &&
!             payload[0] == CMD_FRAME_COORDINATOR_REALIGNMENT) {
! 
!           // Sect. 7.5.4.3: "the device shall update its MAC PIB with the PAN  
!           // information contained in the coordinator realignment command"
!            
!           call MLME_SET.macPANId( *((nxle_uint16_t*) &payload[1]) );
!           call MLME_SET.macCoordShortAddress( *((nxle_uint16_t*) &payload[3]) );
!           call MLME_SET.phyCurrentChannel( *((nxle_uint16_t*) &payload[5]) );
!           call MLME_SET.macShortAddress( *((nxle_uint16_t*) &payload[6]) );
            m_resultIndex++; 
            dbg_serial("ScanP", "Received coordinator realignment frame.\n");



More information about the Tinyos-2-commits mailing list