adb logcat >> 4-date +%d日-%H时-%M分.txt
    adb logcat >> 3-date +%d日-%H-%M.txt
    adb logcat >> date +%d日-%H时-%M分-%S秒.txt
    adb logcat >> date +%d日-%H时-%M分.txt
    adb logcat >> 4.txt
    adb logcat cat
    adb logcat
    adb logcat -G 40m

    安装app,adb install app-release.apk
    重装覆盖,adb install -r app-release.apk

    adb logcat -c
    adb logcat -c -b events

    adb kill-server
    adb start-server
    adb remount

    adb devices
    adb shell ifconfig
    adb tcpip 5555

    我的手机
    adb connect 172.16.42.25:5555
    adb connect 172.16.46.222:5555 新
    adb connect 172.16.33.180:5555 新
    工厂H2
    adb connect 192.168.219.20:5555
    adb connect 192.168.219.68:5555
    adb connect 192.168.219.172:5555
    adb connect 192.168.219.139:5555
    在家H2
    adb connect 192.168.0.108:5555
    在家我的手机
    adb connect 192.168.0.104:5555
    开发手机
    H2 test
    adb connect 172.16.32.186:5555
    adb disconnect 172.16.32.186:5555
    http://172.16.32.186:8080
    未知款
    adb connect 172.16.40.134:5555
    adb disconnect 172.16.40.134:5555
    http://172.16.40.134:8080
    test款
    adb connect 172.16.43.200:5555
    adb disconnect 172.16.43.200:5555

    adb connect 172.16.37.226:5555
    adb disconnect 172.16.37.226:5555

    adb connect 172.16.32.23:5555
    adb disconnect 172.16.32.23:5555

    adb connect 172.16.41.94:5555
    adb disconnect 172.16.41.94:5555

    adb connect 172.16.37.226:5555
    adb disconnect 172.16.37.226:5555
    http://172.16.36.117:8080
    胶带款
    adb connect 172.16.39.203:5555
    adb disconnect 172.16.39.203:5555

    测试手机
    adb connect 172.16.45.50:5555
    adb disconnect 172.16.45.50:5555

    adb connect 172.16.35.74:5555
    adb disconnect 172.16.35.74:5555
    adb connect 172.16.51.83:5555
    adb disconnect 172.16.51.83:5555

    | grep ‘publishMessage: Message Published’
    | grep ‘messageArrived—-arrivedMsg’
    | grep exception
    | grep 测试输出
    | grep “checkFun—-res”
    | grep “AtCallback, AT_BUS_CAN”
    | grep “AtCallback”
    | grep “h2/device/ota/list”
    | grep socket
    | grep _informationStream
    | grep 43414e0b11ea1915f210ffffffffff0a

    reportUsbDataToH2
    /// sendDataToUsb
    进入静默模式43414E0BFFE10801FFFFFFFFFFFFFF0A
    推出静默模式43414E0BFFE10802FFFFFFFFFFFFFF0A

    获取usb数据
    getUsbData-step
    getUsbData-step=6
    msgInfo
    dataType:progress
    currentStep
    —step5—end-hexPackDataCheck
    —step5—j
    —step4—hexPack-i
    测试输出:originFileLen
    测试输出:_informationStream-data:{status: end
    测试输出:测速

    09:45:25.915—09:45:28.522 pagelink
    —————————————————-
    09:59:56.495 23255 23285 I flutter : 测试输出:—step5—j=>0=hexPackData=> 每次发送数据需要13ms
    09:59:56.507 23255 23285 I flutter : 测试输出:—step5—j=>1=hexPackData=>
    09:59:56.520 23255 23285 I flutter : 测试输出:—step5—j=>2=hexPackData=>
    。。。
    09:59:58.540 23255 23285 I flutter : 测试输出:—step5—j=>146=hexPackData=>

    总时间:5min22
    只算第5步:21607*13/1000/60=4.67min

    ——————-
    10:12:52.182 24224 24251 I flutter : 测试输出:—step5—j=>0=hexPackData=>
    10:12:52.196 24224 24251 I flutter : 测试输出:—step5—j=>1=hexPackData=
    10:12:52.210 24224 24251 I flutter : 测试输出:—step5—j=>2=hexPackData=>
    ———————
    10:19:46.475 24224 24251 I flutter : 测试输出:—step5—j=>135=hexPackData=> 每次发送数据需要8-10ms
    10:19:46.486 24224 24251 I flutter : 测试输出:—step5—j=>136=hexPackData=>
    10:19:46.496 24224 24251 I flutter : 测试输出:—step5—j=>137=hexPackData=>
    。。。
    10:19:46.583 24224 24251 I flutter : 测试输出:—step5—j=>146=hexPackData=>

    dcdc
    03:40:25.053-03:40:54.938—29s
    win22s
    emcu
    03:41:14.388-03:43:53.703—2min39s
    win49s

    emcu
    03:45:47.973—03:52:03.402—6min16—151248b-step5 21607次
    09:25:16.339—09:30:38.765—5min22
    09:47:41.377—09:53:01.755—5min22
    foc
    06:21:09.159—06:26:01.228—4min52—115712b-step5 16530次
    06:50:23.107—06:55:16.083—4min53—115712
    dcdc
    06:34:02.695—06:35:11.513—1min9—25356-step5 3623次
    07:48:16.303—07:49:28.531—1min12——25356
    09:13:42.828—09:14:44.729—1min2
    09:45:23.550—09:46:25.393—1min2
    09:59:56.187—10:00:58.611—1min2
    10:12:51.876—10:13:59.535—1min7
    10:19:19.856—10:20:16.545—54s
    10:24:22.954—10:25:19.868—57s

    db
    06:38:55.994-06:41:59.663—3min5—74040-step5 10578次

    print(‘测试输出:getUsbData-step=$step-cmdKey=>${event.result}’);
    print(“测试输出:—step5—end-hexPackDataCheck=> $hexPackDataCheck”);

    发送到H2
    runOnMainThread

    发送数据给服务端—reportUsbData—data:
    4e531126f21900000000000002000a
    4e53111af219711c0000900164ff0a
    4e53111af219711c0000900164ff0a
    4e53111af219711c0000900164ff0a
    4e53111af219711c0000900164ff0a
    4e531118f2197a000000000300100a
    4e53 1116f219 00 00 00 00 48 4d 41 32 0a
    4e53111af219711c0000900164ff0a
    4e53111af219711c0000900164ff0a

    00 48 00 32 89 176 00
    2000
    arr . add len=1024

    ——————————————
    h2SendToUsb

    formatBytesToString
    formatStringToBytes
    addZero1 补零

    formatCharToHexStr 将整形数字转为为十六进制数字
    ——————————————
    /h2/device/can/read
    /h2/can/bms/faultHistory

    sendCmd—after
    can_cmd_ota_ecu
    can_ota_upgrade_send_data

    Attempt to invoke virtual method ‘java.lang.String com.niu.h2.usb.CmdData.getDataKey()’ on a null object reference
    getDataKey

    ////// H2接受USB数据
    /*
    收到消息
    {@link UsbSerialInterface.UsbReadCallback}
    @paramdata
    */
    @Override
    publicvoid onReadData(byte[] data){

    // 蓝牙返回的数据,转十六进制
    finalStringreceiveHexStr=Utils.formatHexString(data);
    if (Log.DEBUG) {
    Log.v(TAG, “——->onReadData, receiveHexStr===sadxxxx:”+ receiveHexStr);
    }
    if (receiveHexStr !=null&&receiveHexStr.length() >0) {
    mRceivedDataSet.add(receiveHexStr);
    }

    ////// H2 接收数据成功
    case RECV_RESPONSE_SUCCESS: { // 接收数据成功
    Log.d(TAG, “===========handleMessage===========, RECV_RESPONSE_SUCCESS”);
    StringresponseData=null;
    Log.v(TAG, “RECV_RESPONSE_SUCCESS——: “+ mRceivedDataSet);

    ////// 把B@78cafb8数据转换成424037386361666238形式
    publicstaticString formatHexString(byte[] data, booleanaddSpace){

    /*
    发送数据给服务端
    @paramdata
    /
    privatevoid reportUsbData(Stringdata){
    Log.v(TAG, “发送数据给服务端—reportUsbData—data:”+ data);

    ////// Mqtt发送给后端数据
    /*
    发布消息
    @parammsg
    @paramqos
    0:尽力而为。消息可能会丢,但绝不会重复传输
    1:消息绝不会丢,但可能会重复传输
    2:恰好一次。每条消息肯定会被传输一次且仅传输一次
    /
    publicboolean publishMessage(Stringmsg, intqos){

    1. public class HelloWorld {
    2. public static void main(String []args) {
    3. System.out.println(formatHexString("B@78cafb8".getBytes(), false));
    4. }
    5. public static String formatHexString(byte[] data, boolean addSpace) {
    6. if (data == null || data.length < 1)
    7. return null;
    8. StringBuilder sb = new StringBuilder();
    9. for (int i = 0; i < data.length; i++) {
    10. String hex = Integer.toHexString(data[i] & 0xFF);
    11. if (hex.length() == 1) {
    12. hex = '0' + hex;
    13. }
    14. sb.append(hex);
    15. if (addSpace)
    16. sb.append(" ");
    17. }
    18. return sb.toString().trim();
    19. }
    20. }