using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using Newtonsoft.Json;
using Saraff.Twain;
using HXX.Scanner.Socket;
using HXX.Scanner.Common;
namespace HXX.Scanner.Biz.Socket
{
///
/// 业务处理 切换扫描仪
///
public class biz_changeScan
{
///
/// 切换扫描仪引发的界面联动
///
public static del_change_sanner change_scanner;
///
/// 主业务
///
///
///
public async static void Work(IntPtr connId, cmd_changeScan data)
{
var response = new response_changeScan();
var result = await work_detail(connId, data);
if (result.Status == 1)
{
response.code = 200;
response.msg = "成功";
}
else
{
response.code = 509;
response.msg = result.Message;
}
//SocketServerManager.Send_Family(connId, response.ToJson());
SocketServerManager.Send_Single(connId, response.ToJson());
}
///
/// 切换实施和返回值构造
///
///
///
///
private async static Task work_detail(IntPtr connId, cmd_changeScan data)
{
var result = new ResponseEntity();
try
{
if (!config_environment.scan_state)
{
var scanner = scanner_manager.get_scanner(data.param.deviceName);
if (scanner != null)
{
//result = engine_twain32.Engine.set_current(scanner);
if (change_scanner != null)
{
//真实切换扫描仪动作
result = await change_scanner(scanner);
}
}
else
{
result.Status = 509;
result.Message = "未找到指定的扫描仪";
}
}
else
{
result.Status = 509;
result.Message = "扫描仪正在使用中";
}
}
catch (Exception ee)
{
LogManager.WriteLog(ee);
result.Status = 509;
result.Message = ee.Message;
}
return result;
}
}
}