当前位置: 首页 > news >正文

Linux UWB Stack实现——MCPS调度接口(API)

在上一篇文章中,介绍了MCPS调度接口涉及的相关数据结构实现MCPS调度接口(数据结构),本文继续介绍调度相关的方法的实现。

1. 域处理

1.1 域注册与注销

注册/注销一个mcps802154_region,分别在模块加载(module_init)和模块卸载(module_exit)时调用。

int mcps802154_region_register(struct mcps802154_region_ops *region_ops);
void mcps802154_region_unregister(struct mcps802154_region_ops *region_ops);

1.2 域操作

域的操作包括:打开和关闭一个域,域的参数设置,域的调用以及发送域的事件。

// 打开一个域,然后设置参数。需要打开域的名称,底层设备指针
// 返回指向打开域的指针
struct mcps802154_region *
mcps802154_region_open(struct mcps802154_llhw *llhw, const char *name,const struct nlattr *params_attr,struct netlink_ext_ack *extack);
// 关闭一个域		  
void mcps802154_region_close(struct mcps802154_llhw *llhw,struct mcps802154_region *region);// 设置一个打开域的参数
int mcps802154_region_set_parameters(struct mcps802154_llhw *llhw,struct mcps802154_region *region,const struct nlattr *params_attr,struct netlink_ext_ack *extack);// 调用域中的一个特定的处理程序,通过域特定的程序的标识符call_id来标识调用的程序
int mcps802154_region_call(struct mcps802154_llhw *llhw,struct mcps802154_region *region, u32 call_id,const struct nlattr *params_attr,const struct genl_info *info);// 分配缓冲区以发送域的通知,返回已分配且提前填充的buffer
struct sk_buff *
mcps802154_region_event_alloc_skb(struct mcps802154_llhw *llhw,struct mcps802154_region *region, u32 call_id,u32 portid, int approx_len, gfp_t gfp);// 发送已分配的且已经填充的buffer,需要传递底层硬件指针
int mcps802154_region_event(struct mcps802154_llhw *llhw, struct sk_buff *skb);

2. 调度器

2.1 调度器注册与注销

在模块加载时注册一个mcps802154_scheduler调度器;模块卸载时,注销调度器。与mcps802154_region处理类似。

int mcps802154_scheduler_register(struct mcps802154_scheduler_ops *scheduler_ops);
void mcps802154_scheduler_unregister(struct mcps802154_scheduler_ops *scheduler_ops);

2.2 调度器操作

对于调度器而言,可能更改调度开始的时间、清除或回收当前的调度、向调度中增加新的域、更改调度访问、无效调度等,主要通过以下的外部API调用。

// 改变当前已经更新调度开始时间戳:需要调度计划上下文,同时设置新的时间戳(DTU)
int mcps802154_schedule_set_start(const struct mcps802154_schedule_update *schedule_update,u32 start_timestamp_dtu);// 清除或回收当前的调度计划(schedule)
// n_keeps:保留上一调度计划的域数
// last_region_duration_dtu:最后域的持续时间,若为MCPS802154_DURATION_NO_CHANGE则保持不变
int mcps802154_schedule_recycle(const struct mcps802154_schedule_update *schedule_update,size_t n_keeps, int last_region_duration_dtu);// 向当前更新的调度计划中增加一个新的域,包括开始时间以及持续时间
int mcps802154_schedule_add_region(const struct mcps802154_schedule_update *schedule_update,struct mcps802154_region *region, int start_dtu, int duration_dtu);	// 请求尽可能更改访问
// 当有新的可用数据时,则使用此函数重新评估当前访问的时间。
// 如设备在休眠或等待接收帧,有新的数据需要发送,则需要调用请求重新评估,更改访问。
// 如果设备处于忙碌状态,将忽略请求,这种情况下,当前访问完成后才会检查新的访问。
void mcps802154_reschedule(struct mcps802154_llhw *llhw);// 请求无效调度计划(schedule)
// 有限状态机锁应该入锁。要无效当前的schedule,将导致调度计划更改。
// 当例如某些参数更改时,应从外部模块调用此API以强制进行调度计划更改。
void mcps802154_schedule_invalidate(struct mcps802154_llhw *llhw);

