1

概 述

SperComm控制器和SCL2008N控制器均支持借助Internet的广域网访问。组建这样的通讯网络有两个前提，一是管理中心需有一个Internet的固定IP地址，另一个是每个控制器所在的地方能够实现宽带(ADSL)上网。

如上图所示，在固定IP的网络中，有一台计算机(显示屏控制计算机)，它管理着5块通过ADSL拨号上网的LED显示屏(其中有两块屏是在同一个ADSL连接之下)。这5块显示屏可能与这台计算机不在同一城市，或不在同一省份，甚至可以在不同的国家。


2

网络地址设定

我们以前面图示的情况来介绍路由器、计算机、ADSL路由器以及显示屏各环节的设置。


3

ADSL路由器的设置

ADSL路由器的设置包括三个部分：

1、 WAN端设置：按照ADSL拨号上网的要求，输入用户名、口令，以及选择连线方式。上图中四个ADSL路由器输入的上网帐号和上网口令当然是不一样的。下图是某款路由器拨号上网的设置界面；

2、 LAN端设置：只需要设置IP地址和子网掩码，可以将四个路由器的LAN端都设置成相同的。下图是某款路由器的LAN端设置：

3、 转发规则：将SuperComEdit/SCL2008Edit与控制器交换数据的UDP端口映射到控制器。ADSL路由器一、ADSL路由器二和ADSL路由器三可以按照下图设置：

ADSL路由器四下面因为带了两块显示屏，因此需要开放两组端口，一组给显示屏四，另一组显示屏五：


4

SuperComm/SCL2008控制器设置

参看控制器的工程手册，在设置好控制器的硬件参数及宽高后，进入网络参数设置，如下图：

进入网络参数设置界面后，请记下各控制器的MAC地址。SuperComm/SCL2008控制器都具有唯一的MAC地址。在本远程管理方案中，就是根据MAC地址来识别各个控制器的。

1、 因为ADSL路由器的LAN端IP地址为10.1.1.1，而且设置了转发给10.1.1.127，所以这里要设置IP地址为10.1.1.127(对于显示屏五则设置为10.1.1.128)，而且网关要设置为10.1.1.1，子网掩码与ADSL路由器一样的设置为255.255.255.0；

2、 输入相应的助记名，以便简单的识别各显示屏；

3、 将管理中心的固定IP地址输入到Host Server IP栏；选择报告当前IP地址的时间间隔Heart-Beating Peroid；选择汇报当前IP地址的端口号。


5

管理中心路由器设置

假设LED服务器的IP地址为192.168.1.132。注意，这里不可以采用自动获取IP的方式。因为需要在路由器中开放网络通讯所用的一些端口给对应的IP地址，若使用自动获取IP地址的方式，则可能在第二天，或以后的时候打开LED服务器时，其IP地址已经变化了，导致路由器的所有设置失效。

对上图的管理中心的路由器A，我们需要开放如下一些端口给LED服务器：

1、 用于与显示屏通讯的两个相邻的UDP端口号。这两个相邻对端口号可以任意选择。SuperComm和SCL2008N控制器采用UDP服务器模式，它们一直在监听所有的UDP端口，假设在端口A接收到符合协议的数据包，则用端口A+1给出应答数据。根据ADSL路由器的设置情况，需要开放27694、27695、27696和27697这四个端口；

2、 用于报告显示屏控制器的ADSL联网后当前的动态IP的UDP端口号。根据各控制器的网络参数设置情况，开放2008端口

上述设置的结果如下图所示：

前述的三个设置步骤完成后，显示屏与LED服务器之间的通讯通道就完全建立起来了。


6

通讯过程分析

每隔一定时间间隔(例如1分钟)，SuperComm/SCL2008控制器就会向219.134.231.131的2008端口发送一个特别的报告自身在线的数据包。因为这个数据包的目的地址不在10.1.1.xxx网段内，10.1.1.1这个网关就会将数据包发往Internet，然后经过Internet到达有固定IP的[路由器A]。

因为[路由器A]中设置了将端口2008转发给192.168.1.132，因此，最终是[LED服务器]收到这个数据包，于是，[LED服务器]从数据包中可以截获到ADSL路由器当前的动态Internet IP地址。

