• 【逗老师的无线电】MOTOTRBO CPS导入DMR ID通信录的骚操作


    逗老师今年拿到了无线电执照,加入了HAM的圈子。作为一个资深折腾狗,又可以在新的领域继续折腾了。
    作为HAM的第一篇分享,本文介绍如何通过Python编写摩托罗拉CPS程序保存的ctb文件,进而实现导入通讯录的操作。
    这样,摩托罗拉的手台,也可以在通联的时候直接显示对方呼号咯!!
    在这里插入图片描述

    在这里插入图片描述

    基本操作逻辑:

    • 1、CPS读取机内配置
    • 2、保存配置为Motorola CPS软件使用的ctb格式文件
    • 3、由于ctb格式的文件是加密的,因此需要解密,使之成为XML格式文件
    • 4、找到XML格式的文件中通讯录相关的部分
    • 5、按照MOTO的XML格式追加通信录
    • 6、重新编码成ctb文件,写频。
      看起来比较麻烦是不是,没关系,逗老师已经把脚本基本写成傻瓜化了。跟着逗老师一步一步慢慢来。

    二、使用方法

    1、先去,把这些文件下载下来

    项目地址:
    Import-DMR-ID-to-MOTO-CPS
    在这里插入图片描述

    2、装个Python

    3、Motorola CPS读频

    相信CPS大家应该已经玩的挺6了吧,读频,保存。
    在这里插入图片描述
    这里保存的时候,文件名保存成:Untitled1.ctb,写别的待会脚本不认吼。

    在这里插入图片描述

    4、准备DMR ID列表

    按照如下的格式准备DMR ID列表,保存成csv文件

    DMR_ID呼号姓名
    1023001VE3THWWayne Edward

    在这里插入图片描述
    注意
    请注意你的对讲机能允许的最大联系人数量,例如P8668i能导入1000个联系人,所以需要筛选一下。
    逗老师的办法是,去BM Network上,导入最近1个月有通联过的活跃DMR ID,然后再去掉一些只通联过1次的老哥们。剩下的差不多也就是1000来个。
    BM Network导出ID可以去如下地址:
    https://brandmeister.network/?page=contactsexport
    在这里插入图片描述

    4、跑脚本

    在这里插入图片描述
    把这几个文件放在一起,然后,运行new.py
    如果缺运行库的,自行pip install 一下
    在这里插入图片描述

    5、查看结果

    运行脚本之后,会创建三个新文件

    Untitled1.xml---------原始ctb文件解码后生成的xml文件
    Untitled1_new.xml-----追加联系人列表后的xml文件
    Untitled1_new.ctb-----根据新的xml文件编码生成的ctb文件,用于写频
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    6、写频

    使用CPS软件打开Untitled1_new.ctb,发现联系人已经导入成功了。
    然后只需要写入到对讲机里就可以咯。
    在这里插入图片描述
    注意
    如果写频软件报如下错误,是因为联系人列表数量超出电台允许的最大长度。重新筛选一下列表,重新生成ctb文件,重新写频就好。
    对讲机会卡在【编程模式】的界面,不用慌,淡定的重启一下对讲机就可以了。
    在这里插入图片描述
    然后,你就可以开心的在电台上看到对方DMR ID对应的呼号咯!就像这样:
    在这里插入图片描述

    二、进阶讲解

    到上面位置,功能都演示完了。如果有对CPS软件感兴趣的,继续往下看,开发的过程中有几个坑。咱们可以分享一下:

    1、codeplug原始项目鸣谢

    george-hopkins/codeplug
    项目基于george-hopkins作者的codeplug项目进行优化,主要增加的对xml文件的直接修改和联系人追加。

    2、CTB文件解码后XML文件中联系人信息的PATH

    //APP_PARTITION//DIGITAL_UCL_DLH_TYPE_GRP//DIGITAL_UCL_DLT_TYPE//DIGITAL_UCL_DLL_TYPE
    
    • 1

    3、MOTO CPS文件秘钥的获取

    解码ctb文件需要使用CPS自带的秘钥,george-hopkins老哥同样准备了一个项目,用户获取CPS内的秘钥。
    老哥原本意思是不引用任何MOTO的官方内容,需要使用者自行从MOTO CPS客户端的安装目录中提取。
    但是逗老师头铁,直接大家生成好了,codeplug.cfg文件内存储的就是秘钥。公开的秘钥。
    george-hopkins/codeplug-prepare

    基本就这样了,对于开发者来说,这个项目非常简单。但是对于HAM们来说,如果理解起来费劲的话,也可以私信联系我帮忙处理。
    这里是BI1FQO,DMR ID:4606666,希望各位HAM通联愉快!
    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    开源数据库postgresql在统信系统上的离线安装
    洁净室检测环境的控制要求悬浮粒子及浮游微生物监测北京中邦兴业
    golang工程——gRpc 拦截器及原理
    搭建HBase2.x完全分布式集群(CentOS 9 + Hadoop3.x)
    通信基础知识
    工业网络通讯技术的发展历程
    QT报错The inferior stopped because it received a signal from the operating system
    JavaScript 数组 【‘遍历数组’,‘增‘,‘删’,‘改‘,‘查‘】 详解 +增删查改数组案例
    bash例子-source进程替换、alias不生效处理
    微信小程序开发11 数据预取:合理缓存提高用户体验
  • 原文地址:https://blog.csdn.net/ytlzq0228/article/details/126430313