派查查 :一个WearOS智能手表系统上的快递查询应用

目录

前言

项目概述

设计背景

系统架构

接口介绍

即时查询请求

即时查询回复


前言

        在学习面向对象程序设计课程的时候,收获颇多,最后的课程报告选题选择了“Android开发”。但是安卓手机上好的应用数不胜数,自己不想重蹈覆辙做别人做过不知道多少遍的东西,就选择了当时相对Android手机软件开发比较小众的WearOS系统软件开发,做了TicWatch的问问商店里第一款腕上快递查询应用:派查查PieExpress。这也是我第一次做安卓开发,如有不足,还请海涵。

项目概述

运行环境:Google WearOS 国内版

软件类型:快递查询工具

基本功能:

  • 快递查询:在手表上输入快递运单号后,联网查询快递的运输信息,包括运输状态、到达时间和地点等。

  • 快递收藏:输入的运单号和查询的快递信息可以本地保存,方便下次查看,可以为运单号写备注,方便知道是哪个快递。

  • 语音录入:输入运单号或运单备注时可以语音输入(调用TicWatch语音接口实现,小米手表等可能无法使用)

项目地址https://github.com/ranlychan/PieExpressTracking

运行截图:

主界面运行效果图
图1. 主界面运行效果图

图2. 录入快递信息界面运行效果

设计背景

        如今,人们在网络购物时常常需要关注物流信息,而用智能手机方便快捷地获取快递信息技术已经较为成熟,应用也已较为广泛。例如在Android应用市场中比较热门的“菜鸟裹裹”,“快递100”等应用,但使用Android智能可穿戴设备获取快递信息的服务或应用却较为少见。以Android智能手表为例,因为在中国大陆无法连接到Google Play商店,国内基于Wear OS的智能手表的应用商店往往都是另起炉灶,多而不全,基本无法找到适配手表的快递查询应用。而基于Watch OS的Apple Watch因为有着成熟的Appstore生态支持,有较多的手表端物流查询应用以及依赖智能手机的查询应用,例如淘宝针对Apple Watch推出的客户端目前具有的待收货功能可追踪在淘宝购买的商品物流信息;Appstore收费应用“追快递专业版“支持IOS客户端添加和查询多家快递公司物流信息并实时推送到Apple Watch上。针对上述Wear OS快递查询应用少的情况,本文将着手介绍基于Wear OS的快递查询追踪应用的设计与实现。

系统架构

        快递物流信息查询系统将使用C/S(Client/Server)模式开发,因为初步来说,基于智能手表的Client发送获取物流信息的请求,由物流公司Server或专门整合多家物流信息的中间服务器通过API等形式提供所需物流信息,然后再由智能手表Client呈现给用户。这意味着有两条获取物流信息的方式:

1) 直接通信:与需要查询的物流公司服务器直接通信,直接从物流公司获取所需物流信息,如从顺丰速递等获取。

2) 间接通信:由整合多家物流信息的物流信息公司,如快递鸟,充当中间服务器的角色,Client与其通信相当于间接与多家其它物流公司Server通信。

其一,由于一般来说,对于用户而言,往往需要查询多家快递公司的物流信息,所以如果选择直接通信的方式,Client需要同时对接多家物流公司接口,而选择间接通信的方式,Client只需要对接中间服务器接口就能查询上百家物流公司的快递信息。

其二,物流公司的服务接口有可能发生变动,同时维护多家物流公司提供的接口所需维护工作量显然远大于只维护中间服务器提供的接口。

        此外,考虑到搭载Wear OS的设备一般是Android智能手表,运算性能储存空间等都较为有限,对接多家物流公司的接口至少在代码量上就远大于只对接中间服务器接口,会使程序体积变大,不利于在智能手表这类设备上运行。综上考虑,本系统将选择间接通信的方式获取物流信息。

接口介绍

        项目使用快递鸟的即时查询API免费版。内容来自快递鸟API文档 免费查询快递接口 物流即时查询API-快递鸟 (kdniao.com)

即时查询请求

请求参数说明:

参数名称类型说明必须要求
RequestDataString请求内容需进行URL(utf-8)编码。请求内容JSON格式,须和DataType一致。R
EBusinessIDString商户ID,请在我的服务页面查看。R
RequestTypeString请求指令类型:1002R
DataSignString数据内容签名:把(请求内容(未编码)+AppKey)进行MD5加密,然后Base64编码,最后 进行URL(utf-8)编码。详细过程请查看Demo。R
DataTypeString请求、返回数据类型:2-json;O

请求JSON示例:

{
        "OrderCode": "",
        "ShipperCode": "SF",
        "LogisticCode": "118650888018"
}

即时查询回复

返回参数定义:

参数名称类型说明必须要求
EBusinessIDString用户IDR
OrderCodeString订单编号O
ShipperCodeString快递公司编码R
LogisticCodeString物流运单号O
SuccessBool成功与否R
ReasonString失败原因O
StateString物流状态:2-在途中,3-签收,4-问题件R
Traces
AcceptTimeString时间R
AcceptStationString描述R
RemarkString备注O

