From ea435789dc2fab30ec16fa765a0b6577fe08166a Mon Sep 17 00:00:00 2001
From: GuoWenxue <“guowenxue@gmail.com”>
Date: Tue, 19 Apr 2022 10:06:03 +0800
Subject: [PATCH] update client and socket.c, add DNS support

---
 iotd/hal/sht20.c |  496 +++++++++++++++++++++++++++---------------------------
 1 files changed, 249 insertions(+), 247 deletions(-)

diff --git a/iotd/hal/sht20.c b/iotd/hal/sht20.c
index d881b43..fed3000 100644
--- a/iotd/hal/sht20.c
+++ b/iotd/hal/sht20.c
@@ -68,57 +68,58 @@
 
 int sht2x_softreset(int fd)
 {
-	uint8_t           buf[4];
+    uint8_t           buf[4];
 
-	if( fd<0 )
-	{
-		log_err("Invalid input arguments\n");
-		return -1;
-	}
+    if( fd<0 )
+    {
+        log_err("Invalid input arguments\n");
+        return -1;
+    }
 
-	/* software reset SHT2x */
-	memset(buf, 0, sizeof(buf));
+    /* software reset SHT2x */
+    memset(buf, 0, sizeof(buf));
 
-	buf[0] = SOFTRESET;
-	write(fd, buf, 1);
+    buf[0] = SOFTRESET;
+    write(fd, buf, 1);
 
-	msleep(50);
+    msleep(50);
 
-	return 0;
+    return 0;
 }
 
 int sht2x_init(void)
 {
-	
-	if( (s_sht2x_fd=open("/dev/i2c-1", O_RDWR)) < 0)
-	{
-		log_fatal("i2c device open failed: %s\n", strerror(errno));
+
+    if( (s_sht2x_fd=open("/dev/i2c-1", O_RDWR)) < 0)
+    {
+        log_fatal("i2c device open failed: %s\n", strerror(errno));
         return -1;
-	}
-	
-	/* set I2C mode and SHT2x slave address */
-	ioctl(s_sht2x_fd, I2C_TENBIT, 0);    /* Not 10-bit but 7-bit mode */
-	ioctl(s_sht2x_fd, I2C_SLAVE, 0x40); /* set SHT2x slava address 0x40*/
+    }
 
-	if( sht2x_softreset(s_sht2x_fd) < 0 )
-	{
-		log_err("SHT2x softreset failure\n");
+    /* set I2C mode and SHT2x slave address */
+    ioctl(s_sht2x_fd, I2C_TENBIT, 0);    /* Not 10-bit but 7-bit mode */
+    ioctl(s_sht2x_fd, I2C_SLAVE, 0x40); /* set SHT2x slava address 0x40*/
+
+    if( sht2x_softreset(s_sht2x_fd) < 0 )
+    {
+        log_err("SHT2x softreset failure\n");
         sht2x_term();
-		return -2;
-	}
+        return -2;
+    }
 
-	return s_sht2x_fd;
+    log_dbg("SHT2X initialise ok, s_sht2x_fd=%d\n", s_sht2x_fd);
+    return s_sht2x_fd;
 }
 
 int sht2x_get_temp_humidity(float *temp, float *rh)
 {
-	uint8_t           buf[4];
+    uint8_t           buf[4];
 
-	if( !temp || !rh )
-	{
-		log_err("Invalid input arguments\n");
-		return -1;
-	}
+    if( !temp || !rh )
+    {
+        log_err("Invalid input arguments\n");
+        return -1;
+    }
 
     if( s_sht2x_fd < 0 )
     {
@@ -129,42 +130,42 @@
         }
     }
 
-	/* send trigger temperature measure command and read the data */
-	memset(buf, 0, sizeof(buf));
-	buf[0]=TRIGGER_TEMPERATURE_NO_HOLD;
-	write(s_sht2x_fd, buf, 1);
+    /* send trigger temperature measure command and read the data */
+    memset(buf, 0, sizeof(buf));
+    buf[0]=TRIGGER_TEMPERATURE_NO_HOLD;
+    write(s_sht2x_fd, buf, 1);
 
-	msleep(85); /* datasheet: typ=66, max=85 */
+    msleep(85); /* datasheet: typ=66, max=85 */
 
