前言 数字化是一种趋势,特别是在“提速降费”的大环境下,这种趋势愈发明显。对讲机这种古老的系统也处在时代的变革之中,虽然手机的功能越来越强,让人怀疑对讲机是否还有存在的必要。诚然,对讲机仍然有它的市场。有时候,功能太多太强反而不是优势;对讲机的优势就是功能简单,专业性强。

  笔者最近也涉足了对讲系统的开发,发现这个行业也大有可为。特别是4G、5G的出现,数字对讲系统的优势逐步显现;就像数码相机代替光学相机,模拟对讲机最终会被数字对讲机代替。虽然笔者接触数字对讲时间并不长;但是敏锐的觉察到,在这一细分市场做好、做强,定有丰厚回报。我把开发对讲系统的一些技术要点,想法写下来;希望大家多多交流指导!有志同道合者,可以联系我。

对讲系统现状

  笔者是技术出身,对技术有一定的敏感性。对于市场,只能算作门外汉了;好在,技术人员推理能力比较强。对于对讲系统现状,我确实没有过多的发言权,我就根据了解的一些的情况,做一些合理的推理。模拟对讲系统出现已有几十年了,直到最近几年,数字对讲系统才有突飞猛进的发展,有加速替换模拟对讲系统的趋势。有几个原因:1流量费的降低。大家可以回想一下几年前的流量资费,是多嘛的坑爹。2功能优势:数字对讲传输距离不受限制;可以传输文字、图片、视频等,并且可以保存;做到保密通讯;方便群组、人员管理等等。可以说优点很多。最后再加一条:由于电脑处理系统的强大,单个对讲机的服务费也非常的低,几乎可以做到忽略不计;这样就能做到,硬件便宜,后期使用费用也很低。免除了使用者的后顾之忧。

  模拟对讲系统在国内存量市场很大,有几千万台之多。每年会有相当比例的用户转为数字对讲。加之,数字对讲系统的优点,也会吸引相当一部分新用户加入。对于一些要求比较高的群体,如公安等,有些功能是模拟对讲无法满足的,只能选择数字对讲。

  可以说涉足这个领域的风险极低。关键是技术上要过硬,功能上有灵活性。

数字对讲系统组成

对讲系统主要有:PPT终端、对讲处理中心,调度平台等组成。我逐一介绍一下开发要点。
PPT终端:可分为两部分:硬件和软件。对于硬件,需要找相关的生产厂家代工,国内主要的生产基地在泉州。软件部分也不必完全从底层做起;比如4G通讯,与界面交互这些都大同小异;这些功能可采用第三方平台。你所做的只是业务逻辑部分,暨如何与服务器处理部分。这样开发难度会大大降低。采用的操作系统只能是linux,开发语言一般是C语言。

  我们采用的是广和通平台,在该平台开发,和在pc机开发几乎没有区别。网络功能部分,广和通模块已经实现的非常完备。界面部分,也可以采用第三方平台;界面与程序之间是通过AT指令完成。广和通平台已经支持AT指令,界面部分的工作量也非常的小。业务模块逻辑,一般可在一个月内完成开发。

  上图为广和通的开发平台。右侧为通讯模块(CP),左侧为应用程序模块(AP)。AP与CP之间是通过标准接口通讯,CP端升级,不会影响到AP端。譬如:以后CP升级到5G,AP端无须任何改动。应用程序是运行在AP端,底层就是linux系统,开发语言是C。平台集成了AT指令。这样就大大减轻开发者负担。

 对讲处理中心:这里是对讲系统的中转调度中心。时时刻刻处理着对讲系统的登录、语音、群组切换等业务。我们采用的是c#开发的,运行在windows平台。

该系统有如下几个特点

1 性能: 提高单台服务器的处理能力,就意味着降低单个对讲机的服务成本。一台服务器要满足处理10万台以上的对讲机的能力。流量数据每秒达到几百兆带宽的量,这部分处理需要极度优化;socket处理如何优化可以参考我的文章《高性能、高可用性Socket通讯库介绍》

由于很难模拟10万台设备与服务器交互,所以只进行了传输量测试。IOCP是可扩展性模型,单个连接与多个连接效率区别不大,通过单个连接测试,也可以窥探服务器的性能与容量;

我使用c++写的模拟程序,对该系统测试。收发数据总计超过50M,暨占用500M带宽,cpu占用率23%。测试平台为笔记本,硬件配置比较低。如果采用高性能服务器,达到千兆带宽传输,cpu占用也不会很高。

2 稳定性:这点的重要性不言自明。如果服务器出现故障,会影响数万台对讲机。这里的稳定性包括硬件和软件两个部分。硬件可以使用云平台,费用可能高点,但是硬件稳定性有了保障。软件稳定性需要考虑很多因素,主要和开发人员水平有关,这里不多叙述。

调度平台:这里可以看到所管辖的对讲机;查看对讲机的状态,GPS位置信息等。调度台同时也是一个对讲终端,可以和别的对讲机发起通话。由于系统应用的行业、场景有所不同,调度台功能也会有非常大的差别。这部分的难点是界面开发,我们采用的WPF来开发界面。WPF可以说是微软推出的迄今为止最优秀的框架,WPF的缺点是理念有些超常,不易理解。

扩展功能:数字化的优点是方便计算机处理,易扩展。除了以上基本功能,还能加上许多附加功能。比如:传图片、视频、传文字等。这些都不是对讲系统的主流功能;但是,如有必要,实现这些功能并不很难。对于视频的处理,可以参见我写的相关文章。

 后记:常言道“时势造英雄”;有时选对方向比努力更重要。随着互联网+国家战略的推进,定会涌现不少符合潮流的产业。数字对讲系统应该就是符合这个潮流的产业之一。 提前布局,才能占得先机!入行几个月来,笔者也有一点感想,一点心得,粗笔草记,权当抛砖引玉!