返回JSON示例:

 {
        "EBusinessID": "1109259",
        "OrderCode": "",
        "ShipperCode": "SF",
        "LogisticCode": "118461988807",
        "Success": true,
        "State": 3,
        "Reason": null,
        "Traces": [
        {
        "AcceptTime": "2014/06/25 08:05:37",
        "AcceptStation": "正在派件..(派件人:邓裕富,电话:18718866310)[深圳市]",
        "Remark": null
        },
        {
        "AcceptTime": "2014/06/25 04:01:28",
        "AcceptStation": "快件在 深圳集散中心 ,准备送往下一站 深圳 [深圳市]",
        "Remark": null
        },
        {
        "AcceptTime": "2014/06/25 01:41:06",
        "AcceptStation": "快件在 深圳集散中心 [深圳市]",
        "Remark": null
        },
        {
        "AcceptTime": "2014/06/24 20:18:58",
        "AcceptStation": "已收件[深圳市]",
        "Remark": null
        },
        {
        "AcceptTime": "2014/06/24 20:55:28",
        "AcceptStation": "快件在 深圳 ,准备送往下一站 深圳集散中心 [深圳市]",
        "Remark": null
        },
        {
        "AcceptTime": "2014/06/25 10:23:03",
        "AcceptStation": "派件已签收[深圳市]",
        "Remark": null
        },
        {
        "AcceptTime": "2014/06/25 10:23:03",
        "AcceptStation": "签收人是:已签收[深圳市]",
        "Remark": null
        }
        ] 
 } 

本人博客原文地址:https://ranlychan.top/archives/36/

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 伺服系统是一种用于控制机械运动的系统,通常包括一个电机和一个控制器。在伺服系统中,误差是指实际运动与期望运动之间的差异。误差分析是一种方法,用于识别和减少伺服系统中的误差。 以下是一些常见的伺服系统误差及其分析方法: 1. 位置误差:位置误差是指实际位置与期望位置之间的差异。它可以通过校准编码器或安装更精确的编码器来减小。 2. 速度误差:速度误差是指实际速度与期望速度之间的差异。它可以通过增加控制系统的带宽或使用更精确的速度传感器来减小。 3. 负载误差:负载误差是指实际负载与期望负载之间的差异。它可以通过增加电机功率或使用更强的电机来减小。 4. 动态误差:动态误差是指系统在快速变化的运动中产生的误差。它可以通过调整控制系统的参数或使用更快的控制器来减小。 5. 温度误差:温度误差是指系统在不同温度下的性能差异。它可以通过使用温度传感器来监测温度并根据需要调整控制系统的参数来减小。 以上是一些常见的伺服系统误差及其分析方法,但实际上还有许多其他因素可能会对伺服系统产生误差,因此在进行误差分析时需要考虑多个因素。 ### 回答2: 伺服系统是一种能够控制机械或电子设备运动的系统。在实际应用中,伺服系统的误差分析是非常重要的,因为它影响着系统的性能和精度。 伺服系统的误差分析主要包括静态误差和动态误差两个方面。 静态误差是指伺服系统在稳定工作状态下输出值与输入值之间的偏差。常见的静态误差包括偏差、非线性误差和死区误差。其中,偏差误差是指系统输出与输入之间存在一个固定的常数偏差;非线性误差是指系统输出与输入之间存在一定的非线性关系,如饱和现象等;死区误差是指系统输入信号在一个固定的范围内不会引起输出的变化。 动态误差是指伺服系统响应过程中的误差。常见的动态误差包括超调误差、稳态误差和时间常数。其中,超调误差是指系统响应过程中输出值超过了稳定状态下的目标值;稳态误差是指系统响应完全稳定下来后的偏差;时间常数是指系统响应过程中输出达到其稳定状态值的时间。 为了对伺服系统的误差进行分析和解决,可以采取一些措施。例如,可以通过传感器和反馈控制器来实现闭环控制,以减小静态误差和动态误差。此外,还可以通过使用精密的执行机构和调整控制系统参数等方式来改善系统的性能和精度。 总之,伺服系统的误差分析对于提高系统的性能和精度至关重要。通过分析静态误差和动态误差,采取相应的措施来减小误差,并对系统进行优化和调整,可以使伺服系统更加稳定和精确地控制机械或电子设备的运动。 ### 回答3: 伺服系统(Servo System)是一种将输入信号转化为动力输出的控制系统。误差分析是对伺服系统运行过程中产生的误差进行分析和评估的过程。 伺服系统误差分析主要包括静态误差和动态误差。 静态误差是指当输入信号保持不变时,输出信号与输入信号之间的偏差。常见的静态误差有零偏误差、增益误差和非线性误差等。 零偏误差是伺服系统在无输入信号时输出的误差。它可能是由于机械装配不精确、传感器零点漂移等原因造成的。可以通过对零偏进行补偿或校准来减小零偏误差。 增益误差是指在输入信号变化时,输出信号与输入信号之间的比例关系不精确。可以通过调整放大系数或增益来减小增益误差。 非线性误差是指在输入信号变化时,输出信号与输入信号之间的关系不是严格的线性关系。这可能由于机械传动系统的非线性、摩擦力的存在等因素引起。可以通过非线性补偿技术等方法来减小非线性误差。 动态误差是指在系统响应过程中产生的误差。常见的动态误差包括超调、稳态误差和过渡时间等。 超调是当输入信号变化时,输出信号出现的瞬态超过稳态值的情况。可以通过调整控制回路参数或采用先进的控制算法来减小超调。 稳态误差是指系统在达到稳定状态后仍存在的误差。可以通过增大控制信号的增益或者采用反馈控制来减小稳态误差。 过渡时间是指系统从初始状态到达稳定状态所需的时间。可以通过优化控制算法或改变系统结构来减小过渡时间。 综上所述,伺服系统误差分析是为了评估和改善伺服系统在运行过程中产生的各种误差,从而提高系统的性能和精度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

一条独龙

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

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

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

打赏作者

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

抵扣说明:

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

余额充值