-	memset(buf, 0, sizeof(buf));
-	read(s_sht2x_fd, buf, 3);
-	//dump_buf("Temperature sample data: ", buf, 3);
-	*temp = 175.72 * (((((int) buf[0]) << 8) + buf[1]) / 65536.0) - 46.85;
-	
-	/* send trigger humidity measure command and read the data */
-	memset(buf, 0, sizeof(buf));
-	buf[0] = TRIGGER_HUMIDITY_NO_HOLD;	
-	write(s_sht2x_fd, buf, 1);
+    memset(buf, 0, sizeof(buf));
+    read(s_sht2x_fd, buf, 3);
+    //dump_buf("Temperature sample data: ", buf, 3);
+    *temp = 175.72 * (((((int) buf[0]) << 8) + buf[1]) / 65536.0) - 46.85;
 
-	msleep(29); /* datasheet: typ=22, max=29 */
-	memset(buf, 0, sizeof(buf));
+    /* send trigger humidity measure command and read the data */
+    memset(buf, 0, sizeof(buf));
+    buf[0] = TRIGGER_HUMIDITY_NO_HOLD;	
+    write(s_sht2x_fd, buf, 1);
 
-	read(s_sht2x_fd, buf, 3);
-	//dump_buf("Relative humidity sample data: ", buf, 3);
-	*rh = 125 * (((((int) buf[0]) << 8) + buf[1]) / 65536.0) - 6;
+    msleep(29); /* datasheet: typ=22, max=29 */
+    memset(buf, 0, sizeof(buf));
 
-	return 0;
+    read(s_sht2x_fd, buf, 3);
+    //dump_buf("Relative humidity sample data: ", buf, 3);
+    *rh = 125 * (((((int) buf[0]) << 8) + buf[1]) / 65536.0) - 6;
+
+    return 0;
 }
 
 int sht2x_get_serialnumber(uint8_t *serialnumber, int size)
 {
-	uint8_t           buf[4];
+    uint8_t           buf[4];
 
-	if( !serialnumber || size!=8 )
-	{
-		log_err("Invalid input arguments\n");
-		return -1;
-	}
+    if( !serialnumber || size!=8 )
+    {
+        log_err("Invalid input arguments\n");
+        return -1;
+    }
 
     if( s_sht2x_fd < 0 )
     {
@@ -175,37 +176,37 @@
         }
     }
 
-	/* Read SerialNumber from Location 1 */
-	memset(buf, 0, sizeof(buf));
-	buf[0] = 0xfa;  /* command for readout on-chip memory */
-	buf[1] = 0x0f;  /* on-chip memory address */
-	write(s_sht2x_fd, buf, 2);
+    /* Read SerialNumber from Location 1 */
+    memset(buf, 0, sizeof(buf));
+    buf[0] = 0xfa;  /* command for readout on-chip memory */
+    buf[1] = 0x0f;  /* on-chip memory address */
+    write(s_sht2x_fd, buf, 2);
 
-	memset(buf, 0, sizeof(buf));
-	read(s_sht2x_fd, buf, 4);
+    memset(buf, 0, sizeof(buf));
+    read(s_sht2x_fd, buf, 4);
 
-	serialnumber[5]=buf[0]; /* Read SNB_3 */
-	serialnumber[4]=buf[1]; /* Read SNB_2 */
-	serialnumber[3]=buf[2]; /* Read SNB_1 */
-	serialnumber[2]=buf[3]; /* Read SNB_0 */
-	
-	/* Read SerialNumber from Location 2 */
-	memset(buf, 0, sizeof(buf) );
-	buf[0]=0xfc;  /* command for readout on-chip memory */
-	buf[1]=0xc9;  /* on-chip memory address */
-	write(s_sht2x_fd, buf, 2);
+    serialnumber[5]=buf[0]; /* Read SNB_3 */
+    serialnumber[4]=buf[1]; /* Read SNB_2 */
+    serialnumber[3]=buf[2]; /* Read SNB_1 */
+    serialnumber[2]=buf[3]; /* Read SNB_0 */
 
