105 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			105 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			C#
		
	
	
	
| using System;
 | ||
| using System.Collections.Generic;
 | ||
| using System.Linq;
 | ||
| using System.Runtime.Serialization;
 | ||
| using System.ServiceModel;
 | ||
| using System.ServiceModel.Web;
 | ||
| using System.Text;
 | ||
| using DeiNiu.Utils;
 | ||
| 
 | ||
| namespace WcfService2
 | ||
| {
 | ||
|     // 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码、svc 和配置文件中的类名“Service1”。
 | ||
|     public class Service1 : IService1
 | ||
|     {
 | ||
|         public string GetData(int value)
 | ||
|         {
 | ||
|             return string.Format("You entered: {0}", value);
 | ||
|         }
 | ||
| 
 | ||
|         public CompositeType GetDataUsingDataContract(CompositeType composite)
 | ||
|         {
 | ||
|             if (composite == null)
 | ||
|             {
 | ||
|                 throw new ArgumentNullException("composite");
 | ||
|             }
 | ||
|             if (composite.BoolValue)
 | ||
|             {
 | ||
|                 composite.StringValue += "Suffix";
 | ||
|             }
 | ||
|             return composite;
 | ||
|         }
 | ||
| 
 | ||
|         public bool lightTables(int led_color, int port,
 | ||
|                      string[] ele_lab_id, string[] ele_address, string[] Out_count )
 | ||
|         {
 | ||
|             elelab.pick.init_port(enumLabelPickType.pick);
 | ||
|             Util.WAVE_CURRENT_PICK_STATUS.Clear();
 | ||
|             Util.WAVE_CURRENT_LIGHTS_STATUS.Clear(); 
 | ||
|             
 | ||
|             port = 10;
 | ||
|             ele_lab_id = new string[3];
 | ||
|             ele_address = new string[3];
 | ||
|             Out_count = new string[3];
 | ||
|             for (int i = 1; i < 4; i++)
 | ||
|             { 
 | ||
|                 ele_lab_id[i - 1] = i + "";
 | ||
|                 ele_address[i - 1] = i + "";
 | ||
|                 Out_count[i - 1] = i + ""; 
 | ||
|                
 | ||
|             }
 | ||
| 
 | ||
|             for (int i = 1; i < 4; i++)
 | ||
|             {
 | ||
|                 led_color = i; 
 | ||
| 
 | ||
|                 elelab.pick.make_data(null, get_byte(led_color + ""), get_byte(led_color + ""), get_byte(port + ""), ele_lab_id, ele_address, Out_count, 0);
 | ||
|             }
 | ||
| 
 | ||
| 
 | ||
|             return true;
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
|          }
 | ||
| 
 | ||
| 
 | ||
|         byte get_byte(string data)
 | ||
|         {
 | ||
|             int length = data.Length;
 | ||
|             List<string> str = new List<string>();
 | ||
|             for (int i = 0; i < length; i++)
 | ||
|             {
 | ||
|                 string result = data.Substring(i, 1);
 | ||
|                 char aaaq = Convert.ToChar(result);
 | ||
|                 if ((aaaq >= 0x30) && (aaaq <= 0x39))
 | ||
|                 {
 | ||
|                     str.Add(data.Substring(i, 1));
 | ||
|                 }
 | ||
|             }
 | ||
|             if (str.Count == 1)
 | ||
|             {
 | ||
|                 return Convert.ToByte(str[0]);
 | ||
|             }
 | ||
|             else if (str.Count == 2)
 | ||
|             {
 | ||
|                 int len = Convert.ToInt16(str[0]);
 | ||
|                 int len1 = Convert.ToInt16(str[1]);
 | ||
|                 len = len * 10 + len1;
 | ||
|                 return Convert.ToByte(len);
 | ||
|             }
 | ||
|             else if (str.Count == 3)
 | ||
|             {
 | ||
|                 int len = Convert.ToInt16(str[0]);
 | ||
|                 int len1 = Convert.ToInt16(str[1]);
 | ||
|                 int len2 = Convert.ToInt16(str[2]);
 | ||
| 
 | ||
|                 len = len * 100 + len1 * 10 + len2;
 | ||
|                 return Convert.ToByte(len);
 | ||
| 
 | ||
|             }
 | ||
|             return 0;
 | ||
|         }
 | ||
|     }
 | ||
| }
 |