aardio - 日历

写了个日历小例程,因 lunar 农历库存在问题,经过研究算是变相解决了,日历也完成了雏形,先开源出来,感兴趣的玩玩。

请下载最新paint库、customPlus库、lunar库。

不同的颜色搭配,实现不同的风格:

import win.ui;
/*DSG{{*/
var winform = win.form(text="aardio form";right=657;bottom=596)
winform.add(
plus={cls="plus";left=36;top=26;right=330;bottom=303;autohscroll=false;autovscroll=false;dl=1;dt=1;notify=1;z=1}
)
/*}}*/

winform.show();
import godking.customPlus;
var itemModel = {
        {   /* 矩形元素定义 */
            type="rect",  /* 类型:rect */
            rectf={x=3;y=3;width=-3;height=-3},  /* 矩形区域范围。负数表示距离项目右边或底边的距离。 */
            width=1,     /* 边框宽度。为0则无边框。  */
            round=5,     /* 圆角半径。0为矩形,-1为椭圆,其他值(>0)为圆角矩形。 */
            fillcolor=0x55FFFFFF,          /* 正常状态下,填充颜色 */
            itemhoverfillcolor=0x887FFFD4,       /* 鼠标划过项目时,填充颜色 */
            itemselectedfillcolor=0x887FFFD4,    /* 项目选中时,填充颜色 */
        }
         {
             type="text",  /* 类型:text */
             rectf={x=5;y=5;width=-10;height=20},  /*  文本范围。负数表示距离项目右边的距离。 */
             name="lunar",
             text="",  /* 正常状态下文本 */
             font={name="宋体",point=10,color=0xBB2288FF},            /* 正常状态下字体 */
        }
        {   /* 矩形元素定义 */
            type="rect",  /* 类型:rect */
            rectf={x=-20;y=0;width=20;height=20},  /* 矩形区域范围。负数表示距离项目右边或底边的距离。 */
            name = "xiukuang";
            width=1,     /* 边框宽度。为0则无边框。  */
            round=-1,     /* 圆角半径。0为矩形,-1为椭圆,其他值(>0)为圆角矩形。 */
            color=0;
            fillcolor=0,          /* 正常状态下,填充颜色 */
        }        
         {
             type="text",  /* 类型:text */
             rectf={x=-19;y=2;width=20;height=20},  /*  文本范围。负数表示距离项目右边的距离。 */
             name="xiu",
             smooth = true;
             align=1;
             valign=1;
             text="",  /* 正常状态下文本 */
             font={name="黑体",point=11,color=0xFFFF0000},            /* 正常状态下字体 */
        }
         {
             type="text",  /* 类型:text */
             rectf={x=1;y=-25;width=-1;height=25},  /*  文本范围。负数表示距离项目右边的距离。 */
             name="festival",
             align=1,        /* 文本水平对齐方式。0、(近端)左对齐  1、居中  2、(远端)右对齐 */
             valign=1,       /* 文本垂直对齐方式。0、(近端)顶对齐  1、居中  2、(远端)底对齐 */
             text="",  /* 正常状态下文本 */
             font={name="宋体",point=10,color=0x88000000},            /* 正常状态下字体 */
         }
         {
             type="text",  /* 类型:text */
             rectf={x=1;y=5;width=-1;height=-1},  /*  文本范围。负数表示距离项目右边的距离。 */
             name="day",
             cur=32649,   /* 鼠标指针,_IDC_ 开头的常量。 */
             align=1,        /* 文本水平对齐方式。0、(近端)左对齐  1、居中  2、(远端)右对齐 */
             valign=1,       /* 文本垂直对齐方式。0、(近端)顶对齐  1、居中  2、(远端)底对齐 */
             smooth=true,    /* 使用平滑效果,抗锯齿 */
             text="",  /* 正常状态下文本 */
             font={name="Arial",point=30,color=0xFFFF5566},            /* 正常状态下字体 */
             hoverfont=null,       /* 鼠标划过元素时字体 */
             checkedfont=null,     /* 元素被选择时字体 */
             itemhoverfont=null,   /* 鼠标划过项目时字体 */
             itemselectedfont=null,/* 项目选中时字体 */
             disabledfont=null,    /* 项目禁用时字体 */
         }        
}
var c = godking.customPlus(winform.plus,itemModel,,{
    itemWidth=80,     /*项目最小宽度,为0时根据colnum自动计算,所以不能与colnum同时=0*/
    itemHeight=80,    /*项目最小高度,为0时根据rownum自动计算,所以不能与rownum同时=0*/
    autoSizeWidth=false,    /*为true则自动将项目总宽度拉伸填满plus宽度,每个项目宽度不小于itemWidth*/
    autoSizeHeight=false,    /*为true则自动将项目总高度拉伸填满plus高度,每个项目高度不小于itemHeight*/
    rownum=0,     /*项目行数,为0时根据itemHeight自动计算,所以不能与itemHeight同时=0*/
    colnum=7,     /*项目列数,为0时根据itemWidth自动计算,所以不能与itemWidth同时=0*/
    padLeft=10,    /*plus左边空白距离*/
    padTop=50,    /*plus顶边空白距离*/
    padRight=10,    /*plus右边空白距离*/
    padBottom=10, /*plus底边空白距离*/
    autoFit=true,     /*是否自动调整plus组件宽度或高度(其中之一),保证能刚好显示全部行或列*/
                    /*当 itemHeight>0 且 colnum>0 且 rownum=0 时,自动调整plus高度,以能显示全部行*/
                    /*当 itemWidth>0 且 rownum>0 且 colnum=0 时,自动调整plus宽度,以能显示全部列*/
    vertical=false, /*是否将项目设置为竖向排列,行滚动方向设置为横向*/
    bkcolor=0xFFFFFFFFFF, /*背景颜色*/
    bkimg="https://img2.baidu.com/it/u=555782348,2262853825&fm=253&fmt=auto&app=138&f=JPEG?w=760&h=380", /*背景图像*/
    bkimgmode=0, /*背景图平铺模式。0:拉伸填满;1:左上角;2:居中*/
    singleCheck=0,/*元素check单选模式。0:多选;1:每个项目内单选;2:整个列表单选*/
})
c.hide();
var tm = ..time.now();
c.onDrawPageBegin = function(paint){
    paint = toPaint(paint); /*绑定paint对象的智能提示,方便输入后续代码。发布时可屏蔽此行。*/
    paint.textAntiAlias=false;
    for(i=1;7;1){
        var color,fillcolor = 0xFF000000,0x531490B3;
        if i==1 or i==7 { color=0xFFFFFFFF; fillcolor=0xFFB31469 };
        var rectf = ::RECTF((i-1)*80+12,10/*y1*/,76/*x2*/,36);
        paint.fillRoundRectF(rectf,8/*圆角半径*/,fillcolor);
        rectf.y = rectf.y+2;
        paint.drawTextF(rectf,"星期"++({"日","一","二","三","四","五","六"})[i],::LOGFONT(name="宋体";h=16;color=color;brush=null),0,1,1)
    }
}
c.onDrawItemBegin = function(paint){
    paint = toPaint(paint); /*绑定paint对象的智能提示,方便输入后续代码。发布时可屏蔽此行。*/
    paint.drawTextF(0,50,c.plus.width,c.plus.height,tostring(tm.month),::LOGFONT(name="Arial";h=350;color=0x55EEEEEE),0,1,1)
}
import godking.lunar
var lu = godking.lunar()
var m = lu.SolarMonth.fromYm(tm.year, tm.month)
var days = lu.toTable(m.getDays());
var list = {};
var week = days[1].getWeek();
for(i=1;week;1){
    ..table.push(list,{hide=true})
}
for(i=1;#days;1){
    var day = tostring(days[i].getDay());
    var lunar = days[i].getLunar();
    var festival = string.join(lu.toTable(lunar.getFestivals())," ")
    if !#festival {
        festival = string.join(lu.toTable(days[i].getFestivals())," ")
        if !#festival {
             festival = string.join(lu.toTable(days[i].getOtherFestivals())," ")
        } 
    }
    if #festival festival=..string.left(festival,5,true)
    lunar = ..string.split(lunar.toString(),"<年>")[2];
    if days[i].getSalaryRate()>1 {
        ..table.push(list,{day=day,festival=festival,lunar=lunar,xiu="休",xiukuang={color=0xFFFF0000;fillcolor=0xFFFFFFFF}});
    } else {
        ..table.push(list,{day=day,festival=festival,lunar=lunar});
    }
}
c.itemList = list;
c.selectedIndex = week + tm.day;
c.show();
win.loopMessage();

 

