首页 > 其他分享 >展锐平台关机充电代码

展锐平台关机充电代码

时间:2024-07-19 17:52:13浏览次数:13  
标签:__ 关机 led brightness eng 展锐 DEV 充电 LED

./sprd/proprietories-source/charge

led的控制部分:

//./sprd/proprietories-source/charge/ui.c

static void led_control(int level) {
      static int led_flag = 0;
         LOGE("***led_control***level=%d*led_flag=%d***\n",level,led_flag);
      if (level > 100)
        level = 100;
      else if (level < 0)
        level = 0;
      if (level < 90) {
        if (led_flag != LED_RED) {
            led_on(LED_RED);
            led_flag = LED_RED;
        }
      } else {
         if (led_flag != LED_GREEN) {
             led_on(LED_GREEN);
             led_flag = LED_GREEN;
        }
     }
}

//./sprd/proprietories-source/charge/backlight.c

#define LED_GREEN_DEV                   "/sys/class/leds/green/brightness"
#define LED_GREEN_MAX_DEV                   "/sys/class/leds/green/max_brightness"
#define LED_RED_DEV                     "/sys/class/leds/red/brightness"
#define LED_RED_MAX_DEV                     "/sys/class/leds/red/max_brightness"
#define LED_BLUE_DEV                    "/sys/class/leds/blue/brightness"
#define LED_BLUE_MAX_DEV                    "/sys/class/leds/blue/max_brightness"

#define LED_GREEN_DEV_K414                   "/sys/class/leds/sc27xx:green/brightness"
#define LED_GREEN_MAX_DEV_K414                   "/sys/class/leds/sc27xx:green/max_brightness"
#define LED_RED_DEV_K414                     "/sys/class/leds/sc27xx:red/brightness"
#define LED_RED_MAX_DEV_K414                     "/sys/class/leds/sc27xx:red/max_brightness"
#define LED_BLUE_DEV_K414                    "/sys/class/leds/sc27xx:blue/brightness"
#define LED_BLUE_MAX_DEV_K414                    "/sys/class/leds/sc27xx:blue/max_brightness"

static int eng_led_red_test(int brightness) {
        int fd;
        int ret;
        char buffer[8];

        fd = open(LED_RED_DEV, O_RDWR);

        if (fd < 0) {
                SPRD_DBG("%s: open %s fail", __func__, LED_RED_DEV);
                fd = open(LED_RED_DEV_K414,O_RDWR);
                if (fd < 0) {
                        SPRD_DBG("%s: open %s fail", __func__, LED_RED_DEV_K414);
                        return -1;
                }
        }

        memset(buffer, 0, sizeof(buffer));
        sprintf(buffer, "%d", brightness);
        ret = write(fd, buffer, strlen(buffer));

        close(fd);

        return 0;
}

static int eng_led_blue_test(int brightness) {
        int fd;
        int ret;
        char buffer[8];

        fd = open(LED_BLUE_DEV, O_RDWR);

        if (fd < 0) {
                SPRD_DBG("%s: open %s fail", __func__, LED_BLUE_DEV);
                fd = open(LED_BLUE_DEV_K414,O_RDWR);
                if (fd < 0) {
                        SPRD_DBG("%s: open %s fail", __func__, LED_BLUE_DEV_K414);
                        return -1;
                }
        }

        memset(buffer, 0, sizeof(buffer));
        sprintf(buffer, "%d", brightness);
        ret = write(fd, buffer, strlen(buffer));

        close(fd);

        return 0;
}

void led_off(void) {
    SPRD_DBG("%s: *********led_off****", __func__);
        eng_led_green_test(0);
        eng_led_red_test(0);
        eng_led_blue_test(0);
}

void led_on(int color) {
     SPRD_DBG("%s: *********led_on****", __func__);
        if (color == 1) {
                eng_led_green_test(max_green_led/2);
                eng_led_red_test(0);
                eng_led_blue_test(0);
        } else if (color == 2) {
                eng_led_red_test(max_red_led/2);
                eng_led_green_test(0);
                eng_led_blue_test(0);
        } else if (color == 3) {
                eng_led_blue_test(0);
                eng_led_red_test(max_green_led/2);
                eng_led_green_test(max_red_led/2);
        } else {
                SPRD_DBG("%s: color is %d invalid\n", __func__, color);
        }
}

  

  

  

