用delphi也有一段时间了。
近期想搞一个手机程序,用到低功耗的蓝牙模组。因为数据包大了一点,超过蓝牙每个包20字节的限制。查到可以通过修改MTU来调整数据帧的大小。
对于使用的设备还真有一个函数:
叫做Request(AMtu: Integer): Boolean;
满心欢喜在代码里用上了,结果发现,无论把Mtu写成多少都没有效果,追踪进去发现这个函数一直返回Flase。
实在不甘心,就一直追踪源代码:
发现RequestMtu调用的是DoRequestMtu(AMtu):
function TBluetoothLEDevice.RequestMtu(AMtu: Integer): Boolean;
begin
Result := DoRequestMtu(AMtu);
end;
继续追踪DoRequestMtu!
function TBluetoothLEDevice.DoRequestMtu(AMtu: Integer): Boolean;
begin
Result := False;
end;
这个…,这是搞笑吗?啥都没干,直接送回来个false!
或许是Embarcadero忘了写这个函数?还是BlueLE根本就不能改Mtu?
我恍惚了…
对了,我用的delphi版本是11.3。
Embarcadero,你是在搞笑吗?
于 2023-10-05 00:09:57 首次发布