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 /* 视频流存储 */
效果
框架搭完后将更能添加到相应的位置即可