GithubHelp home page GithubHelp logo

xuhongv / blufiesp32wechat Goto Github PK

View Code? Open in Web Editor NEW
168.0 168.0 51.0 2.02 MB

一款开源的蓝牙ble配网blufi乐鑫芯片esp32的开源微信小程序(持续维护,欢迎star)

JavaScript 100.00%

blufiesp32wechat's People

Contributors

xuhongv avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

blufiesp32wechat's Issues

自定义数据处理异常

在xBlufi-wx-impl.js中,下面处理:
case 19: //自定义数据
let customData = [];
for (var i = 0; i <= result.length; i++) {
customData.push(String.fromCharCode(parseInt(result[i], 16)));
}

造成长度加1,最后一个数据无效,应该对应为:
for (var i = 0; i < result.length; i++) {

几个拼写错误

TYPE_RECIEVE_CUSTON_DATA => TYPE_RECIEVE_CUSTOM_DATA
EVENT_START_DISCONORY => EVENT_START_DISCOVER
EVENT_NOFITY_SEND_CUSTON_DATA => EVENT_NOFITY_SEND_CUSTOM_DATA
writeCutomsData => writeCustomData

onfire回调问题

首先感谢作者的开源贡献,当我在使用本项目的时候,发现一个问题:第一次进入进入配网没问题,如果第一次进入配网界面后没有配置或者配置失败返回主界面,那么第二次再次配网就会失败,必须杀掉小程序,才行。第二次配网也会导致esp32死机重启。经过排查,发现是onfire 第一次配网后,没有取消订阅,就会导致,后面点击配网多次触发回调。需要调用clear()清空。还有xBlufi.js中的un()取消订阅方法的参数应该是写错了,为事件名,而不是回调函数。使用过程中遇到的坑,提出一些改进意见,再次感谢作者的开源贡献

ios,连接有问题

编译为发布模式,有些手机是可以连,有些不行。
不行的,有 “入网失败 subType:18,init security error”
调用了xBlufi.notifyInitBleEsp32({deviceId: that.connectedDeviceId});
后,esp报错
I (12083790) [BLUFI, 336]: event:25
E (12083791) BLUFI: BLUFI report error, error code 9

就是在交换加密方式这一步,过不了

如果编译为调试模式,那肯定是报错。
也可能跟微信的基础库有关,调试模式,改不了基础库。

一直提示蓝牙未开启

直接使用Blufi文件后,运行到手机上,已开启蓝牙情况下一直提示蓝牙未开启,使用5+api和uniapp的api检查结果也是蓝牙已开启

如果想传Uint8Array,如何写?

想传Uint8Array数组,这样写不成功,设备收不到。
xBlufi.notifySendCustomData({customData: bytes})
在function writeCustomData里,没看出该如何传递?

如果wifi密码输入错误

如果wifi密码输入错误,卡在配网界面没反应。
如果没有输入密码,直接退出上一页面,在重新进入,导致esp32崩溃

bug报告

	sequenceControl = parseInt(sequenceControl) + 1;
	if (sequenceControl>=256) sequenceControl=0;

sequenceControl>=256时,在aes加密中,会报错。好几个地方,都需要加上这句判断。

			uni.createBLEConnection({
				deviceId: options.deviceId,
				success: function(res) {
					let platform = uni.getSystemInfoSync().platform
					if (platform=="android") {
						uni.setBLEMTU({
							deviceId: options.deviceId,
							mtu: 128
						});
					}
					myself.data.deviceId = options.deviceId;
					xBlufi.notifyDeviceMsgEvent({
						type: xBlufi.XBLUFI_TYPE.TYPE_CONNECTED,
						result: true,
						data: {
							deviceId: options.deviceId,
							name: options.name
						}
					});
				},
				fail: function(res) {
					// {"type":"0","result":false,"data":{"errno":1509007,"errCode":-1,"errMsg":"createBLEConnection:fail:already connect"}}
					if (res.errno!=1509007) {
						myself.data.deviceId = null;
						xBlufi.notifyDeviceMsgEvent({
							type: xBlufi.XBLUFI_TYPE.TYPE_CONNECTED,
							result: false,
							data: res
						});
					}
				}
			});

fail有种情况是,已连成功,又报错,此时把deviceId = null,后导致判断错误。
我是在xBlufi.XBLUFI_TYPE.TYPE_INIT_ESP32_RESULT时,加了一句
myself.data.deviceId = deviceId // 可能在其它地方,被置空了,以此为准

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.