在好例子网,分享、交流、成长!
您当前所在位置:首页Java 开发实例Android平台开发 → 智能电子价签AP系统配置工具

智能电子价签AP系统配置工具

Android平台开发

下载此实例
  • 开发语言:Java
  • 实例大小:2.11M
  • 下载次数:12
  • 浏览次数:89
  • 发布时间:2021-03-15
  • 实例类别:Android平台开发
  • 发 布 人:wwwshenglitao
  • 文件格式:.7z
  • 所需积分:10
 相关标签: AP 配置 电子 智能 工具

实例介绍

【实例简介】

智能电子价签AP系统配置工具,让系统接入客户网络环境。

【实例截图】智能价签配置工具

【文件目录】

AP-TOOL

├── SUOTA.iml
├── app
│   ├── app.iml
│   ├── build.gradle
│   ├── crashlytics.properties
│   ├── libs
│   │   └── zxing.jar
│   └── src
│       └── main
│           ├── AndroidManifest.xml
│           ├── assets
│           │   ├── fonts
│           │   │   ├── MyriadPro-BoldCond.ttf
│           │   │   ├── MyriadPro-Cond.ttf
│           │   │   ├── MyriadPro-Light.otf
│           │   │   ├── MyriadPro-Regular.ttf
│           │   │   └── MyriadPro-Semibold.otf
│           │   ├── info.html
│           │   └── logo-dialog-blue.png
│           ├── ic_launcher-web.png
│           ├── java
│           │   └── com
│           │       └── dialog
│           │           └── suota
│           │               ├── RuntimePermissionChecker.java
│           │               ├── SuotaApplication.java
│           │               ├── activities
│           │               │   ├── DeviceActivity.java
│           │               │   ├── InfoActivity.java
│           │               │   ├── ScanActivity.java
│           │               │   ├── SplashActivity.java
│           │               │   └── SuotaActivity.java
│           │               ├── bluetooth
│           │               │   ├── BluetoothGattReceiver.java
│           │               │   ├── BluetoothGattSingleton.java
│           │               │   ├── BluetoothManager.java
│           │               │   ├── Callback.java
│           │               │   ├── DspsManager.java
│           │               │   ├── FactoryManager.java
│           │               │   ├── SpotaManager.java
│           │               │   └── SuotaManager.java
│           │               ├── data
│           │               │   ├── File.java
│           │               │   ├── Statics.java
│           │               │   └── Uuid.java
│           │               ├── fragments
│           │               │   ├── DisclaimerFragment.java
│           │               │   ├── FACTORYFragment.java
│           │               │   ├── InfoFragment.java
│           │               │   ├── SPOTAFragment.java
│           │               │   ├── SUOTAFragment.java
│           │               │   └── SplashFragment.java
│           │               ├── global
│           │               │   ├── BusProvider.java
│           │               │   ├── ScanAdapter.java
│           │               │   ├── ScanItem.java
│           │               │   ├── SignalBar.java
│           │               │   └── Utils.java
│           │               ├── protocol
│           │               │   ├── ByteArray.java
│           │               │   ├── Cmd.java
│           │               │   ├── Crc.java
│           │               │   ├── Packet.java
│           │               │   ├── PacketProc.java
│           │               │   ├── TypeEplCtrl.java
│           │               │   ├── WrapInterface.java
│           │               │   ├── Wraper.java
│           │               │   ├── WraperIpInfo.java
│           │               │   ├── WraperMac.java
│           │               │   ├── WraperReport.java
│           │               │   ├── WraperThreeMac.java
│           │               │   └── WraperWifi.java
│           │               └── zxing
│           │                   ├── ScanListener.java
│           │                   ├── camera
│           │                   │   ├── AutoFocusManager.java
│           │                   │   ├── CameraConfigurationManager.java
│           │                   │   ├── CameraManager.java
│           │                   │   ├── PreviewCallback.java
│           │                   │   └── open
│           │                   │       └── OpenCameraInterface.java
│           │                   ├── encode
│           │                   │   └── EncodingHandler.java
│           │                   └── utils
│           │                       ├── AppliationUtil.java
│           │                       ├── BitmapUtil.java
│           │                       └── InactivityTimer.java
│           └── res
│               ├── drawable
│               │   ├── app_icon_s.png
│               │   ├── button.xml
│               │   ├── button_a.xml
│               │   ├── button_b.xml
│               │   ├── button_text_color.xml
│               │   ├── cic_disclaimer.png
│               │   ├── cic_disclaimer_selected.png
│               │   ├── cic_info.png
│               │   ├── cic_info_selected.png
│               │   ├── circle_shape.xml
│               │   ├── powered_by_dialog.png
│               │   ├── radio_button.xml
│               │   └── radio_button_text_color.xml
│               ├── drawable-hdpi
│               │   ├── cic_paired.png
│               │   ├── ic_error_outline_black_36dp.png
│               │   ├── ic_info_outline_black_36dp.png
│               │   ├── ic_menu_refresh.png
│               │   └── splash_bg.jpg
│               ├── drawable-mdpi
│               │   ├── cic_paired.png
│               │   ├── ic_error_outline_black_36dp.png
│               │   ├── ic_info_outline_black_36dp.png
│               │   ├── ic_menu_refresh.png
│               │   └── splash_bg.jpg
│               ├── drawable-xhdpi
│               │   ├── cic_paired.png
│               │   ├── ic_error_outline_black_36dp.png
│               │   ├── ic_info_outline_black_36dp.png
│               │   ├── ic_menu_refresh.png
│               │   └── splash_bg.jpg
│               ├── drawable-xxhdpi
│               │   ├── cic_paired.png
│               │   ├── ic_error_outline_black_36dp.png
│               │   ├── ic_info_outline_black_36dp.png
│               │   └── splash_bg.jpg
│               ├── drawable-xxxhdpi
│               │   ├── ic_error_outline_black_36dp.png
│               │   └── ic_info_outline_black_36dp.png
│               ├── layout
│               │   ├── activity_device.xml
│               │   ├── activity_fragment.xml
│               │   ├── activity_scan.xml
│               │   ├── ap_config.xml
│               │   ├── device_container.xml
│               │   ├── device_file_list.xml
│               │   ├── device_info_item.xml
│               │   ├── device_main.xml
│               │   ├── device_parameter_settings.xml
│               │   ├── disconnect_drawer_button.xml
│               │   ├── factory_test.xml
│               │   ├── fragment_disclaimer.xml
│               │   ├── fragment_splash.xml
│               │   ├── progress.xml
│               │   ├── scan_item_row.xml
│               │   └── scan_list_item.xml
│               ├── menu
│               │   └── main.xml
│               ├── mipmap-hdpi
│               │   └── ic_launcher.png
│               ├── mipmap-ldpi
│               │   └── ic_launcher.png
│               ├── mipmap-mdpi
│               │   └── ic_launcher.png
│               ├── mipmap-xhdpi
│               │   └── ic_launcher.png
│               ├── mipmap-xxhdpi
│               │   └── ic_launcher.png
│               ├── mipmap-xxxhdpi
│               │   └── ic_launcher.png
│               ├── values
│               │   ├── colors.xml
│               │   ├── dimens.xml
│               │   ├── strings.xml
│               │   └── styles.xml
│               ├── values-w820dp
│               │   └── dimens.xml
│               └── xml
│                   └── app_info.xml
├── build
│   └── android-profile
│       ├── profile-2019-01-25-17-09-59-130.rawproto
│       ├── profile-2019-01-25-17-26-19-799.rawproto
│       ├── profile-2019-01-25-17-29-52-375.rawproto
│       └── profile-2019-01-25-17-38-38-373.rawproto
├── build.gradle
├── butterknife-7.0.1
│   ├── build.gradle
│   └── butterknife-7.0.1.jar
├── dialog-license.txt
├── gradle
│   └── wrapper
│       ├── gradle-wrapper.jar
│       └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── license.txt
├── local.properties
├── settings.gradle
└── zxing
    ├── build.gradle
    └── zxing.jar