相关文章:

Linux UWB Stack实现——MCPS调度接口(API)

在上一篇文章中,介绍了MCPS调度接口涉及的相关数据结构实现MCPS调度接口(数据结构),本文继续介绍调度相关的方法的实现。 1. 域处理 1.1 域注册与注销 注册/注销一个mcps802154_region,分别在模块加载(mo…...

el-tree中插入图标并且带提示信息

<template><div class"left"><!-- default-expanded-keys 默认展开 --><!-- expand-on-click-node 只有点击箭头才会展开树 --><el-tree :data"list" :props"defaultProps" node-click"handleNodeClick" :…...

竞赛选题 深度学习 YOLO 实现车牌识别算法

文章目录 0 前言1 课题介绍2 算法简介2.1网络架构 3 数据准备4 模型训练5 实现效果5.1 图片识别效果5.2视频识别效果 6 部分关键代码7 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 基于yolov5的深度学习车牌识别系统实现 该项目较…...

Direct3D网格(一)

创建网格 我们可以用D3DXCreateMeshFVF函数创建一个"空"网格对象 &#xff0c;空网格对象是指我们指定了网格的面片总数和顶点总数&#xff0c;然后由该函数为顶点缓存、索引缓存和属性缓存分配大小合适的内存&#xff0c;之后即可手工填入网格数据。 HRESULT WINA…...

C语言打印菱形

一、运行结果图 二、源代码 # define _CRT_SECURE_NO_WARNINGS # include <stdio.h>int main() {//初始化变量值&#xff1b;int line 0;int i 0;int j 0;//获取变量值&#xff1b;scanf("%d", &line);//循环打印上半部分&#xff1b;for (i 0; i <…...

ElasticSearch搜索引擎:数据的写入流程

一、ElasticSearch 写数据的总体流程&#xff1a; &#xff08;1&#xff09;ES 客户端选择一个节点 node 发送请求过去&#xff0c;这个节点就是协调节点 coordinating node &#xff08;2&#xff09;协调节点对 document 进行路由&#xff0c;通过 hash 算法计算出数据应该…...

python3 调用 另外一个python脚本

3种python调用其他脚本脚本的方法_python 调用python脚本_linjingyg的博客-CSDN博客 Python之系统交互(调用系统命令)subprocess_subprocess.getoutput(cmd) 参数格式不正确-CSDN博客 subprocess.call()只能返回状态码。subprocess.getoutput(cmd)只能输出命令结果。 str(py…...

【13】c++设计模式——>简单工厂模式

工厂模式的定义 c中的工厂模式是一种创建型设计模式&#xff0c;它提供一种创建对象的接口&#xff0c;但具体创建的对象类型可以在运行时决定&#xff0c;这样可以将对象的创建与使用代码分离&#xff0c;提高代码的灵活性和可维护性。 在c中实现工厂模式&#xff0c;通常会定…...

系统架构设计:2 论软件设计方法及其应用

目录 一 软件设计方法 1结构化设计 2信息工程 3面向对象设计 4原型设计...

基于Winform的UDP通信

1、文件结构 2、UdpReceiver.cs using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.Sockets; using System.Text; using System.Threading.Tasks;namespace UDPTest.Udp {public class UdpStateEventArgs : EventArgs…...

掌握 BERT:自然语言处理 (NLP) 从初级到高级的综合指南(1)

简介 BERT&#xff08;来自 Transformers 的双向编码器表示&#xff09;是 Google 开发的革命性自然语言处理 (NLP) 模型。它改变了语言理解任务的格局&#xff0c;使机器能够理解语言的上下文和细微差别。在本文[1]中&#xff0c;我们将带您踏上从 BERT 基础知识到高级概念的旅…...

Linux Ftrace介绍

文章目录 一、简介二、内核函数调用跟踪参考链接&#xff1a; 一、简介 Ftrace 是 Linux 官方提供的跟踪工具&#xff0c;在 Linux 2.6.27 版本中引入。Ftrace 可在不引入任何前端工具的情况下使用&#xff0c;让其可以适合在任何系统环境中使用。 Ftrace 可用来快速排查以下相…...

Go语言进阶------>init()函数

Init()包初始化 执行优先级 Init()函数的执行优先级比main()函数的执行优先级要高,也就是说程序会优先执行Init()函数之后再执行main()函数. 代码如下 package mainimport "fmt"func init() {fmt.Println("执行了Init()函数") }func main() {fmt.Println…...

云计算:常用微服务框架

目录 一、理论 1.Java微服务框架 2.Go微服务框架 3.Python微服务框架 4.Node.js微服务框架 5..Net微服务框架 一、理论 1.Java微服务框架 Spring Cloud&#xff1a;最早最成熟&#xff0c;Java开源微服务框架方案 SpringBoot&#xff1a;全新框架&#xff0c;设计目的是…...

jmeter添加断言(详细图解)

先创建一个线程组&#xff0c;再创建一个http请求。 为了方便观察&#xff0c;我们添加两个监听器&#xff0c;察看结果树和断言结果。 添加断言&#xff1a;响应断言&#xff0c;响应断言也是比较常用的一个断言 设置响应断言&#xff1a;正常情况下响应代码是200。选择响应代…...

few shot object detection via feature reweight笔记

摘要部分 few shot很多用的都是faster R-CNN为基础&#xff0c;本文用的是one-stage 结构。 用了一个meta feature learner和reweighting模块。 和其他的few shot一样&#xff0c;先学习base数据集&#xff0c;再推广到novel数据集。 feature learner会从base数据集中提取meta…...

工会排队模式:电商新营销模式吸引消费者,提升销售!

随着电商行业的繁荣发展&#xff0c;私域流量已经成为了电商平台争夺消费者和促进销售的重要手段。工会排队模式正是在这种背景下应运而生的一种创新性的电商营销模式。这种模式通过奖金池的资金来为消费者和商家提供返现和排队奖励&#xff0c;构建了一个实现消费者和商家共赢…...

定档通知2024中国(北京)国际红外技术及设备展览会

时间&#xff1a;2024年7月14-16日 地点&#xff1a;北京国家会议中心 ◆展会背景background&#xff1a; 各有关红外企业厂商&#xff1a;2024年7月14&#xff5e;16日&#xff0c;2024中国国际红外技术及设…...

自助建站系统,一建建站系统api版,自动建站

安装推荐php7.2或7.2以下都行 可使用虚拟主机或者服务器进行搭建。 分站进入网站后台 域名/admin 初始账号123456qq.com密码123456 找到后台的网站设置 将主站域名及你在主站的通信secretId和通信secretKey填进去。 即可正常使用 通信secretId和通信secretKey在主站的【账号…...

算法框架-LLM-1-Prompt设计(一)

原文&#xff1a;算法框架-LLM-1-Prompt设计&#xff08;一&#xff09; - 知乎 目录 收起 1 prompt-engineering-for-developers 1.1 Prompt Engineering 1.1.1 提示原则 1. openai的环境 2. 两个基本原则 3. 示例 eg.1 eg.2 结构化输出 eg.3 模型检验 eg.4 提供示…...

一个rar压缩包如何分成三个?

一个rar压缩包体积太大了&#xff0c;想要将压缩包分为三个&#xff0c;该如何做到&#xff1f;其实很简单&#xff0c;方法就在我们经常使用的WinRAR当中。 我们先将压缩包内的文件解压出来&#xff0c;然后查看一下&#xff0c;然后打开WinRAR软件&#xff0c;找到文件&…...

批量获取拼多多商品详情数据,拼多多商品详情API接口

批量获取拼多多商品详情数据可以采用以下方式&#xff1a; 使用拼多多开放平台API接口。 拼多多开放平台提供了API接口&#xff0c;可以通过API接口获取拼多多平台上的商品信息&#xff0c;使用API接口需要进行权限申请和认证&#xff0c;操作较为复杂。 使用第三方工具。 市面…...

Redis Cluster Gossip Protocol: 目录

术语说明 server&#xff1a;当前的节点 cluster&#xff1a;每个节点的内存中都有一个集群信息结构&#xff0c;里面包含了集群中各个节点的状态信息&#xff08;包括server自己&#xff09; myself&#xff1a;当前节点在cluster中的实体 node&#xff1a;cluster节点字典中…...

HarmonyOS/OpenHarmony原生应用-ArkTS万能卡片组件Span

作为Text组件的子组件&#xff0c;用于显示行内文本的组件。无子组件 一、接口 Span(value: string | Resource) 从API version 9开始&#xff0c;该接口支持在ArkTS卡片中使用。 参数&#xff1a; 参数名 参数类型 必填 参数描述 value string | Resource 是 文本内…...

这些负载均衡都解决哪些问题?服务、网关、NGINX

这篇文章解答一下群友的一系列提问&#xff1a; 在微服务项目中&#xff0c;有服务的负载均衡、网关的负载均衡、Nginx的负载均衡&#xff0c;这几个负载均衡分别用来解决什么问题呢&#xff1f; 在微服务项目中&#xff0c;服务的负载均衡、网关的负载均衡和Nginx的负载均衡都…...

Lambda表达式在C++中的定义

目录 背景介绍&#xff1a; Lambda表达式的定义&#xff1a; Lambda结构介绍&#xff1a; 1. Lambda capture 2. Lambda parameter list 3. Lambda mutable 4. Lambda return type 5. Lambda 主体 Lambda 表达式小结&#xff1a; Lambda 引用参考&#xff1a; 背景介…...

sheng的学习笔记-【中文】【吴恩达课后测验】Course 1 - 神经网络和深度学习 - 第二周测验

课程1_第2周_测验题 目录&#xff1a;目录 第一题 1.神经元计算什么&#xff1f; A. 【  】神经元计算激活函数后&#xff0c;再计算线性函数&#xff08;zWxb&#xff09; B. 【  】神经元计算一个线性函数&#xff08;zWxb&#xff09;&#xff0c;然后接一个激活函数…...

前端代码格式化规范总结

在日常开发过程中&#xff0c;经常会碰到代码格式化不一致的问题&#xff0c;还要就是 js 代码语法错误等没有及时发行改正&#xff0c;下面就介绍一下如何使用eslint、prettier、husky、lint-staged、commitizen来规范代码格式和提高代码质量的方法。 目录 准备工作代码检测代…...

Windows10打开应用总是会弹出提示窗口的解决方法

用户们在Windows10电脑中打开应用程序&#xff0c;遇到了总是会弹出提示窗口的烦人问题。这样的情况会干扰到用户的正常操作&#xff0c;给用户带来不好的操作体验&#xff0c;接下来小编给大家详细介绍关闭这个提示窗口的方法&#xff0c;让大家可以在Windows10电脑中舒心操作…...

易点易动固定资产管理系统: 帮助您应对2023年年终固定资产大盘点

作为一名企业的行政人员&#xff0c;我们都了解年终固定资产盘点对于企业来说至关重要。然而&#xff0c;面对众多资产、复杂的流程和繁琐的记录工作&#xff0c;往往会令人感到头疼不已。为了帮助您应对2023年的年终固定资产大盘点&#xff0c;我们推荐易点易动固定资产管理系…...