biz_changeScan.cs 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using System.IO;
  7. using Newtonsoft.Json;
  8. using Saraff.Twain;
  9. using HXX.Scanner.Socket;
  10. using HXX.Scanner.Common;
  11. namespace HXX.Scanner.Biz.Socket
  12. {
  13. /// <summary>
  14. /// 业务处理 切换扫描仪
  15. /// </summary>
  16. public class biz_changeScan
  17. {
  18. /// <summary>
  19. /// 切换扫描仪引发的界面联动
  20. /// </summary>
  21. public static del_change_sanner change_scanner;
  22. /// <summary>
  23. /// 主业务
  24. /// </summary>
  25. /// <param name="connId"></param>
  26. /// <param name="data"></param>
  27. public async static void Work(IntPtr connId, cmd_changeScan data)
  28. {
  29. var response = new response_changeScan();
  30. var result = await work_detail(connId, data);
  31. if (result.Status == 1)
  32. {
  33. response.code = 200;
  34. response.msg = "成功";
  35. }
  36. else
  37. {
  38. response.code = 509;
  39. response.msg = result.Message;
  40. }
  41. //SocketServerManager.Send_Family(connId, response.ToJson());
  42. SocketServerManager.Send_Single(connId, response.ToJson());
  43. }
  44. /// <summary>
  45. /// 切换实施和返回值构造
  46. /// </summary>
  47. /// <param name="connId"></param>
  48. /// <param name="data"></param>
  49. /// <returns></returns>
  50. private async static Task<ResponseEntity> work_detail(IntPtr connId, cmd_changeScan data)
  51. {
  52. var result = new ResponseEntity();
  53. try
  54. {
  55. if (!config_environment.scan_state)
  56. {
  57. var scanner = scanner_manager.get_scanner(data.param.deviceName);
  58. if (scanner != null)
  59. {
  60. //result = engine_twain32.Engine.set_current(scanner);
  61. if (change_scanner != null)
  62. {
  63. //真实切换扫描仪动作
  64. result = await change_scanner(scanner);
  65. }
  66. }
  67. else
  68. {
  69. result.Status = 509;
  70. result.Message = "未找到指定的扫描仪";
  71. }
  72. }
  73. else
  74. {
  75. result.Status = 509;
  76. result.Message = "扫描仪正在使用中";
  77. }
  78. }
  79. catch (Exception ee)
  80. {
  81. LogManager.WriteLog(ee);
  82. result.Status = 509;
  83. result.Message = ee.Message;
  84. }
  85. return result;
  86. }
  87. }
  88. }