Android SPRD 工模测试修改
- 设备有两颗led灯,工模测试需全亮
vendor/sprd/proprietories-source/factorytest/testitem/led.cpp@@ -13,6 +13,10 @@ typedef enum{#define LED_BLUE "/sys/class/leds/blue/brightness"#define LED_RED "/sys/class/leds/red/brightness"#define LED_GREEN "/sys/class/leds/green/brightness"
+//mh@start
+#define AW_LED_BLUE "/sys/class/leds/aw_blue/brightness"
+#define AW_LED_RED "/sys/class/leds/aw_red/brightness"
+#define AW_LED_GREEN "/sys/class/leds/aw_green/brightness"...+static void *aw_led_thread(void *)
+{
+ int pos = 3;
+ int loop = led_blue;
+ char *ledn = AW_LED_BLUE;
+ char *title;
+ UI_COLOR color = CL_BLUE;
+ usleep(500*1000);
+
+ while(1 == thread_run) {
+ switch(led_color(loop++%color_num)){
+ case led_blue:
+ ledn = AW_LED_BLUE;
+ color = CL_BLUE;
+ title = TEXT_LED_BLUE;
+ LOGD("get led name: %s! loop = %d!", ledn, loop);
+ break;
+ case led_red:
+ ledn = AW_LED_RED;
+ color = CL_RED;
+ title = TEXT_LED_RED;
+ LOGD("get led name: %s! loop = %d!", ledn, loop);
+ break;
+ case led_green:
+ ledn = AW_LED_GREEN;
+ color = CL_GREEN;
+ title = TEXT_LED_GREEN;
+ LOGD("get led name: %s! loop = %d!", ledn, loop);
+ break;
+ }
+ LedSetValue(ledn, 200);
+ ui_set_color(color);
+ ui_show_text(6, pos, title);
+ gr_flip();
+ usleep(500*1000);
+ LedSetValue(ledn, 0);
+ ui_clear_rows(6, 2);
+ gr_flip();
+ }
+
+ return NULL;
+}
int test_led_start(void){int ret;
@@ -95,6 +142,7 @@ int test_led_start(void)LOGD("mmitest start");thread_run=1;pthread_create(&thead, NULL, led_thread, NULL);
+ pthread_create(&thead, NULL, aw_led_thread, NULL);usleep(10*1000);ret = ui_handle_button(TEXT_PASS,NULL,TEXT_FAIL);thread_run=0;
- 添加按键
device/sprd/sharkle/sl8541e_1h10_go/rootdir/prodnv/PCBA.conf@@ -82,6 +82,9 @@ sensor Temperature Temperaturekey Power 116key VolumeDown 114key VolumeUp 115
-key Menu 580
-key Home 172
-key Back 158
+#mh@start
+#key Menu 580
+#key Home 172
+#key Back 158
+key PlayPause 164
+key F1 59
vendor/sprd/proprietories-source/factorytest/factorytest.h@@ -262,7 +262,9 @@ enum key_typeKEY_TYPE_HOME,KEY_TYPE_MENU,KEY_TYPE_BACK,
- KEY_TYPE_NUM
+ KEY_TYPE_NUM,
+ KEY_TYPE_PLAYPAUSE,
+ KEY_TYPE_F1
vendor/sprd/proprietories-source/factorytest/parse_conf.cpp@@ -128,6 +128,9 @@ int get_key_Num(char* s)if(!strcmp(s,"Menu")) return KEY_TYPE_MENU;if(!strcmp(s,"Home")) return KEY_TYPE_HOME;if(!strcmp(s,"Back")) return KEY_TYPE_BACK;
+ //mh@start
+ if(!strcmp(s,"PlayPause")) return KEY_TYPE_PLAYPAUSE;
+ if(!strcmp(s,"F1")) return KEY_TYPE_F1;return -1;}@@ -174,6 +177,13 @@ int parse_key_entries(char *buf)case KEY_TYPE_BACK:strncpy(key_info[key_cnt].key_shown,TEXT_KEY_BACK,strlen(TEXT_KEY_BACK));break;
+ //mh@20241214
+ case KEY_TYPE_PLAYPAUSE:
+ strncpy(key_info[key_cnt].key_shown,TEXT_KEY_PLAYPAUSE,strlen(TEXT_KEY_PLAYPAUSE));
+ break;
+ case KEY_TYPE_F1:
+ strncpy(key_info[key_cnt].key_shown,TEXT_KEY_F1,strlen(TEXT_KEY_F1));
+ break;default:LOGD("invalid key");
vendor/sprd/proprietories-source/factorytest/res/string_cn.h
@@ -122,6 +122,8 @@#define TEXT_KEY_BACK "返回键"#define TEXT_KEY_HOMEPAGE "主页键"#define TEXT_KEY_CAMERA "相机键"
+#define TEXT_KEY_PLAYPAUSE "播放暂停键"
+#define TEXT_KEY_F1 "F1键"vendor/sprd/proprietories-source/factorytest/res/string_en.h@@ -123,6 +123,8 @@#define TEXT_KEY_BACK "Back Key"#define TEXT_KEY_HOMEPAGE "Homepage Key"#define TEXT_KEY_CAMERA "Camera Key"
+#define TEXT_KEY_PLAYPAUSE "PlayPause Key"
+#define TEXT_KEY_F1 "F1 Key"
- 去掉任意测试项
support 改为0
device/sprd/sharkle/project/rootdir/prodnv/PCBA.conf#id support case
0 1 LCD
1 1 TP
2 1 MULTITOUCH
3 1 KEY
4 1 VIBRATOR
5 1 BACKLIGHT
6 0 FCAMERA
7 1 BCAMERA
8 1 FLASH
...
相关文章:
Android SPRD 工模测试修改
设备有两颗led灯,工模测试需全亮 vendor/sprd/proprietories-source/factorytest/testitem/led.cpp -13,6 13,10 typedef enum{#define LED_BLUE "/sys/class/leds/blue/brightness"#define LED_RED …...
H3C CN3360B光纤存储交换机配置案例
这几天在项目里面遇到了一台光纤存储交换机,需要划Zone来实现服务器外接存储 接下来我就分享我在项目中的配置 我是通过交换机串口进去的,也可以通过网口,串口的配置我就不介绍了 网口配置的地址是:10.77.77.77/24 登入方式&…...
问题:Flask应用中的用户会话(Session)管理失效
我来分享一个常见的PythonWeb开发问题: 问题:Flask应用中的用户会话(Session)管理失效 这是一个在Flask开发中经常遇到的问题。当用户登录后,有时会话会意外失效,导致用户需要重复登录。 解决方案: 1. 首先&#x…...
Backend - C# 操作数据库 DB(ADO.NET、LINQ to SQL、EF)
目录 一、ADO.NET(传统) 二、LINQ to SQL(已过时) 三、EF(推荐) 常见的操作数据库的方法:有三种,分别是 ADO.NET、LINQ to SQL、EF 一、ADO.NET(传统) ADO.NE…...
JMeter + Grafana +InfluxDB性能监控 (二)
您可以通过JMeter、Grafana 和 InfluxDB来搭建一个炫酷的基于JMeter测试数据的性能测试监控平台。 下面,笔者详细介绍具体的搭建过程。 安装并配置InfluxDB 您可以从清华大学开源软件镜像站等获得InfluxDB的RPM包,这里笔者下载的是influxdb-1.8.0.x86_…...
springCloud实战
一、Feign的实战 1、使用 1.1步骤 ①引入feign依赖 ②在启动类上加上EnableFeignClients注解,开启Feign客户端 ③编写FeignClient接口 1.2开启feign调用日志 只需在yml配置文件中开启配置即可 feign:client:default:loggerLevel: FULL #feign接口被调用时的…...
从优化算法到分布式训练-提升AI模型收敛速度的系统性分析【附核心实战代码】
本文收录于专栏:精通AI实战千例专栏合集 https://blog.csdn.net/weixin_52908342/category_11863492.html从基础到实践,深入学习。无论你是初学者还是经验丰富的老手,对于本专栏案例和项目实践都有参考学习意义。 每一个案例都附带关键代码,详细讲解供大家学习,希望可以帮…...
如何在 Windows 10/11 上录制带有音频的屏幕 [3 种简单方法]
无论您是在上在线课程还是参加在线会议,您都可能需要在 Windows 10/11 上录制带有音频的屏幕。互联网上提供了多种可选方法。在这里,本博客收集了 3 种最简单的方法来指导您如何在 Windows 10/11 上使用音频进行屏幕录制。请继续阅读以探索! …...
鸿蒙应用开发(2)
鸿蒙应用开发启航计划-CSDN博客 鸿蒙应用开发(1)-CSDN博客 没看过前两篇的,建议请先看上面。 如果你学习完了前两篇,那么你学习这篇文章,就很容易理解了。 这一篇文章将介绍声明式UI的 渲染控制。你需要了解的是&…...
单片机-LED点阵实验
要将第一个点点亮,则 1 脚接高电平 a 脚接低电平,则第一个点就亮了;如果要将第一行点亮,则第 1 脚要接高电平,而(a、b、c、d、e、f、g、h )这些引脚接低电平,那么第一行就会点亮&…...
微服务-Nacos(注册中心)
Nacos Nacos可以看作注册中心配置中心,比Eureka更加强大。 注册中心 在父工程中引入SpringCloudAlibaba的版本依赖 <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId&g…...
【Linux知识】shell编程知识科普
文章目录 概述文件格式语法及例子 文件读写文件读取文件写入错误处理 后台执行shell1. 使用 & 符号2. 使用 nohup 命令3. 使用 screen 或 tmux使用 screen使用 tmux 4. 使用 disown 命令5. 使用系统服务管理器(如 systemd) 概述 Linux shell脚本文件…...
小程序学习06——uniapp组件常规引入和easycom引入语法
目录 一 组件注册 1.1 组件全局注册 1.2 组件全局引入 1.3 组件局部引入 页面引入组件方式 1.3.1 传统vue规范: 1.3.2 通过uni-app的easycom 二 组件的类型 2.1 基础组件列表 一 组件注册 1.1 组件全局注册 (a)新建compoents文件…...
平安产险安徽分公司携手安徽中医药临床研究中心附属医院 共筑儿童安全防护网
为响应金融知识普及教育号召,平安产险安徽分公司联动安徽中医药临床研究中心附属医院,于近日在朝霞小学举办了一场儿童安全防范与健康守护活动。此次活动旨在提升学生的安全防范意识,守护儿童健康成长,同时有力推动金融知识与传统…...
C语言练习:求数组的最大值与最小值
文章目录 1. 提出任务2. 完成任务2.1 方法一:通过返回结构体指针来间接返回结果2.1.1 编写程序,实现功能2.1.2 运行程序,查看结果 2.2 方法二:通过参数传递数组,并在函数中修改传入的参数2.2.1 编写程序,实…...
c++ thread线程join、detach、joinable方法
(621条消息) 线程中断Thread的interrupt()方法_thread interrupt_萝卜阿咕咕的博客-CSDN博客 C/C编程:std::thread 详解-CSDN博客 #include <iostream> #include <thread>void do_some_work() {std::cout<<"Hello Concurrent World\n"…...
【算法刷题】leetcode hot 100 哈希篇
文章目录 1. 两数之和49. 字母异位词分组128. 最长连续序列总结 1. 两数之和 leetcode:https://leetcode.cn/problems/two-sum/description/?envTypestudy-plan-v2&envIdtop-100-liked暴力解决: public int[] twoSum(int[] nums, int target) {for …...
linux系统(ubuntu,uos等)连接鸿蒙next(mate60)设备
以前在linux上是用adb连接,现在升级 到了鸿蒙next,adb就不好用了。得用Hdc来了,在windows上安装了hisuit用的好好的,但是到了linux(ubuntu2204)下载安装了 下载中心 | 华为开发者联盟-HarmonyOS开发者官网,共建鸿蒙生…...
支付宝实名认证
实名认证后台服务主要涉及两个接口:人脸核身初始化接口、人脸核身结果查询接口 import com.alibaba.fastjson.JSONObject; import com.alipay.api.*; import com.alipay.api.domain.DatadigitalFincloudGeneralsaasFaceVerificationInitializeModel; import com.ali…...
GO随想:GO的并发等待
协程并发等待技术——WaitGroup 类型和 errgroup 包 waitgroup 阻塞等待多个并发任务执行完成。WaitGroup 类型主要包含下面几个方法。 func (wg *WaitGroup) Add(delta int) func (wg *WaitGroup) Done() func (wg *WaitGroup) Wait() 第一个是 Add 方法,在任务运…...
【网络】每天掌握一个Linux命令 - iftop
在Linux系统中,iftop是网络管理的得力助手,能实时监控网络流量、连接情况等,帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...
应用升级/灾备测试时使用guarantee 闪回点迅速回退
1.场景 应用要升级,当升级失败时,数据库回退到升级前. 要测试系统,测试完成后,数据库要回退到测试前。 相对于RMAN恢复需要很长时间, 数据库闪回只需要几分钟。 2.技术实现 数据库设置 2个db_recovery参数 创建guarantee闪回点,不需要开启数据库闪回。…...
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以? 在 Golang 的面试中,map 类型的使用是一个常见的考点,其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...
从WWDC看苹果产品发展的规律
WWDC 是苹果公司一年一度面向全球开发者的盛会,其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具,对过去十年 WWDC 主题演讲内容进行了系统化分析,形成了这份…...
【Java学习笔记】Arrays类
Arrays 类 1. 导入包:import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序(自然排序和定制排序)Arrays.binarySearch()通过二分搜索法进行查找(前提:数组是…...
Leetcode 3577. Count the Number of Computer Unlocking Permutations
Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接:3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯,要想要能够将所有的电脑解锁&#x…...
【机器视觉】单目测距——运动结构恢复
ps:图是随便找的,为了凑个封面 前言 在前面对光流法进行进一步改进,希望将2D光流推广至3D场景流时,发现2D转3D过程中存在尺度歧义问题,需要补全摄像头拍摄图像中缺失的深度信息,否则解空间不收敛…...
【HTTP三个基础问题】
面试官您好!HTTP是超文本传输协议,是互联网上客户端和服务器之间传输超文本数据(比如文字、图片、音频、视频等)的核心协议,当前互联网应用最广泛的版本是HTTP1.1,它基于经典的C/S模型,也就是客…...
基于matlab策略迭代和值迭代法的动态规划
经典的基于策略迭代和值迭代法的动态规划matlab代码,实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...
基于Java+MySQL实现(GUI)客户管理系统
客户资料管理系统的设计与实现 第一章 需求分析 1.1 需求总体介绍 本项目为了方便维护客户信息为了方便维护客户信息,对客户进行统一管理,可以把所有客户信息录入系统,进行维护和统计功能。可通过文件的方式保存相关录入数据,对…...