-	memset(buf, 0, sizeof(buf) );
-	read(s_sht2x_fd, buf, 4);
+    /* Read SerialNumber from Location 2 */
+    memset(buf, 0, sizeof(buf) );
+    buf[0]=0xfc;  /* command for readout on-chip memory */
+    buf[1]=0xc9;  /* on-chip memory address */
+    write(s_sht2x_fd, buf, 2);
 
-	serialnumber[1]=buf[0]; /* Read SNC_1 */
-	serialnumber[0]=buf[1]; /* Read SNC_0 */
-	serialnumber[7]=buf[2]; /* Read SNA_1 */
-	serialnumber[6]=buf[3]; /* Read SNA_0 */
+    memset(buf, 0, sizeof(buf) );
+    read(s_sht2x_fd, buf, 4);
 
-	//dump_buf("SHT2x Serial number: ", serialnumber, 8);
+    serialnumber[1]=buf[0]; /* Read SNC_1 */
+    serialnumber[0]=buf[1]; /* Read SNC_0 */
+    serialnumber[7]=buf[2]; /* Read SNA_1 */
+    serialnumber[6]=buf[3]; /* Read SNA_0 */
 
-	return 0;
+    //dump_buf("SHT2x Serial number: ", serialnumber, 8);
+
+    return 0;
 }
 
 #elif (defined I2C_API_IOCTL)  /* Use I2C userspace driver read/write API */
@@ -213,67 +214,68 @@
 int sht2x_softreset(int fd)
 {
     struct i2c_msg               msg;
-	struct i2c_rdwr_ioctl_data   sht2x_data;
-	uint8_t                      buf[2];
+    struct i2c_rdwr_ioctl_data   sht2x_data;
+    uint8_t                      buf[2];
 
-	if( fd<0 )
-	{
-		log_err("Invalid input arguments\n");
-		return -1;
-	}
+    if( fd<0 )
+    {
+        log_err("Invalid input arguments\n");
+        return -1;
+    }
 
-	msg.addr= 0x40; 
-	msg.flags=0; //write
-	msg.len= 1; 
-	msg.buf= buf; 
-	msg.buf[0]=SOFTRESET;
+    msg.addr= 0x40; 
+    msg.flags=0; //write
+    msg.len= 1; 
+    msg.buf= buf; 
+    msg.buf[0]=SOFTRESET;
 
-	sht2x_data.nmsgs= 1; 
-	sht2x_data.msgs= &msg;
+    sht2x_data.nmsgs= 1; 
+    sht2x_data.msgs= &msg;
 
-	if( ioctl(fd, I2C_RDWR, &sht2x_data) < 0 )
-	{
-		log_err("sht2x I2C_RDWR ioctl failure: %s\n", strerror(errno));
+    if( ioctl(fd, I2C_RDWR, &sht2x_data) < 0 )
+    {
+        log_err("sht2x I2C_RDWR ioctl failure: %s\n", strerror(errno));
         sht2x_term();
-		return -2;
-	}
+        return -2;
+    }
 
-	msleep(50);
+    msleep(50);
 
-	return 0;
+    return 0;
 }
 
 
 int sht2x_init(void)
 {
-	if( (s_sht2x_fd=open("/dev/i2c-1", O_RDWR)) < 0)
-	{
+    if( (s_sht2x_fd=open("/dev/i2c-1", O_RDWR)) < 0)
+    {
         log_err("i2c device open failed: %s\n", strerror(errno));
         return -1;
-	}
+    }
 
-	if( sht2x_softreset(s_sht2x_fd) < 0 )
-	{
-		log_err("SHT2x softreset failure\n");
+    if( sht2x_softreset(s_sht2x_fd) < 0 )
+    {
+        log_err("SHT2x softreset failure\n");
         sht2x_term();
-		return -2;
-	}
+        return -2;
+    }
 
+    log_dbg("SHT2X initialise ok, s_sht2x_fd=%d\n", s_sht2x_fd);
     return 0;
 }
 
 int sht2x_get_serialnumber(uint8_t *serialnumber, int size)
 {
     struct i2c_msg               msgs[2];
-	struct i2c_rdwr_ioctl_data   sht2x_data;
-	uint8_t                      sbuf[2];
-	uint8_t                      rbuf[4];
+    struct i2c_rdwr_ioctl_data   sht2x_data;
+    uint8_t                      sbuf[2];
+    uint8_t                      rbuf[4];
 
-	if( !serialnumber || size!=8 )
-	{
-		log_err("Invalid input arguments\n");
-		return -1;
-	}
+    if( !serialnumber || size!=8 )
+    {
+        log_err("Invalid input arguments\n");
+        return -1;
+    }
 
     if( s_sht2x_fd < 0 )
     {
@@ -284,86 +286,86 @@
         }
     }
 
