大象笔记

知者行之始,行者知之成

使用 conda 管理 pytorch 的 python 开发环境

更新推荐:为了避免律师函警告,从 miniconda 切换到 miniforge 目录 [X] 查看已有环境 [X] 新建一个开发环境 [X] 切换开发环境 [X] 开发环境配置文件导出 [X] 到一个新开发机,由配置文件重建一个开发环境 [X] 使用国内的镜像源加速下载 查看已有环境 conda 安装好后,可以通过指令 conda info -e 或者 conda env list 查看已有环境情况。 env list 这个命令相对容易记忆。 (base) PS D:\work> conda info -e # conda environments: # base ...

阅读全文...

Android Studio 中使用 VIM 编辑模式 - IdeaVim 插件

在 Android Studio 里写代码非常的不适应,还是想能用上 VIM 的快捷键。 发现有一个非常成熟的 VIM 插件 IdeaVim: https://github.com/JetBrains/ideavim 不但 Android Studio 中可以使用,在 Idea 系列 IDE 中都可以使用。 安装 File - Settings - Plugins 搜索 IdeaVim 配置 安装插件后,重启 Android Studio 会看到右下角多了个 VIM 的图标。 点开可以: 启用/禁用 IdeaVim 插件 编辑配置文件 ideavimrc 配置默认快捷键 go to de ...

阅读全文...

微信小程序 BLE 蓝牙数据包粘包

今天发现 Android 手机微信小程序中收到的 BLE 蓝牙数据包出现了粘包的情况。 确认校验失败的数据包实际长度 校验失败的数据包: ab0002a20800a8ba ab0002a21a02b8ba ab0002a2 ab00022638100cba ab000628380bb80b b80bb8a5 ab000212380820ba ab00021338052cba ab000214 长度均为 20 个字节(MTU 的默认大小,也是最小值); 02 包对应的长度为 8 个字节。 单个包,以 ab 开始,ba 结束。可以看到明显的两个/甚至三个包的粘包现象。 校验成功的 ab000 ...

阅读全文...

如何判断当前电脑上的 pytorch 是否支持 CUDA

CUDA CUDA 是 Nvidia GPU 提供的软件 API。 查看显卡型号 Windows 11,我的电脑 - 右键属性 - 设备管理器 - 显示适配器 例如,我这个 Dell 台式机是: NVIDIA GeForce GT 710 Intel(R) UHD Graphics 630 而我的笔记本则是 AMD 的显卡。 这些 GPU 都不支持 CUDA,GT 710 则是因为太老,也不支持。 查看 pytorch 是否支持 CUDA > python Python 3.10.9 Type "help", "copyright", &quo ...

阅读全文...

Git 项目中移除 submodule,并将其代码并入当前项目管理

之前由于要引用一个 github 上的三方的 SDK,所以作为 git submodule 引入了进来: git submodule add https://github.com/STMicroelectronics/BlueSTSDK_Android.git BlueSTSDK 但是,实际开发时,发现这个 SDK 的代码有问题,所以做了部分本地修改。 而这些修改又不方便提交给官方。 由于是 submodule,修改也没法提交到当前项目的 git 管理中。也就无法同步到其他的开发机上,很是不方便。 所以,需求移除 submodule,并将其代码并入当前项目管理。 具体操作 git rm -- ...

阅读全文...

SNMP - 简单网络管理协议

SNMP(Simple Network Management Protocol), 即,简单网络管理协议。用于网络设备的远程管理。 为不同厂商的各式网络设备提供了统一的远程管理接口。 使用场景 监控。例如,与 Nagios, Cacti 集成,对服务器系统指标(CPU,内存,硬盘容量等)进行监控。也可以对单片机、一个进程,网络设备路由器、交换机等进行监控。国内外大量的网络设备(如路由器、交换机)都支持SNMP协议,并作为一项标配。 设备的远程初始化配置 设备上的传感器数据异常上报 版本 目前有三个版本:v1, v2, v3 兼容性:v3 版本对 v1,v2 兼容。 系统组成 NMS(Ne ...

阅读全文...

TR069 - 用户终端设备广域网管理协议

TR069 协议 TR069 (Technical Report 069), 即 CPE 用户终端设备广域网管理协议(CPE WAN Management Protocol, CWMP)。用于实现终端的自动配置。 CPE / ACS TR069 里有两个重要的名词: 用户终端设备(Customer Premise Equipment,CPE)。在宽带接入中,CPE 指的就是家庭网关。any equipment used by customers which can be managed by the ACS (set-top boxes, VoIP-phones but also modem ...

阅读全文...

Android SharedPreferences 存储 key / value 数据

Android App 中想实现保存默认的蓝牙设备 Mac 地址,本质上就是一个 key / value 键值对的存储及读取过程。 可以使用 SharedPreferences 来实现。 SharedPreferences 指向了一个存储键值对的 XML 文件,并提供了读写接口。 共享级别 activity 级:getPreferences(), 即单个 activity 内共享的存储 app 级:即全局共享。getSharedPreferences(), 但是这个要加上两个参数,第一个是文件名,第二个是模式,用 MODE_PRIVATE 即可(本app内可见) app 级:还有一个是 ge ...

阅读全文...

Android Service & Foreground Service

在调试一段 Android 蓝牙连接的代码时,不太明白为何建立蓝牙连接在 Foreground Service 中执行。 Service 与 Activity 的区别 Service 没有 UI 界面,类似一个后台服务 Activity 需要关联一个 UI 界面 Activity is a GUI and service is non-gui thread which can run in the background. service 可以在后台运行,适合执行耗时操作。 A Service is an application component that can perform l ...

阅读全文...

Android 前台服务配置问题导致蓝牙对讲功能异常

基于 STM32 WB 蓝牙模块的开源 SDK 实现蓝牙对讲功能时,总是无法建立连接。 而使用官方 APP ST BLE Sensor 或者我自己不用 SDK 实现的 App 都可以正常建立连接。 最终发现是前台服务,及 Android 12 的兼容性问题引起的。做了下修改就可以正常运行了。 连接异常 我的状态异常: Lost connection with the node BVL-WB1 而官方 APP 是在正常连接中显示: 连接到 对应的翻译文件: <string name="progressDialogConnTitle">Connecting. ...

阅读全文...

Android 子目录引起的 Cannot resolve symbol 'R'

今天在 Ctrl C / Ctrl V 代码时,发现一个再常见不过的 Resouce 引用代码报错。 出错代码: inflate(getContext(), R.layout.view_connection_status, this); 错误信息: Cannot resolve symbol 'R' R 还需要引入么? 测试了一下,发现确实,如果是在 sub package 中使用 R,需要 import root package 的 R。 package com.sunzhongwei.someapp.newpackage; import com.sunzhongwei.someap ...

阅读全文...

Android 12 扫描蓝牙设备 Need android.permission.BLUETOOTH_SCAN permission

报错信息 在 Android 12 系统上真机执行 BLE 蓝牙设备扫描时,APP 直接崩溃,Logcat 中报错: java.lang.SecurityException: Need android.permission.BLUETOOTH_SCAN permission for android.content.AttributionSource@9e60bb10: GattService registerScanner ... at com.st.BlueSTSDK.Manager.startBleScan_post21(Manager.java:283) at com.st.BlueS ...

阅读全文...