From f63647218e192628aa8598d504e064529398f159 Mon Sep 17 00:00:00 2001 From: guowenxue <guowenxue@gmail.com> Date: Mon, 06 Nov 2023 17:22:09 +0800 Subject: [PATCH] rename ddns example code --- prj1_tlv/tlv_client.c | 87 +++++++++++++++++++++++-------------------- 1 files changed, 47 insertions(+), 40 deletions(-) diff --git a/prj1_tlv/tlv_client.c b/prj1_tlv/tlv_client.c index 98c392d..a8108bc 100644 --- a/prj1_tlv/tlv_client.c +++ b/prj1_tlv/tlv_client.c @@ -22,6 +22,7 @@ #include "ds18b20.h" #include "socket.h" #include "tlv_pack.h" +#include "sqlite_cli.h" #define PROG_VERSION "1.0.0" #define RPI_SN "RPI00001" @@ -69,7 +70,7 @@ char pid_file[64] = { 0 }; /* The file used to record the PID */ const char *progname=NULL; - char *host = "192.168.2.110:10086"; + char *host = "127.0.0.1:10086"; //char *host = "baidu.com:10086"; int log_level = LOG_LEVEL_NRML; char *log_file = DEF_LOG_FILE; @@ -130,15 +131,11 @@ } } -#if 1 if( !host ) { printf("ERROR: No argument specify host server address and port, please refer to usage\n"); - // return 1; + return 1; } - - -#endif /* check program already running or not, if already running then exit, or set running as daemon */ snprintf(pid_file, sizeof(pid_file), "/tmp/%s.pid", progname); @@ -150,7 +147,7 @@ return -1; } - daemon(1, 1); + set_daemon_running(pid_file); } record_daemon_pid(pid_file); @@ -162,18 +159,16 @@ return 2; } + log_nrml("Program start running\n"); + /* install signal proc handler */ install_proc_signal(); - log_nrml("Program start running\n"); - -#if 0 - if( initial_db(&sqldb, db_file) < 0) + if( clidb_init("./tlv_client.db")< 0) { - log_err("initialise sqlite database failure\n"); + log_err("initial sqlite database failure\n"); return 3; } -#endif last_time = 0; @@ -181,7 +176,7 @@ while( !g_signal.stop ) { time(&cur_time); - if( cur_time-last_time > 3) + if( cur_time-last_time > 10) { log_nrml("start sample temperature now.\n"); rv = 0; @@ -213,44 +208,49 @@ } } - if( (tlv.flag&TLV_FLAG_TX) && SOCK_STAT_CONNECTED==sock.status ) + if( SOCK_STAT_CONNECTED == sock.status ) { - if(0 == socket_send_tlv_pack(&sock, &tlv, DEF_ACK_TIMEOUT, DEF_RETRYTIMES) ) - { - tlv.flag = 0; + /* send current new sample TLV packet */ + if( tlv.flag&TLV_FLAG_TX ) + { + if(0 == socket_send_tlv_pack(&sock, &tlv, DEF_ACK_TIMEOUT, DEF_RETRYTIMES) ) + { + tlv.flag = 0; + } } - } -#if 0 - /* need to send TLV packet in database now */ - for(i=0; i<5; i++) - { - /* get a TLV record from DB and send it by socket */ - /* rv<0: Erorr rv=0: No record >0: record count */ - rv = get_db_tlv_pack(sqldb, tlv, size) ; - if( rv <= 0) - break; - - if( 0 == socket_send_tlv_pack() ) + /* get TLV apcket from database and send it by socket, maxim 5 records */ + for(i=0; i<5; i++) { - /* delete the record from DB */ - del_db_tlv_pack(); + int id; + tlv_buf_t tmp; + + if( clidb_pop_tlvpack(&tmp, &id) <= 0 ) + { + break; + } + + /* send the TLV packet from database */ + if(0 == socket_send_tlv_pack(&sock, &tmp, DEF_ACK_TIMEOUT, DEF_RETRYTIMES) ) + { + /* delete the record from DB */ + clidb_del_tlvpack(id); + } } + } -SAVE_DB: - if( tlv_buf.flag & TLV_FLAG_DB) + if( tlv.flag & TLV_FLAG_DB ) { - record_db_tlv(sqldb, tlv_buf, tlv_len); + clidb_push_tlvpack(&tlv); + tlv.flag = 0; } -#endif sleep(1); } logger_term(); - - //db_term(); + clidb_term(); return 0; } @@ -309,6 +309,9 @@ int rv = 0; char buf[128]; + if( sock->status != SOCK_STAT_CONNECTED ) + return -1; + log_info("start to send tlv packet from socket now\n"); for(i=0; i<retry_times; i++) @@ -321,9 +324,13 @@ if( (rv=socket_recv(sock, buf, sizeof(buf), timeout)) < 0 ) { - log_err("read ACK from server failure, rv=%d\n"); - return -2; + log_err("read ACK from server failure, rv=%d\n", rv); + return 0; } + + /* todo: parser ACK from buf */ + if( ACK ) + break; } return 0; -- Gitblit v1.9.1