调整代码内容

This commit is contained in:
xu
2026-10-08 09:17:12 +08:00
parent 48fc4058d8
commit db40049993
7 changed files with 489 additions and 43 deletions
+1 -1
View File
@@ -289,7 +289,7 @@ void sample_vo_chn_switch(int value){
} }
#endif #endif
#if 1 #if 1 //2lu
switch (value) { switch (value) {
case 0: /* 布局一 双屏:视频1(左) + 视频2(右),各 960x720 */ case 0: /* 布局一 双屏:视频1(左) + 视频2(右),各 960x720 */
vo_chn_switch(0, 1, 1); vo_chn_switch(0, 1, 1);
Binary file not shown.
+1
View File
@@ -1,3 +1,4 @@
arm-mix410-linux-gcc -o lc6600_uart_hisi ctrl_pnl.c confile.c serial.c uartinf.c udp_util.c -lrt arm-mix410-linux-gcc -o lc6600_uart_hisi ctrl_pnl.c confile.c serial.c uartinf.c udp_util.c -lrt
arm-mix410-linux-gcc -o lc660x_uart_hisi ctrl_pnl_new.c confile.c serial.c uartinf.c udp_util.c -lrt arm-mix410-linux-gcc -o lc660x_uart_hisi ctrl_pnl_new.c confile.c serial.c uartinf.c udp_util.c -lrt
arm-mix410-linux-gcc -o lc660x_uart_hisi ctrl_pnl.c confile.c serial.c uartinf.c udp_util.c -lrt arm-mix410-linux-gcc -o lc660x_uart_hisi ctrl_pnl.c confile.c serial.c uartinf.c udp_util.c -lrt
arm-mix410-linux-gcc -o lc660x_uart_hisi ctrl_pnl_test.c confile.c serial.c uartinf.c udp_util.c -lrt
+37 -42
View File
@@ -125,9 +125,6 @@ int setup_lc6600(struct lc6600_param *pparam){
if(read_ok == NULL){ if(read_ok == NULL){
printf("can not exce AT+CFUN=1"); printf("can not exce AT+CFUN=1");
} }
} }
static long elapsed_ms(struct timeval *start, struct timeval *end) static long elapsed_ms(struct timeval *start, struct timeval *end)
@@ -275,8 +272,6 @@ int get_rx2_freq(char *rx2){
#endif #endif
int main (int argc, char *argv[]) int main (int argc, char *argv[])
{ {
int n_read; int n_read;
@@ -370,49 +365,49 @@ int main (int argc, char *argv[])
n_read = uart_read(ROUTE_UART, _rx_data); n_read = uart_read(ROUTE_UART, _rx_data);
printf("%s\n",_rx_data); printf("%s\n",_rx_data);
#if 1 #if 1
if(n_read > 10){ if(n_read > 10){
//ip_str=strstr(_rx_data,argv[2]); //ip_str=strstr(_rx_data,argv[2]);
//ip_str=strstr(_rx_data,"192.168.1.15"); //ip_str=strstr(_rx_data,"192.168.1.15");
//ip_len = strlen(ip_str); //ip_len = strlen(ip_str);
//printf("ip_str %d \n ",ip_len); //printf("ip_str %d \n ",ip_len);
ip_str=strstr(_rx_data,argv[2]); ip_str=strstr(_rx_data,argv[2]);
ip_len = strlen(argv[2]); ip_len = strlen(argv[2]);
if(ip_str){ if(ip_str){
//buffer_param[0] = 0x55; //buffer_param[0] = 0x55;
//printf("ip_str %s \n ",ip_str); //printf("ip_str %s \n ",ip_str);
memcpy(index,ip_str+(ip_len+2),1); memcpy(index,ip_str+(ip_len+2),1);
//printf("index %s \n ",index); //printf("index %s \n ",index);
if(strcmp(index, "1") == 0){ if(strcmp(index, "1") == 0){
memcpy(rssi1,ip_str+(ip_len+5),3); memcpy(rssi1,ip_str+(ip_len+5),3);
dbm1 = atoi(rssi1); dbm1 = atoi(rssi1);
printf("++dbm1:%d\n",dbm1); printf("++dbm1:%d\n",dbm1);
buffer_param[1] = dbm1; buffer_param[1] = dbm1;
gettimeofday(&tv_rx1, NULL); gettimeofday(&tv_rx1, NULL);
}
if(strcmp(index, "2") == 0){
memcpy(rssi2,ip_str+(ip_len+5),3);
dbm2 = atoi(rssi2);
printf("++dbm2:%d\n",dbm2);
buffer_param[2] = dbm2;
gettimeofday(&tv_rx2, NULL);
}
}else{
printf("no signal\n");
}
} }
else{
if(strcmp(index, "2") == 0){ printf("no \n");
memcpy(rssi2,ip_str+(ip_len+5),3); uart_write(ROUTE_UART, "AT^DAPR=1\r");
dbm2 = atoi(rssi2); // buffer_param[0] = 0xAA;
printf("++dbm2:%d\n",dbm2);
buffer_param[2] = dbm2;
gettimeofday(&tv_rx2, NULL);
} }
}else{
printf("no signal\n");
}
}
else{
printf("no \n");
uart_write(ROUTE_UART, "AT^DAPR=1\r");
// buffer_param[0] = 0xAA;
}
#endif #endif
} }
+450
View File
@@ -0,0 +1,450 @@
#include <stdio.h>
#include <stdlib.h>
#include <sys/time.h> // gettimeofday
#include <sys/stat.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <fcntl.h>
#include <sys/mman.h>
#include <sys/ioctl.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <netdb.h>
#include <errno.h>
#include <time.h>
#include "serial.h"
#include "uartinf.h"
#include "confile.h"
#include "udp_util.h"
char _rx_data[1024];
struct lc6600_param{
int password;
int freq;
int power;
int bw;
int ap_sta;
int ip;
int setup;
};
char freq1[10];
char freq2[10];
//char dbm1[5];
//char dbm2[5];
#define RSSI_TIMEOUT_MS 3000 //超时时间
#define RSSI_NO_SIGNAL 0x55 //无信号值
int setup_lc6600(struct lc6600_param *pparam){
int n_read;
char *read_ok;
char str[30];
uart_write(ROUTE_UART, "AT+CFUN=0\r");
n_read = uart_read(ROUTE_UART, _rx_data);
read_ok = strstr(_rx_data,"OK");
if(read_ok == NULL){
printf("can not exce AT+CFUN=0");
}
sleep(1);
//password
sprintf(str,"AT^DAPI=%d\r",pparam->password);
uart_write(ROUTE_UART, str);
printf("%s\n",str);
n_read = uart_read(ROUTE_UART, _rx_data);
read_ok = strstr(_rx_data,"OK");
if(read_ok == NULL){
printf("can not exce AT^DAPI");
}
sleep(1);
// 1 center 2 station
sprintf(str,"AT^DDTC=%d\r",pparam->ap_sta);
uart_write(ROUTE_UART, str);
printf("%s\n",str);
n_read = uart_read(ROUTE_UART, _rx_data);
read_ok = strstr(_rx_data,"OK");
if(read_ok == NULL){
printf("can not exce AT^DDTC");
}
sleep(1);
// sprintf(str,"AT^DDTC=%d\r",pparam->ap_sta);
uart_write(ROUTE_UART, "AT^DSTC=2\r");
printf("AT^DSTC\n");
n_read = uart_read(ROUTE_UART, _rx_data);
read_ok = strstr(_rx_data,"OK");
if(read_ok == NULL){
printf("can not exce AT^DDSTC");
}
sleep(1);
// 2 5M 3 10M 4 15M 5 20M "25" dbm
sprintf(str,"AT^DRPS=,%d,\"%d\"\r",pparam->bw,pparam->power);
uart_write(ROUTE_UART, str);
printf("%s\n",str);
n_read = uart_read(ROUTE_UART, _rx_data);
read_ok = strstr(_rx_data,"OK");
if(read_ok == NULL){
printf("can not exce AT^DRPS\n");
}
sleep(1);
// 01 800M 04 1.4G 08 2.4G
sprintf(str,"AT^DAOCNDI=0%d\r",pparam->freq);
uart_write(ROUTE_UART, str);
printf("%s\n",str);
n_read = uart_read(ROUTE_UART, _rx_data);
read_ok = strstr(_rx_data,"OK");
if(read_ok == NULL){
printf("can not exce AT^DAOCNDI\n");
}
sleep(1);
sprintf(str,"AT^NETIFCFG=2,\"192.168.2.%d\"\r",pparam->ip);
uart_write(ROUTE_UART, str);
printf("%s\n",str);
n_read = uart_read(ROUTE_UART, _rx_data);
read_ok = strstr(_rx_data,"OK");
if(read_ok == NULL){
printf("can not exce AT^DAOCNDI\n");
}
sleep(1);
uart_write(ROUTE_UART, "AT+CFUN=1\r");
n_read = uart_read(ROUTE_UART, _rx_data);
read_ok = strstr(_rx_data,"OK");
if(read_ok == NULL){
printf("can not exce AT+CFUN=1");
}
}
static long elapsed_ms(struct timeval *start, struct timeval *end)
{
return (end->tv_sec - start->tv_sec) * 1000L
+ (end->tv_usec - start->tv_usec) / 1000L;
}
#define LINK_FLAG "/tmp/link_stat"
static void write_link_stat(void)
{
char buf[64];
int fd, n;
fd = open(LINK_FLAG ".tmp", O_CREAT | O_WRONLY | O_TRUNC, 0666);
if (fd < 0)
return;
n = snprintf(buf, sizeof(buf), "link=1\nts=%ld\n", (long)time(NULL));
write(fd, buf, n);
close(fd);
rename(LINK_FLAG ".tmp", LINK_FLAG);
}
static int force_up = 0; /* 调试用:强制标记为已连通 */
#if 0
int get_rx1_freq(char *rx1){
char *s1;
char *s2;
char *s3;
char *s4;
int len;
int i;
s1=strchr(rx1,',');
s2=strchr(s1+1,',');
s3=strchr(s2+1,',');
s4=strchr(s3+1,',');
len= s2-s1-1;
for(i=0;i<len;i++){
freq1[i] = *(s1+1+i);
}
printf("freq %s\n",freq1);
len=s4-s3-1-2; //"-44"
for(i=0;i<len;i++){
dbm1[i]=*(s3+2+i);
}
printf("dbm1 %s\n",dbm1);
return 0;
}
int get_rx1_dbm(char *rx1){
char *s1;
char *s2;
char *s3;
char *s4;
int len;
int i;
s1=strchr(rx1,',');
s2=strchr(s1+1,',');
s3=strchr(s2+1,',');
s4=strchr(s3+1,',');
len= s2-s1-1;
for(i=0;i<len;i++){
freq1[i] = *(s1+1+i);
}
//printf("freq %s\n",freq1);
len=s3-s2-1-2; //"-44"
for(i=0;i<len;i++){
dbm1[i]=*(s2+2+i);
}
printf("dbm1 %s\n",dbm1);
return 0;
}
int get_rx2_dbm(char *rx1){
char *s1;
char *s2;
char *s3;
char *s4;
int len;
int i;
s1=strchr(rx1,',');
s2=strchr(s1+1,',');
s3=strchr(s2+1,',');
s4=strchr(s3+1,',');
len= s2-s1-1;
for(i=0;i<len;i++){
freq1[i] = *(s1+1+i);
}
printf("freq %s\n",freq1);
len=s3-s2-1-2; //"-44"
for(i=0;i<len;i++){
dbm2[i]=*(s2+2+i);
}
printf("dbm2 %s\n",dbm2);
return 0;
}
int get_rx2_freq(char *rx2){
char *s1;
char *s2;
char *s3;
char *s4;
int len;
int i;
s1=strchr(rx2,',');
s2=strchr(s1+1,',');
s3=strchr(s2+1,',');
s4=strchr(s3+1,',');
len= s2-s1-1;
for(i=0;i<len;i++){
freq2[i] = *(s1+1+i);
}
printf("freq %s\n",freq2);
len=s4-s3-1-2; //"-44"
for(i=0;i<len;i++){
dbm2[i]=*(s3+2+i);
}
printf("dbm1 %s\n",dbm1);
return 0;
}
#endif
int main (int argc, char *argv[])
{
int n_read;
int i;
struct lc6600_param lc6600;
char buffer[1024];
char rssi1[3];
char rssi2[3];
//char ip[15];
char index[1];
//char *rx1;
//char *rx2;
//int rssi1;
//int rssi2;
int dbm1;
int dbm2;
char *ip_str;
//char *ip_str1;
char *buffer_freq;
char freq_str[8];
int freq;
int fq;
int fd_param;
int *buffer_param;
struct timeval tv_rx1 = {0, 0}, tv_rx2 = {0, 0}, tv_now;
int ip_len;
int len;
int rx1_ok, rx2_ok;
unlink(LINK_FLAG); /* 清掉上次可能的残留 */
n_read = uart_init(ROUTE_UART, "/dev/ttyAMA2", 115200, 'N');
if(n_read <=0 ) {
printf("open /dev/ttyAMA2 failed\n");
return -1;
}
lc6600.ap_sta = atoi(argv[1]);
if(argc > 3)
force_up = atoi(argv[3]);
fd_param = shm_open("/param.txt",O_RDWR|O_CREAT|O_EXCL,0777);
if(fd_param < 0){
fd_param = shm_open("/param.txt",O_RDWR,0777);
}else
ftruncate(fd_param,4096);
buffer_param= mmap(NULL,4096,PROT_READ|PROT_WRITE,MAP_SHARED,fd_param,0);
#if 1
uart_write(ROUTE_UART, "AT^DRPS?\r");
n_read = uart_read(ROUTE_UART, _rx_data);
printf("%s\n",_rx_data);
buffer_freq = (n_read > 0) ? strstr(_rx_data, "^DRPS:") : NULL;
if(buffer_freq){
memcpy(freq_str, buffer_freq+6, 6);
freq_str[6] = '\0';
printf("drps : %s\n",freq_str);
freq = atoi(freq_str);
printf("freq %d \n",freq);
buffer_param[3]=freq;
}else{
printf("no freq\n");
}
#endif
//freq=atoi(argv[3]);
// buffer_param[0] = 0x55;
//buffer_param[3] = 14300;
if(lc6600.ap_sta == 1){
uart_write(ROUTE_UART, "AT^DAPR=1\r");
// n_read = uart_read(ROUTE_UART, _rx_data);
// printf("%s\n",_rx_data);
while(1){
gettimeofday(&tv_now, NULL);
rx1_ok = (tv_rx1.tv_sec != 0 && elapsed_ms(&tv_rx1, &tv_now) <= RSSI_TIMEOUT_MS);
rx2_ok = (tv_rx2.tv_sec != 0 && elapsed_ms(&tv_rx2, &tv_now) <= RSSI_TIMEOUT_MS);
if (!rx1_ok) {
buffer_param[1] = RSSI_NO_SIGNAL;
printf("rx1 no signal timeout\n");
}
if (!rx2_ok) {
buffer_param[2] = RSSI_NO_SIGNAL;
printf("rx2 no signal timeout\n");
}
if(force_up)
write_link_stat();
printf("%s\n",_rx_data);
#if 1
if(n_read > 10){
//ip_str=strstr(_rx_data,argv[2]);
//ip_str=strstr(_rx_data,"192.168.1.15");
//ip_len = strlen(ip_str);
//printf("ip_str %d \n ",ip_len);
ip_str=strstr(_rx_data,argv[2]);
ip_len = strlen(argv[2]);
if(ip_str){
write_link_stat();
//buffer_param[0] = 0x55;
//printf("ip_str %s \n ",ip_str);
memcpy(index,ip_str+(ip_len+2),1);
//printf("index %s \n ",index);
if(strcmp(index, "1") == 0){
memcpy(rssi1,ip_str+(ip_len+5),3);
dbm1 = atoi(rssi1);
printf("++dbm1:%d\n",dbm1);
buffer_param[1] = dbm1;
gettimeofday(&tv_rx1, NULL);
}
if(strcmp(index, "2") == 0){
memcpy(rssi2,ip_str+(ip_len+5),3);
dbm2 = atoi(rssi2);
printf("++dbm2:%d\n",dbm2);
buffer_param[2] = dbm2;
gettimeofday(&tv_rx2, NULL);
}
}else{
printf("no signal\n");
}
}
else{
printf("no \n");
uart_write(ROUTE_UART, "AT^DAPR=1\r");
// buffer_param[0] = 0xAA;
}
#endif
}
}
}
Binary file not shown.