import win.ui;
/*DSG{{*/
var winform = win.form(text="aardio form";right=657;bottom=596;bgcolor=16777215)
winform.add(
plus={cls="plus";left=36;top=26;right=330;bottom=303;autohscroll=false;autovscroll=false;dl=1;dt=1;notify=1;z=1}
)
/*}}*/

winform.show();
import godking.customPlus;
var itemModel = {
        {   /* 矩形元素定义 */
            type="rect",  /* 类型:rect */
            rectf={x=3;y=3;width=-3;height=-3},  /* 矩形区域范围。负数表示距离项目右边或底边的距离。 */
            width=1,     /* 边框宽度。为0则无边框。  */
            round=5,     /* 圆角半径。0为矩形,-1为椭圆,其他值(>0)为圆角矩形。 */
            fillcolor=0x55FFFFFF,          /* 正常状态下,填充颜色 */
            itemhoverfillcolor=0x887FFFD4,       /* 鼠标划过项目时,填充颜色 */
            itemselectedfillcolor=0x887FFFD4,    /* 项目选中时,填充颜色 */
        }
         {
             type="text",  /* 类型:text */
             rectf={x=5;y=5;width=-10;height=20},  /*  文本范围。负数表示距离项目右边的距离。 */
             name="lunar",
             text="",  /* 正常状态下文本 */
             font={name="宋体",point=10,color=0xBB2288FF},            /* 正常状态下字体 */
        }
        {   /* 矩形元素定义 */
            type="rect",  /* 类型:rect */
            rectf={x=-20;y=0;width=20;height=20},  /* 矩形区域范围。负数表示距离项目右边或底边的距离。 */
            name = "xiukuang";
            width=1,     /* 边框宽度。为0则无边框。  */
            round=-1,     /* 圆角半径。0为矩形,-1为椭圆,其他值(>0)为圆角矩形。 */
            color=0;
            fillcolor=0,          /* 正常状态下,填充颜色 */
        }        
         {
             type="text",  /* 类型:text */
             rectf={x=-19;y=2;width=20;height=20},  /*  文本范围。负数表示距离项目右边的距离。 */
             name="xiu",
             smooth = true;
             align=1;
             valign=1;
             text="",  /* 正常状态下文本 */
             font={name="黑体",point=11,color=0xFF880000},            /* 正常状态下字体 */
        }
         {
             type="text",  /* 类型:text */
             rectf={x=1;y=-25;width=-1;height=25},  /*  文本范围。负数表示距离项目右边的距离。 */
             name="festival",
             align=1,        /* 文本水平对齐方式。0、(近端)左对齐  1、居中  2、(远端)右对齐 */
             valign=1,       /* 文本垂直对齐方式。0、(近端)顶对齐  1、居中  2、(远端)底对齐 */
             text="",  /* 正常状态下文本 */
             font={name="宋体",point=10,color=0x88000000},            /* 正常状态下字体 */
         }
         {
             type="text",  /* 类型:text */
             rectf={x=1;y=5;width=-1;height=-1},  /*  文本范围。负数表示距离项目右边的距离。 */
             name="day",
             cur=32649,   /* 鼠标指针,_IDC_ 开头的常量。 */
             align=1,        /* 文本水平对齐方式。0、(近端)左对齐  1、居中  2、(远端)右对齐 */
             valign=1,       /* 文本垂直对齐方式。0、(近端)顶对齐  1、居中  2、(远端)底对齐 */
             smooth=true,    /* 使用平滑效果,抗锯齿 */
             text="",  /* 正常状态下文本 */
             font={name="Arial",point=30,color=0xFF555555},            /* 正常状态下字体 */
             hoverfont=null,       /* 鼠标划过元素时字体 */
             checkedfont=null,     /* 元素被选择时字体 */
             itemhoverfont=null,   /* 鼠标划过项目时字体 */
             itemselectedfont=null,/* 项目选中时字体 */
             disabledfont=null,    /* 项目禁用时字体 */
         }        
}
var c = godking.customPlus(winform.plus,itemModel,,{
    itemWidth=80,     /*项目最小宽度,为0时根据colnum自动计算,所以不能与colnum同时=0*/
    itemHeight=80,    /*项目最小高度,为0时根据rownum自动计算,所以不能与rownum同时=0*/
    autoSizeWidth=false,    /*为true则自动将项目总宽度拉伸填满plus宽度,每个项目宽度不小于itemWidth*/
    autoSizeHeight=false,    /*为true则自动将项目总高度拉伸填满plus高度,每个项目高度不小于itemHeight*/
    rownum=0,     /*项目行数,为0时根据itemHeight自动计算,所以不能与itemHeight同时=0*/
    colnum=7,     /*项目列数,为0时根据itemWidth自动计算,所以不能与itemWidth同时=0*/
    padLeft=10,    /*plus左边空白距离*/
    padTop=50,    /*plus顶边空白距离*/
    padRight=10,    /*plus右边空白距离*/
    padBottom=10, /*plus底边空白距离*/
    autoFit=true,     /*是否自动调整plus组件宽度或高度(其中之一),保证能刚好显示全部行或列*/
                    /*当 itemHeight>0 且 colnum>0 且 rownum=0 时,自动调整plus高度,以能显示全部行*/
                    /*当 itemWidth>0 且 rownum>0 且 colnum=0 时,自动调整plus宽度,以能显示全部列*/
    vertical=false, /*是否将项目设置为竖向排列,行滚动方向设置为横向*/
    bkcolor=0xFFFFFFFFFF, /*背景颜色*/
    bkimg="https://img.tukuppt.com/bg_grid/00/14/08/Z4rmvf5vYk.jpg%21/fh/350", /*背景图像*/
    bkimgmode=0, /*背景图平铺模式。0:拉伸填满;1:左上角;2:居中*/
    singleCheck=0,/*元素check单选模式。0:多选;1:每个项目内单选;2:整个列表单选*/
})
c.hide();
var tm = ..time.now();
c.onDrawPageBegin = function(paint){
    paint = toPaint(paint); /*绑定paint对象的智能提示,方便输入后续代码。发布时可屏蔽此行。*/
    paint.textAntiAlias=false;
    for(i=1;7;1){
        var color,fillcolor = 0xFF000000,0x531490B3;
        if i==1 or i==7 { color=0xFFFFFFFF; fillcolor=0xFFB31469 };
        var rectf = ::RECTF((i-1)*80+12,10/*y1*/,76/*x2*/,36);
        paint.fillRoundRectF(rectf,8/*圆角半径*/,fillcolor);
        rectf.y = rectf.y+2;
        paint.drawTextF(rectf,"星期"++({"日","一","二","三","四","五","六"})[i],::LOGFONT(name="宋体";h=16;color=color;brush=null),0,1,1)
    }
}
c.onDrawItemBegin = function(paint){
    paint = toPaint(paint); /*绑定paint对象的智能提示,方便输入后续代码。发布时可屏蔽此行。*/
    paint.drawTextF(0,50,c.plus.width,c.plus.height,tostring(tm.month),::LOGFONT(name="Arial";h=350;color=0x88555555),0,1,1)
}
import godking.lunar
var lu = godking.lunar()
var m = lu.SolarMonth.fromYm(tm.year, tm.month)
var days = lu.toTable(m.getDays());
var list = {};
var week = days[1].getWeek();
for(i=1;week;1){
    ..table.push(list,{hide=true})
}
for(i=1;#days;1){
    var day = tostring(days[i].getDay());
    var lunar = days[i].getLunar();
    var festival = string.join(lu.toTable(lunar.getFestivals())," ")
    if !#festival {
        festival = string.join(lu.toTable(days[i].getFestivals())," ")
        if !#festival {
             festival = string.join(lu.toTable(days[i].getOtherFestivals())," ")
        } 
    }
    if #festival festival=..string.left(festival,5,true)
    lunar = ..string.split(lunar.toString(),"<年>")[2];
    if days[i].getSalaryRate()>1 {
        ..table.push(list,{day=day,festival=festival,lunar=lunar,xiu="休",xiukuang={color=0xFF550000;fillcolor=0xFFFFFFFF}});
    } else {
        ..table.push(list,{day=day,festival=festival,lunar=lunar});
    }
}
c.itemList = list;
c.selectedIndex = week + tm.day;
c.show();
win.loopMessage();

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/729221.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