数字对讲系统开发札记(前端linux c 后端 c#)的更多相关文章

  1. 招聘前端、Java后端开发、测试、Mysql DBA

    公司介绍: http://www.lagou.com/gongsi/43095.html http://www.yamichu.com 简历发到: zhuye@yamichu.com 招聘职位: JA ...

  2. 前端基于react,后端基于.net core2.0的开发之路(1) 介绍

    文章提纲目录 1.前端基于react,后端基于.net core2.0的开发之路(1) 介绍 2.前端基于react,后端基于.net core2.0的开发之路(2) 开发环境的配置,注意事项,后端数 ...

  3. 前端基于react,后端基于.net core2.0的开发之路(2) 开发环境的配置,注意事项,后端数据初始化

    前端环境配置 项目介绍文章:前端基于react,后端基于.net core2.0的开发之路(1) 介绍 1.VSCode安装 下载地址:https://code.visualstudio.com/Do ...

  4. 让前端独立于后端进行开发,模拟数据生成器Mock.js

    让前端独立于后端进行开发,模拟数据生成器Mock.jsMock.js 是一款模拟数据生成器,旨在帮助前端攻城师独立于后端进行开发,帮助编写单元测试. Home · nuysoft/Mock Wiki ...

  5. 认识Web前端、Web后端、桌面app和移动app新开发模式 - 基于Node.js环境和VS Code工具

    认识Web.桌面和移动app新开发模式 - 基于Node.js环境和VS Code工具 一.开发环境的搭建(基于win10) 1.安装node.js和npm 到node.js官网下载安装包(包含npm ...

  6. Spring Boot + Vue 前后端分离开发,前端网络请求封装与配置

    前端网络访问,主流方案就是 Ajax,Vue 也不例外,在 Vue2.0 之前,网络访问较多的采用 vue-resources,Vue2.0 之后,官方不再建议使用 vue-resources ,这个 ...

  7. Web系统开发构架再思考-前后端的完全分离

    前言 前后端完全分离其实一直是Web开发人员的梦想,也一直是我的梦想,遥想当年,无论是直接在代码里面输出HTML,还是在HTML里面嵌入各种代码,都不能让人感到满意.期间的痛苦和纠结,我想所有Web开 ...

  8. Python开发【前端】:JavaScript

    JavaScript入门 JavaScript一种直译式脚本语言,是一种动态类型.弱类型.基于原型的语言,内置支持类型.它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本 ...

  9. Go 语言开发的基于 Linux 虚拟服务器的负载平衡平台 Seesaw

    负载均衡系统 Seesaw Seesaw是由我们网络可靠性工程师用 Go 语言开发的基于 Linux 虚拟服务器的负载平衡平台,就像所有好的项目一样,这个项目也是为了解决实际问题而产生的. Seesa ...

随机推荐

  1. Linux系统minicom命令详解

    minicom 功能说明:调制解调器通信程序 语 法:minicom [-8lmMostz][-a<on或0ff>][-c<on或off>][-C<取文件>][-d ...

  2. EF ++属性会更新实体

    var lastBaby = await _babyRepository.FirstOrDefaultAsync(); ++lastBaby.sort; -- sort原本为1 -- 最终会生成一条语 ...

  3. vi/vim 文字处理器常用命令

    目录 vi 与vim vi 的三种模式 vi 光标移动 vi 搜索与替换 vi 删除 vi 复制 vi 粘贴 vi 其他 vi 进入编辑模式 vi 命令行命令 vim 附加功能 vi 与vim vi是 ...

  4. 选择困难症的福音——团队Scrum冲刺阶段-Day 4

    选择困难症的福音--团队Scrum冲刺阶段-Day 4 今日进展 编写提问部分 做了不同问题所对应的游戏选项,但关于游戏分类的界面还没有做完 增加功能 昨天在主界面增加"关于我们" ...

  5. oracle服务端与客户端字符集不同导致中文乱码解决方案

    1.问题描述 用pl/sql登录时,会提示“数据库字符集(ZHS16GBK)和客户端字符集(2%)是不同的,字符集转化可能会造成不可预期的后果”,具体问题是中文乱码,如下图 2.问题分析 不管错误信息 ...

  6. 2018上IEC计算机高级语言(C)作业 第1次作业

    1.经过这几周的学习,总结一下学习的心得与体会.(不少于100字:10分) 学习c语言已经一个学期了,刚开始学习的时候老是感觉力不从心.虽然认真听课了, 但是并不能理解它.这种情况到了后来才有所改变. ...

  7. [C#.net]将null值插入SQL Server的Datetime

    之前处理SQL Server可以为空时间字段总是设置时间的最小值和最大值,今天才发现也可以把null用C#的代码插入到sql内 使用可空的值类型,代码如下 public DateTime? Servi ...

  8. O365 Manager Plus帮助台委派介绍

    O365 Manager Plus帮助台委派介绍 虽然Office 365允许您在全球任何地方工作,但它提供的管理功能十分不足.当一个组织分布在多个国家/地区时,一个管理员很难单独管理所有用户和邮箱. ...

  9. URL与URI的区别和联系

    转自:https://www.cnblogs.com/chengdabelief/p/6635045.html 简单理解是这样的:理解URI和URL的区别,我们引入URN这个概念. URI = Uni ...

  10. CentOs7安装PHP

    来源:https://jingyan.baidu.com/article/2d5afd692df18d85a3e28e4c.html 一.下载源码 1.cd /usr/local/src/ 2. 执行 ...