关于Minecraft NBT的一些记录

偶然看到电脑里存的一份记录着Minecraft NBT用法的文本文档,干脆拿过来当文章了(恼 都有些啥? 在一个大的json里套了一堆东西,如果写TypeScript表示那更好,但可惜不想写(懒 大部分都是从minecraft fandom找的 附魔 Enchantments 1 2 3 4 5 6 { Enchantments:[ {id:"魔咒ID",lvl:#魔咒等级}, {id:"魔咒ID",lvl:#魔咒等级} ] } 类型: List 字段定义: 字段名 类型 意义 id String 魔咒的id lvl uint8_t(雾) 魔咒的等级 名称显示 display 1 2 3 4 5 6 7 { display:{ Name:"物品名称的JSON文本", color:"颜色代码", Lore:["第一行","第二行"] } } 类型: Object 字段定义: 字段名 类型 意义 Name String 物品名称的JSON文本 Color String with int 颜色代码 Lore List of String 物品描述 属性 AttributeModifiers 1 2 3 4 5 6 { AttributeModifiers:[ {AttributeName:"#",Name:"#",Amount:#,Operation:#,UUID:[I;#,#,#,#],Slot:#}, {AttributeName:"#",Name:"#",Amount:#,Operation:#,UUID:[I;#,#,#,#],Slot:#} ] } 类型: List...

July 25, 2022 · 2 分钟 · AyalaKaguya

FreeRTOS学习笔记 - API规范记录

❗ 注意 文章内容较长且多为字典用途,请结合上面的目录使用。 Ayala看b站UP主孤独的二进制的FreeRTOS教学视频有感,打算对视频内容进行一些总结和归纳,方便以后的使用,遂有此篇。 为什么要使用RTOS (Real-Time Operating System,RTOS)即实时操作系统,通常应用于嵌入式等对实时性要求较高的产品中,它会按照排序运行、管理系统资源,并为开发应用程序提供一致的基础。 实时操作系统与一般的操作系统相比,最大的特色就是“实时性”,如果有一个任务需要执行,实时操作系统会马上(在较短时间内)执行该任务,不会有较长的延时。这种特性保证了各个任务的及时执行。 FreeRTOS与Arduino框架的区别 在ESP32平台上,Arduino是运行在RTOS上的一个任务(Task),分为设置代码setup()和基础循环loop(),其在RTOS中的表示大概是这样的: 1 2 3 4 5 6 7 8 9 10 11 void task_arduino(void* ptParam) { setup() for (;;) { loop() } } void app_main() { xTaskCreatePinnedToCore(task_arduino,"arduino",1024*128,NULL,1,NULL,1) // 以上一条代码不需要管 } 而一个标准的Arduino的程序看起来是这样的: 1 2 3 4 5 6 void setup() { ... } void loop() { ... } 使用Arduino-ESP32这个库会将上述代码代入前一个代码,所以即便你可能用的是ArduinoIDE,但是实际上仍会被翻译成ESP-IDF项目,所以你可以在你的Arduino-ESP32项目中使用FreeRTOS。 FreeRTOS有什么API需要注意 💬 引用: b站 孤独的二进制:有相当部分的内容来自于此 ESP32文档和FreeRTOS的文档翻译:函数原型、参数、返回值等的描述 可能还有一些没标注到的,请在评论区联系我。 创建、删除任务,任务绑定核心 xTaskCreate 创建任务 1 2 3 4 5 6 7 8 BaseType_t xTaskCreate( TaskFunction_t pvTaskCode, const char * const pcName, configSTACK_DEPTH_TYPE usStackDepth, void *pvParameters, UBaseType_t uxPriority, TaskHandle_t *pxCreatedTask ); 参数 功能 注意点 pvTaskCode 任务函数 传入一个函数指针,函数需要一个空类型指针作为参数 pcName 任务名 传入一个字符串 usStackDepth 任务栈大小 即内存空间,一般的写法为1024*n(n为任务需求的内存大小) pvParameters 任务参数 使用空类型指针,可以传结构体指针,只要前面加上(void *)进行强制类型转换,但是在任务内部仍需转换回来 uxPriority 任务优先级 一般是0-24,24为最高优先级,如果高优先级任务不block或者暂停,那么低优先级任务永不执行 pxCreatedTask 任务句柄 用于控制这个任务,比如删除、暂停、设置优先级等 返回值 意义 pdPass 表示任务已经创建成功 errCOULD_NOT_ALLOCATE_REQUIRED_MEMORY 表示无法创建任务,因为FreeRTOS没有足够的堆内存来分配任务数据结构和堆栈 xTaskCreatePinnedToCore 在指定核心上创建任务。...

July 22, 2022 · 6 分钟 · AyalaKaguya

Pytorch学习笔记 - 安装Anaconda&PyTorch

❗ 注意 这篇文章有部分尚未完成。 先看网址 PyTorch https://pytorch.org/ Anaconda https://www.anaconda.com/ PyCharm (可选) https://www.jetbrains.com/pycharm/ 本站不提供镜像 安装思路 Anaconda是一个Python发行版,使用Anaconda做环境分隔可以解决很多环境干扰问题(不搞base环境的话基本上没啥大问题),我们将在Anaconda创建一个虚拟环境,然后在这个虚拟环境上安装PyTorch,并测试这个PyTorch环境。 安装步骤 step 1 下载并安装Anaconda 打开Anaconda网站,并点击“Download”, 可能会下的有点慢,可以选择使用迅雷加速 下载完成后双击安装包安装 接下来一路Next->I Agree->Next->Next ▲ 应该没人用多用户吧(比如跑在服务器上 接下来这一步有两个选项,不够我在这里给个小建议,当然你们也可以根据实际情况自己选择: 当你电脑里没有Python:建议全选 当你电脑里有python,但版本号与选项2给出的版本不一致:建议全选 当你电脑里有Python,但版本号与选项2给出的版本一致:建议只选第一项 当然你可以都不选(建议电脑里面没有预先安装的Python),在后期自己添加环境变量(详见教程ep 1,请记住上一步的安装位置) 查看python版本号,在这里只看前两位: 1 python -V # Python 3.9.7 选好之后点击Install,然后就是Next->Next->Finish 接下来弹出一个PyCharm的广告,虽然我自己用的VS Code,不过PyCharm社区版免费,也挺好用的,何乐而不为呢? 接下来两个勾勾都取消然后就可以Finish啦。 step 2 创建并配置conda环境 当Anaconda被正确安装之后,首先打开你的命令行软件(CMD或者PowerShell),我们需要执行conda init命令来应用环境。 1 $ conda init 接下来我们创建一个名为torch的环境,使用Python3.9 1 $ conda create -n torch python=3.9 使用这条指令创建的环境将只包含一些基础且必须的包(比如pip等),如果你需要额外安装其他的东西(比如numpy或者jupyter等),你需要在命令的末尾添加anaconda,这里我们并不需要这么做。 在执行过程中可能需要联网下载一些文件,速度比较慢的话请耐心等待。 接着我们激活这个环境,当显示以下图片即意味着conda环境创建成功了 1 $ conda activate torch 常用conda指令见ep 3...

April 16, 2022 · 2 分钟 · AyalaKaguya