IEPDService.cs 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322
  1. using EPInterface.Data;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.ServiceModel;
  5. using EPInterface.Datas;
  6. namespace EPInterface
  7. {
  8. // [ServiceContract]
  9. // [ServiceKnownType(typeof(EPDState))]
  10. // [ServiceKnownType(typeof(CRawDataItem))]
  11. // [ServiceKnownType(typeof(List<long>))]
  12. // public interface IEPDService
  13. //{
  14. // /// <summary>
  15. // /// 设置当前model
  16. // /// </summary>
  17. // /// <param name="model"></param>
  18. // [OperationContract]
  19. // void SetModel(int channel, string name, string model);
  20. // [OperationContract]
  21. // int Heartbeat(int counter);
  22. // [OperationContract]
  23. // void Online();
  24. // [OperationContract]
  25. // void Offline();
  26. // [OperationContract]
  27. // bool IsOnline();
  28. // [OperationContract]
  29. // void SetOption(string name, string value);
  30. // [OperationContract]
  31. // string GetOption(string name);
  32. // /// <summary>
  33. // ///RecipeStart
  34. // /// </summary>
  35. // /// <param name="recipe"></param>
  36. // [OperationContract]
  37. // void RecipeStart(int channel, string name);
  38. // /// <summary>
  39. // ///RecipeStart
  40. // /// </summary>
  41. // /// <param name="model"></param>
  42. // [OperationContract]
  43. // void RecipeStop(int channel);
  44. // /// <summary>
  45. // /// Online 模式,开始计算
  46. // /// </summary>
  47. // /// <param name="model"></param>
  48. // [OperationContract]
  49. // void Start(int channel, int idx, string name, string model);
  50. // [OperationContract]
  51. // void StartByConfig(int channel, int idx, string name, EPDConfig config);
  52. // /// <summary>
  53. // /// online 模式,停止计算
  54. // /// </summary>
  55. // [OperationContract]
  56. // void Stop(int channel);
  57. // /// <summary>
  58. // /// online模式,暂停
  59. // /// </summary>
  60. // [OperationContract]
  61. // void Pause(int channel);
  62. // [OperationContract]
  63. // /// <summary>
  64. // /// online模式,恢复计算
  65. // /// </summary>
  66. // void Resume(int channel);
  67. // /// <summary>
  68. // /// 获取硬件通道数
  69. // /// </summary>
  70. // [OperationContract]
  71. // int QueryChannels();
  72. // [OperationContract]
  73. // List<string> QueryChannelNames();
  74. // [OperationContract]
  75. // string QueryChannelName(int channel);
  76. // [OperationContract]
  77. // ///
  78. // /// 获取当前model <name,xml>
  79. // ///
  80. // Tuple<string,string> QueryModel(int channel);
  81. // /// <summary>
  82. // /// 获取 波长信息,频谱图 X 坐标
  83. // /// </summary>
  84. // /// <param name="wave"></param>
  85. // [OperationContract]
  86. // double[] QueryWave(int channel);
  87. // /// <summary>
  88. // /// 获取当前帧数据
  89. // /// </summary>
  90. // /// <param name="data"></param>
  91. // /// <returns>False,为无数据。
  92. // /// </returns>
  93. // [OperationContract]
  94. // CRawDataItem QueryData(int channel);
  95. // [OperationContract]
  96. // ///
  97. // /// 获取当前State
  98. // ///
  99. // EPDState QueryState(int channel);
  100. // [OperationContract]
  101. // bool QueryRecordState(int channel);
  102. // [OperationContract]
  103. // long QueryRecipeTime(int channel);
  104. // [OperationContract]
  105. // List<long> QueryStepTime(int channel);
  106. // [OperationContract]
  107. // List<string> QueryConfigList();
  108. // [OperationContract]
  109. // string QueryConfig(string name);
  110. // }
  111. [ServiceContract]
  112. [ServiceKnownType(typeof(EPDState))]
  113. [ServiceKnownType(typeof(RawDataItem))]
  114. [ServiceKnownType(typeof(CRawDataItem))]
  115. [ServiceKnownType(typeof(List<long>))]
  116. public interface IEPDService
  117. {
  118. // 设置当前model
  119. [OperationContract] void SetModel(int channel, string name, string model);
  120. [OperationContract] int Heartbeat(int counter);
  121. [OperationContract] void Online();
  122. [OperationContract] void Offline();
  123. [OperationContract] void Reset();
  124. [OperationContract] int IsOnline();
  125. [OperationContract] void SetOption(string name, string value);
  126. [OperationContract] string GetOption(string name);
  127. [OperationContract] string GetData(string name);
  128. [OperationContract] Dictionary<string, string> GetOptions(List<string> names);
  129. [OperationContract] bool SetOptions(Dictionary<string, string> dic, string cmd, int channel);
  130. //RecipeStart
  131. [OperationContract] void RecipeStart(int channel, string name);
  132. //RecipeStart
  133. [OperationContract] void RecipeStop(int channel);
  134. /// <summary>
  135. /// Online 模式,开始计算
  136. /// </summary>
  137. /// <param name="model"></param>
  138. [OperationContract] void Start(int channel, int idx, string name, string model);
  139. [OperationContract] void StartByConfig(int channel, int idx, string name, EPDConfig config);
  140. // online 模式,停止计算
  141. [OperationContract] void Stop(int channel);
  142. // online模式,暂停
  143. [OperationContract] void Pause(int channel);
  144. // online模式,恢复计算
  145. [OperationContract] void Resume(int channel);
  146. // 手动触发EndPoint
  147. [OperationContract] void ManualEPD(int channel);
  148. // 获取硬件通道数
  149. [OperationContract] int QueryChannels();
  150. [OperationContract] List<string> QueryChannelNames();
  151. [OperationContract] List<string> QueryChamberNames();
  152. [OperationContract] string QueryChannelName(int channel);
  153. // 获取当前model <name,xml>
  154. [OperationContract] Tuple<string, string> QueryModel(int channel);
  155. // 获取 波长信息,频谱图 X 坐标
  156. [OperationContract] double[] QueryWave(int channel);
  157. [OperationContract] double[] QueryWaveIEP(int channel);
  158. /// <summary>
  159. /// 获取当前帧数据
  160. /// </summary>
  161. /// <param name="data"></param>
  162. /// <returns>False,为无数据。
  163. /// </returns>
  164. [OperationContract] CRawDataItem QueryData(int channel);
  165. [OperationContract] RawDataItem QueryRawData(int channel);
  166. [OperationContract] List<double[]> QuerySpectrum(int channel);
  167. [OperationContract] List<string> QueryHistoryDataList(int channel, string date);
  168. [OperationContract] byte[] QueryHistoryData(int channel, string date, string name);
  169. // 获取当前State
  170. [OperationContract] EPDState QueryState(int channel);
  171. [OperationContract] bool QueryConnectState(int channel);
  172. [OperationContract] bool QueryRecordState(int channel);
  173. [OperationContract] long QueryRecipeTime(int channel);
  174. [OperationContract] List<long> QueryStepTime(int channel);
  175. [OperationContract] List<string> QueryConfigList();
  176. // 读取光谱采集器故障信息
  177. [OperationContract] string QuerySpectralStatus();
  178. [OperationContract] List<string> QuerySpectralSerials();
  179. [OperationContract] string QueryChannelSerial(int channel);
  180. [OperationContract] string QueryChannelVersion(int channel);
  181. [OperationContract] string QueryConfig(string name);
  182. [OperationContract] bool DeleteConfig(string name);
  183. [OperationContract] bool SaveConfig(string name, string xml);
  184. [OperationContract] int QueryIntrgrationTime(int channel);
  185. [OperationContract] void SetIntrgrationTime(int channel, int ms);
  186. [OperationContract] void SetFlashMode(int channel, bool model);
  187. [OperationContract] int QueryRunStatus();
  188. [OperationContract] void SetRunStatus(int runSta);
  189. [OperationContract] int QueryOperateMode();
  190. [OperationContract] void SetOperateMode(int mode);
  191. [OperationContract] void ClearBackground(int channel);
  192. [OperationContract] double QueryClearBackgroundPercent(int channel);
  193. [OperationContract] RawDataType QueryRawType(int channel);
  194. [OperationContract] int QueryWaveFactorStatus(int channel);
  195. //[OperationContract] AccountMgrResult CreateUser(string userName, string firstName, string lastName, string description, string password, RoleLevel roleLevel);
  196. //[OperationContract] AccountMgrResult DeleteUser(string userName);
  197. //[OperationContract] AccountMgrResult UpdateUser(string userName, string firstName, string lastName, string description, string password, RoleLevel roleLevel);
  198. //[OperationContract] AccountMgrResult UpdatePassword(string userName, string password);
  199. //[OperationContract] string GetCurrentUser();
  200. //[OperationContract] Datas.Account GetUserData(string userName);
  201. //[OperationContract] List<string> GetUserList();
  202. //[OperationContract] Dictionary<AuthorizationModule, AccessLevel> GetRoleAuthorizations(RoleLevel roleLevel);
  203. //[OperationContract] Dictionary<AuthorizationModule, AccessLevel> GetCurrentUserAuthorizations();
  204. //[OperationContract] AccessLevel GetCurrentUserModuleAuthorization(AuthorizationModule module);
  205. //[OperationContract] AccountMgrResult UpdateRoleAuthorization(RoleLevel roleLevel, Dictionary<AuthorizationModule, AccessLevel> authorizations);
  206. //[OperationContract] AccountMgrResult Login(string username, string password);
  207. //[OperationContract] AccountMgrResult Logout(string username);
  208. }
  209. public interface IRecipeService
  210. {
  211. [OperationContract]
  212. List<string> QueryRecipes();
  213. [OperationContract]
  214. string Load(string name);
  215. [OperationContract]
  216. void Save(string name, string recipe);
  217. [OperationContract]
  218. void Delete(string name);
  219. }
  220. }