通信易懂唠唠SOME/IP——SOME/IP-SD服务发现阶段和应答行为

一 SOME/IP-SD服务发现阶划分

服务发现应该包含3个阶段

1.1 Initial Wait Phase初始等待阶段

  • 初始等待阶段的作用

初始等待阶段是服务发现过程中的一个阶段。在这个阶段,服务发现模块等待服务实例的相关条件满足,以便继续后续的发现和注册过程。

对于客户端服务实例,当务实例所需的网络接口链接已经建立,即网络接口处于 "up" 状态且应用需要这个服务时即进入初始等待阶段。

在实际的实现中,应用需要某个服务一般是生成到配置文件中,当配置文件中有这个实例id,就认为应用需要这个服务。

对于服务器端服务实例,当务实例所需的网络接口链接已经建立,即网络接口处于 "up" 状态且服务可用。即服务器服务已经启动并准备好接受请求。服务准备好一般和具体功能有关系,比如camera service等camera初始化完成。

  • 初始等待阶段的等待时间INITIAL_DELAY

初始等待阶段等待的时间取决于INITIAL_DELAY值得设置。NITIAL_DELAY应该设置一个最大值和一个最小值,实际等待时间是介于最大值和最小值之间的一个随机值。

下面重复阶段和主阶段都是以Provider instance为例的,request insatnce类似,后面会对不一样的地方单独说明。

1.2 Repetition Phase重复阶段

初始等待阶段等待时间到了之后,会发送第一条offer service消息,这时候就进入了重复阶段。

进入重复阶段后

第一次等待REPETITIONS_BASE_DELAY时间后发送第二条of

当用户点击QTableView的表头时,会触一个信号,可以通过连接这个信号来实现相应的事件处理。 具体来说,可以使用QHeaderView类的sectionClicked()信号来处理表头点击事件。这个信号会在用户单击表头时出,它的参数是一个整数,表示点击的列号或行号(取决于表头的方向)。 以下是一个示例代码,演示了如何处理QTableView的表头点击事件: ``` void MyWidget::setupTableView() { // 创建一个 QTableView 对象一个 QStandardItemModel 对象 QTableView* tableView = new QTableView(this); QStandardItemModel* model = new QStandardItemModel(this); // 设置模型的表头 model->setHorizontalHeaderLabels({"Name", "Age", "Gender"}); model->setVerticalHeaderLabels({"1", "2", "3"}); // 设置模型的数据 for (int row = 0; row < 3; ++row) { for (int col = 0; col < 3; ++col) { QStandardItem* item = new QStandardItem(QString("Item %1,%2").arg(row).arg(col)); model->setItem(row, col, item); } } // 将模型设置给 QTableView 对象 tableView->setModel(model); // 连接表头点击事件 connect(tableView->horizontalHeader(), &QHeaderView::sectionClicked, this, &MyWidget::onHeaderClicked); // 将 QTableView 对象添加到窗口中 setCentralWidget(tableView); } void MyWidget::onHeaderClicked(int index) { qDebug() << "Header clicked: " << index; } ``` 在这个示例中,我们首先创建了一个QTableView对象一个QStandardItemModel对象,并将模型设置给表格视图。然后,我们使用connect()函数将表头的sectionClicked()信号与MyWidget类中的onHeaderClicked()槽函数连接起来。最后,我们将表格视图添加到窗口中。 当用户单击表头时,onHeaderClicked()槽函数会被调用,并打印出点击的列号。你可以根据需要在这个槽函数中实现自己的逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值