I.MX6 Android backlight modify by C demo

/**************************************************************************
 *             I.MX6 Android backlight modify by C demo
 * 说明:
 *     因为一些特殊情况,需要添加一个这个简单的控制程序来控制android背光
 * 亮度,个人感觉是没有必要的,但是应要求还是加上。
 *
 *                                      2016-5-14 深圳 南山平山村 曾剑锋
 *************************************************************************/

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <termios.h>
#include <string.h>
#include <errno.h>  

#define BACKLIGHT0_PATH "/sys/class/backlight/pwm-backlight.0/brightness"
#define BACKLIGHT1_PATH "/sys/class/backlight/pwm-backlight.1/brightness"

//#define BACKLIGHT0_PATH "brightness0"
//#define BACKLIGHT1_PATH "brightness1"

int help ( int argc );
int isDigitalStr(char *str);
int file_exists(char *filename);
void writeStringToFile(char *filePath, char *string);

int main(int argc, char **argv)
{
    int bl0 = 0;
    int bl1 = 0;

    if ( help( argc ) != 0)
        return -1;

    if ( !isDigitalStr(argv[1]) ) {
        printf("Please give a numeric string.\n");
        return -1;
    }   

    writeStringToFile(BACKLIGHT0_PATH, argv[1]);
    writeStringToFile(BACKLIGHT1_PATH, argv[1]);
}

void writeStringToFile(char *filePath, char *string)
{
    int fd = 0;

    if ( file_exists(filePath) ) {

        fd = open(filePath, O_RDWR);

        ftruncate(fd, 0);
        write(fd, string, strlen(string));

        close(fd);

    }
}

int isDigitalStr(char *str)
{
    int len = strlen(str);
    char *s = str;
    int i = 0;

    while( '0' <= *s && *s <= '9' && i < len){
        s++;
        i++;
    }

    if(i == len)
        return 1;
    else
        return 0;
}

int file_exists(char *filename)
{
    if (access(filename, F_OK) == 0) {
        return 1;
    } else {
        printf("%s is not exist.\n", filename);
        return 0;
    }
}

int help( int argc )
{
    if ( argc != 2 ) {
        printf ( "USAGE:\n" );
        printf ( "    backlight <value>\n" );
        printf ( "    example:\n" );
        printf ( "        backlight 0\n" );
        return -1;
    }

    return 0;
}

 

时间: 2024-08-19 04:41:04

I.MX6 Android backlight modify by C demo的相关文章

I.MX6 Android Linux UART send receive with multi-thread and multi-mode demo

/******************************************************************************************* * I.MX6 Android Linux UART send receive with multi-thread and multi-mode demo * 声明: * 1. 本软件是为了测试Android底层的Linux驱动以及硬件是否存在缺陷而编写的测试软件: * 2. 本软件可以设置为发送.接收.发送并接

I.MX6 PWM buzzer driver hacking with Demo test

/***************************************************************************** * I.MX6 PWM buzzer driver hacking with Demo test * 声明: * 1. I.MX6和OK335xS实现PWM驱动函数是不一样的: * 2. 通过分析PWM驱动,了解有哪些驱动函数可以用: * 3. 使用I.MX6提供的PWM函数,编写测试用例buzzer驱动: * 4. 使用C编写测试程序.

I.MX6 android 移除shutdown功能

/************************************************************************ * I.MX6 android 移除shutdown功能 * 说明: * 有时候,我们可能会只是不需要android中的shutdown功能. * * 2016-3-17 深圳 南山平山村 曾剑锋 ***********************************************************************/ cat

android:镜头模拟快门闭合效果Demo

问题描述 android:镜头模拟快门闭合效果Demo 有没有大神做过这个类似的效果http://www.5icool.org/a/201107/487.html,android用的,给一个思路,共同进步 解决方案 http://www.5icool.org/a/201107/487.html 解决方案二: android 模拟下雪的效果

java-【求】android 银联支付 服务端demo

问题描述 [求]android 银联支付 服务端demo 如题,现在我们APP提供银联支付,我是后台开发,也就是服务端,以前从没弄过这个 ,不知道服务端要干些什么,求一个详细的demo,感谢了. (如果有IOS也可以提供,因为我们也有IOS版的) 解决方案 你查查银联支付的PHP或者Java SDK 解决方案二: Android 银联支付Demo 解决方案三: [求]android 银联支付 服务端demo 解决方案四: 你查查银联支付的PHP或者Java SDK

android studio 导入新版的demo 运行时出错

问题描述 android studio 导入新版的demo 运行时出错:easeUIDemo:transformClassesWithInstantRunVerifierForDebug:easeUIDemo:transformClassesWithInstantRunForDebugIncrementalSupportVisitor Visiting com/easemob/chatuidemo/BuildConfigIncrementalSupportVisitor Visiting com

opengl es fbo-求一个opengl es 在android上用 FBO的demo

问题描述 求一个opengl es 在android上用 FBO的demo 如题,最近需要做这个项目,在网上找了很久也找不到es的FBO例子,困在这里好久了,请高人拉我一把! 我需要c++版本的 解决方案 http://www.cnblogs.com/mengdd/archive/2013/05/02/3055649.html 解决方案二: http://blog.sina.com.cn/s/blog_4062094e0100alvv.html 解决方案三: 找了一些看看有没有符合要求的 And

Android中的指纹识别demo开发实例_Android

 指纹识别是在Android 6.0之后新增的功能,因此在使用的时候需要先判断用户手机的系统版本是否支持指纹识别.另外,实际开发场景中,使用指纹的主要场景有两种: 纯本地使用.即用户在本地完成指纹识别后,不需要将指纹的相关信息给后台. 与后台交互.用户在本地完成指纹识别后,需要将指纹相关的信息传给后台. 由于使用指纹识别功能需要一个加密对象(CryptoObject)该对象一般是由对称加密或者非对称加密获得.上述两种开发场景的实现大同小异,主要区别在于加密过程中密钥的创建和使用,一般来说,纯本地

I.MX6 Android stlport 使用

/****************************************************************** * I.MX6 Android stlport 使用 * 说明: * 在移植JNI过程中使用了C++ stlport lib,而在Android源码中编译 * 和在NDK中使用,其配置方式是不一样. * * 2016-8-11 深圳 南山平山村 曾剑锋 *******************************************************