下载 FreeRTOS
 

出色的 RTOS & 嵌入式软件

最新资讯
简化任何设备的身份验证云连接。
利用 CoAP 设计节能型云连接 IoT 解决方案。
11.0.0 版 FreeRTOS 内核简介:
FreeRTOS 路线图和代码贡献流程。
使用 FreeRTOS 实现 OPC-UA over TSN。

xApplicationDHCPHook_Multi()

[FreeRTOS-Plus-TCP API 引用]

FreeRTOS_DHCP.h

注意:仅当 ipconfigUSE_DHCP_HOOK 在 FreeRTOSIPConfig.h 文件中设置为 1 时才需要定义此钩子。

eDHCPCallbackAnswer_t xApplicationDHCPHook_Multi( eDHCPCallbackPhase_t eDHCPPhase,
                                                  struct xNetworkEndPoint * pxEndPoint,
                                                  IP_Address_t * pxIPAddress );

xApplicationDHCPHook_Multi 是应用程序定义的钩子(或回调)函数,由 FreeRTOS-Plus-TCP 堆栈调用, 用于检查是否应发送 DHCPv4 的 “Discover” 和 “Request” 消息或 DHCPv6 的 “Solicitation” 和 “Request” 消息 来完成获取动态 IP 地址的过程,或者设备是否使用默认的静态 IP。

回调函数由应用程序写入程序实现,但由 TCP/IP 堆栈调用。回调函数的原型 必须与上面的原型完全匹配(包括函数名称)。应用程序钩子中的代码不应调用阻塞的 FreeRTOS-Plus-TCP API。这样很容易导致死锁。

当应用程序钩子执行时,会借用任务优先级和 IP 任务堆栈。因此,我们建议 您保持应用程序钩子的简短性——它可能需要唤醒一些负责执行进一步处理的应用程序任务。

参数:

eDHCPPhase
对于 DHCPv4,当 TCP 堆栈即将发送一条“请求”或“发现”消息时,该参数可以为 eDHCPPhasePreRequest 或 eDHCPPhasePreDiscover 。对于 DHCPv6, 当 TCP 堆栈即将发送一条“征求”信息或“请求”信息时,该参数可以为 eDHCPPhasePreRequest 或 eDHCPPhasePreDiscover。

pxEndPoint
端点当前执行 DHCP(v4 或 v6)。

pxIPAddress
当参数 eDHCPPhase 为 eDHCPPhasePreDiscover 时,此参数将包含默认 IP 地址, 否则(当 eDHCPPhase 为 eDHCPPhasePreRequest 时),此参数将包含由 DHCP 服务器提供的 IP 地址。

返回值:
返回值可为以下枚举值之一:

  • 如果应用程序想要继续 DHCP 事务,返回 eDHCPContinue
  • 如果应用程序想要使用默认网络参数,返回 eDHCPUseDefaults
  • 在必须中止 DHCP 进程且所有网络参数保持不变的情况下,返回 eDHCPStopNoChanges
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.