在完成 6.2 节工作的前提下,也就说,你有了自己的云服务器,也可以比喻成你有了“一朵可用的云”,就有了运行 CS-Monitor 编程模板的基础。本节将详细介绍 CS-Monitor的详细运行步骤。
在运行 CS-Monitor 之前,需要确认 CS-Monitor 程序侦听的端口是否未被其他程序占用或者是否已对外开放,可借助网络调试助手进行端口测试。测试步骤如下。
1.在云服务器上打开TCP Server
(1)将网上光盘“..\05-Tool”文件夹下的网络调试助手NetAssist.exe 复制到云服务器中,双击可运行该程序。
(2)将程序页面的“(1)协议类型”选择为“TCP Server”协议,“(2)本地主机地址”选择为“0.0.0.0”,在“(3)本地主机端口”中输入“26123”(该端口号为CS-Monitor程序默认的侦听端口号)。输入完成之后,单击“连接”按钮,将会出现如图6-2所示的页面,“连接”按钮会变为“关闭”按钮。至此,就成功地在服务器端开启了侦听服务。
(3)若单击“连接”按钮后按钮文字没有发生变化,则表示当前端口可能被其他线程占用了。其解决方法为:中止占用此端口的线程或者参照6.3.3节更改CS-Monitor工程配置文件中的端口设置,将HCICom侦听端口改为其他可用的端口号,可用端口号不是默认服务端口,且其他程序没有占用它。
2.在用户计算机上连接TCP Server
在联网的用户计算机上,同样双击运行位于网上光盘“..\05-Tool”文件夹下网络调试助手NetAssist.exe。
在“(1)协议类型”栏目选择为“TCP Client”,在“(2)本地主机地址”选择本机的IP地址,在“(3)远程主机地址”选择“116.62.63.164:26123”,“116.62.63.164”为之前所述云服务器的IP地址,“26123”为云服务器上网络调试助手中开启侦听的端口,如图6-3所示。单击“连接”按钮,若“连接”按钮由“连接”变成“断开”,则表示连接成功,说明端口已经对外开放;否则,说明端口未对外开放,应登录云服务器的管理控制平台,通过安全组设置开放端口。具体的设置步骤可咨询云服务器运行商。
确认端口成功开放之后,需要将云服务器上的网络调试助手程序关闭,否则CS-Monitor程序将因为端口被占用而无法运行。
图6-2 在服务器开启侦听
图6-3 连接远程服务器
将网上光盘中“..\04-Soft\02-HCI\02-CS-Monitor”和“..\04-Soft\02-HCI\DataBase”两个文件夹复制至云服务器中,并以相对路径的形式存放。由于Windows默认登录的账户对该数据库文件的访问权限不足,因此可能需要设置权限。其操作步骤如下:
(1)在DataBase文件夹下,右击AHL-IoT.mdf文件,在弹出的菜单中选择“属性”,在弹出的对话框中选择“安全”选项卡。
(2)单击页面中的“编辑”按钮。
(3)在弹出对话框中选择“Users”,并选中“完全控制”项,如图6-4所示。
(4)单击“应用”按钮,然后单击“确定”按钮。
为了方便直观地查看数据库中的表与数据,可以采用4.5.1节采用的方法在VS环境中加入数据库。
图6-4 修改用户权限
采用相对路径的方式进行数据访问,可方便项目的开发,允许一个CS-Monitor程序对应一个DataBase文件,并且不用修改连接数据库的方式,可借助 VS 中的Microsoft Visual DataBase Tools进行数据库的管理。若想使用更加方便、功能全面,且具有更高安全性的访问方式,可以采用附录 C.7 中的方法,将数据库文件附加到SQL Server,并修改app.config文件。
本书网上光盘所提供的CS-Monitor无法直接在新服务器上直接正常工作,因为运行的环境已经发生了变化,读者需要根据自己申请到的IP地址及使用的端口进行修改。
AHL.xml为CS-Monitor的服务器地址、用户参数配置文件,需要打开工程目录下的该文件,对其中的HCIComTarget、WebSocketTarget、WebSocketDirection键值进行修改。
HCIComTarget键值表示CS-Monitor的HCICom连接方式与连接的目标地址。例如,侦听本地的26123端口时,使用local:26123进行表示;连接116.62.63.164的26123号端口时,表示为 116.62.63.164:26123。CS-Monitor 需要选择侦听本地端口,且该侦听端口不能被其他程序与其他线程占用。可参照6.3.1节,使用网络调试助手来确定某一端口是否被使用,如本地计算机处调试助手可以连接到云服务器的某一端口,说明该端口已经被占用。本例选择侦听本地端口26123,故修改结果如以下代码所示。
WebSocketTarget 键值表示 CS-Monitor 的 WebSocket 连接的服务器地址和端口号。WebSocketDirection键值表示WebSocket服务器二级目录地址,例如,使用服务器的38867端口作为WebSocket服务时,设置WebSocketTarget键值为“ws://0.0.0.0:38867”,并且设置WebSocket 访问的二级目录为“/wsServices/”,需要设置 WebSocketDirection 键值为“/wsServices/”,同样需要测试该端口是否被占用。
CS-Monitor程序能够接收到数据,则UE程序发送的地址及端口号需要与CS-Monitor程序运行地址及侦听端口号保持一致,即与6.3.3节中设置的HCIComTarget保持一致。借助用户更新程序AHL-UserPrgUpdate的“更改Flash信息”功能,可对服务器IP与服务器端口号进行修改。
如图 6-5 所示,在终端(UE)程序运行的前提下,单击用户更新程序的“更改 Flash信息”菜单选项;单击“连接”按钮,查找更新程序与终端连接的串口;单击“读取基本信息”按钮,在“Flash操作相关参数”区域中会看到Flash中存储的数据;修改服务器IP与服务器端口号,如将服务器的IP修改为“116.62.63.164”,将服务器端口号修改为“26123”,单击“确定修改”按钮,可更改Flash的相关参数。
图6-5 修改UE程序发送地址
在AHL.XML文件修改完成之后,就可以运行CS-Monitor程序了,共有两种运行方法:一是直接运行可执行文件;二是运行C#源程序文件。
1.方法一:直接运行可执行文件
在 CS-Monitor 工程目录“bin/Debug”下,双击 AHL-IoT.exe 即可运行 CS-Monitor程序。
2.方法二:运行C#源程序文件
双击CS-Monitor工程目录中的AHL-IoT.sln(C#解决方案文件)进入Visual Studio 2013开发环境,选择菜单“调试/开始执行(不调试)(H)”即可运行C#源程序文件。
3.CS-Monitor运行页面
下面给出了CS-Monitor的几个基本运行页面(窗体)并介绍其基本功能。
(1)主页面&实时数据窗体。如图6-6所示,主页面(主窗体)为MDI容器 ,后续窗体都在该窗体中打开。通过选择窗体菜单栏选项可以打开其他窗体,主窗体下方的状态栏可以显示程序运行情况、网络与端口连接情况,以及系统时间。
图6-6 主页面&实时数据窗体
实时数据窗体是程序打开后与主窗体一起默认打开的窗体,可以通过单击菜单栏中的“实时(R)”→“实时数据(D)”打开该窗体。实时数据窗体会显示终端上传的实时数据,用户可以修改实时数据的部分信息并回发给终端。
(2)历史数据窗体。如图6-7所示,单击菜单栏中“历史(H)”→“历史数据(H)”可打开历史数据窗体。历史数据窗体提供了最基本的数据库查询删除功能,用户也可以修改历史数据并回发给终端。
图6-7 历史数据窗体
(3)实时曲线窗体。如图6-8所示,单击菜单栏中“实时(R)”→“实时曲线(D)”可打开实时曲线窗体。实时曲线窗体可以显示最近一个小时内指定IMSI设备某些数值的变化曲线。
图6-8 实时曲线窗体
(4)配置终端(UE)窗体。如图6-9所示,单击菜单栏中“项目(P)”→“基本参数(J)”可打开该窗体。用户在此可以查阅并修改指定IMSI对应终端(UE)设备的配置信息。
图6-9 配置终端(UE)窗体