|
@@ -130,54 +130,14 @@ namespace BroadcastModule
|
|
|
int BkColor);
|
|
|
|
|
|
//************************************************ 方法块 **************************************************
|
|
|
- //构造函数
|
|
|
- public BroadcastBoard(string ip, int port, int volume = 10)
|
|
|
- {
|
|
|
- //初始化网络连接配置
|
|
|
- DeviceIP = IPAddress.Parse(ip);
|
|
|
- RPoint = new IPEndPoint(DeviceIP, port);
|
|
|
- TPoint = new IPEndPoint(DeviceIP, port);
|
|
|
-
|
|
|
- //设置协议栈的回调函数
|
|
|
- unsafe
|
|
|
- {
|
|
|
- cbDuCP_dataout = new cbDUCP_DataOutType(cbDUCP_DataOut);
|
|
|
- MB_STK_SetOutCallback(cbDuCP_dataout);
|
|
|
- }
|
|
|
- //GC.KeepAlive(cbDuCP_dataout);
|
|
|
- /*#2.创建UDP网络套接字*/
|
|
|
- DUCP_NetSocket = new UdpClient();
|
|
|
- this.volume = volume;
|
|
|
- DUCP_HOST_SYS_SetVol(volume);
|
|
|
-
|
|
|
- //Refresh();
|
|
|
- }
|
|
|
- public void UpdateTime()
|
|
|
- {
|
|
|
- DateTime dt = DateTime.Now;
|
|
|
- DUCP_HOST_SYS_UpdateTime((short)dt.Year, (byte)dt.Month, (byte)dt.Day, (byte)dt.DayOfWeek, (byte)dt.Hour, (byte)dt.Minute, (byte)dt.Second);
|
|
|
- }
|
|
|
- /// <summary>
|
|
|
- /// 刷新屏幕
|
|
|
- /// </summary>
|
|
|
- public void Refresh()
|
|
|
- {
|
|
|
- DUCP_HOST_TWIN_Del(0);
|
|
|
- DUCP_HOST_TWIN_Del(1);
|
|
|
- DUCP_HOST_TWIN_Del(2);
|
|
|
- DUCP_HOST_TWIN_Del(3);
|
|
|
- DUCP_HOST_TWIN_Create(0, 0, 0, 0, 64, 16);
|
|
|
- DUCP_HOST_TWIN_Create(1, 0, 0, 16, 64, 16);
|
|
|
- DUCP_HOST_TWIN_Create(2, 0, 0, 32, 64, 16);
|
|
|
- DUCP_HOST_TWIN_Create(3, 0, 0, 48, 64, 16);
|
|
|
- }
|
|
|
+ // *************** 私有方法 ***************
|
|
|
/// <summary>
|
|
|
/// 显示特定行文字
|
|
|
/// </summary>
|
|
|
/// <param name="winID"></param>
|
|
|
/// <param name="str"></param>
|
|
|
/// <returns></returns>
|
|
|
- public bool DispString(int winID, string str, int time)
|
|
|
+ private bool DispString(int winID, string str, int time)
|
|
|
{
|
|
|
byte[] buffer = Encoding.Default.GetBytes(str);
|
|
|
if (winID < 0 || winID > 3) { return false; }
|
|
@@ -214,12 +174,12 @@ namespace BroadcastModule
|
|
|
/// </summary>
|
|
|
/// <param name="strs"></param>
|
|
|
/// <returns></returns>
|
|
|
- public bool DispString(string[] strs, bool refresh)
|
|
|
+ private bool DispString(string[] strs, int time)
|
|
|
{
|
|
|
bool normal = true;
|
|
|
for (int i = 0; i < 4; i++)
|
|
|
{
|
|
|
- normal = DispString(i, strs[i], 0);
|
|
|
+ normal = DispString(i, strs[i], time);
|
|
|
if (!normal)
|
|
|
{
|
|
|
break;
|
|
@@ -232,7 +192,7 @@ namespace BroadcastModule
|
|
|
/// </summary>
|
|
|
/// <param name="winID"></param>
|
|
|
/// <param name="str"></param>
|
|
|
- public void DownloadString(int winID, string str, int index)
|
|
|
+ private void DownloadString(int winID, string str, int index)
|
|
|
{
|
|
|
unsafe
|
|
|
{
|
|
@@ -296,7 +256,7 @@ namespace BroadcastModule
|
|
|
/// </summary>
|
|
|
/// <param name="winID"></param>
|
|
|
/// <param name="strs"></param>
|
|
|
- public void DownloadString(int winID, string[] strs)
|
|
|
+ private void DownloadString(int winID, string[] strs)
|
|
|
{
|
|
|
for (int i = 0; i < Math.Min(16, strs.Length) && strs[i] != ""; i++)
|
|
|
{
|
|
@@ -308,7 +268,7 @@ namespace BroadcastModule
|
|
|
/// </summary>
|
|
|
/// <param name="winID"></param>
|
|
|
/// <param name="fieldID"></param>
|
|
|
- public void DispDownStr(int winID, int fieldID)
|
|
|
+ private void DispDownStr(int winID, int fieldID)
|
|
|
{
|
|
|
DUCP_HOST_TWIN_DisFile(winID, fieldID);
|
|
|
}
|
|
@@ -316,7 +276,7 @@ namespace BroadcastModule
|
|
|
/// 播放语音
|
|
|
/// </summary>
|
|
|
/// <param name="str"></param>
|
|
|
- public void AudioPlay(string str)
|
|
|
+ private void AudioPlay(string str)
|
|
|
{
|
|
|
unsafe
|
|
|
{
|
|
@@ -334,33 +294,12 @@ namespace BroadcastModule
|
|
|
}
|
|
|
}
|
|
|
/// <summary>
|
|
|
- /// 音量控制
|
|
|
- /// </summary>
|
|
|
- /// <param name="offset"></param>
|
|
|
- public void VolumeControl(int offset, out int vol)
|
|
|
- {
|
|
|
- volume += offset;
|
|
|
- DUCP_HOST_SYS_SetVol(volume);
|
|
|
- vol = volume;
|
|
|
- }
|
|
|
- public void VolumeControl(int vol)
|
|
|
- {
|
|
|
- DUCP_HOST_SYS_SetVol(volume >= 0 ? (volume <= 50 ? volume : 50) : 0);
|
|
|
- }
|
|
|
- /// <summary>
|
|
|
- /// 重启机器
|
|
|
- /// </summary>
|
|
|
- public void Restart()
|
|
|
- {
|
|
|
- DUCP_HOST_SYS_Reset();
|
|
|
- }
|
|
|
- /// <summary>
|
|
|
/// 删除已下载文本文件
|
|
|
/// </summary>
|
|
|
/// <param name="winID"></param>
|
|
|
/// <param name="startIndex"></param>
|
|
|
/// <param name="endIndex"></param>
|
|
|
- public void DelFile(int winID, int startIndex, int endIndex)
|
|
|
+ private void DelFile(int winID, int startIndex, int endIndex)
|
|
|
{
|
|
|
if (winID >= 0 && winID < 4)
|
|
|
{
|
|
@@ -401,6 +340,68 @@ namespace BroadcastModule
|
|
|
redata[0] = (byte)((crc & 0xff));
|
|
|
return redata;
|
|
|
}
|
|
|
+ // *************** 公有方法 ***************
|
|
|
+ public BroadcastBoard(string ip, int port, int volume = 10)
|
|
|
+ {
|
|
|
+ //初始化网络连接配置
|
|
|
+ DeviceIP = IPAddress.Parse(ip);
|
|
|
+ RPoint = new IPEndPoint(DeviceIP, port);
|
|
|
+ TPoint = new IPEndPoint(DeviceIP, port);
|
|
|
+
|
|
|
+ //设置协议栈的回调函数
|
|
|
+ unsafe
|
|
|
+ {
|
|
|
+ cbDuCP_dataout = new cbDUCP_DataOutType(cbDUCP_DataOut);
|
|
|
+ MB_STK_SetOutCallback(cbDuCP_dataout);
|
|
|
+ }
|
|
|
+ //GC.KeepAlive(cbDuCP_dataout);
|
|
|
+ /*#2.创建UDP网络套接字*/
|
|
|
+ DUCP_NetSocket = new UdpClient();
|
|
|
+ this.volume = volume;
|
|
|
+ DUCP_HOST_SYS_SetVol(volume);
|
|
|
+
|
|
|
+ //Refresh();
|
|
|
+ }
|
|
|
+ public void UpdateTime()
|
|
|
+ {
|
|
|
+ DateTime dt = DateTime.Now;
|
|
|
+ DUCP_HOST_SYS_UpdateTime((short)dt.Year, (byte)dt.Month, (byte)dt.Day, (byte)dt.DayOfWeek, (byte)dt.Hour, (byte)dt.Minute, (byte)dt.Second);
|
|
|
+ }
|
|
|
+ /// <summary>
|
|
|
+ /// 刷新屏幕
|
|
|
+ /// </summary>
|
|
|
+ public void Refresh()
|
|
|
+ {
|
|
|
+ DUCP_HOST_TWIN_Del(0);
|
|
|
+ DUCP_HOST_TWIN_Del(1);
|
|
|
+ DUCP_HOST_TWIN_Del(2);
|
|
|
+ DUCP_HOST_TWIN_Del(3);
|
|
|
+ DUCP_HOST_TWIN_Create(0, 0, 0, 0, 64, 16);
|
|
|
+ DUCP_HOST_TWIN_Create(1, 0, 0, 16, 64, 16);
|
|
|
+ DUCP_HOST_TWIN_Create(2, 0, 0, 32, 64, 16);
|
|
|
+ DUCP_HOST_TWIN_Create(3, 0, 0, 48, 64, 16);
|
|
|
+ }
|
|
|
+ /// <summary>
|
|
|
+ /// 音量控制
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="offset"></param>
|
|
|
+ public void VolumeControl(int offset, out int vol)
|
|
|
+ {
|
|
|
+ volume += offset;
|
|
|
+ DUCP_HOST_SYS_SetVol(volume);
|
|
|
+ vol = volume;
|
|
|
+ }
|
|
|
+ public void VolumeControl(int vol)
|
|
|
+ {
|
|
|
+ DUCP_HOST_SYS_SetVol(volume >= 0 ? (volume <= 50 ? volume : 50) : 0);
|
|
|
+ }
|
|
|
+ /// <summary>
|
|
|
+ /// 重启机器
|
|
|
+ /// </summary>
|
|
|
+ public void Restart()
|
|
|
+ {
|
|
|
+ DUCP_HOST_SYS_Reset();
|
|
|
+ }
|
|
|
/// <summary>
|
|
|
/// 配置ip与端口
|
|
|
/// </summary>
|
|
@@ -443,5 +444,37 @@ namespace BroadcastModule
|
|
|
}
|
|
|
catch (Exception ex) { Console.WriteLine(ex.Message); }
|
|
|
}
|
|
|
+ public enum PlayMode {temporary, download, delete, readBuffer, audio}
|
|
|
+ /// <summary>
|
|
|
+ /// 播放方法
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="winID">显示屏窗口ID</param>
|
|
|
+ /// <param name="mode">播放模式</param>
|
|
|
+ /// <param name="str">待显示或播语音字符串</param>
|
|
|
+ /// <param name="time">保持时间</param>
|
|
|
+ /// <param name="fieldID">存储块ID</param>
|
|
|
+ /// <param name="startIndex">开始下标</param>
|
|
|
+ /// <param name="endIndex">结束下标</param>
|
|
|
+ public void Play(int winID, PlayMode mode, string str,int time=0, int fieldID=0, int startIndex=0, int endIndex=0)
|
|
|
+ {
|
|
|
+ switch (mode)
|
|
|
+ {
|
|
|
+ case PlayMode.temporary:
|
|
|
+ DispString(winID, str, time);
|
|
|
+ break;
|
|
|
+ case PlayMode.download:
|
|
|
+ DownloadString(winID, str, fieldID);
|
|
|
+ break;
|
|
|
+ case PlayMode.readBuffer:
|
|
|
+ DispDownStr(winID, fieldID);
|
|
|
+ break;
|
|
|
+ case PlayMode.delete:
|
|
|
+ DelFile(winID, startIndex, endIndex);
|
|
|
+ break;
|
|
|
+ case PlayMode.audio:
|
|
|
+ AudioPlay(str);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|