Browse Source

修改接口

yc_t 6 years ago
parent
commit
53288b88f9
3 changed files with 223 additions and 146 deletions
  1. 103 70
      broadcastDLL/BroadcastModule.cs
  2. 103 70
      broadcastModule/BroadcastModule.cs
  3. 17 6
      broadcastModule/Program.cs

+ 103 - 70
broadcastDLL/BroadcastModule.cs

@@ -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;
+            }
+        }
     }
 }

+ 103 - 70
broadcastModule/BroadcastModule.cs

@@ -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;
+            }
+        }
     }
 }

+ 17 - 6
broadcastModule/Program.cs

@@ -35,12 +35,23 @@ namespace BroadcastModule
             //bm1 = new BroadcastBoard("192.168.0.60", 9999);
             bm1.UpdateTime();
             bm1.Refresh();
-            bm1.DownloadString(0, "欢迎光临", 0);
-            bm1.DispString(1, "yah hoo!", 0);
-            bm1.DownloadString(2, "date", 0);
-            bm1.DownloadString(3, "time", 0);
-            bm1.DispDownStr(2, 0);
-            bm1.DispDownStr(3, 0);
+            bm1.Play(0, BroadcastBoard.PlayMode.temporary, "欢迎光临", 5);
+            bm1.Play(1, BroadcastBoard.PlayMode.temporary, "*~。*~~ yah hoo!", 5);
+            bm1.Play(2, BroadcastBoard.PlayMode.temporary, "date", 5);
+
+            bm1.Play(2, BroadcastBoard.PlayMode.download, "date");
+            bm1.Play(3, BroadcastBoard.PlayMode.download, "time");
+
+            bm1.Play(2, BroadcastBoard.PlayMode.readBuffer, "", 0, 0);
+            bm1.Play(3, BroadcastBoard.PlayMode.readBuffer, "", 0, 0);
+
+            bm1.Play(0, BroadcastBoard.PlayMode.audio, "欢迎光临");
+            //bm1.DownloadString(0, "欢迎光临", 0);
+            //bm1.DispString(1, "yah hoo!", 0);
+            //bm1.DownloadString(2, "date", 0);
+            //bm1.DownloadString(3, "time", 0);
+            //bm1.DispDownStr(2, 0);
+            //bm1.DispDownStr(3, 0);
 
             //Task.Factory.StartNew(() =>
             //{