UI控件使用说明
文章目录
- 一、控件的公共属性
- 二、常用控件的私有属性
- 三、控件的显示与隐藏
一、控件的公共属性
struct element {u32 highlight: 1; //高亮标志u32 state: 3; //内核记录控件的状态u32 ref: 5; //内核计数值u32 prj: 3; //工程序号u32 hide_action: 1; //HIDE_WITH_REDRAW,HIDE_WITHOUT_REDRAW,u32 css_num : 2; //CSS的数量u32 page: 8; //页面序号u32 prior: 9; //优先级序号,大的在上层int id; //控件idstruct element *parent; //指向父控件的指针struct list_head sibling; //兄弟控件链表头struct list_head child; //子控件链表头 struct element *focus; //焦点控件elementstruct element_css css; //css属性struct draw_context *dc; //dc,platform层使用const struct element_event_handler *handler;//库注册的handerint group; //特效使用
};
struct element_css {u8 align: 2; //对齐方式u8 invisible: 1; //是否隐藏u8 z_order: 5; //子元素排列int left; //相对于父控件的左边界坐标int top; //相对于父控件的上边界坐标int width; //相对与父控件的宽度int height; //相对于父控件的高度u32 background_color: 24; //纯色背景颜色u32 alpha: 8; //window/layer/layout背景透明度int background_image: 24; //背景图片idint image_quadrant: 8; //象限,23指针使用struct css_border border; //边框struct css_rotate rotate; //旋转属性struct css_ratio ratio; //缩放
};
控件element均放置在控件句柄的第一个元素,即element与控件句柄指向同一地址,因此在确定控件类型的情况下,可以做转换
可以通过struct element *ui_core_get_element_by_id(u32 id)获取,养成判空好习惯
二、常用控件的私有属性
LAYOUT
struct layout {struct element elm; //公共属性u8 hide: 1; //是否隐藏u8 inited: 1; //是否被加载u8 release: 6;
u8 page;
//lua使用u8 movable; // 移动标志u8 star_menu; // 满天星标志struct list_head *icon_root; // 满天星icon的listint lcd_w; // 用于移动计算int lcd_h; // 用于移动计算struct element_luascript_t *lua;struct layout *layout; const struct layout_info *info; //存储的结构const struct element_event_handler *handler; //应用层注册的句柄
};
布局是UI设计中最常用的容器
控件存放于布局之中
同一页面可以拥有多个布局,子布局之间可以进行切换(show/hide)
涉及到组合控件的情况,一般是以布局为整体进行操作(案例:抽屉列表)
PIC
struct ui_pic {struct element elm; //公共属性char source[8]; //数据源(id不唯一或不固定时使用)u8 index; //图片索引u8 page; //u8 play_mode; //播放模式:不播放、循环、单次u16 play_interval; //播放间隔msvoid *timer; //timer_idstruct element_luascript_t *lua; const struct ui_pic_info *info; //图片infoconst struct element_event_handler *handler; //应用层注册的句柄
};
struct ui_pic_info {struct ui_ctrl_info_head head;char source[8];u8 highlight;u16 cent_x;u16 cent_y;u8 play_mode;u16 play_interval;struct ui_image_list *normal_img; //非高亮图片链表struct ui_image_list *highlight_img; //高亮图片链表struct element_event_action *action;
}
struct ui_image_list {u16 num; //图片数量u16 image[0]; //图片资源id
};
显示单张图片:背景图、图片列表
显示多张图片:图片列表切换索引
切换索引的接口有如下两个:
int ui_pic_show_image_by_id(int id, int index);
int ui_pic_set_image_index(struct ui_pic *pic, int index);
id的接口是自带刷新的,常用于onkey、ontouch中
句柄接口是不带刷新的,常用于onchange事件、控件集中刷新(大面积、多控件、短时间)
一般通过切换图片索引、缩放、旋转实现需要的效果
旋转和缩放不能同时使用
缩放:比例为0.125~8,图片最大尺寸240*240
旋转:图片的旋转中心需位于图片内
TEXT\TIME\NUMBER(文本类)
struct ui_text {struct element elm; //公共属性struct ui_text_attrs attrs; //文本类公共属性char source[8]; //数据源u16 timer; //刷新定时器u16 _str[UI_TEXT_LIST_MAX_NUM]; //文本列表信息char _format[7]; //格式”strpic””text””ascii”u8 str_num; //文本列表数量u8 index; //文本列表索引u8 page; struct element_luascript_t *lua;const struct ui_text_info *info; //文本存储
const struct element_event_handler *handler; //应用层注册的句柄
};
struct ui_text_attrs {const char *str; //文本数组*生命周期长于控件显示周期const char *format; //类型int color; //文本颜色565u16 strlen; //str长度u16 offset; //偏移距离,用于滚动u8 encode: 2; //编码u8 endian: 1; //大小端u8 flags: 5; //滚动/多行等u16 displen; //文本长度const char *mulstr; //多国语言混合的数组*生命周期长于控件显示周期u16 mulstr_len; //混合长度
u16 default_code; //默认字符自定义功能(字符显示不了时,用什么符号代替)u8 x_interval; //文本水平间距
};
struct ui_time {struct element_text text; //文本型元素公共属性char source[8]; //数据源u16 year: 12; //年u16 month: 4; //月u8 day; //日u8 hour; //时u8 min; //分u8 sec; //秒u8 css_num; //css数量u8 auto_cnt; //自动计数u8 page; u32 css[2]; //css地址int color; //文本颜色int hi_color; //高亮文本颜色u16 buf[20]; //存放显示内容buffer(因此time控件不存在buffer生命周期的问题)void *timer; //定时器idstruct element_luascript_t *lua;const struct ui_time_info *info;const struct element_event_handler *handler;//应用层注册的句柄
};
struct ui_number {struct element_text text;char source[8];u16 number[2];u16 buf[20]; //存放显示数字int color;int hi_color;u8 css_num;u8 page;u8 nums: 6; //number个数u8 type: 2; //数字型or文本型u32 css[2];u8 *num_str; //指向传入文本型的字符串,因此需要考虑生命周期u8 *temp_str;u16 temp_str_len;struct element_luascript_t *lua;const struct ui_number_info *info;const struct element_event_handler *handler;//应用层注册的句柄
};
struct element_text {struct element elm; //公共属性char *str; //显示字符const char *format; //字符格式void *priv; //elementint color; //颜色值u8 x_interval; //文本间隔const struct element_event_handler *handler;//应用层注册的句柄
};
如在onchange中修改文本的值,要在show_probe中进行,在show/show_post修改需要等下一次刷新才起作用
文本包括四类显示:字库、多国语言、多国语言拼接、数字&符号图片
GRID
struct ui_grid {struct element elm; //公共属性char hi_index; //高亮项索引char touch_index; //触摸项索引char cur_dindex; //动态高亮项索引char onfocus; //列表焦点标志,用于响应touch事件u8 page_mode; //跟手滑动和按页滚动标志u8 slide_direction; //滑动方向u8 col_num; //列数u8 row_num; //行数u8 show_row; //显示行数u8 show_col; //显示列数u8 avail_item_num; //有效项数u8 pix_scroll; //触摸标志u8 ctrl_num; //传入的有效项数u8 page; //所在页面u8 child_init; //子控件初始化标志u8 rotate; //垂直列表转为旋转列表标志luaint x_interval; //水平项间距(相对数值)int y_interval; //垂直项间距(相对数值)int max_show_left; //ui库使用计算变量int max_show_top; //ui库使用计算变量int min_show_left; //ui库使用计算变量int min_show_top; //ui库使用计算变量int max_left; //ui库使用计算变量int max_top; //ui库使用计算变量int min_left; //ui库使用计算变量
int min_top; //ui库使用计算变量int energy_timer; //惯性定时器idfloat energy_vx0; //惯性速度,由tp给出float energy_vy0; //惯性速度,由tp给出float energy_a; //惯性负加速度,固定参数float energy_val; //惯性系数,用于调整惯性大小u8 energy_xdir; //惯性方向u8 energy_ydir; //惯性方向u8 energy_status; //惯性状态u8 energy_tslide; //惯性滑动时间间隔,固定参数u8 flick_endflag; //回弹结束标志u8 flick_status; //回弹状态u16 flick_cmpsize; //回弹项sizeint flick_timer; //回弹定时器idint flick_distance; //回弹距离,中间变量int flick_overdis; //回弹目标距离int flick_resdis; //回弹步进float flick_v0; //回弹初速u16 center_target_line; //居中目标中线位置:0-10000u16 center_next_threshold; //居中滑入下一项阈值:0-10000u8 center_item_offset; //居中项偏移阈值:0-(avail_item_num-1)u8 center_index_mode; //居中项:高亮项or触摸项u8 auto_center_enable; //居中模式使能u8 flick_close; //回弹关闭struct element_luascript_t *lua;struct scroll_area *area; //滑动区域,需要传入全局变量or局部静态struct layout *item; //列表子项属性struct layout_info *item_info; //列表子项infostruct ui_grid_dynamic *dynamic; //动态列表信息struct position pos; //触摸点位struct draw_context dc; //不使用struct element_touch_event *e; //不适用const struct ui_grid_info *info; //列表infoconst struct element_event_handler *handler; //应用层注册的句柄u8 key_jump; //key_jump:静态垂直或者水平列表才能使用,使用按键滚动u8 hi_move; //滑动highlight_ajust使能void (*highlight_ajust)(struct ui_grid *grid, int direction);void (*end_once)(struct ui_grid *grid);
};struct ui_grid_dynamic {int dhi_index; //动态高亮项int dcol_num; //动态列数量int drow_num; //动态行数量int min_row_index; //最小行索引int max_row_index; //最大行索引int min_col_index; //最小列索引int max_col_index; //最大列索引int min_show_row_index;int max_show_row_index;int min_show_col_index;int max_show_col_index;int grid_xval; int grid_yval; u8 grid_col_num;u8 grid_row_num;u8 grid_show_row;u8 grid_show_col;int base_index_once; //first_show第一行索引int init_step_once; //first_show初始化步进
};
Slide
struct ui_slider {struct element elm; //公共属性struct element child_elm[SLIDER_CHILD_NUM]; //左右图片和点的elmu8 step; //步进,用于编码器u8 move; //char persent; //百分比s16 left; //左边界s16 width; //宽度s16 min_value; //最小值,用于文本显示s16 max_value; //最大值,用于文本显示u16 text_color; //文本颜色565struct element_luascript_t *lua;const struct ui_slider_info *info;const struct slider_text_info *text_info;const struct element_event_handler *handler;//应用层注册的句柄
};
垂直滑动条与水平滑动条一致
Compass
struct ui_compass {struct element elm; //公共属性struct element child_elm[COMPASS_CHILD_NUM]; //子控件属性struct compass_css_info child_css[COMPASS_CHILD_NUM]; //子控件csschar source[8]; //数据源int bk_angle : 16; //背景盘角度int indicator_angle : 16; //指针角度int last_bk_angle : 16; //上一次背景盘角度int last_indicator_angle : 16; //上一次指针角度u8 updata; //更新标志u8 ctrl_num; //子控件数量void *timer; //刷新定时器idconst struct layout_info *info;const struct compass_pic_info *pic_info[COMPASS_CHILD_NUM];const struct element_event_handler *handler;//应用层注册的句柄const struct element_luascript_t *lua;
};struct compass_pic_info {struct ui_ctrl_info_head head;u16 cent_x; //旋转中心xu16 cent_y; //旋转中心ystruct ui_image_list *img;
};
表盘
struct ui_watch {struct element elm; //公共属性struct element child_elm[WATCH_CHILD_NUM]; //子控件属性struct watch_css_info child_css[WATCH_CHILD_NUM]; //子控件csschar source[8]; //数据源u8 hour; //时u8 min; //分u8 sec; //秒u8 last_hour; //上一次时u8 last_min; //上一次分 u8 last_sec; //上一次秒u8 updata; //更新标志u8 ctrl_num; //子控件数量u8 sec_cnt; //秒计数,用于匀速表盘计数u8 slow_sec; //匀速表盘使能void *timer; //timeridconst struct layout_info *info;const struct watch_pic_info *pic_info[WATCH_CHILD_NUM];const struct element_event_handler *handler;//应用层注册的句柄const struct element_luascript_t *lua;
};
struct watch_pic_info {struct ui_ctrl_info_head head;u16 cent_x; //旋转中心u16 cent_y; //旋转中心u16 dst_cent_x; //偏移距离u16 dst_cent_y; //偏移距离struct ui_image_list *img;
};struct ui_progress {struct element elm; //公共属性struct element child_elm[PROGRESS_CHILD_NUM]; //子控件属性char source[8]; //数据源u16 center_x; //圆环中心u16 center_y; //圆环中心u16 radius; //圆环半径u16 angle_begin; //起始角度u16 angle_end; //结束角度u8 ctrl_num; //控件数量char percent; //百分比u8 *mask; //不使用u16 mask_len; //不使用void *timer; //不使用const struct layout_info *info;const struct progress_highlight_info *pic_info[PROGRESS_CHILD_NUM];const struct element_event_handler *handler;//应用层注册的句柄const struct element_luascript_t *lua;
};
struct progress_highlight_info {struct ui_ctrl_info_head head;u16 center_x; //圆环中心u16 center_y; //圆环中心u16 radius_big; //外径u16 radius_small; //内径u32 color; //颜色565u16 angle_begin; //起始角度u16 angle_end; //结束角度struct ui_image_list *img;
};struct multiprogress_highlight_info {struct ui_ctrl_info_head head;u16 number;u16 center_x;u16 center_y;u16 radius0_big;u16 radius0_small;u32 color0;u16 radius1_big;u16 radius1_small;u32 color1;u16 radius2_big;u16 radius2_small;u32 color2;u16 angle_begin;u16 angle_end;struct ui_image_list *img;
};
三、控件的显示与隐藏
- 控件
线程同步接口(带刷新)
将页面id post到ui线程调用,先释放原有页面,再加载新页面
int ui_show_main(int id);
int ui_hide_main(int id);
非线程同步接口(带刷新)
需要在ui线程调用,不会主动释放原页面,可以用于多页面同时加载
int ui_show(int id);
int ui_hide(int id);
非线程同步接口(不带刷新)
控件需要在页面内
int ui_core_show(void *_elm, int init);
int ui_core_hide(void *_elm);
动态加载
一般是在init的时候调用,跟随刷新
需要注意父子关系,不能将layout加载到window下面
int create_control_by_id(char *tabfile, int page_id, int id, int parent_id);
int delete_control_by_id(int id);
相关文章:
UI控件使用说明
文章目录 一、控件的公共属性二、常用控件的私有属性三、控件的显示与隐藏 一、控件的公共属性 struct element {u32 highlight: 1; //高亮标志u32 state: 3; //内核记录控件的状态u32 ref: 5; //内核计数值u32 prj: 3; //工程序号u32 hide_action: 1; //HIDE_WI…...
Java面向对象.抽象
目录 1.object类 一、Object类的地位 所有类的父类 2.抽象类 一、定义与声明 抽象类的概念 二、抽象方法 抽象方法的特点 三、继承抽象类 子类的责任 3.抽象方法基础理念 1.抽象方法的特征 2.将abstaract加在方法的前面,该类无法被继承 1.首先࿰…...
uniapp在小程序连接webScoket实现余额支付
webScoket文档:uni.connectSocket(OBJECT) | uni-app官网 /plugins/event.js const Dep function() {this.Evens Object.create(null); } class Event {constructor({dep new Dep()} {}) {if (dep.constructor Object && Object.keys(dep).length 0…...
【C语言】连接陷阱探秘(4):检查外部类型
目录 一、外部类型概述 1.1. 外部类型的重要性 1.2. 外部类型在C语言中的使用 1.3. 注意事项 二、常见的外部类型陷阱 2.1. 结构体和联合体的大小不匹配 2.1.1. 示例代码 2.1.2. 正确的做法 2.2. 枚举类型的值不匹配 2.3. 函数签名不一致 2.3.1. 函数签名不一致的问…...
Hexo博客在多个设备同步
title: ‘Hexo博客在多个设备同步’ date: 2024-11-28 19:08:08 categories: Hexo教程 cover: /img/cover4.jpg description: ‘实现Hexo博客在不同的设备上都可以使用和上传’ 博客链接1 :Hexo搭建博客的多终端同步问题 博客链接2:Hexo博客多台电脑设备同步管理 …...
Pytorch使用手册-使用 TensorBoard 可视化模型、数据和训练过程(专题十)
在 60 分钟速成课程中,我们展示了如何加载数据,将其传递通过我们定义的作为 nn.Module 子类的模型,训练该模型并在测试数据上进行测试。为了查看发生了什么,我们在模型训练过程中打印一些统计信息,以便了解训练是否进展顺利。然而,我们可以做得更好:PyTorch 与 TensorBo…...
Linux网络——NAT/代理服务器
一.NAT技术 1.NAT IP转换 之前我们讨论了, IPv4 协议中, IP 地址数量不充足的问题,NAT 技术就是当前解决 IP 地址不够用的主要手段, 是路由器的一个重要功能。 NAT 能够将私有 IP 对外通信时转为全局 IP. 也就是一种将私有 IP 和全局IP 相互转化的技术方法: 很…...
使用ffmpeg命令实现视频文件间隔提取帧图片
将视频按每隔五秒从视频中提取一张图片 使用 ffmpeg 工具,通过设置 -vf(视频过滤器)和 -vsync 选项 命令格式 ffmpeg -i input_video.mp4 -vf "fps1/5" output_%03d.png 解释: -i input_video.mp4:指定输…...
Elasticsearch实战:从搜索到数据分析的全面应用指南
Elasticsearch(简称 ES)是一个强大的分布式搜索引擎和分析工具,它能够快速处理海量数据,并提供全文检索、结构化搜索、数据分析等功能。在现代系统中,它不仅是搜索的核心组件,也是数据分析的有力工具。 本文…...
【CSS in Depth 2 精译_064】10.3 CSS 中的容器查询相对单位 + 10.4 CSS 容器样式查询 + 10.5 本章小结
当前内容所在位置(可进入专栏查看其他译好的章节内容) 【第十章 CSS 容器查询】 ✔️ 10.1 容器查询的一个简单示例 10.1.1 容器尺寸查询的用法 10.2 深入理解容器 10.2.1 容器的类型10.2.2 容器的名称10.2.3 容器与模块化 CSS 10.3 与容器相关的单位 ✔…...
滑动窗口讲解(c基础)
滑动窗口的基本概念 滑动窗口是一种高效处理线性数据结构(如数组、字符串)的算法技巧。它就像是一个可移动的 “框”,框住数据结构中的一部分元素,通过不断地移动这个 “框”(即滑动窗口),对框内…...
Flink的双流join理解
如何保证Flink双流Join准确性和及时性、除了窗口join还存在哪些实现方式、究竟如何回答才能完全打动面试官呢。。你将在文中找到答案。 1 引子 1.1 数据库SQL中的JOIN 我们先来看看数据库SQL中的JOIN操作。如下所示的订单查询SQL,通过将订单表的id和订单详情表ord…...
springboot341+vue校园求职招聘系统设计和实现pf(论文+源码)_kaic
毕 业 设 计(论 文) 校园求职招聘系统设计与实现 摘 要 传统办法管理信息首先需要花费的时间比较多,其次数据出错率比较高,而且对错误的数据进行更改也比较困难,最后,检索数据费事费力。因此,…...
dmdba用户资源限制ulimit -a 部分配置未生效
dmdba用户资源限制ulimit -a 部分配置未生效 1 环境介绍2 数据库实例日志报错2.1 mpp01 实例日志报错2.2 mpp02 实例日志报错 3 mpp02 服务器资源限制情况4 关闭SELinux 问题解决4.1 临时关闭 SELinux4.2 永久关闭 SELinux 5 达梦数据库学习使用列表 1 环境介绍 Cpu x86 Os Ce…...
kafka-clients之CommonClientConfigs
CommonClientConfigs是kafka-clients库中一个包含Kafka通用配置项的类,它定义了Kafka Producer、Consumer、Admin等客户端共享的配置。以下是其中的主要配置项及其含义: 1. bootstrap.servers 类型:List<String>说明:Kafk…...
支持多种快充协议的取电芯片,支持最大功率140W
前言 在快节奏的现代生活中,人们对于小家电的依赖日益加深,而随之而来的充电问题也日益凸显。传统的充电方式往往受限于电压、电流的限制,难以满足不同设备对电力的多样化需求。而PD快充协议的诞生,则为这一难题提供了全新的解决…...
《Vue零基础入门教程》第十四课:列表渲染
往期内容 《Vue零基础入门教程》第六课:基本选项 《Vue零基础入门教程》第八课:模板语法 《Vue零基础入门教程》第九课:插值语法细节 《Vue零基础入门教程》第十课:属性绑定指令 《Vue零基础入门教程》第十一课:事…...
Linux系统 进程
Linux系统 进程 进程私有地址空间用户模式和内核模式上下文切换 进程控制进程控制函数获取进程 ID创建和终止进程回收子进程让进程休眠加载并运行程序 系统调用错误处理利用fork和execve运行程序 进程 异常是允许操作系统内核提供进程(process)概念的基…...
文件具有selinux标签如下 system_u:object_r:httpd_sys_content:s0:c3 解释一下每段的含义?
文件具有selinux标签如下 system_u:object_r:httpd_sys_content:s0:c3 解释一下每段的含义? SELinux标签通常由四个部分组成,分别用于定义文件的上下文、访问控制策略以及系统安全性。针对你提供的标签:system_u:object_r:httpd_sys_content:s0:c3&…...
对偶分解算法详解及其Python实现
目录 对偶分解算法详解及其实现第一部分:对偶分解算法概述1.1 什么是对偶分解算法1.2 应用场景1.3 算法优点第二部分:对偶分解算法的数学推导2.1 问题形式2.2 对偶问题2.3 算法框架第三部分:对偶分解算法的Python实现第四部分:案例1——支持向量机中的对偶分解(策略模式)…...
Linux之web服务器
一、web 服务器简介 1.www 简介 www 是全球信息广播的意思,上网即使用 www 来查询信息,它结合多种多媒体,通过超链接以 Internet 传递信息。上网时,网站提供数据,客户端用浏览器解析数据。 www 所用协议为 HTTP&…...
十二、Pod的扩缩容-手动/自动-HPA
在实际生产系统中,经常会遇到某个服务需要扩容的场景,也可能会遇到由于资源紧张或者工作负载降低而需要减少服务实例数量的场景。此时可以利用Deployment/RC的Scale机制来完成这些工作。 Kubernetes对Pod的扩缩容操作提供了手动和自动两种模式,手动模式通过运行kubectl sca…...
RabbitMQ高级特性:TTL、死信队列与延迟队列
RabbitMQ高级特性:TTL、死信队列与延迟队列 RabbitMQ作为一款开源的消息代理软件,广泛应用于分布式系统中,用于实现消息的异步传递和系统的解耦。其强大的高级特性,包括TTL(Time-To-Live)、死信队列&#…...
UPLOAD LABS | UPLOAD LABS 靶场初识
关注这个靶场的其它相关笔记:UPLOAD LABS —— 靶场笔记合集-CSDN博客 0x01:UPLOAD LABS 靶场简介 UPLOAD LABS 靶场是一个专门用于学习文件上传漏洞攻击和防御的靶场。它提供了一系列文件上传漏洞的实验环境,用于帮助用户了解文件上传漏洞的…...
杰发科技AC7803——不同晶振频率时钟的配置
计算公式 PLL_POSDIV [2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62] PLL_PREDIV_1 1 2 4 USE_XTAL 24M SYSCLK_FREQ 64M SYSCLK_DIVIDER 1 VCO USE_XTAL*…...
cocos creator 触摸事件官方案例
cocos creator 触摸事件官方案例 1、官方示例; 2、对官方示例的总结: (1)介绍了鼠标事件和触摸事件的类型,这里主要关注的是在移动端和PC端都可以触发的触摸事件。 (2)节点事件的派发&#…...
浅谈人工智能之基于容器云进行图生视频大模型搭建
浅谈人工智能之基于容器云进行图生视频大模型搭建 根据之前我们所讲过的内容: 文生图 文生视频 我们继续讲解图生视频大模型搭建。 引言 随着深度学习技术的不断发展,图生视频(image-to-video)大模型成为了计算机视觉和自然语言…...
【爬虫框架:feapder,管理系统 feaplat】
github:https://github.com/Boris-code/feapder 爬虫管理系统 feaplat:http://feapder.com/#/feapder_platform/feaplat 爬虫在线工具库 :http://www.spidertools.cn :https://www.kgtools.cn/1、feapder 简介 对于学习 Python…...
txt地图格式处理
1、txt地图格式 [属性描述] 坐标系2000国家大地坐标系 几度分带3 投影类型高斯克吕格 计量单位米 带号38 精度0.001 转换参数,,,,,, [地块坐标] 5,475.888,1,测试地块1,面,J50G077061,公路用地,地下, J1,1,113.22222222222222,23.129111721551794 J2,1,113.2722314…...
【0346】Postgres内核 Startup Process 通过 signal 与 postmaster 交互实现 (5)
1. Startup Process 进程 postmaster 初始化过程中, 在进入 ServerLoop() 函数之前,会先通过调用 StartChildProcess() 函数来开启辅助进程,这些进程的目的主要用来完成数据库的 XLOG 相关处理。 如: 核实 pg_wal 和 pg_wal/archive_status 文件是否存在Postgres先前是否发…...
蜜罐攻击网络渗透工具推荐
推荐一批侧重蜜罐攻击的网络渗透测试工具: Glastopf – 主要用于监测网络安全事件的工具。以蜜罐形式可以模拟数千个漏洞,以收集针对Web应用程序的攻击数据。 Kippo – 中交互性的SSH 蜜罐攻击器,用于记录暴力破解攻击。 Kojoney – 一种低…...
26页PDF | 数据中台能力框架及评估体系解读(限免下载)
一、前言 这份报告详细解读了数据中台的发展历程、核心概念、能力框架及成熟度评估体系。它从阿里巴巴的“大中台,小前台”战略出发,探讨了数据中台如何通过整合企业内部的数据资源和能力,加速业务迭代、降低成本,并推动业务增长…...
AI开发 - GPT之魂 用Python 演示chatGPT的自注意力机制 - 机器学习
自注意力机制(Self-Attention)就是让模型在处理每个词时,学会“关注重点”,而不是平均地对每个词一视同仁。这种机制让 GPT 能更聪明地理解句子的上下文和语义之间的关系。 自注意力机制是 GPT 的核心,它帮助模型在理解…...
Vue CLI 提供了哪些功能
前言 Vue CLI 为开发者提供了一整套强大且灵活的工具链,极大地提升了开发效率和代码质量。无论是创建项目、管理依赖、配置环境,还是进行测试和优化,Vue CLI 都能为你提供全面的支持。本文将深入探讨 Vue CLI 所提供的各种功能,并…...
网络爬虫的原理
网络爬虫就是根据网络,把上面的相关信息比如源代码以字符串的形式爬取下来,并且涉及到网站下的一系列网站。 DNS域名解析服务器可以通过ping域名/ip来测试是否连通,dns可以记录网站访问次数,从而评估出网站的使用权重,…...
02_Django路由Router
二、Django路由Router 在实际开发过程中,一个Django 项目会包含很多的 app ,这时候如果我们只在主路由里进行配置就会显得杂乱无章,所以通常会在每个 app 里,创建各自的urls.py路由模块,然后从根路由出发,…...
计算属性和监听属性
Vue.js 中的计算属性与监听属性 Vue.js 是一个流行的前端框架,它提供了许多强大的特性来简化 Web 应用的开发。其中,计算属性(Computed Properties)和监听属性(Watchers)是两个非常重要的概念,…...
JAVA项目-------医院挂号系统
1,项目目的 1、科室管理:新增科室,删除科室(如果有医生在,则不能删除该科室),修改科室。 2、医生管理:录入医生信息,以及科室信息。修改医生信息(主要是修改…...
《Learn Three.js》学习(3)光源
前言: WebGL本身不支持光源,不使用three.js,则需使用着色程序来模拟光源。 学习大纲: Three.js中的光源 特定光源的使用时机 如何调整和配置所有光源的行为 如何创建镜头光晕 光源表 基础光源:THRER.AmbientLight、THERE.Point…...
npm error code ETIMEDOUT 简单排查
今天突然没到一个仓库的ius问题。改完之后想发布npm包 出现下面的场景 npm addUser npm adduser npm notice Log in on https://registry.npmjs.org/ Create your account at: https://www.npmjs.com/login?next/login/cli/12596c8b-ba4a-4763-8a97-215087d380c4 Press ENTER…...
Flink高可用配置(HA)
从Flink架构中我们可以看到,JobManager这个组件非常重要,是中心协调器,负责任务调度和资源管理。默认情况下,每个Flink集群只有一个JobManager实例。这会产生单点故障(SPOF):如果JobManager崩溃,则无法提交新程序,正在运行的程序也会失败。通过JobManager的高可用性,…...
VITE+VUE3+TS环境搭建
前言(与搭建项目无关): 可以安装一个node管理工具,比如nvm,这样可以顺畅的切换vue2和vue3项目,以免出现项目跑不起来的窘境。我使用的nvm,当前node 22.11.0 目录 搭建项目 添加状态管理库&…...
windows上安装使用kubectl访问容器内服务
以云服务商提供的容器服务为例: 登录云服务,选择容器服务选择集群管理,选择集群概览点击kubeconfig按钮,进入说明页面官网下载kubectl 1、到 Kubernetes 版本变更 页面,查看 kubernetes 已发行版本,确认需要安装的 kubectl 版本。 2、kubectl 版本和集群的 kubernetes 版…...
软件工程第14章小测
单项选择题 第1题 定义类A和B Class A{ public B methodA(){...} } Class B{ public void methodB(){...} } 下面代码中的耦合是()。 Class Client{ public static void main(String args){ A oa new A(); a.methodA().methodB(); } } …...
HarmonyOS4+NEXT星河版入门与项目实战(23)------组件转场动画
文章目录 1、控件图解2、案例实现1、代码实现2、代码解释3、实现效果4、总结1、控件图解 这里我们用一张完整的图来汇整 组件转场动画的用法格式、属性和事件,如下所示: 2、案例实现 这里我们对上一节小鱼游戏进行改造,让小鱼在游戏开始的时候增加一个转场动画,让小鱼自…...
word转pdf
在线xml格式化: 在线 XML 格式化 | 菜鸟工具 Java使用FreeMarker自动生成Word文档(带图片和表单) Java使用FreeMarker自动生成Word文档(带图片和表单)_freemarker word模板-CSDN博客 将word转pdf JAVA 使用aspose…...
@bytemd/vue掘金markdown插件预览内容有误
vue项目使用bytemd/vue 来预览字符串格式的markdown内容,总会多出如图的一段代码, 请问有没有大佬知道为什么? 很急,求教!!!!!...
产品知识培训全面指南
在当今竞争激烈的市场环境中,产品知识已成为企业成功的关键因素。特别是对于软件即服务(SaaS)公司而言,产品的复杂性要求团队对产品有深入的了解,以便有效地与潜在客户沟通并促成交易。本指南将深入探讨产品知识培训的…...
VSCode修改资源管理器文件目录树缩进(VSCode目录结构、目录缩进、文件目录外观)workbench.tree.indent
文章目录 方法点击左下角小齿轮点击设置点击工作台,点击外观,找到Tree: Indent设置目录树的缩进 方法 点击左下角小齿轮 点击设置 点击工作台,点击外观,找到Tree: Indent设置目录树的缩进 "workbench.tree.indent"默认…...
周鸿祎再次“创业”,盯上百度
周鸿祎特地拍了部短剧来推广的新产品,终于上线了。 11月27日晚间,360正式发布多模态内容创作引擎“纳米搜索”。 作为当前AI应用最红的赛道之一,AI搜索已经有腾讯、秘塔、商汤、抖音等公司入局。传统搜索老大百度也在发力。竞争不妨碍有搜索…...