[T8TSK-227][sink]Optimize sink code of factory test
Change-Id: I0e63f9d7bcce76c38475a0d87fb70e0d73336d2e
(cherry picked from commit f3bc18ecbb6da8630cdfadc34900ce59f180d7b6)
diff --git a/src/lynq/lib/liblynq-at-factory/lynq_at_factory.cpp b/src/lynq/lib/liblynq-at-factory/lynq_at_factory.cpp
index c4b0375..fc4d4ec 100755
--- a/src/lynq/lib/liblynq-at-factory/lynq_at_factory.cpp
+++ b/src/lynq/lib/liblynq-at-factory/lynq_at_factory.cpp
@@ -83,38 +83,111 @@
pclose(fp);
}
+int set_campare(char dev_buf[][40],char *buf_str[3])
+{
+ FILE *fp;
+ int k = 15;
+ int j;
+ char lynq_usb_buf[256] = {0};
+ char buf[256] = {0};
+ for(j=0;j++;j<3)
+ {
+ sprintf(lynq_usb_buf,"cat /sys/class/leds/led95%d:%s",k++, dev_buf[j]);
+ fp=popen(lynq_usb_buf, "r");
+ fgets(buf, sizeof(buf), fp);
+ if(strcmp(buf,buf_str[j]))
+ {
+ pclose(fp);
+ return -1;
+ }
+ pclose(fp);
+ }
+ return 0;
+}
void lynq_handle_sink(char *input)
{
FILE *fp;
- char lynq_usb_dev[512] = {0};
- char lynq_usb_buf[512] = {0};
- char buf[512] = {0};
- int sink[3][3] = {{255,0,0},{0,255,0},{0,0,255}};
- char dev_buf[][40]={{"green:cellular-radio/brightness"},{"green:cellular-quality/brightness"},{"red:system/brightness"}};
- int i;
- int j;
- int k = 15;
+ time_t start,end;
+ char lynq_usb_dev[256] = {0};
+ char lynq[256] = {0};
+ char char_buf[16] = {0};
char flag_buf[64] = {0};
- for(i = 0;i < 3;i++){
+ int sink[3][3] = {{255,0,0},{0,255,0},{0,0,255}};
+ char dev_buf[][40] = {{"green:cellular-radio/brightness"},{"green:cellular-quality/brightness"},{"red:system/brightness"}};
+ char *str_buf[3] = {"0","0","0"};
+ int i,j,ret;
+ int state = 0;
+ int k = 15;
+
+ for(i = 0;i < 3;i++)
+ {
bzero(flag_buf, 64);
- bzero(lynq_usb_buf, 512);
- bzero(buf, 512);
k = 15;
- for(j = 0;j < 3;j++){
- bzero(lynq_usb_dev, 512);
- sprintf(lynq_usb_dev,"echo %d > /sys/class/leds/led95%d:%s 2>&1", sink[i][j], k++, dev_buf[j]);
- fp=popen(lynq_usb_dev, "r");
+
+ switch(i)
+ {
+ case 0:
+ {
+ str_buf[0]="255";
+ str_buf[1]="0";
+ str_buf[2]="0";
+ break;
}
- usleep(10000);
- sprintf(lynq_usb_buf,"cat /sys/bus/iio/devices/iio:device1/in_voltage4_input 2>&1");
- fp=popen(lynq_usb_buf, "r");
-
- fgets(buf, sizeof(buf), fp);
- sprintf(flag_buf, "%s%d%s%s%s", "SINK[", i+1, "]: ", buf, "\n");
- handle_output(flag_buf, strlen(flag_buf), Response);
+
+ case 1:
+ {
+ str_buf[0]="0";
+ str_buf[1]="255";
+ str_buf[2]="0";
+ break;
+ }
+
+ case 2:
+ {
+ str_buf[0]="0";
+ str_buf[1]="0";
+ str_buf[2]="255";
+ break;
+ }
+ }
+ for(int h=0;h<20;h++)
+ {
+ for(j = 0;j < 3;j++)
+ {
+ bzero(lynq_usb_dev, 256);
+ sprintf(lynq_usb_dev,"echo %d > /sys/class/leds/led95%d:%s 2>&1", sink[i][j], k++, dev_buf[j]);
+ fp=popen(lynq_usb_dev, "r");
+ pclose(fp);
+ }
+ bzero(char_buf,16);
+ if(set_campare(dev_buf,str_buf))
+ {
+ RLOGD("pre_campare fail %s line %d input %s\n", __FUNCTION__, __LINE__, input);
+ continue;
+ }
+ sprintf(lynq,"cat /sys/bus/iio/devices/iio:device1/in_voltage4_input 2>&1");
+ fp=popen(lynq, "r");
+ fgets(char_buf, sizeof(char_buf), fp);
+
+ if(set_campare(dev_buf,str_buf))
+ {
+ RLOGD("behand_campare fail %s line %d input %s\n", __FUNCTION__, __LINE__, input);
+ continue;
+ }
+ sprintf(flag_buf, "%s%d%s%s%s", "SINK[", i+1, "]: ", char_buf, "\n");
+ handle_output(flag_buf, strlen(flag_buf), Response);
+ state =1;
+ break;
+ }
+ if(state == 0)
+ {
+ sprintf(flag_buf, "%s%d%s%s%s", "SINK[", i+1, "]: ", char_buf, "\n");
+ handle_output(flag_buf, strlen(flag_buf), Response);
+ }
}
- lynq_response_ok();
pclose(fp);
+ lynq_response_ok();
+ return;
}
void lynq_handle_emmc(char *input)