标签:__,关机,led,brightness,eng,展锐,DEV,充电,LED
From: https://www.cnblogs.com/yuanqiangfei/p/18312029

相关文章

  • Windows 10 开始菜单电源选项丢失?一文教你找回关机重启权
        在日常使用计算机的过程中,我们难免会遇到一些棘手的问题,比如Windows10操作系统中的一个常见困扰——“开始菜单→电源→提示‘当前没有可用的电源选项’,无法关机、重启”。这种情况往往令人头疼,特别是在需要紧急关机或重启来解决问题的时候。幸运的是,解决这一问题......
  • (海川)代理 SM5202 ESOP8/EMSOP8/DFN2X2‐8L 12V 耐压防反接及 OVP 功能 1A 锂电池线性
    产品描述    SM5202是一款完整的采用恒定电流/恒定电压的单节锂电池线性充电器,并带有锂电池正负极反接保护功能,可以保护芯片和用户安全。    由于采用了内部PMOSFET架构,加上防倒充电路,所以不需要外部检测电阻和隔离二极管。热反馈可对充电电流进......
  • 单向/双向V2G 环境下分布式电源与电动汽车充电站联合配置方法(Matlab代码实现)
     ......
  • 法法易解析液冷充电枪的关键技术体系
    随着时代的发展,科学技术也在不断发展壮大,目前,国家也拥有完善的电力基础,但是随着大功率充电的发展,不可避免的对国家电网的电力供应提出更高的要求。如何配合电动汽车的充电需求和现有基础电力设施一同使用,这就需要考虑清楚液冷充电枪的各个方面,以求防患于未然安全隐患。这是因为......
  • healthd中充电类型的识别
    LA.UM.9.15.2.C3/system/core/healthd/BatteryMonitor.cpphealthd中chg是AC还是usb充电读取的是/sys/class/power_supply/usb/typeBatteryMonitor::PowerSupplyTypeBatteryMonitor::readPowerSupplyType(constString8&path){staticSysfsStringEnumMap<int>suppl......
  • 010 基于 SBI 服务完成输出和关机
    RustSBI的两个职责它会在计算机启动时进行它所负责的环境初始化工作,并将计算机控制权移交给内核在内核运行时响应内核的请求为内核提供服务这里用不太确切的话表述一下,RustSBI作为介于内核和硬件之间的软件,要完成输出和关机,思路是内核需要调用RustSBI进行对硬件的控制的.......
  • mongo意外关机后恢复独立设备
    磁盘级数据损坏或数据文件丢失可能会阻止 mongod实例启动,并且日志文件可能不足以自动恢复:2018-10-24T18:05:18.248-04:00WSTORAGE[initandlisten]Detecteduncleanshutdown-mongod.lockisnotempty....2018-10-24T17:24:53.122-04:00ESTORAGE[initandlisten]F......
  • Windows 电源管理中的 "快速启动(推荐)" 是一种功能选项,它允许电脑在关机后以一种较快的
    Windows电源管理中的"快速启动(推荐)"是一种功能选项,它允许电脑在关机后以一种较快的方式启动。这个功能通过将系统的部分内容保存到硬盘上的一个文件中,而不是完全关闭电脑,从而实现更快的启动速度。具体来说,当你选择启用快速启动时,Windows会将当前的系统状态保存到一个名为hibe......
  • 基于SpringBoot+vue的车辆充电桩系统(带1w+文档)
    基于SpringBoot+vue的车辆充电桩系统(带1w+文档)本次设计任务是要设计一个车辆充电桩管理系统,通过这个系统能够满足车辆充电桩管理系统的管理功能。系统的主要功能包括首页、个人中心、维修员管理、用户管理、电桩类别管理、充电桩管理、充电桩报修管理、维修回复管理、系......
  • 法法易为您解读新能源汽车充电枪的相关知识
     前言充电枪作为新能源汽车充电的必备设备之一,与新能源汽车的发展和充电设施的全面推广与普及息息相关,所以充电枪的好坏也在一定程度上影响着充电基础设施,可以说新能源汽车充电枪是十分重要。在电动汽车充电领域,我们常听到“充电枪”的术语。但其实许多人可能对于新能源......