数字对讲系统开发札记(前端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 ...
随机推荐
- Linux系统minicom命令详解
minicom 功能说明:调制解调器通信程序 语 法:minicom [-8lmMostz][-a<on或0ff>][-c<on或off>][-C<取文件>][-d ...
- EF ++属性会更新实体
var lastBaby = await _babyRepository.FirstOrDefaultAsync(); ++lastBaby.sort; -- sort原本为1 -- 最终会生成一条语 ...
- vi/vim 文字处理器常用命令
目录 vi 与vim vi 的三种模式 vi 光标移动 vi 搜索与替换 vi 删除 vi 复制 vi 粘贴 vi 其他 vi 进入编辑模式 vi 命令行命令 vim 附加功能 vi 与vim vi是 ...
- 选择困难症的福音——团队Scrum冲刺阶段-Day 4
选择困难症的福音--团队Scrum冲刺阶段-Day 4 今日进展 编写提问部分 做了不同问题所对应的游戏选项,但关于游戏分类的界面还没有做完 增加功能 昨天在主界面增加"关于我们" ...
- oracle服务端与客户端字符集不同导致中文乱码解决方案
1.问题描述 用pl/sql登录时,会提示“数据库字符集(ZHS16GBK)和客户端字符集(2%)是不同的,字符集转化可能会造成不可预期的后果”,具体问题是中文乱码,如下图 2.问题分析 不管错误信息 ...
- 2018上IEC计算机高级语言(C)作业 第1次作业
1.经过这几周的学习,总结一下学习的心得与体会.(不少于100字:10分) 学习c语言已经一个学期了,刚开始学习的时候老是感觉力不从心.虽然认真听课了, 但是并不能理解它.这种情况到了后来才有所改变. ...
- [C#.net]将null值插入SQL Server的Datetime
之前处理SQL Server可以为空时间字段总是设置时间的最小值和最大值,今天才发现也可以把null用C#的代码插入到sql内 使用可空的值类型,代码如下 public DateTime? Servi ...
- O365 Manager Plus帮助台委派介绍
O365 Manager Plus帮助台委派介绍 虽然Office 365允许您在全球任何地方工作,但它提供的管理功能十分不足.当一个组织分布在多个国家/地区时,一个管理员很难单独管理所有用户和邮箱. ...
- URL与URI的区别和联系
转自:https://www.cnblogs.com/chengdabelief/p/6635045.html 简单理解是这样的:理解URI和URL的区别,我们引入URN这个概念. URI = Uni ...
- CentOs7安装PHP
来源:https://jingyan.baidu.com/article/2d5afd692df18d85a3e28e4c.html 一.下载源码 1.cd /usr/local/src/ 2. 执行 ...