若[LED 服务器]需要向某个显示屏发送数据时，会将数据发往某个ADSL路由器的27694端口(发送给显示屏五时发到27696端口)。因为这个路由器的IP地址不在192.168.1.xxx网段内，网关192.168.1.1会将数据转发到Internet，从而到达指定的ADSL路由器。因为在ADSL路由器里我们设置了将端口27694映射到10.1.1.127(27696映射到了10.1.1.128)，所以最终接收到数据的是SuperComm/SCL2008控制器。

在SuperComm/SCL2008控制器回送应答数据的时候，它将数据发往管理中心219.134.231.131的27694端口(显示屏五则发往27696端口)。而[路由器A]设置了将端口27694、27696均映射到192.168.1.132，所以，[LED服务器]可以收到从SuperComm/SCL2008控制器返回的应答。


7

LED信息管理

为了便于用户操作，避免记忆烦琐的IP地址、MAC地址等。SuperComEdit和SCL2008Edit软件提供了一个[LED信息管理]，在程序的主菜单上选[帮助]->[LED信息管理]，出现如下的界面。在该界面里，勾选[启用信息管理]，根据每个SuperComm/SCL2008的实际参数和设置，输入其助记名、MAC地址、显示屏的宽高：

可以根据需要勾选[起用信息访问密码]并输入密码来防止用户随意更改这里输入的数据。若MAC地址或屏的宽高被改乱，则可能导致显示屏无法访问，或无法在正确的版面里制作节目。

启用LED信息管理后，在SuperComEdit/SCL2008Edit程序中，就可以使用助记名来选择显示屏了。


8

SCL Online程序

前面的信息管理输入完后点[确定]，程序将会启动另一个独立的程序：SCL_Online.exe。这个程序将自动不断的监视2008端口，动态维护着一个当前在线的显示屏及参数表格。双击或单击任务栏右下角的SCL Online图标，可以查看SuperComm/SCL2008的在线状态(图中显示仅一个控制器在线)：


9

编程接口

在SCL Online.exe程序已经运行的情况下，可以调用SCL_ServerTable.Dll中函数获得在线的某个MAC地址的控制器的当前动态IP地址，或获取控制器里输入助记名、所在局域网的本地IP地址，以及控制器类型等。

1、 调用SCL-Servertable中的函数时用到的数据结构：一共32个字节:

struct SearchStru

{

BYTE MAC[6]; // 6字节, 控制器的MAC地址

BYTE LIP[4]; // 4字节, 控制器的LAN IP 地址

char Name[16]; // 16字节, 以0结束的控制器助记名

BYTE Type; // 1字节, 控制器类型,0:SuperComm, 1:SCL2008

BYTE WIP[4]; // 4字节, 控制器所属ADSL的WAN IP

BYTE Hour; // 1字节， 控制器最后一次汇报IP地址的小时

BYTE Minute; // 1字节， 控制器最后一次汇报IP地址的分

};

2、 查找第一项：BOOL __stdcall SCL_ServerTableFindFirst(BYTE *data,BYTE findtype);

其中： data指向struct SearchStru类型的缓冲区。

Findtype：查找类型

1：按照WAN IP 进行查找

2：按照LAN IP 进行查找

4：按照 MAC 地址进行查找

8：按照助记名查找

16：按照控制器类型进行查找

可以使用上述各查找方式的组合条件进行查找。

返回值：TRUE表示找到符合条件的在线的控制器，FALSE表示没找到符合条件的在线的控制器。

调用此函数前，根据查找类型，准备好结构中的相应的域，然后调用SCL_ServerTableFindFirst函数。若返回值为TRUE，则data中有符合条件的控制器的所有信息。例如，若要查找LAN IP 为“10.1.1.127”的SCL2008控制器，

{

Struct SearchStru data;

BOOL bFind;

data.LIP[0]=10;

data.LIP[1]=1;

data.LIP[2]=1;

data.LIP[3]=127;

data.Type =1;

bFind = SCL_ServertableFindFirst(&data.MAC[0],2 + 16);

}

3、 查找后续项：BOOL __stdcall SCL_ServerTableFindNext(BYTE *data,BYTE findtype);

参数信息与返回结果同上。在查找有很多共性的控制器时，调用SCL_ServerTableFintFirst函数，且返回结果为TRUE时，继续连续调用SCL_ServerTableFindNext函数，直到返回FALSE，可获得符合条件的多个控制器的信息。