数字对讲系统开发札记(前端linux c 后端 c#)
前言 数字化是一种趋势,特别是在“提速降费”的大环境下,这种趋势愈发明显。对讲机这种古老的系统也处在时代的变革之中,虽然手机的功能越来越强,让人怀疑对讲机是否还有存在的必要。诚然,对讲机仍然有它的市场。有时候,功能太多太强反而不是优势;对讲机的优势就是功能简单,专业性强。
笔者最近也涉足了对讲系统的开发,发现这个行业也大有可为。特别是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#)的更多相关文章
- 招聘前端、Java后端开发、测试、Mysql DBA
公司介绍: http://www.lagou.com/gongsi/43095.html http://www.yamichu.com 简历发到: zhuye@yamichu.com 招聘职位: JA ...
- 前端基于react,后端基于.net core2.0的开发之路(1) 介绍
文章提纲目录 1.前端基于react,后端基于.net core2.0的开发之路(1) 介绍 2.前端基于react,后端基于.net core2.0的开发之路(2) 开发环境的配置,注意事项,后端数 ...
- 前端基于react,后端基于.net core2.0的开发之路(2) 开发环境的配置,注意事项,后端数据初始化
前端环境配置 项目介绍文章:前端基于react,后端基于.net core2.0的开发之路(1) 介绍 1.VSCode安装 下载地址:https://code.visualstudio.com/Do ...
- 让前端独立于后端进行开发,模拟数据生成器Mock.js
让前端独立于后端进行开发,模拟数据生成器Mock.jsMock.js 是一款模拟数据生成器,旨在帮助前端攻城师独立于后端进行开发,帮助编写单元测试. Home · nuysoft/Mock Wiki ...
- 认识Web前端、Web后端、桌面app和移动app新开发模式 - 基于Node.js环境和VS Code工具
认识Web.桌面和移动app新开发模式 - 基于Node.js环境和VS Code工具 一.开发环境的搭建(基于win10) 1.安装node.js和npm 到node.js官网下载安装包(包含npm ...
- Spring Boot + Vue 前后端分离开发,前端网络请求封装与配置
前端网络访问,主流方案就是 Ajax,Vue 也不例外,在 Vue2.0 之前,网络访问较多的采用 vue-resources,Vue2.0 之后,官方不再建议使用 vue-resources ,这个 ...
- Web系统开发构架再思考-前后端的完全分离
前言 前后端完全分离其实一直是Web开发人员的梦想,也一直是我的梦想,遥想当年,无论是直接在代码里面输出HTML,还是在HTML里面嵌入各种代码,都不能让人感到满意.期间的痛苦和纠结,我想所有Web开 ...
- Python开发【前端】:JavaScript
JavaScript入门 JavaScript一种直译式脚本语言,是一种动态类型.弱类型.基于原型的语言,内置支持类型.它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本 ...
- Go 语言开发的基于 Linux 虚拟服务器的负载平衡平台 Seesaw
负载均衡系统 Seesaw Seesaw是由我们网络可靠性工程师用 Go 语言开发的基于 Linux 虚拟服务器的负载平衡平台,就像所有好的项目一样,这个项目也是为了解决实际问题而产生的. Seesa ...
随机推荐
- [leetcode]33. Search in Rotated Sorted Array旋转过有序数组里找目标值
Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand. (i.e. ...
- Spark2.0学习(一)--------Spark简介
官网对Spark的介绍 http://spark.apache.org/ Apache Spark™ is a unified analytics engine for large-scale dat ...
- SecureCRT问题
使用SecureCRT 与虚拟机进行通信,提示The remote system refused the connection 解决:由于缺少SSH服务器端 sudo apt-get install ...
- python的配置
1.下载python https://jingyan.baidu.com/article/0bc808fc42dfab1bd485b99f.html 2.转载:https://www.cnblogs. ...
- 学习Hibernate的体会
这个学期老师让我们做一个系统(服务器和客户端),语言自选,我也随大家开始学习java web 和android . 下面是我自学的一些体会和遇到的问题. 关于jar包. jsds.jar javasi ...
- MySQL优化(三) 表的设计
1.什么样的表才符合3范式(3 NF)? 表的范式,是首先符合1范式,才能满足2范式,进一步才能满足3范式:(现在最高级别是6范式) 第一范式:1NF 是对属性的原子性约束,要求表的属性(列)具有原子 ...
- 设置textfield 文字左边距
默认情况下,当向textField输入文字时,文字会紧贴在textField左边框上.我们可以通过设置textField的leftView,设置一个只有宽度的leftView.这样还不够,因为默认le ...
- redis在游戏服务器中的使用初探(一) 环境搭建
这里我们尝试在游戏服务器中的数据处理中使用redis 通过该系列文章能够学习 redis的基本操作 源码编译 客户端开源库的编译和使用 以及在游戏服务器中的缓存使用 作为初次摸索 尽量使得环境简单 ...
- delphi三层结构常出现的问题和解决方案
以下问题出现原因有可能多个,暂时将我遇见的记录下来,以后有新的在陆续更新上去,有网友愿意的话也可以共同测试一下. 一,无法更新定位行.一些值可能已在最后一次读取已更改. 错误出现前提: 1, 录数据时 ...
- sock5协议转换http协议工具polipo使用笔记(Centos7)
一.安装 Shadowsocks使用socks5协议,而终端很多工具目前只支持http和https等协议,所以我们为终端设置Shadowsocks的思路就是将socks5协议转换成http协议,然后为 ...