php+mysql+workerman+uni-app开发一套新能源汽车充电桩管理平台

本文介绍了如何使用PHP和Workerman技术栈在有限的时间和预算内开发出稳定的充电桩管理系统。系统包括电站查询、导航、充值等功能,支持多级运营商管理和数据安全。通过解析硬件厂商的报文帧格式,实现了服务器与硬件的数据交互,并利用Redis和MySQL进行数据存储。此外,客户端采用uni-app进行开发,覆盖了安卓和苹果平台。

前言

充电桩管理系统按理用springboot技术架构去解决,但因为客户的开发周期短,预算低原因,我们使用了我们最熟悉的php+workerman技术栈解决了,经过2个月的开发,一年的使用,目前整套系统运行稳定,没有发现明显的问题,所以在这里记录下我们开发的过程。
充电桩运营管理系统,提供全套的定制化充电解决方案。一个管理平台对接多家硬件协议。

自建私有服务器,数据安全、数据隐私得到保障。
功能模块有:电站查询、导航、充值、退款,消费明细、数据大 屏、发票自动开具等功能。
支持多级子运营商管理,可进行统一或单独的财务结算。
客户端包含安卓APP、 苹果APP、微信小程序。
协议参照GBT-27930在这里插入图片描述
希望大家一起来讨论:150-5606-9927


提示:以下是本篇文章正文内容,下面案例可供参考

一、技术开发需求

充电桩主要包括:
1 服务器获取充电桩硬件的数据
2 充电桩发送数据给服务器
3 充电桩数据映射成api接口
4 客户端APP 跟服务器数据交互

二、技术解决

硬件厂商发来的应用层报文桢格式

应用层数据结构
起始标志 数据长度 序列号域 加密标志 桢类型标志 消息体 桢校验域
1字节 1字节 2字节 1字节 1字节 N字节 2字节
数据结构定义说明:
 起始标识符代表一帧数据的开始,固定为0x68。
 数据域字节数,数据域长度不超过200字节。不加密时为原数据长度,加密时,为加密后数据长度。其值为“序列号域+加密标志+桢类型标志+消息体”字节数之和。
 序列号域即为数据包的发送顺序号,从 0 开始顺序增加,如是应答数据包,则与询问数据包序号保持一致,当桩与平台网络断开重新建立连接或者溢出后归0。
 加密标志只针对消息体(数据单元)。0x00:不加密,0x01:3DES
 桢类型标志定义了上下行数据桢。
 桢校验域:从序列号域到数据域的 CRC 校验,校验多项式为 0x180D,低字节在前,高字节在后

我们根据发来的报文帧格式

先用workerman的Text协议格式 文本+换行符进行服务器余硬件通讯


global $worker;
$db = new \Workerman\MySQL\Connection(DB_HOST, '3306', DB_USER, DB_PASS,DB_NAME);
$worker = new Worker('tcp://0.0.0.0:8877');
$worker->count = 1;
$worker->uidConnections = array();
$redis = new redisdrive();
$redis->dbindex(1);//选择数据库
// worker进程启动后建立一个内部通讯端口
function handle_start($worker)
{
   
   
    // 开启一个内部端口,方便内部系统推送数据,Text协议格式 文本+换行符
    $inner_text_worker = new Worker('Text://0.0.0.0:1234');
    $inner_text_worker->onMessage = function($connection, $buffer)
    {
   
   
        global $worker;
        // $data数组格式,里面有uid,表示向那个uid的页面推送数据
        
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

触角云科技

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

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

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

打赏作者

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

抵扣说明:

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

余额充值