Tmen菜鸟进步营地
37
文章
6
分类
25
标签
首页
标签
分类
友链
搜索
A320起飞前准备
2023-05-272模拟飞行2.0w21分钟
所有描述都仅限模拟飞行。可能存在与真实飞行不相符的操作。请勿带入真实飞行中。 文中的飞机时MSFS默认的A320,存在部分功能的缺失,缺失的一般新飞都不会用到,暂先忽略。 这是自己当初在学习模飞时,根据视频教程总结的一篇简单的学习笔记,方便后续快速回忆。 进入驾驶舱 进入驾驶舱应该绕机做安全检查。(游戏中可忽略) 在设置飞机之前,需要做一些必要的检查,检查电门是否关闭,如果在接通电源时这些电门处于开启状态会造成一些伤害。 首先就是引擎的开关 Engine Master 1&2,白色的Engine Mode Select必须处于Normal位置,正确状态如下图所示 接下来是气象雷达,位于Engine Master的左边,正确位置如下所示 接下来是雨刷 检查完以上的电门后就可以接通电源 接电源先使用外部电源 按下电源之后飞机就开始上电,各个按钮都亮起来了,大致如下 上电大概等40S左右 进行自我测试 才能完成 在开启APU之前需要进行APU的防火报警测试,点TEST按钮会有报警声音,且上面的屏幕有显示APU FIRE,如下两图所示 APU报警测试完成后,可以启动APU 先点击APU上面的那个,大概等3S后 点击APU starter 然后可以看下主屏幕显示 FLAP OPEN: 代表APU进气口已经打开 EGT: 代表APU的小引擎已经开始燃烧 N:代表APU的转速 (APU在机尾部分,启动后可以切出去听下声音喔) 在启动完APU后,我们可以把外部电源给断开,单靠APU来发电 这是原来的外部电源状态 断开后的状态是 断开外部电源后,我们开启APU BLEED(BLEED 是空气源的意思) 开启APU BLEDD之后 ,可以切换到APU Page查看信息 然后开启APU后,我们可以调节下空调的温度 在完成上述基本设置之后,我们后续设置顶板 AIRBUS 320顺序从左到右,从下到上,如下图所示 那么接下来,我们就按照这样的顺序,从左到右,从下到上开始设置 ......
A320
MSFS
接口型函数
2023-05-289后端6.0k10分钟
前言 什么是接口型函数?接口型函数指的是用函数实现接口,但是这种方式适用于只有一个函数的接口。 这能够让使用者在调用的时候就会非常简便,既可以传自定义的函数也能够传实现了该接口的结构体作为参数。 举例 在学习geeCache中能够看到其中有接口型函数的案例: //定义一个函数类型 F,并且实现接口 A 的方法,然后在这个方法中调用自己。 //这是 Go 语言中将其他函数(参数返回值定义与 F 一致)转换为接口 A 的常用技巧。 // Getter 定义接口 Getter 和 回调函数 Get(key string)([]byte, error),在缓存不命中时调用 //参数是 key,返回值是 []byte type Getter interface { Get(key string) ([]byte, error) } // GetterFunc 定义函数类型 GetterFunc。 type GetterFunc func(key string) ([]byte, error) // Get GetterFunc实现 ......
golang
A320驾驶舱基础介绍
2023-05-2733模拟飞行6451分钟
A320驾驶舱介绍 视野面板 头顶面板 中央基座 飞行控制装置(FCU)介绍 电子飞行仪器系统(EFIS) 介绍 ...
MSFS
A320
Java-RMI
2023-05-276后端7.0k12分钟
简介 RMI (Java Remote Method Invocation) 是指Java 远程方法调用,是一种允许一个 JVM 上的 object 调用另一个 JVM 上 object 方法的机制。 在RMI中对象是通过序列化方式进行编码传输的。(基于序列化和反序列化就可能存在反序列化漏洞了) RMI的基础是接口,RMI构架基于一个重要的原理:定义接口和定义接口的具体实现是分开的。 官方文档中的示例 示例 定义接口 public interface Hello extends Remote { String sayHello() throws RemoteException; } Java的RMI规定此接口必须派生自java.rmi.Remote,并在每个方法声明抛出RemoteException。 编写实现类 客户端的请求最终会通过这个实现类进行处理并返回结果。 public class HelloService implements Hello{ public String sayHello() throws RemoteException { return "Hello, World"; } ......
java
A320-飞机概述
2023-05-274模拟飞行2.0k3分钟
1 机身尺寸 A320CEO构型: A320NEO构型: 2 航程 A320 Family range in Nm: 3 发动机选型 4 最大重量 5 舱门高度 6 转弯半径 7 驾驶舱应急设备 8 非增压区 9 天线 通讯天线 导航天线 转自 3系飞行员 ...
MSFS
A320
serverless-无服务
2023-05-193技术7.0k13分钟
Serverless 架构即“无服务器”架构,它是一种全新的架构方式,是云计算时代一种革命性的架构模式。与云计算、容器和人工智能一样,Serverless 是这两年IT行业的一个热门词汇,它在各种技术文章和论坛上都有很高的曝光度。 目前行业可能更多处在容器 Docker+Kubernetes, 利用 IaaS、PaaS和SaaS 来快速搭建部署应用 什么是Serverless Serverless 圈内俗称为“无服务器架构”,Serverless 不是具体的一个编程框架、类库或者工具。简单来说,Serverless 是一种软件系统架构思想和方法,它的核心思想是用户无须关注支撑应用服务运行的底层主机。这种架构的思想和方法将对未来软件应用的设计、开发和运营产生深远的影响。 所谓“无服务器”,并不是说基于 Serverless 架构的软件应用不需要服务器就可以运行,其指的是用户无须关心软件应用运行涉及的底层服务器的状态、资源(比如 CPU、内存、磁盘及网络)及数量。软件应用正常运行所需要的计算资源由底层的云计算平台动态提供。 Serverless的技术实现 Serverless 的核心思想是让作为计算资源的服务器不再成为用户所关注的一种资源。其目的是提高应用交付的效率,降低应用运营的工作量和成本。以 Serverless 的思想作为基础实现的各种框架、工具及平台,是各种 Serverless 的实现(Implementation)。Serverless不是一个简单的工具或框架。用户不可能简单地通过实施某个产品或工具就能实现 Serverless 的落地。但是,要实现 Serverless 架构的落地,需要一些实实在在的工具和框架作为有力的技术支撑和基础。 随着 Serverless 的日益流行,这几年业界已经出现了多种平台和工具帮助用户进行 Serverless 架构的转型和落地。目前市场上比较流行的 Serverless 工具、框架和平台 有: AWS Lambda,最早被大众所认可的 Serverless 实现。 Azure Functions,来自微软公有云的 Serverless 实现。 OpenWhisk,Apache 社区的开源 Serverless 框架。 Kubeless,基于 Kubernetes ......
技术前瞻
五一安吉小游
2023-05-256生活2.0k2分钟
毕业后的第一个五一,也是第一个规划出游的假期呀。感受人潮汹涌 五一将至,与好友商量至舟山两三日游,后观天气有雨且人多船少,担心上岛回不来,遂转至内陆游。 上南京一日游,烟花三月下扬州,后至苏州,最后返沪。一切计划都很完善,就差车票与酒店了。可惜,车票没了,酒店太贵。又,转周边游。安吉-就在周边,驾车三四小时即到,冒着人多的风险,就决定去了。 第一天-大竹海&井空里大峡谷 29日早晨5点驱车直奔大竹海,到时已经十点,碰巧天气有点小雨,人不是很多,游玩还是比较尽兴的。爬了山,看了竹海,也挑战了玻璃桥。 游玩一圈结束后,才中午12点。遂决定驱车前往井空里大峡谷。免门票,就是进去的路因为下雨有些泥泞。徒步深入,真的能够里面的环境所吸引。有山有水,水很清澈,空气很清爽。有人在里面野炊。顺着小路一路向前,逐渐深入,到了无人区,转身返回。 驱车行至酒店,放下包裹,出门体验了第一次的密室逃脱,说实话,自己真的不太适合,毫无头绪思路… 第二天-云上草原 相比第一天,云上草原的人就很多了,完全是云上人海。到景点时快十点了。排队入门已经足足有了8个S弯。(没有上海CP29那么恐怖)。一个半小时后入检票口后坐大巴车至索道处,乘坐索道上了云上草原。里面的风景也很不错的,另一番风味。唯一遗憾的是,人太多了,里面的项目一个没玩上,前面排队也耗费了很多精力,都没有什么精力爬山了,只能拍拍照,坐一坐。 第二天就只玩了一个景点,下午5点半驱车返回上海,大约9点到上海。 回来路上还看到在不到600米的距离上,发生了三起追尾事故。出门在外,小心驾驶。 这一次的自驾游体验还是非常不错的,没有遇到想象中的人潮,也感受了一波自然风景,完美! ...
生活点滴
跳跃表-redis
2023-05-193后端4.0k7分钟
前言 跳跃表(skiplist)是一种有序数据结构,它通过在每个节点中维持多个指向其他节点的指针,从而达到快速访问节点的目的。 跳跃表支持平均O(logN)、最坏O(N)复杂度的节点查找,还可以通过顺序性操作来批量处理节点。 Redis使用跳跃表作为有序集合键(zset)的底层实现之一,如果一个有序集合包含的元素数量比较多,又或者有序集合中元素的成员(member)是比较长的字符串时,Redis就会使用跳跃表来作为有序集合键的底层实现。 Redis只在两个地方用到了跳跃表,一个是实现有序集合键,另一个是在集群节点中用作内部数据结构,除此之外,跳跃表在Redis里面没有其他用途。 跳跃表 Redis的跳跃表由zskiplistNode和zskiplist两个结构定义,其中zskiplistNode结构用于表示跳跃表节点,而zskiplist结构则用于保存跳跃表节点的相关信息,比如节点的数量,以及指向表头节点和表尾节点的指针等等。 跳跃表示例: header:表头节点 tail:表尾节点 level:记录跳跃表内,层数最大的节点的层数,不包含头节点 length:记录跳跃表长度,不包含头节点 跳跃表节点结构 typedef struct zskiplistNode { //层 struct zskiplistLevel { //前进指针 struct zskiplistNode *forward; //跨度 unsigned int span; } level[]; //后退指针 struct zskiplistNode *backward; //分值 double score; //成员对象 robj *obj; } zskiplistNode; 层:跳跃表节点的level数组可以包含多个元素,每个元素都包含一个指向其他节点的指针,可以通过这些层来加快访问其他节点的速度,一般来说,层的数量越多,访问其他节点的速度就越快。 每次创建一个新跳跃表节点的时候,程序都根据幂次定律(power law,越大的数出现的概率越小)随机生成一个介于1和32之间的值作为level数组的大小,这个大小就是层的“高度”。 前进指针: 每个层都有一个指向表尾方向的前进指针,用于从表头向表尾方向访问节点。 跨度:用于记录两个节点之间的距离。 指向NULL的所有前进指针的跨度都为0,因为它们没有连向任何节点。 ......
redis
整数集合-redis
2023-04-180后端3.0k4分钟
前言 整数集合(intset)是集合键(set)的底层实现之一,当一个集合只包含整数值元素,并且这个集合的元素数量不多时,Redis就会使用整数集合作为集合键的底层实现。 整数集合 整数集合(intset)是Redis用于保存整数值的集合抽象数据结构,它可以保存类型为int16_t、int32_t或者int64_t的整数值,并且保证集合中不会出现重复元素且有序。 整数集合结构 typedef struct intset { //编码方式 uint32_t encoding; //集合包含的元素数量 uint32_t length; //保存元素的数组 int8_t contents[]; } intset; contents数组存放整数集合中的每个元素,且每个元素不重复。 length记录了元素的个数。 encoding:整数集合的真正的类型。 encoding类型: INTSET_ENC_INT16:contents就是一个int16_t类型的数组,数组里的每个项都是一个int16_t类型的整数值。 INTSET_ENC_INT32:contents就是一个int32_t类型的数组,数组里的每个项都是一个int32_t类型的整数值。 INTSET_ENC_INT64:contents就是一个int64_t类型的数组,数组里的每个项都是一个int64_t类型的整数值。 整数集合示例: 上图的整数集合,包含5个元素,且每个元素的类型是INT16。 整数集合升级 每当我们要将一个新元素添加到整数集合里面,并且新元素的类型比整数集合现有所有元素的类型都要长时,整数集合需要先进行升级(upgrade),然后才能将新元素添加到整数集合里面。 整数集合升级的步骤: 根据新加入的元素类型扩展现有数组的空间大小,并分配新空间; 将原有的所有元素转换成新元素的类型,并将转换后的元素放到正确的位置上且保持数组的有序性; 将新元素添加到底层数组里面。 因为每次向整数集合添加新元素都可能会引起升级,而每次升级都需要对底层数组中已有的所有元素进行类型转换,所以向整数集合添加新元素的时间复杂度为O(N)。 升级的好处: 提升整数集合的灵活性 整数集合可以通过自动升级底层数组来适应新元素,所以我们可以随意地将int16_t、int32_t或者int64_t类型的整数添加到集合中,而不必担心出现类型错误,这种做法非常灵活 节约内存 只有在需要int64的时候才会升级,如果整数都是int16的,则不会使用int64, 进而节约了内存。如果都默认int64,那么会造成一定的浪费。 整数集合不支持降级,一旦升级之后就会保持升级之后的状态。 总结 整数集合是集合键的底层实现之一。 整数集合的底层实现为数组,这个数组以有序、无重复的方式保存集合元素,在有需要时,程序会根据新添加元素的类型,改变这个数组的类型。 升级操作为整数集合带来了操作上的灵活性,并且尽可能地节约了内存。 整数集合只支持升级操作,不支持降级操作。 ...
redis
压缩列表-redis
2023-04-180后端3.0k5分钟
前言 压缩列表(ziplist)是列表键(list)和哈希键(hash)的底层实现之一。当一个列表键只包含少量列表项,并且每个列表项要么就是小整数值,要么就是长度比较短的字符串,那么Redis就会使用压缩列表来做列表键的底层实现。 压缩列表 压缩列表是Redis为了节约内存而开发的,是由一系列特殊编码的连续内存块组成的顺序型(sequential)数据结构。一个压缩列表可以包含任意多个节点(entry),每个节点可以保存一个字节数组或者一个整数值。 压缩列表结构 属性 类型 长度 作用 zlbytes uint32_t 4字节 压缩列表占用的内存字节数:在对压缩列表进行内存重分配, 或者计算 zlend 的位置时使用。 zltail uint32_t 4字节 压缩列表表尾节点的偏移量:用来倒序遍历压缩列表。 zllen uint16_t 2字节 记录了压缩列表包含的节点数量: 当这个属性的值小于 UINT16_MAX (65535)时, 这个属性的值就是压缩列表包含节点的数量; 当这个值等于 UINT16_MAX 时, 节点的真实数量需要遍历整个压缩列表才能计算得出。 entry[] 列表节点 none 压缩列表节点,保存内容,长度由类型决定 zlend uint8_t 1字节 特殊值0xFF(255),用于标记压缩列表的末端 压缩列表节点构成 previous_entry_length: 以字节为单位属性,记录压缩列表中前一个节点的长度。 previous_entry_length属性的长度可以是1字节或者5字节: 如果前一节点的长度小于254字节,那么previous_entry_length属性的长度为1字节:前一节点的长度就保存在这一个字节里面。 如果前一节点的长度大于等于254字节,那么previous_entry_length属性的长度为5字节:其中属性的第一字节会被设置为0xFE(十进制值254),而之后的四个字节则用于保存前一节点的长度。 encoding: 记录节点的content属性所保存数据的类型以及长度 一字节、两字节或者五字节长,值的最高位为00、01或者10的是字节数组编码:这种编码表示节点的content属性保存着字节数组,数组的长度由编码除去最高两位之后的其他位记录; 一字节长,值的最高位以11开头的是整数编码:这种编码表示节点的content属性保存着整数值,整数值的类型和长度由编码除去最高两位之后的其他位记录; ......
redis
Copyright© 2021-2023 Tmenの博客 邮箱
本站点由 腾讯云 提供云服务
vue3 & vite & element-plus 搭建
Tmen菜鸟进步营地
37
文章
6
分类
25
标签
首页
标签
分类
友链
搜索