目录
1、客户端修改和通信帧确定
2、 修改服务器程序
3、 添加driver_handle程序
4、 测试
1、客户端修改和通信帧确定
上次写dht11的时候顺手把ds18b20的GUI一起改了所以这次直接去改client
            #ds18b20
            elif cmd[2] == '0' and cmd[3] == '6':
                if cmd[4] == 'g':
                    try:
                        global_var.TEM=cmd[5]+cmd[6]
                        message = f"{global_var.TEM}°C"
                        window['DS18B20_O'].update(message)
                    except:
                        message = "ERROR"
                        window['DS18B20_O'].update(message)
                        print("DS18B20: message ERROR")
                else:
                    message = "ERROR"
                    window['DS18B20_O'].update(message)
                    print("DS18B20: message ERROR")2、 修改服务器程序
            case 6:
                printf("ds18b20!!!\n");
                if ('g' == cmd[4])
                {
                    ret = ds18b20_handle(buf);
                    tx_buffer = buf;
                }
                printf(">>>>>>%s\n",tx_buffer);         
                if (send(acceptfd, tx_buffer, strlen(tx_buffer), 0) < 0)
                {
                    perror("send failed");  
                }好像程序越来越好写了呢,其实这才是正确的现象。
这说明框架越来越完善了,不过我的框架有一堆问题还没改现在只能将就着用。
3、 添加driver_handle程序
/*
*author   : xintianyu
*function : Handle dht11 Settings
*date     : 2024-4-22
-----------------------
author date  modify
*/
int ds18b20_handle(char *data)
{
	/*传入参数后面要做通用处理使用空指针*/
    char *device = "/dev/cebss_ds18b20";
	int buf[2];
    int ret = NOERROR;
	static int fd;
    /* 打开文件 */
	fd = open(device, O_RDWR);
	if (fd == -1)
	{
		printf("can not open file %s\n", device);
		return ERROR;
	}
	if (read(fd, buf, 8) == 8)
	{
		printf("get ds18b20: %d.%d\n", buf[0], buf[1]);
		sprintf(data,"@006g%d%d", buf[0], buf[1]);
	}
	else
	{
		printf("get ds18b20: -1\n");
	    sprintf(data,"@006e");
	}
	return ret;
}4、 测试
 
 


有了这个框架十分钟就能新增一个模块。大大提高了开放效率。


