WDG看门狗

一、WDG简介 1、WDG&#xff08;Watchdog&#xff09;看门狗 &#xff08;1&#xff09;看门狗可以监控程序的运行状态&#xff0c;当程序因为设计漏洞、硬件故障、电磁干扰等原因&#xff0c;出现卡死或跑飞现象时&#xff0c;看门狗能及时复位程序&#xff0c;避免程序陷入…

URLDNS利用链

利用链分析在我的Github主页 Java反序列化学习 下面写下POC思路 利用点HashMap的readObject private void readObject(java.io.ObjectInputStream s)throws IOException, ClassNotFoundException {// Read in the threshold (ignored), loadfactor, and any hidden stuffs.de…

JAVAWeb---- 数据库的简单了解

目录 1.什么是数据库 2.什么是数据库管理系统 3.什么是SQL 4.什么是关系型数据库 1.什么是数据库 用来存储和管理数据的“仓库”&#xff0c;简称DB(Database)&#xff1b; 2.什么是数据库管理系统 对数据库的一切操作都是在数据库管理系统进行的&#xff0c;比如MySQL&a…

Ollama深度探索:AI大模型本地部署的全面教程

目录 引言一、Ollama概述1、定义与定位2、核心功能3、技术优势4、应用场景 二、安装与配置1、系统要求2、安装方法3、配置指南4、启动Ollama服务 四、快速开始1、启动Ollama2、部署运行模型3、REEST API 五、自定义模型1、定制化的必要性2、使用Modelfile定制模型3、参数调整4、…

【数据结构与算法】树的存储,森林 详解

树的几种存贮结构(双亲表示法、孩子表示法、孩子兄弟表示法)的优缺点&#xff0c;各自适应的运算。 双亲表示法&#xff1a; 优点&#xff1a;方便查找双亲及其祖先结点缺点&#xff1a; 查找孩子和兄弟结点比较费事未表示出结点之间的先后次序 适应的运算&#xff1a;查找节点…

iOS封装FrameWork

我们是整个项目封装给客户app用&#xff0c;项目里面有资源文件&#xff1a;xib和图片文件。有第三方&#xff0c;也有.a文件和第三方给我们的frameWork。下面记录下大体遇到的问题及遇到的冲突解决办法。 第一部分&#xff1a;封装frameWork 1.首先准备好&#xff0c;要封装的…

无线领夹麦克风哪款好,领夹麦克风哪个品牌好,多款麦克风推荐

​科技发展让无线领夹麦克风成为现代演讲、演出和采访不可或缺的工具。这种小巧便携的设备让我们摆脱线缆束缚&#xff0c;自由移动同时保持声音清晰稳定。无线领夹麦克风怎么选呢&#xff1f;接下来&#xff0c;我们介绍几款市面上综合表现相当不错的无线领夹麦克风给大家来参…

几十块就能“开盒”,还能查祖上三代?

近期&#xff0c;网络上突然开始掀起一阵“人肉开盒”风波。明星、博主、素人无一幸免。 隐匿在此般恶劣行径背后的幕后黑手们无视法律、充满戾气。他们才不管你是什么人&#xff0c;只要有哪里让他们不愉快&#xff0c;那么不好意思&#xff0c;马上“开”你没商量。 这个“…

ubuntu下同时安装和使用不同版本的库 librealsense

apt 安装的最新版本在/usr 源码安装的旧版本在/usr/local set(realsense2_DIR /usr/local/) find_package(realsense2 2.50.0 REQUIRED) message( "\n\n ${realsense2_INCLUDE_DIR} ${realsense2_VERSION} RealSense SDK 2.0 is FINDINGING, please install it from…

Thinkphp5内核流浪猫流浪狗宠物领养平台H5源码

Thinkphp5内核流浪猫流浪狗宠物领养平台H5源码 可封装APP&#xff0c;适合做猫狗宠物类的发信息发布&#xff0c;当然懂的修改一下&#xff0c;做其他信息发布也是可以的。 Thinkphp5内核流浪猫流浪狗宠物领养平台H5源码

WPF 深入理解六、ControlTemplate控件模板

ControlTemplate 定义 控件模板用于来定义控件的外观、样式&#xff0c;还可通过控件模板的触发器(ControlTemplate.Triggers)修改控件的行为、响应动画等。 对与WPF当中,每个控件都是无外观的,这意味着我们可以完全自定义其可视元素的外观,但是不能修改其内部的行为&#xf…

【MySQL系列】MySQL 字符集的演变与选择

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

HUSKY:一个优化大语言模型多步推理的新代理框架

推理被高度认可为生成人工智能的下一个前沿领域。通过推理&#xff0c;我们可以将任务分解为更小的子集并单独解决这些子集。例如以前的论文&#xff1a;思维链、思维树、思维骨架和反射&#xff0c;都是最近解决LLM推理能力的一些技术。此外推理还涉及一些外围功能&#xff0c…

Rust高性能日志库tklog0.0.8—支持mod设置参数

tklog是rust高性能结构化日志库&#xff0c;支持同步日志&#xff0c;异步日志&#xff0c;支持自定义日志的输出格式&#xff0c;支持按时间&#xff0c;按文件大小分割日志文件&#xff0c;支持日志文件压缩备份&#xff0c;支持官方日志库标准API&#xff0c;支持mod独立参数…

每日一题——力扣104. 二叉树的最大深度(举一反三+思想解读+逐步优化)四千字好文

一个认为一切根源都是“自己不够强”的INTJ 个人主页&#xff1a;用哲学编程-CSDN博客专栏&#xff1a;每日一题——举一反三Python编程学习Python内置函数 目录 我的写法 代码功能 代码结构 时间复杂度分析 空间复杂度分析 总结 我要更强 优化方法&#xff1a;迭代&…

20240620在飞凌OK3588-C的LINUX系统启动的时候拉高3个GPIO口141-111-120【方法二】

20240620在飞凌OK3588-C的LINUX系统启动的时候拉高3个GPIO口141-111-120【方法二】 2024/6/20 9:05 缘起&#xff1a;在凌OK3588-C的LINUX R4系统启动的时候&#xff0c;需要拉高GPIO4_B5、GPIO3_B7和GPIO3_D0。 cat sys/kernel/debug/gpio cat /sys/kernel/debug/pinctrl/pin…

搞IT需不需要考个软考中级?

如果你是在事业单位、银行、国企等体制内工作&#xff0c;建议考虑参加软考。通过软考评职称后&#xff0c;可以获得加薪和晋升的机会&#xff0c;而且晋升时也会更看重你的职称等级。我就是通过软考评定了中级职称&#xff0c;薪水涨了500元。 评职称并不仅仅是拿到证书就行&…

【自动驾驶】ROS小车系统、运动底盘的运动学分析和串口通信控制

文章目录 小车组成轮式运动底盘的组成轮式运动底盘的分类轮式机器人的控制方式感知传感器ROS决策主控ROS介绍ROS的坐标系ROS的单位机器人电气连接变压模块运动底盘的电气连接ROS主控与传感器的电气连接ROS主控和STM32控制器两种控制器的功能运动底盘基本组成电池电机控制器与驱…

【计算机网络体系结构】计算机网络体系结构实验-www服务器配置管理实验

一、实验内容 www服务器配置管理&#xff0c; wireshark数据包分析 二、实验目的 1. 了解WWW服务的体系结构与工作原理&#xff0c;掌握利用Microsoft的IIS实现WWW服务的基本配置&#xff0c;掌握WEB站点的管理 2. 利用Wireshark抓取http数据包进行分析。运行软件Wireshark…

【ARMv8/v9 GIC 系列 4 -- GIC 中断分类 SGI | PPI | SPI 及中断检测流程】

文章目录 GIC 中断分类SGI&#xff08;Software Generated Interrupts&#xff09;PPI&#xff08;Per-Processor Interrupts&#xff09;SPI&#xff08;Shared Peripheral Interrupts&#xff09; 中断检测流程物理中断生命周期SPI 中断检测流程PPI 和SGI中断检测流程LPI中断…