45 directories, 146 files


【核心代码】

package com.dialog.suota.protocol;

import android.util.Log;


public class Packet {
    static final String TAG = "Packet";

    public static final byte PACKET_HEAD = (byte)0xAA;
    public static final byte PACKET_TAIL = (byte)0x55;
    public static final byte PACKET_TRAN = (byte)0xCC;

    public static final byte PACKET_OK = 0x00;
    public static final byte PACKET_LEN_ERROR = 0x01;
    public static final byte PACKET_CRC_ERROR = 0x02;

    public byte cmdId;
    public byte option;
    public ByteArray data;
    public ByteArray payLoad;
    public Packet() {
        data    = new ByteArray();
        payLoad = new ByteArray();
    }

    /** 解析协议数据包信息
     * @return
     */
    public byte toParse() {
        data    = new ByteArray();
        //获取所有数据(除去最后一个字节CRC)
        data.add(payLoad.remove(payLoad.getLength() - 1));

        //计算校验码
        byte crc8  = Crc.cal_crc8(data.getBytes());
        //获取数据包长度
        int length = data.getByte() << 8 | data.getByte();
        //获取协议选项
        option = data.getByte();
        //获取命令ID
        cmdId  = data.getByte();

        if (length != (data.getLength() 2)) {
            Log.d(TAG, "PACKET_LEN_ERROR");
            return PACKET_LEN_ERROR;
        }
        if (crc8 != payLoad.getByte()) {
            Log.d(TAG, "PACKET_CRC_ERROR");
            return PACKET_CRC_ERROR;
        }

        return PACKET_OK;

    }