-	/*+------------------------------------------+
-	 *|     Read SerialNumber from Location 1    |
-	 *+------------------------------------------+*/
+    /*+------------------------------------------+
+     *|     Read SerialNumber from Location 1    |
+     *+------------------------------------------+*/
 
-	msgs[0].addr= 0x40; 
-	msgs[0].flags=0; //write
-	msgs[0].len= 2; 
-	msgs[0].buf= sbuf; 
-	msgs[0].buf[0]=0xfa;  /* command for readout on-chip memory */
-	msgs[0].buf[1]=0x0f;  /* on-chip memory address */
-	
-	msgs[1].addr=0x40; 
-	msgs[1].flags=I2C_M_RD; //write
-	msgs[1].len= 4; 
-	msgs[1].buf= rbuf; 
+    msgs[0].addr= 0x40; 
+    msgs[0].flags=0; //write
+    msgs[0].len= 2; 
+    msgs[0].buf= sbuf; 
+    msgs[0].buf[0]=0xfa;  /* command for readout on-chip memory */
+    msgs[0].buf[1]=0x0f;  /* on-chip memory address */
 
-	sht2x_data.nmsgs= 2; 
-	sht2x_data.msgs= msgs;
+    msgs[1].addr=0x40; 
+    msgs[1].flags=I2C_M_RD; //write
+    msgs[1].len= 4; 
+    msgs[1].buf= rbuf; 
 
-	if( ioctl(s_sht2x_fd, I2C_RDWR, &sht2x_data) < 0 )
-	{
-		log_err("sht2x I2C_RDWR ioctl failure: %s\n", strerror(errno));
+    sht2x_data.nmsgs= 2; 
+    sht2x_data.msgs= msgs;
+
+    if( ioctl(s_sht2x_fd, I2C_RDWR, &sht2x_data) < 0 )
+    {
+        log_err("sht2x I2C_RDWR ioctl failure: %s\n", strerror(errno));
         sht2x_term();
-		return -2;
-	}
-	
-	serialnumber[5]=rbuf[0]; /* Read SNB_3 */
+        return -2;
+    }
+
+    serialnumber[5]=rbuf[0]; /* Read SNB_3 */
     serialnumber[4]=rbuf[1]; /* Read SNB_2 */
     serialnumber[3]=rbuf[2]; /* Read SNB_1 */
     serialnumber[2]=rbuf[3]; /* Read SNB_0 */
 
 
-	/*+------------------------------------------+
-	 *|     Read SerialNumber from Location 2    |
-	 *+------------------------------------------+*/
-	
-	msgs[0].addr= 0x40; 
-	msgs[0].flags=0; //write
-	msgs[0].len= 2; 
-	msgs[0].buf= sbuf; 
-	msgs[0].buf[0]=0xfc;  /* command for readout on-chip memory */
-	msgs[0].buf[1]=0xc9;  /* on-chip memory address */
-	
-	msgs[1].addr=0x40; 
-	msgs[1].flags=I2C_M_RD; //write
-	msgs[1].len= 4; 
-	msgs[1].buf= rbuf; 
+    /*+------------------------------------------+
+     *|     Read SerialNumber from Location 2    |
+     *+------------------------------------------+*/
 
-	sht2x_data.nmsgs= 2; 
-	sht2x_data.msgs= msgs;
+    msgs[0].addr= 0x40; 
+    msgs[0].flags=0; //write
+    msgs[0].len= 2; 
+    msgs[0].buf= sbuf; 
+    msgs[0].buf[0]=0xfc;  /* command for readout on-chip memory */
+    msgs[0].buf[1]=0xc9;  /* on-chip memory address */
 
