main.c

//main.c
#include <stdio.h>
#include "LUX_AutomatiedTest.h"/*** @description: 打印执行选项* @return 0 成功,非零失败,返回错误码*/
int LUX_ATE_Help(void)
{   printf("\n");printf("==========================================================================\n");printf("+         this is for automatic test                                     +\n");printf("+                                                                        +\n");printf("+         LUX_ATE_BUTTON-------------------NULL                          +\n");printf("+         LUX_ATE_LED----------------------RED|GREEN|BLUE_ON|OFF         +\n");printf("+         LUX_ATE_SDCard-------------------NULL                          +\n");printf("+         LUX_ATE_MLB----------------------NULL                          +\n");printf("+         LUX_ATE_WiFi_AP------------------NULL                          +\n");printf("+         LUX_ATE_FATP---------------------NULL                          +\n");printf("+         LUX_ATE_MOTOR--------------------VERTICAL|HORIZONTAL           +\n");printf("+         LUX_ATE_SPEAKER------------------NULL                          +\n");printf("+         LUX_ATE_MicRecorder--------------NULL                          +\n");printf("+         LUX_ATE_SelfAudio----------------NULL                          +\n");printf("+         LUX_ATE_IRMode-------------------NULL                          +\n");printf("+         LUX_ATE_WiFi---------------------NULL                          +\n");printf("+         LUX_ATE_IRCut--------------------ON|OFF                        +\n");printf("+         LUX_ATE_STREAM-------------------NULL                          +\n"); printf("==========================================================================\n");printf("\n");return 0;
}/*** @description: LED测试* @param[in] string 参数* @return 0 成功,非零失败,返回错误码*/
int LUX_ATE_LED(char *string)
{int flag = 0;int test;if (strspn(string, "R") == 1){flag = (strcmp("RED_ON", string) == 0 ? 1 : 2);}else if (strspn(string, "G") == 1){flag = (strcmp("GREEN_ON", string) == 0 ? 3 : 4);}else if (strspn(string, "B") == 1){flag = (strcmp("BLUE_ON", string) == 0 ? 5 : 6);}switch (flag){case 1:printf("red led on\n");break;case 2:printf("red led off\n");break;case 3:printf("green green on\n");break;case 4:printf("green green off\n");break;case 5:printf("green blue on\n");break;case 6:printf("green blue off\n");break;default:printf("LUX_ATE_LED input param error\n");break;}return 0;
}/*** @description: SDCard 读写* @return 0 成功,非零失败,返回错误码*/
int LUX_ATE_SDCard(void)
{printf("LUX_ATE_SDCard write\n");printf("LUX_ATE_SDCard read\n");return 0;
}/*** @description: MLB 读写* @return 0 成功,非零失败,返回错误码*/
int LUX_ATE_MLB(void)
{printf("LUX_ATE_MLB write\n");printf("LUX_ATE_MLB read\n");return 0;
}/*** @description: 热点配网* @return 0 成功,非零失败,返回错误码*/
int LUX_ATE_WiFi_AP(void)
{printf("LUX_ATE_WiFi_AP\n");return 0;
}/*** @description: FTAP的ISN读写* @return 0 成功,非零失败,返回错误码*/
int LUX_ATE_FATP(void)
{printf("LUX_ATE_FATP ISN write\n");printf("LUX_ATE_FATP ISN read\n");return 0;
}/*** @description: 电机* @param[in] direction 方向* @return 0 成功,非零失败,返回错误码*/
int LUX_ATE_MOTOR(char *direction)
{if (!strcmp("VERTICAL", direction)){printf("VERTICAL MOVED\n");}else if (!strcmp("HORIZONTAL", direction)){printf("HORIZONTAL MOVED\n");//水平}else{printf("LUX_ATE_MOTOR input parameter error\n");}return 0;
}/*** @description: 喇叭播放* @return 0 成功,非零失败,返回错误码*/
int LUX_ATE_SPEAKER(void)
{printf("LUX_ATE_SPEAKER\n");return 0;
}/*** @description: 麦克风录音* @return 0 成功,非零失败,返回错误码*/
int LUX_ATE_MicRecorder(void)
{printf("LUX_ATE_MicRecorder\n");return 0;
}/*** @description: 1kHZ的音源自录自放* @return 0 成功,非零失败,返回错误码*/
int LUX_ATE_SelfAudio(void)
{printf("LUX_ATE_SelfAudio\n");return 0;
}/*** @description: 切换红外模式* @return 0 成功,非零失败,返回错误码*/
int LUX_ATE_IRMode(void)
{printf("IR MODE ON \n");sleep(5);printf("IR MODE OFF\n");return 0;
}/*** @description: wifi连接、关闭* @return 0 成功,非零失败,返回错误码*/
int LUX_ATE_WiFi(void)
{printf("LUX_ATE_WiFi ON \n");sleep(5);printf("LUX_ATE_WiFi OFF\n");return 0;
}/*** @description: ircut打开关闭* @return 0 成功,非零失败,返回错误码*/
int LUX_ATE_IRCut(char *irSwitch)
{if (!strcmp("ON", irSwitch)){printf("LUX_ATE_IRCut ON\n");}else if (!strcmp("OFF", irSwitch)){printf("LUX_ATE_IRCut OFF\n");}else{printf("LUX_ATE_IRCut input parameter error\n");}return 0;
}/*** @description: 视频流存储* @return 0 成功,非零失败,返回错误码*/
int LUX_ATE_STREAM(void)
{printf("LUX_ATE_STREAM\n");return 0;
}int main(int argc, char *argv[])
{int cmd;struct option long_options[] = {{"help",                no_argument,        NULL, '1'},{"LUX_ATE_BUTTON",      no_argument,        NULL, 'a'},{"LUX_ATE_LED",         required_argument,  NULL, 'b'},{"LUX_ATE_SDCard",      no_argument,        NULL, 'c'},{"LUX_ATE_MLB",         no_argument,        NULL, 'd'},{"LUX_ATE_WiFi_AP",     no_argument,        NULL, 'e'},{"LUX_ATE_FATP",        no_argument,        NULL, 'f'},{"LUX_ATE_MOTOR",       required_argument,  NULL, 'g'},{"LUX_ATE_SPEAKER",     no_argument,        NULL, 'h'},{"LUX_ATE_MicRecorder", no_argument,        NULL, 'i'},{"LUX_ATE_SelfAudio",   no_argument,        NULL, 'j'},{"LUX_ATE_IRMode",      no_argument,        NULL, 'k'},{"LUX_ATE_WiFi",        no_argument,        NULL, 'l'},{"LUX_ATE_IRCut",       required_argument,  NULL, 'm'},{"LUX_ATE_STREAM",      no_argument,        NULL, 'n'},{NULL, 0, NULL, 0}};if (argc == 1){LUX_ATE_Help();printf("\nno option , quit ! \n\n");return 0;}cmd = getopt_long(argc, argv, "1ab:cdefg:hijklm:", long_options, NULL);if (-1 == cmd){printf("getopt_long error\n");return -1;}while (cmd){switch (cmd){/* help */case '1':LUX_ATE_Help();return 0;/* LUX_ATE_BUTTON */case 'a':printf("LUX_ATE_BUTTON\n");return 0;/* RGB LED TEST */case 'b':LUX_ATE_LED(optarg); return 0; /* SD Card wirte and read */case 'c':LUX_ATE_SDCard();return 0;/* MLB WRITE AND READ */case 'd':LUX_ATE_MLB();return 0;/* LUX_ATE_WiFi_AP */case 'e':LUX_ATE_WiFi_AP();return 0;/* LUX_ATE_FATP ISN WRITE AND READ */case 'f':LUX_ATE_FATP();return 0;/* MOTOR */case 'g':LUX_ATE_MOTOR(optarg);return 0;/* SPEAKER */case 'h':LUX_ATE_SPEAKER();return 0;/* MicRecoder */case 'i':LUX_ATE_MicRecorder();return 0;/* LUX_ATE_SelfAudio */case 'j':LUX_ATE_SelfAudio();return 0;/* IR Mode */case 'k':LUX_ATE_IRMode();return 0;/* WiFi */case 'l':LUX_ATE_WiFi();return 0;/* IRcut on off */case 'm':LUX_ATE_IRCut(optarg);return 0;/* IRcut on off */case 'n':LUX_ATE_STREAM();return 0;case '?':printf("input options error\n");return 0;}}//LUSHARE_test_sample_Encode_video(argc, argv[1]);return 0;}

.h

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <getopt.h>
#include <string.h>
#include <sys/ioctl.h>
#include <stdlib.h>
#include <fcntl.h>
//#include <sys/io.h>
#include <errno.h>/*** @description: 打印执行选项* @return 0 成功,非零失败,返回错误码*/
int LUX_ATE_Help(void);/*** @description: LED测试* @param[in] string 参数* @return 0 成功,非零失败,返回错误码*/
int LUX_ATE_LED(char *string);/*** @description: SDCard 读写* @return 0 成功,非零失败,返回错误码*/
int LUX_ATE_SDCard(void);/*** @description: MLB 读写* @return 0 成功,非零失败,返回错误码*/
int LUX_ATE_MLB(void);/*** @description: 热点配网* @return 0 成功,非零失败,返回错误码*/
int LUX_ATE_WiFi_AP(void);/*** @description: FTAP的ISN读写* @return 0 成功,非零失败,返回错误码*/
int LUX_ATE_FATP(void);/*** @description: 电机上下转动* @param[in] direction 转动方向 * @return 0 成功,非零失败,返回错误码*/
int LUX_ATE_MOTOR(char *direction);/*** @description: 喇叭播放* @return 0 成功,非零失败,返回错误码*/
int LUX_ATE_SPEAKER(void);/*** @description: 麦克风录音* @return 0 成功,非零失败,返回错误码*/
int LUX_ATE_MicRecorder(void);/*** @description: 1kHZ的音源自录自放* @return 0 成功,非零失败,返回错误码*/
int LUX_ATE_SelfAudio(void);/*** @description: 切换红外模式先开后闭* @return 0 成功,非零失败,返回错误码*/
int LUX_ATE_IRMode(void);/*** @description: wifi连接、关闭* @return 0 成功,非零失败,返回错误码*/
int LUX_ATE_WiFi(void);/*** @description: ircut打开关闭* @param[in] irSwitch 开关指令 * @return 0 成功,非零失败,返回错误码*/
int LUX_ATE_IRCut(char *irSwitch);/*** @description: 视频流存储* @return 0 成功,非零失败,返回错误码*/
int LUX_ATE_STREAM(void);// 1#define LUX_ATE_BUTTON              a        /* reset案件 */
// 1#define LUX_ATE_LED                 0x02    /* RGB三种颜色LED灯开闭 */
// 1#define LUX_ATE_SDCard              0x03    /* SD卡读写 */
// 1#define LUX_ATE_MLB                 0x04    /* MLB的ISN读写 */
// 1#define LUX_ATE_WiFi_ConnectAP      0x05    /* 连接AP */
// 1#define LUX_ATE_FATP                0x06    /* FTAP的ISN读写 */
// 1#define LUX_ATE_MotorHorrzontal     0x07    /* 电机垂直转动 */
// 1#define LUX_ATE_MotorVertical       0x08    /* 电机水平转动 */
// 1#define LUX_ATE_Speaker             0x09    /* 喇叭播放 */
// 1#define LUX_ATE_MicRecorder         0x0A    /* mic录音 */
// 1#define LUX_ATE_SelfAudio           0x0B    /* 1kHZ的音源自录自放 */
// 1#define LUX_ATE_IRMode              0x0C    /* 切换红外模式 */
// 1#define LUX_ATE_LightMode           0x0D    /* 切换正常模式 */
// 1#define LUX_ATE_WifiOn              0x0E    /* 打开无线 */
// 1#define LUX_ATE_WifiOff             0x0F    /* 关闭无线 */
// 1#define LUX_ATE_IRCutOpen           0x10    /* ircut打开 */
// 1#define LUX_ATE_IRCutCLose          0x11    /* ircut关闭 */
// 1#define LUX_ATE_Stream              0x12    /* 视频流存储 */

效果


框架搭完后将更能添加到相应的位置即可

getopt_long长执行选项实例相关推荐

  1. python安装选项_python设置执行选项参数

    1. sys 可以通过sys.argv得到参数列表,其中sys.argv[0]是文件名称,此后的列表值是每一个参数,这里的参数列表也支持常规的列表操作 for data in sys.argv: pr ...

  2. linux脚本里调执行命令,使用shell的-n/-x/-x执行选项调试Shell脚本

    我们在前面介绍的调试手段是通过修改shell脚本的源代码,从其输出相关的调试信息来定位错误的,那有没有不修改源代码来调试shell脚本的方法呢?有的,那就是使用shell的执行选项,下面将介绍一些常用 ...

  3. PHP定时任务 - PHP自动定时循环执行任务实例代码

    PHP定时任务已使用测试,现在已经趋于稳定,效果良好.本功能需要配合监控宝,360监控等使用.创建监控WEB项目,指定到任务主文件URL!如果没有Memcache可以创建text文件写入time替代! ...

  4. python获取图像的长和宽_tensorflow之读取jpg图像长和宽实例

    有时需要读取jpg图像的长和宽,tensorflow提供了很好的支持 直接上示例 decode_jpeg_data = tf.placeholder(dtype=tf.string) decode_j ...

  5. python定义定长数组_python 初始化一个定长的数组实例

    python 初始化一个定长的数组实例 ​# 有时候我们提前知道了一个数组的大小,需要给每个元素赋值,此时append好像不管用.我们需要定义一个定# # 长的数组, python中代码如下: b = ...

  6. js Function对象扩展与延时执行函数实例代码

    网页特效 function对象扩展与延时执行函数实例代码 function.prototype.delay=function(this1,timeout){ this1=this1||null; ti ...

  7. mysql如何定位耗时较长的sql_Mysql实例mysql优化之定位效率较低的SQL

    <Mysql实例mysql优化之定位效率较低的SQL>要点: 本文介绍了Mysql实例mysql优化之定位效率较低的SQL,希望对您有用.如果有疑问,可以联系我们. 导读:一般通过以下两种 ...

  8. 【私人订制】之微信文字游戏制作(带可执行的实例)

    个性化微信文字游戏制作简介 本文主要详细讲解零编程基础的用户如何打造一款个性化的微信文字游戏,只需要文字游戏的资料即可. 制作个性化微信文字游戏的网站地址为:个性化微信文字游戏制作 . 文末有文字游戏 ...

  9. spring框架使用Quartz执行定时任务实例详解

    版权声明:本文为博主原创文章,如需转载,请标明出处. https://blog.csdn.net/alan_liuyue/article/details/80382324 Quartz简介 1.Qua ...

最新文章

  1. FPGA之道(40)HDL的语法结构
  2. 你真的了解Scrum吗?
  3. openssl 开启AES-NI指令集性能增加
  4. java异步处理同步化_java 异步查询转同步多种实现方式:循环等待,CountDownLatch,Spring Even...
  5. 漫画:什么是二叉堆?(修正版)
  6. SQL Server 占用内存太高,查找占用内存高以及影响其性能的sql语句
  7. Flink的定时器(EventTime和ProcessTime)
  8. 数据仓库ETL(二)基本概念
  9. 网页打开Android APP
  10. 一个简单 JDK 动态代理的实例
  11. 第一章数据结构和算法简介
  12. [bzoj 4066]简单题
  13. python开三次方根函数_Python 中,给 -8 开三次方根出来的是一个虚数,而不是 -2,这怎么办?...
  14. 使用Subversion进行版本控制
  15. 《网络是这样连接的》读书笔记2
  16. LimeSDR srsLTE实验
  17. 熊太行.关系攻略之---正确认识关系和自己
  18. 懒惰程序员的百宝箱:提升工作效率的七大神器
  19. Appium:无法启动应该,报错: Moving to state ‘stopped‘
  20. ins是什么与Instagram有什么区别

热门文章

  1. Windows-右键通过scp复制文件(自动输入密码)
  2. 智慧城市离不开的四层数据“架构”
  3. windows环境下启动mongodb服务
  4. Android蓝牙开发系列文章-扫不到蓝牙设备,你的姿势对了吗?
  5. python批量修改word表格实例尝试(python-docx模块)
  6. AspectJ——简介以及在IntelliJ IDEA下的配置
  7. r语言员工离职_r语言、 weka代写从决策树模型看员工为什么离职?
  8. Python笔试题记录——字符串类笔试题自记
  9. 人工智能何时传入中国?
  10. Clique PoA consensus 建立Private chain