(域格) 移芯平台SDK 实现 VSIM 初始化与 TCP 长连接休眠
📅 2026/7/7 6:07:44
👁️ 次浏览
1、开发环境准备这里直接参考域格资料中心2、VSIM 初始化模块VSIM虚拟 SIM 卡初始化是网络连接的前提需要完成 AON 电源配置、SIM 检测引脚初始化和 VSIM 状态同步。域格sdk内部集成了vsim卡得库得只需要调api就能注册vsim。static void vsim_init_once(void) { yopen_aon_power_on(); yopen_gpio_init(SIM_DET_PORT, GPIO_INPUT, FORCE_PULL_UP, LVL_HIGH); vsim_init(); while (vsim_status_progress() ! 100) { yopen_rtos_task_sleep_ms(1000); } }关键 API 说明API功能说明yopen_aon_power_on()开启 AON 电源域AONAlways On域保证休眠期间关键外设供电yopen_gpio_init()初始化 SIM 检测引脚使用 GPI_1 引脚上拉输入模式vsim_init()初始化 VSIM 模块启动虚拟 SIM 卡服务vsim_status_progress()获取初始化进度返回 0-100100 表示完成注意事项我这里用得优克联VSIM虚拟卡sdk需要对应编译项目修改cmake 文件。有对应三个vsim得配置# vsim 配置#set(VSIM_NAME VSIM_TGT)#set(VSIM_NAME VSIM_YSM)set(VSIM_NAME VSIM_UC)3、TCP 长连接模块TCP 连接建立包括域名解析、Socket 创建、绑定本地端口和连接服务器四个步骤。static int tcp_connect(void) { int ret, socket_fd -1; struct sockaddr_in local4, server_ipv4; struct addrinfo *addr NULL; ret lwip_getaddrinfowithcid(TEST_SOCKET_SERVER, NULL, NULL, addr, 1); if (!addr) return -1; socket_fd socket(AF_INET, SOCK_STREAM, IPPROTO_IP); if (socket_fd 0) goto fail; memset(local4, 0, sizeof(local4)); local4.sin_family AF_INET; local4.sin_port 1000; bind(socket_fd, (struct sockaddr *)local4, sizeof(local4)); struct sockaddr_in *sin_res (struct sockaddr_in *)addr-ai_addr; memset(server_ipv4, 0, sizeof(server_ipv4)); server_ipv4.sin_family addr-ai_family; server_ipv4.sin_port htons(TEST_SOCKET_TCP_PORT); server_ipv4.sin_addr sin_res-sin_addr; ret connect(socket_fd, (struct sockaddr *)server_ipv4, sizeof(server_ipv4)); if (ret 0) goto fail; freeaddrinfo(addr); return socket_fd; fail: if (addr) freeaddrinfo(addr); if (socket_fd 0) close(socket_fd); return -1; }关键 API 说明API功能说明lwip_getaddrinfowithcid()域名解析参数 cid1 指定使用 PS 域进行解析socket()创建 SocketAF_INET SOCK_STREAM IPPROTO_IPbind()绑定本地端口绑定端口 1000便于服务端识别connect()连接服务器连接到指定 IP 和端口3、 休眠配置模块休眠配置是实现低功耗的核心需要按照 禁止休眠 → 设置深度 → 允许休眠 的顺序操作yopen_autosleep_enable(YOPEN_NOT_ALLOW_SLEEP); yopen_set_sleep_depth(YOPEN_SLP_SLP1_STATE); yopen_rtos_task_sleep_ms(5000); yopen_autosleep_enable(YOPEN_ALLOW_SLEEP);4、完整代码适用于物联网低功耗场景模块在休眠状态下保持 TCP 长连接可被网络数据或按键唤醒。void sleep_key_demo_thread(void *arg) { int socket_fd; yopen_nw_reg_status_info_s nw_status; vsim_init_once(); do { yopen_nw_get_reg_status(0, nw_status); yopen_rtos_task_sleep_ms(1000); } while (!(nw_status.data_reg.state YOPEN_NW_REG_STATE_HOME_NETWORK || nw_status.data_reg.state YOPEN_NW_REG_STATE_ROAMING)); socket_fd tcp_connect(); if (socket_fd 0) { yopen_rtos_task_delete(NULL); return; } yopen_autosleep_enable(YOPEN_NOT_ALLOW_SLEEP); yopen_set_sleep_depth(YOPEN_SLP_SLP1_STATE); yopen_rtos_task_sleep_ms(5000); yopen_autosleep_enable(YOPEN_ALLOW_SLEEP); while (1) { yopen_rtos_task_sleep_ms(60000); } close(socket_fd); yopen_rtos_task_delete(NULL); } application_init(sleep_key_demo_thread, SLEEP_KEY, 12, 4, NULL);
终极免费指南:Forza Mods AIO让你的地平线4/5游戏体验全面升级 【免费下载链接】Forza-Mods-AIO Free and open-source FH4 & FH5 mod tool 项目地址: https://gitcode.com/gh_mirrors/fo/Forza-Mods-AIO
想要在《极限竞速:地平线》中拥有完全…
📅 2026/7/7 6:07:43
FilterReader 的UML关系图,如下所示: FilterReader.class的源码,如下所示:
package java.io;/*** Abstract class for reading filtered character streams.* The abstract class <code>FilterReader</code> itself*…
📅 2026/7/7 6:07:43
在现代智能制造与工业物联网的设备部署中,水分、湿气与粉尘可以说是电气系统天然的“隐形杀手”。为了确保动力传输与信号控制的坚固稳定,选择具备高防尘防水性能的工业防水连接器成为了行业共识。然而,面对市面上五花八门的防护等级…
📅 2026/7/7 6:07:43
1. 项目概述:为什么邮件加密与数字签名在今天依然至关重要你可能觉得,在即时通讯和协同办公软件满天飞的今天,电子邮件已经是个“老古董”了。但恰恰相反,电子邮件依然是商务沟通、法律文件交换、求职应聘、甚至重要个人事务的官方…
📅 2026/7/7 8:20:04
如何快速掌握FF14智能钓鱼计时器:5个高效使用秘籍 【免费下载链接】Fishers-Intuition 渔人的直感,最终幻想14钓鱼计时器 项目地址: https://gitcode.com/gh_mirrors/fi/Fishers-Intuition
还在为《最终幻想14》中复杂的钓鱼计时而烦恼吗…
📅 2026/7/7 8:20:04
Allegro PCB封装管脚编号批量修改:3步解决BGA/QFN等复杂封装错位 在PCB设计过程中,封装管脚编号与实际物理引脚不匹配是硬件工程师经常遇到的棘手问题。特别是对于BGA、QFN等高密度封装,手动逐个修改不仅效率低下,还容易出错。本文…
📅 2026/7/7 8:20:04
PyTorch 2.0 CIFAR-10 模型优化:SGD vs Adam 对比与 67% 准确率瓶颈突破当我们在CIFAR-10数据集上训练卷积神经网络时,优化器的选择往往成为影响模型性能的关键因素。许多开发者在使用PyTorch进行图像分类任务时,都会面临一个常见困境&#x…
📅 2026/7/7 8:20:04
1. 项目概述:当页面沉默时,我们如何“听”到数据库的回响?在渗透测试或安全研究的过程中,最让人头疼的往往不是那些花里胡哨的防护机制,而是目标应用那副“沉默是金”的姿态。你提交一个单引号,页面正常&am…
📅 2026/7/7 8:20:04
我注意到输入内容中存在严重问题:项目标题提及的“GPT-5.5 Instant”并非OpenAI官方发布的产品,截至2024年7月,OpenAI从未公布或上线任何编号为“GPT-5.5”的模型,也未使用“Instant”作为ChatGPT正式版本命名;所有公开…
📅 2026/7/7 8:18:04
CentOS SSH连接故障排查:从基础检查到深度修复的完整指南引言当你尝试通过Xshell或其他SSH客户端连接CentOS服务器时,突然遭遇"Connection refused"或"Connection timed out"的错误提示,这种经历对任何运维人员或开发者来…
📅 2026/7/7 0:00:45
B站评论删除API逆向工程实战:关键参数解析与自动化操作指南1. 理解B站评论删除机制的核心逻辑在视频平台内容管理中,评论删除功能涉及复杂的权限验证和数据交互流程。B站的评论删除API采用了一套基于Web安全标准的防护机制,主要依赖三个关键参…
📅 2026/7/7 0:00:45
1. 项目概述:为什么Java安全是红蓝对抗的焦点在当前的网络安全攻防演练,也就是我们常说的红蓝对抗中,Java应用一直是双方交锋的核心战场。这不仅仅是因为Java在企业级应用、金融系统和大型互联网后台中无处不在,更因为其技术栈的复…
📅 2026/7/7 0:00:45
1. 项目背景与核心需求 在嵌入式系统开发中,快速精确的数据检索是一个常见但极具挑战性的需求。特别是在工业控制、医疗设备和物联网终端等场景下,系统往往需要在毫秒级时间内完成关键参数的读取和写入操作。传统基于Flash存储的方案存在擦写次数有限、操…
📅 2026/7/6 10:35:30
1. 工业电流环信号传输的基础认知在工业自动化领域,4-20mA电流环传输技术已经持续服役超过半个世纪。这种看似简单的信号传输方式之所以能经久不衰,核心在于其独特的抗干扰能力——电流信号在长距离传输时几乎不受线路电阻和电压波动的影响。我曾在化工厂…
📅 2026/7/6 6:10:21
最近在项目里尝试用 YOLO 做目标检测,从环境搭建到模型训练,再到推理部署,整个过程踩了不少坑。网上的资料虽然多,但要么版本老旧,要么步骤零散不成体系,对于刚入门的新手来说,很容易卡在某个环…
📅 2026/7/7 6:33:36
目录
第一步:选对模板,省心一半
第二步:打开扫码点餐功能
开启功能按钮
桌台管理与桌码生成
第三步:个性化设计,打造品牌感
调整点餐页面
设置点餐规则 你还在让顾客站着排队点餐吗?2025年ÿ…
📅 2026/7/6 6:10:28
在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…
📅 2026/7/6 6:10:26
FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE
你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…
📅 2026/7/7 4:32:18