QualNet常用函数

本文介绍了QualNet模拟器中几个重要的函数,包括mapping.h中的节点标识和接口管理,如通过节点指针和ID获取接口信息;fileio.h中的配置文件读取和参数初始化;以及random.h中的随机数生成功能,这些函数在QualNet的网络模拟场景中起到关键作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. mapping.h中关于节点指针、节点ID、节点接口地址的转换。每个节点有一个指针、一个ID,多个接口索引及多个接口地址。

1.1 已知节点指针和节点接口地址,获取节点ID

NodeAddress
MAPPING_GetNodeIdFromInterfaceAddress(
    Node *node,
    NodeAddress interfaceAddress);

NodeAddress
MAPPING_GetNodeIdFromInterfaceAddress(
    Node *node,
    Address interfaceAddress);

1.2 已知节点指针和节点ID,获取默认接口地址

NodeAddress
MAPPING_GetDefaultInterfaceAddressFromNodeId(
    Node *node,
    NodeAddress nodeId);

1.3 已知节点指针和节点接口地址,获取节点接口索引 

int
MAPPING_GetInterfaceIndexFromInterfaceAddress(
    Node *node,
    NodeAddress interfaceAddress);

1.4 已知节点ID,获取节点指针(需要用到节点指针与ID的哈希表)

Node*
MAPPING_GetNodePtrFromHash(
    IdToNodePtrMap* hash,
    NodeAddress     nodeId);

2.fileio.h从配置文件中读取数据,初始化参数。常见于初始化阶段协议栈初始化。

void
IO_ReadBool(
    const NodeId nodeId,
    const Address* address,
    const NodeInput *nodeInput,
    const char *parameterName,
    BOOL *wasFound,
    BOOL *parameterValue);

void
IO_ReadString(
    const NodeAddress nodeId,
    const Address* address,
    const NodeInput *nodeInput,
    const char *index,
    BOOL *wasFound,
    char *readVal);

void
IO_ReadInt(
    const NodeId nodeId,
    const Address* address,
    const NodeInput *nodeInput,
    const char *parameterName,
    BOOL* wasFound,
    int *parameterValue);

void
IO_ReadDouble(
    const NodeId nodeId,
    const Address* address,
    const NodeInput *nodeInput,
    const char *parameterName,
    BOOL *wasFound,
    double *parameterValue);

void
IO_ReadInt64(
    const NodeId nodeId,
    const Address* address,
    const NodeInput *nodeInput,
    const char *parameterName,
    BOOL *wasFound,
    Int64 *parameterValue);

void
IO_ReadFloat(
    const NodeId nodeId,
    const Address* address,
    const NodeInput *nodeInput,
    const char *index,
    BOOL *wasFound,
    float *readVal);

void
IO_ReadTime(
    const NodeAddress nodeId,
    const Address* address,
    const NodeInput *nodeInput,
    const char *parameterName,
    BOOL *wasFound,
    clocktype *parameterValue);

3.random.h随机数产生

//产生随机种子,存入seed变量
void RANDOM_SetSeed(RandomSeed seed,
                    UInt32 globalSeed,
                    UInt32 nodeId = 0,
                    UInt32 protocolId = 0,
                    UInt32 instanceId = 0);

//由随机种子产生随机小数,介于0-1之间
extern double RANDOM_erand(RandomSeed);

//由随机种子产生随机整数,介于2的-31次方至2的+31次方
extern Int32  RANDOM_jrand(RandomSeed);

//由随机种子产生随机整数,介于0至2的+31次方
extern Int32  RANDOM_nrand(RandomSeed);

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值