-	if( ioctl(s_sht2x_fd, I2C_RDWR, &sht2x_data) < 0 )
-	{
-		log_err("sht2x I2C_RDWR ioctl failure: %s\n", strerror(errno));
+    msgs[1].addr=0x40; 
+    msgs[1].flags=I2C_M_RD; //write
+    msgs[1].len= 4; 
+    msgs[1].buf= rbuf; 
+
+    sht2x_data.nmsgs= 2; 
+    sht2x_data.msgs= msgs;
+
+    if( ioctl(s_sht2x_fd, I2C_RDWR, &sht2x_data) < 0 )
+    {
+        log_err("sht2x I2C_RDWR ioctl failure: %s\n", strerror(errno));
         sht2x_term();
-		return -2;
-	}
-	
-	serialnumber[1]=rbuf[0]; /* Read SNC_1 */
-	serialnumber[0]=rbuf[1]; /* Read SNC_0 */
-	serialnumber[7]=rbuf[2]; /* Read SNA_1 */
-	serialnumber[6]=rbuf[3]; /* Read SNA_0 */
+        return -2;
+    }
 
-	//dump_buf("SHT2x Serial number: ", serialnumber, 8);
+    serialnumber[1]=rbuf[0]; /* Read SNC_1 */
+    serialnumber[0]=rbuf[1]; /* Read SNC_0 */
+    serialnumber[7]=rbuf[2]; /* Read SNA_1 */
+    serialnumber[6]=rbuf[3]; /* Read SNA_0 */
 
-	return 0;
+    //dump_buf("SHT2x Serial number: ", serialnumber, 8);
+
+    return 0;
 }
 
 
 int sht2x_get_temp_humidity(float *temp, float *rh)
 {
     struct i2c_msg               msg;
-	struct i2c_rdwr_ioctl_data   sht2x_data;
-	uint8_t                      buf[4];
+    struct i2c_rdwr_ioctl_data   sht2x_data;
+    uint8_t                      buf[4];
 
-	if( !temp || !rh )
-	{
-		log_err("Invalid input arguments\n");
-		return -1;
-	}
+    if( !temp || !rh )
+    {
+        log_err("Invalid input arguments\n");
+        return -1;
+    }
 
     if( s_sht2x_fd < 0 )
     {
@@ -373,91 +375,91 @@
             return -2;
         }
     }
-	
-	/*+------------------------------------------+
-	 *|       measure and get temperature        |
-	 *+------------------------------------------+*/
 
-	msg.addr= 0x40; 
-	msg.flags=0; //write
-	msg.len= 1; 
-	msg.buf= buf; 
-	msg.buf[0]=TRIGGER_TEMPERATURE_NO_HOLD;  /* trigger temperature without hold I2C bus */
+    /*+------------------------------------------+
+     *|       measure and get temperature        |
+     *+------------------------------------------+*/
 
-	sht2x_data.nmsgs= 1; 
-	sht2x_data.msgs= &msg;
+    msg.addr= 0x40; 
+    msg.flags=0; //write
+    msg.len= 1; 
+    msg.buf= buf; 
+    msg.buf[0]=TRIGGER_TEMPERATURE_NO_HOLD;  /* trigger temperature without hold I2C bus */
 
-	if( ioctl(s_sht2x_fd, I2C_RDWR, &sht2x_data) < 0 )
-	{
-		log_err("sht2x I2C_RDWR ioctl failure: %s\n", strerror(errno));
+    sht2x_data.nmsgs= 1; 
+    sht2x_data.msgs= &msg;
+
+    if( ioctl(s_sht2x_fd, I2C_RDWR, &sht2x_data) < 0 )
+    {
+        log_err("sht2x I2C_RDWR ioctl failure: %s\n", strerror(errno));
         sht2x_term();
-		return -2;
-	}
+        return -2;
+    }
 
-	msleep(85);
-	
-	memset(buf, 0, sizeof(buf));
-	msg.addr=0x40; 
-	msg.flags=I2C_M_RD; //write
-	msg.len= 3; 
-	msg.buf= buf; 
+    msleep(85);
 
-	sht2x_data.nmsgs= 1; 
-	sht2x_data.msgs= &msg;
+    memset(buf, 0, sizeof(buf));
+    msg.addr=0x40; 
+    msg.flags=I2C_M_RD; //write
+    msg.len= 3; 
+    msg.buf= buf; 
 