    /**
     *  添加需要封包的成员
     * @param member
     */
    public void append(WrapInterface member) {
        byte[] result = member.getPayload();

        data.add(result);
    }

    /**
     *   协议数据包封包方法,根据包协议得到需要封包的数据(如:计算CRC);在数据最前面
     *  添加包头(PACKET_HEAD)、最后面添加包尾(PACKET_TAIL);如果包中数据出现包头、
     *  包尾字节,将其用转义字节(PACKET_TRAN)代替,同时把该字节加1后添加到转义字节后面。
     * @return
     */
    public byte[] getPayload() {
        ByteArray body    = new ByteArray();
        ByteArray payLoad = new ByteArray();
        //总长度 = data的长度 1(cmdId的长度) 1(option的长度)
        int bodyLength = data.getLength() 2;
        //填充长度
        body.add((byte)((bodyLength >> 8) & 0xFF));
        body.add((byte)((bodyLength >> 0) & 0xFF));
        //填充协议选项
        body.add(option);
        //填充命令ID
        body.add(cmdId);
        //填充数据区域
        body.add(data.getBytes());

        byte crc8 = Crc.cal_crc8(body.getBytes());
        //填充CRC
        body.add(crc8);



        byte[] data = body.getBytes();

        payLoad.add((byte)PACKET_HEAD);
        for (int i = 0; i < body.getLength(); i ) {
            byte b = data[i];

            if (b == PACKET_HEAD ||
                b == PACKET_TAIL ||
                b == PACKET_TRAN) {
                payLoad.add((byte) PACKET_TRAN);
                payLoad.add( b);
            } else {
                payLoad.add(b);
            }
        }
        payLoad.add((byte)PACKET_TAIL);

        return payLoad.getBytes();

    }

    /**
     * 数据流转数据包方法,根据数据流中的包头(PACKET_HEAD)、包尾(PACKET_TAIL)
     * 接收数据包,如果包中数据出现转义字节(PACKET_TRAN),其后的一个字节减1就是
     * 真实的数据(舍弃转义字节)。
     * @param data
     * @return 解包成功返回:true 否则返回:false
     */
    public boolean stream2packet(ByteArray data) {

        while(data.getLength() > 0 && payLoad.getLength() == 0) {
            if(data.getByte() == PACKET_HEAD) {
                break;
            }
        }

        byte b = 0;

        do {
            b = data.getByte();
            if (b == PACKET_TRAN) {
                b = data.getByte();

                if (b == PACKET_HEAD ||
                    b == PACKET_TAIL ||
                    b == PACKET_TRAN) {
                    payLoad.remove(this.payLoad.getLength());
                    return false;
                }
                payLoad.add(--b);
            } else if (b == PACKET_HEAD){
                payLoad.remove(this.payLoad.getLength());
            } else if (b == PACKET_TAIL) {

                if (toParse() == PACKET_OK) return true;

                payLoad.remove(this.payLoad.getLength());
                return false;
            } else {
                payLoad.add(b);
            }

        } while (data.getLength() > 0);

        return false;
    }


}

实例下载地址

智能电子价签AP系统配置工具

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警