コード例 #1
0
ファイル: csMem.c プロジェクト: Aginorty/wireless-network
/******************************************************************************
\brief Set Configuration Server memory to its default state
******************************************************************************/
void csSetToDefault(void)
{
  /* Restore information bases default values from FLASH */
#if defined(_USE_KF_MAC_)
  tal_pib_IeeeAddress = CCPU_TO_LE64(CS_UID);
  maxFrameTransmissionTime = CS_MAX_FRAME_TRANSMISSION_TIME;
#else
  memset(&csPIB, 0x00, sizeof(PIB_t));
  csPIB.macAttr.extAddr = CCPU_TO_LE64(CS_UID);
  csPIB.macAttr.maxFrameTransmissionTime = CS_MAX_FRAME_TRANSMISSION_TIME;
#endif // defined(_USE_KF_MAC_)

#ifndef _MAC2_
  memcpy_P(&csNIB, &defaultNIB, sizeof(NIB_t));
  memcpy_P(&csZIB, &defaultZIB, sizeof(ZIB_t));
  memcpy_P(&csAIB, &defaultAIB, sizeof(AIB_t));
#endif
  memcpy_P(&csSIB, &defaultSIB, sizeof(SIB_t));
  memset(&stackBuffers, 0x00, sizeof(CS_StackBuffers_t));
}
コード例 #2
0
ファイル: configServer.c プロジェクト: TLoebner/apbteam
/******************************************************************************
\brief Set PDS default

******************************************************************************/
void CS_PdsDefaultValue(void)
{
  csPIB.macAttr.extAddr = CCPU_TO_LE64(CS_UID);
  csSIB.csRfTxPower = CS_RF_TX_POWER;
#ifndef _MAC2_
  csSIB.csExtPANID = CCPU_TO_LE64(CS_EXT_PANID);
  csZIB.channelMask = CS_CHANNEL_MASK;
  csNIB.channelPage = CS_CHANNEL_PAGE;
  csNIB.deviceType = CS_DEVICE_TYPE;
  csSIB.csRxOnWhenIdle = (CS_DEVICE_TYPE == DEVICE_TYPE_END_DEVICE) ? CS_RX_ON_WHEN_IDLE : true;
  csSIB.csComplexDescriptorAvailable = CS_COMPLEX_DESCRIPTOR_AVAILABLE;
  csSIB.csUserDescriptorAvailable = CS_USER_DESCRIPTOR_AVAILABLE;
  csSIB.csNwkPanid = CCPU_TO_LE16(CS_NWK_PANID);
  csSIB.csNwkPredefinedPanid = CS_NWK_PREDEFINED_PANID,
  csNIB.networkAddress = CCPU_TO_LE16(CS_NWK_ADDR);
  csNIB.uniqueAddr = CS_NWK_UNIQUE_ADDR;
  csSIB.csDtrWakeup = CS_DTR_WAKEUP;
#if defined(_POWER_FAILURE_)
  csNIB.parentNetworkAddress = CCPU_TO_LE16(0xFFFF);
  csNIB.depth = 0;
  csNIB.extendedPanId = CCPU_TO_LE64(CS_NWK_EXT_PANID);
  csSIB.csNwkLogicalChannel = 0;
  csSIB.csPowerFailure = CS_POWER_FAILURE;
#endif /* _POWER_FAILURE_ */
#if defined(_SECURITY_)
  csAIB.trustCenterAddress = CCPU_TO_LE64(CS_APS_TRUST_CENTER_ADDRESS);
  csSIB.csZdoSecurityStatus = CS_ZDO_SECURITY_STATUS;
#endif /* _SECURITY_ */

  /* Parameters not to store in EEPROM */
  csNIB.maxNeighborRouteCost = CS_MAX_NEIGHBOR_ROUTE_COST;
  csSIB.csNwkMaxLinkStatusFailures = CS_NWK_MAX_LINK_STATUS_FAILURES;
  csSIB.csNwkEndDeviceMaxFailures = CS_NWK_END_DEVICE_MAX_FAILURES;
#ifdef AT86RF212
  csSIB.csLbtMode = CS_LBT_MODE;
#endif /* AT86RF212 */
#if defined(_SECURITY_)
  csSIB.csSecurityOn = CS_SECURITY_ON;
#endif /* _SECURITY_ */

  /* Buffers cleaning */
#if defined(_POWER_FAILURE_)
  memset(&stackBuffers.csNeibTable, 0, CS_NEIB_TABLE_SIZE);
  #if defined(_BINDING_) && (CS_APS_BINDING_TABLE_SIZE > 0)
    memset(&stackBuffers.csApsBindingTable, 0, CS_APS_BINDING_TABLE_SIZE);
  #endif /* _BINDING_ */
  #if defined(_SECURITY_)
  {
    csNIB.securityIB.securityLevel = CS_SECURITY_LEVEL;
    csNIB.securityIB.secureAllFrames = CS_SECURITY_ALL_FRAMES;
    NWK_ResetSecurityIB(NWK_GetDefaultPowerFailureControl());
  }
  #endif /* _SECURITY_ */
#endif /* _POWER_FAILURE_ */
#if defined (_GROUP_TABLE_)
  memset(&stackBuffers.csGroupTable, 0, CS_GROUP_TABLE_SIZE);
#endif /* _GROUP_TABLE_ */
#if defined(_SECURITY_)
  #if defined(_TC_PERMISSION_TABLE_) && CS_MAX_TC_ALLOWED_DEVICES_AMOUNT > 0
    memset(&stackBuffers.csTcDevicePermissionTable, 0, CS_MAX_TC_ALLOWED_DEVICES_AMOUNT);
  #endif /* _TC_PERMISSION_TABLE_ */
  #if defined _LINK_SECURITY_ && CS_APS_KEY_PAIR_DESCRIPTORS_AMOUNT > 0

    memset(&stackBuffers.csApsKeyPairDescriptors, 0, CS_APS_KEY_PAIR_DESCRIPTORS_AMOUNT);
  #endif /* _LINK_SECURITY_ */

#endif /* _SECURITY_ */
#endif /* _MAC2_ */
}
コード例 #3
0
ファイル: csMem.c プロジェクト: Aginorty/wireless-network
#endif
  .deviceType = CS_DEVICE_TYPE,
  .addrAlloc = CS_ADDRESS_ASSIGNMENT_METHOD,
  .symLink = true,
  .uniqueAddr = CS_NWK_UNIQUE_ADDR,
  .leaveReqAllowed = CS_NWK_LEAVE_REQ_ALLOWED,
  .stackProfile = CS_STACK_PROFILE,
  .protocolVersion = CS_PROTOCOL_VERSION,
  .maxDepth = CS_MAX_NETWORK_DEPTH,
  .maxNeighborRouteCost = CS_MAX_NEIGHBOR_ROUTE_COST,
  .maxLinkRouteCost = CS_MAX_LINK_ROUTE_COST,
  .channelPage = CS_CHANNEL_PAGE,
  .logicalChannel = 0,
  .networkAddress = CCPU_TO_LE16(CS_NWK_ADDR),
  .panId = CCPU_TO_LE16(CS_NWK_PANID),
  .extendedPanId = CCPU_TO_LE64(CS_NWK_EXT_PANID), /* uses as joined-to-network flag */
  .maxRouters = CS_MAX_CHILDREN_ROUTER_AMOUNT,
  .maxEndDevices = CS_MAX_CHILDREN_AMOUNT - CS_MAX_CHILDREN_ROUTER_AMOUNT
};

const ZIB_t PROGMEM_DECLARE(defaultZIB) =
{
  .permitJoinDuration = CS_PERMIT_DURATION,
  .channelMask = CS_CHANNEL_MASK,
  .zdpResponseTimeout = CS_ZDP_RESPONSE_TIMEOUT,
  .scanDuration = CS_SCAN_DURATION,
};

const AIB_t PROGMEM_DECLARE(defaultAIB) =
{
  .nonMemberRadius = APS_AIB_NONMEMBER_RADIUS_DEFAULT_VALUE, /* See ZigBee spec r19, Table 2.24. */