-	if( ioctl(s_sht2x_fd, I2C_RDWR, &sht2x_data) < 0 )
-	{
-		log_err("sht2x I2C_RDWR ioctl failure: %s\n", strerror(errno));
+    sht2x_data.nmsgs= 1; 
+    sht2x_data.msgs= &msg;
+
+    if( ioctl(s_sht2x_fd, I2C_RDWR, &sht2x_data) < 0 )
+    {
+        log_err("sht2x I2C_RDWR ioctl failure: %s\n", strerror(errno));
         sht2x_term();
-		return -2;
-	}
-	
-	//dump_buf("Temperature sample data: ", buf, 3);
-	*temp = 175.72 * (((((int) buf[0]) << 8) + buf[1]) / 65536.0) - 46.85;
+        return -2;
+    }
 
-	
-	/*+------------------------------------------+
-	 *|    measure and get relative humidity     |
-	 *+------------------------------------------+*/
+    //dump_buf("Temperature sample data: ", buf, 3);
+    *temp = 175.72 * (((((int) buf[0]) << 8) + buf[1]) / 65536.0) - 46.85;
 
-	msg.addr= 0x40; 
-	msg.flags=0; //write
-	msg.len= 1; 
-	msg.buf= buf; 
-	msg.buf[0]=TRIGGER_HUMIDITY_NO_HOLD;  /* trigger humidity without hold I2C bus */
 
-	sht2x_data.nmsgs= 1; 
-	sht2x_data.msgs= &msg;
+    /*+------------------------------------------+
+     *|    measure and get relative humidity     |
+     *+------------------------------------------+*/
 
-	if( ioctl(s_sht2x_fd, I2C_RDWR, &sht2x_data) < 0 )
-	{
-		log_err("sht2x I2C_RDWR ioctl failure: %s\n", strerror(errno));
+    msg.addr= 0x40; 
+    msg.flags=0; //write
+    msg.len= 1; 
+    msg.buf= buf; 
+    msg.buf[0]=TRIGGER_HUMIDITY_NO_HOLD;  /* trigger humidity without hold I2C bus */
+
+    sht2x_data.nmsgs= 1; 
+    sht2x_data.msgs= &msg;
+
+    if( ioctl(s_sht2x_fd, I2C_RDWR, &sht2x_data) < 0 )
+    {
+        log_err("sht2x I2C_RDWR ioctl failure: %s\n", strerror(errno));
         sht2x_term();
-		return -2;
-	}
+        return -2;
+    }
 
-	msleep(29);
-	
-	memset(buf, 0, sizeof(buf));
-	msg.addr=0x40; 
-	msg.flags=I2C_M_RD; //write
-	msg.len= 3; 
-	msg.buf= buf; 
+    msleep(29);
 
-	sht2x_data.nmsgs= 1; 
-	sht2x_data.msgs= &msg;
+    memset(buf, 0, sizeof(buf));
+    msg.addr=0x40; 
+    msg.flags=I2C_M_RD; //write
+    msg.len= 3; 
+    msg.buf= buf; 
 
-	if( ioctl(s_sht2x_fd, I2C_RDWR, &sht2x_data) < 0 )
-	{
-		log_err("sht2x I2C_RDWR ioctl failure: %s\n", strerror(errno));
+    sht2x_data.nmsgs= 1; 
+    sht2x_data.msgs= &msg;
+
+    if( ioctl(s_sht2x_fd, I2C_RDWR, &sht2x_data) < 0 )
+    {
+        log_err("sht2x I2C_RDWR ioctl failure: %s\n", strerror(errno));
         sht2x_term();
-		return -2;
-	}
+        return -2;
+    }
 
-	//dump_buf("Relative humidity sample data: ", buf, 3);
-       	*rh = 125 * (((((int) buf[0]) << 8) + buf[1]) / 65536.0) - 6;
-	
-	return 0;
+    //dump_buf("Relative humidity sample data: ", buf, 3);
+    *rh = 125 * (((((int) buf[0]) << 8) + buf[1]) / 65536.0) - 6;
+
+    return 0;
 }
 
 #endif

--
Gitblit v1.9.1