032——从GUI->Client->Server->driver实现ds18b20数据的采集

目录

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、 测试

 

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

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宇努力学习

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值