Commit 4369d660 authored by 姜春辉's avatar 姜春辉

增加临时人员身份识别

parent ed5db3ac
<?xml version="1.0" encoding="utf-8" ?>
<Settings xmlns="urn:Chinags-Configuration" AddonName="GS.Terminal.Identification.Enterprise.Logic">
<Dictionaries>
<Dict Caption="业务逻辑基本配置" Name="LogicConfig">
<Key Caption="同一个人面部识别间隔" Choice="" Name="IdentifyTimeSpan" Value="15"/>
<Key Caption="面部识别阈值" Choice="" Name="FaceCompareValue" Value="0.8"/>
<Key Caption="是否拍照" Choice="" Name="IsTakePhoto" Value="true"/>
<Key Caption="自动待机延时(秒)" Choice="" Name="CleanViewDelay" Value="15"/>
</Dict>
</Dictionaries>
<Structures>
<Structure Name="DataSyncConfig" Caption="同步管理">
<Declare>
<Property Name="DisPlayName" Caption="同步标题"></Property>
<Property Name="Key" Caption="同步标识"></Property>
<Property Name="IntervalSec" Caption="同步间隔(秒)"></Property>
<Property Name="ServiceUrl" Caption="同步服务地址"></Property>
<Property Name="Enable" Caption="是否开启"></Property>
</Declare>
<Datas>
<Data DisPlayName="员工信息同步" Key="Employee" IntervalSec="100" ServiceUrl="/api/GS.WebApi.Terminal.Identification.Enterprise/DataSync/GetEmployee" Enable="true"/>
<Data DisPlayName="员工面部特征同步" Key="EmployeeFaceData" IntervalSec="30" ServiceUrl="/Services/EnterpriseIdentification/GetAllEmployeeFaceData/json" Enable="true"/>
<Data DisPlayName="来访记录同步" Key="VisitInfo" IntervalSec="30" ServiceUrl="/api/GS.WebApi.Terminal.Identification.Enterprise/DataSync/GetVisitors" Enable="true"/>
<Data DisPlayName="员工卡片同步" Key="EmployeeCards" IntervalSec="30" ServiceUrl="/api/GS.WebApi.Terminal.Identification.Enterprise/DataSync/GetEmployeeCards" Enable="true"/>
<Data DisPlayName="临时人员同步" Key="TemporaryStaffs" IntervalSec="30" ServiceUrl="/api/GS.WebApi.Terminal.Identification.Enterprise/DataSync/GetTemporaryStaffs" Enable="true"/>
</Datas>
</Structure>
<Structure Name="ServiceConfig" Caption="服务配置">
<Declare>
<Property Name="ServiceKey" Caption="服务标识"/>
<Property Name="ServiceName" Caption="批量保存识别记录"/>
<Property Name="ServiceUrl" Caption="服务地址"/>
</Declare>
<Datas>
<Data ServiceKey="SaveIdentityBatch" ServiceName="批量上传员工识别记录" ServiceUrl="/api/GS.WebApi.Terminal.Identification.Enterprise/Record/EmployeeUpload"/>
<Data ServiceKey="SaveVisitorIdentifyBatch" ServiceName="批量上传访客识别记录" ServiceUrl="/api/GS.WebApi.Terminal.Visitor/Identification/UploadRecord"/>
</Datas>
</Structure>
</Structures>
</Settings>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8" ?>
<Extensibility xmlns="urn:Chinags-Extensibility-1.0" Name="身份识别逻辑插件" SymbolicName="GS.Terminal.Identification.Enterprise.Logic" Version="1.0.0.0" StartLevel="40">
<License>ES4v4vg0AoI8kNm/irYbG5yCzs1mLaV2RpJtuGzwW7ma//MZXsU/GQr6e4znYWM1Cmvm4000b2GOJjpvJEw4n2ZR1fwplrz0onNMloqo/9iA5lb3wDwLVbpj/hT2nJlmwqnHxliRI7JMrbRkXm7ytHE55oNjg8kiUOoY6tFO9+0=</License>
<Activator Type="GS.Terminal.Identification.Enterprise.Logic.Program"/>
<Runtime>
<Assembly Path="GS.Terminal.Identification.Enterprise.Logic.dll" Share="true"/>
</Runtime>
<ObjectSpaces>
<Channel ConnectionName="sqlite" ModelAssembly="" Name="sqlChannel"/>
</ObjectSpaces>
<Services>
<Service TypeAndName="GS.Terminal.Identification.Enterprise.Logic.Service" Caption="跑马灯"/>
</Services>
</Extensibility>
<?xml version="1.0"?>
<doc>
<assembly>
<name>OpenCvSharp.UserInterface</name>
</assembly>
<members>
<member name="T:OpenCvSharp.UserInterface.CvWindowEx">
<summary>
Original CvWindow implementation without highgui
</summary>
</member>
<member name="M:OpenCvSharp.UserInterface.CvWindowEx.#cctor">
<summary>
static constructor
</summary>
</member>
<member name="M:OpenCvSharp.UserInterface.CvWindowEx.#ctor">
<summary>
Default Constructor
</summary>
</member>
<member name="M:OpenCvSharp.UserInterface.CvWindowEx.#ctor(OpenCvSharp.Mat)">
<summary>
Constructor
</summary>
<param name="image"></param>
</member>
<member name="M:OpenCvSharp.UserInterface.CvWindowEx.#ctor(System.Windows.Forms.PictureBoxSizeMode)">
<summary>
Constructor
</summary>
<param name="sizeMode"></param>
</member>
<member name="M:OpenCvSharp.UserInterface.CvWindowEx.#ctor(OpenCvSharp.Mat,System.Windows.Forms.PictureBoxSizeMode)">
<summary>
Constructor
</summary>
<param name="image"></param>
<param name="sizeMode"></param>
</member>
<member name="M:OpenCvSharp.UserInterface.CvWindowEx.Dispose">
<summary>
Finalizer
</summary>
</member>
<member name="P:OpenCvSharp.UserInterface.CvWindowEx.Image">
<summary>
Gets or sets an image to be shown
</summary>
</member>
<member name="P:OpenCvSharp.UserInterface.CvWindowEx.PictureBox">
<summary>
Gets Picturebox control
</summary>
</member>
<member name="P:OpenCvSharp.UserInterface.CvWindowEx.Trackbars">
<summary>
Gets all created trackbars
</summary>
</member>
<member name="M:OpenCvSharp.UserInterface.CvWindowEx.ShowImage(OpenCvSharp.Mat)">
<summary>
Shows the image in this window
</summary>
<param name="image">Image to be shown. </param>
</member>
<member name="M:OpenCvSharp.UserInterface.CvWindowEx.CreateTrackbar(System.String,System.Int32,System.Int32,OpenCvSharp.CvTrackbarCallback)">
<summary>
Creates the trackbar and attaches it to this window
</summary>
<param name="name">Name of created trackbar. </param>
<param name="value">The position of the slider</param>
<param name="count">Maximal position of the slider. Minimal position is always 0. </param>
<param name="onChange">the function to be called every time the slider changes the position. This function should be prototyped as void Foo(int);</param>
<returns></returns>
</member>
<member name="M:OpenCvSharp.UserInterface.CvWindowEx.WaitKey">
<summary>
Waits for a pressed key
</summary>
</member>
<member name="M:OpenCvSharp.UserInterface.CvWindowEx.WaitKey(System.Int32)">
<summary>
Waits for a pressed key
</summary>
<returns>Key code</returns>
</member>
<member name="M:OpenCvSharp.UserInterface.CvWindowEx.ShowImages(OpenCvSharp.Mat[])">
<summary>
</summary>
<param name="images"></param>
</member>
<member name="M:OpenCvSharp.UserInterface.CvWindowEx.StartKeyCheck">
<summary>
</summary>
</member>
<member name="M:OpenCvSharp.UserInterface.CvWindowEx.EndKeyCheck">
<summary>
</summary>
</member>
<member name="M:OpenCvSharp.UserInterface.CvWindowEx.ClosedAllWindows">
<summary>
</summary>
<returns></returns>
</member>
<member name="M:OpenCvSharp.UserInterface.CvWindowEx.GetPressedKey">
<summary>
</summary>
<returns></returns>
</member>
<member name="M:OpenCvSharp.UserInterface.CvWindowEx.SetClientSize(System.Drawing.Size)">
<summary>
ClientSizeを画面からはみ出ない大きさに調整して設定する.
</summary>
<param name="size"></param>
</member>
<member name="F:OpenCvSharp.UserInterface.CvWindowEx.components">
<summary>
Required designer variable.
</summary>
</member>
<member name="M:OpenCvSharp.UserInterface.CvWindowEx.Dispose(System.Boolean)">
<summary>
Clean up any resources being used.
</summary>
<param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
</member>
<member name="M:OpenCvSharp.UserInterface.CvWindowEx.InitializeComponent">
<summary>
Required method for Designer support - do not modify
the contents of this method with the code editor.
</summary>
</member>
<member name="T:OpenCvSharp.UserInterface.PictureBoxIpl">
<summary>
PictureBox control which supports IplImage
</summary>
</member>
<member name="M:OpenCvSharp.UserInterface.PictureBoxIpl.#ctor">
<summary>
Constructor
</summary>
</member>
<member name="P:OpenCvSharp.UserInterface.PictureBoxIpl.ImageIpl">
<summary>
Gets or sets the IplImage instance to be shown
</summary>
</member>
<member name="M:OpenCvSharp.UserInterface.PictureBoxIpl.RefreshIplImage">
<summary>
Refreshes the shown image
</summary>
</member>
<member name="M:OpenCvSharp.UserInterface.PictureBoxIpl.RefreshIplImage(OpenCvSharp.Mat)">
<summary>
Refreshes the shown image
</summary>
<param name="img"></param>
</member>
<member name="T:OpenCvSharp.UserInterface.TrackbarWithLabel">
<summary>
A Trackbar come with label
</summary>
</member>
<member name="M:OpenCvSharp.UserInterface.TrackbarWithLabel.#ctor">
<summary>
Constructor
</summary>
</member>
<member name="M:OpenCvSharp.UserInterface.TrackbarWithLabel.#ctor(System.String,System.Int32,System.Int32,System.Int32)">
<summary>
Constructor
</summary>
<param name="labelText"></param>
<param name="max"></param>
<param name="min"></param>
<param name="pos"></param>
</member>
<member name="P:OpenCvSharp.UserInterface.TrackbarWithLabel.Trackbar">
<summary>
TrackBar control
</summary>
</member>
<member name="P:OpenCvSharp.UserInterface.TrackbarWithLabel.Label">
<summary>
Label control
</summary>
</member>
<member name="M:OpenCvSharp.UserInterface.TrackbarWithLabel.SetLabelText">
<summary>
</summary>
</member>
<member name="M:OpenCvSharp.UserInterface.TrackbarWithLabel._trackBar_ValueChanged(System.Object,System.EventArgs)">
<summary>
</summary>
<param name="sender"></param>
<param name="e"></param>
</member>
<member name="F:OpenCvSharp.UserInterface.TrackbarWithLabel.components">
<summary>
必要なデザイナ変数です。
</summary>
</member>
<member name="M:OpenCvSharp.UserInterface.TrackbarWithLabel.Dispose(System.Boolean)">
<summary>
使用中のリソースをすべてクリーンアップします。
</summary>
<param name="disposing">マネージ リソースが破棄される場合 true、破棄されない場合は false です。</param>
</member>
<member name="M:OpenCvSharp.UserInterface.TrackbarWithLabel.InitializeComponent">
<summary>
デザイナ サポートに必要なメソッドです。このメソッドの内容を
コード エディタで変更しないでください。
</summary>
</member>
</members>
</doc>
<?xml version="1.0"?>
<doc>
<assembly>
<name>SafeObjectPool</name>
</assembly>
<members>
<member name="P:SafeObjectPool.IObjectPool`1.IsAvailable">
<summary>
是否可用
</summary>
</member>
<member name="P:SafeObjectPool.IObjectPool`1.UnavailableException">
<summary>
不可用错误
</summary>
</member>
<member name="P:SafeObjectPool.IObjectPool`1.UnavailableTime">
<summary>
不可用时间
</summary>
</member>
<member name="M:SafeObjectPool.IObjectPool`1.SetUnavailable(System.Exception)">
<summary>
将对象池设置为不可用,后续 Get/GetAsync 均会报错,同时启动后台定时检查服务恢复可用
</summary>
<param name="exception"></param>
<returns>由【可用】变成【不可用】时返回true,否则返回false</returns>
</member>
<member name="P:SafeObjectPool.IObjectPool`1.Statistics">
<summary>
统计对象池中的对象
</summary>
</member>
<member name="P:SafeObjectPool.IObjectPool`1.StatisticsFullily">
<summary>
统计对象池中的对象(完整)
</summary>
</member>
<member name="M:SafeObjectPool.IObjectPool`1.Get(System.Nullable{System.TimeSpan})">
<summary>
获取资源
</summary>
<param name="timeout">超时</param>
<returns></returns>
</member>
<member name="M:SafeObjectPool.IObjectPool`1.GetAsync">
<summary>
获取资源
</summary>
<returns></returns>
</member>
<member name="M:SafeObjectPool.IObjectPool`1.Return(SafeObjectPool.Object{`0},System.Boolean)">
<summary>
使用完毕后,归还资源
</summary>
<param name="obj">对象</param>
<param name="isReset">是否重新创建</param>
</member>
<member name="P:SafeObjectPool.IPolicy`1.Name">
<summary>
名称
</summary>
</member>
<member name="P:SafeObjectPool.IPolicy`1.PoolSize">
<summary>
池容量
</summary>
</member>
<member name="P:SafeObjectPool.IPolicy`1.SyncGetTimeout">
<summary>
默认获取超时设置
</summary>
</member>
<member name="P:SafeObjectPool.IPolicy`1.IdleTimeout">
<summary>
空闲时间,获取时若超出,则重新创建
</summary>
</member>
<member name="P:SafeObjectPool.IPolicy`1.AsyncGetCapacity">
<summary>
异步获取排队队列大小,小于等于0不生效
</summary>
</member>
<member name="P:SafeObjectPool.IPolicy`1.IsThrowGetTimeoutException">
<summary>
获取超时后,是否抛出异常
</summary>
</member>
<member name="P:SafeObjectPool.IPolicy`1.CheckAvailableInterval">
<summary>
后台定时检查可用性间隔秒数
</summary>
</member>
<member name="M:SafeObjectPool.IPolicy`1.OnCreate">
<summary>
对象池的对象被创建时
</summary>
<returns>返回被创建的对象</returns>
</member>
<member name="M:SafeObjectPool.IPolicy`1.OnDestroy(`0)">
<summary>
销毁对象
</summary>
<param name="obj">资源对象</param>
</member>
<member name="M:SafeObjectPool.IPolicy`1.OnGetTimeout">
<summary>
从对象池获取对象超时的时候触发,通过该方法统计
</summary>
</member>
<member name="M:SafeObjectPool.IPolicy`1.OnGet(SafeObjectPool.Object{`0})">
<summary>
从对象池获取对象成功的时候触发,通过该方法统计或初始化对象
</summary>
<param name="obj">资源对象</param>
</member>
<member name="M:SafeObjectPool.IPolicy`1.OnGetAsync(SafeObjectPool.Object{`0})">
<summary>
从对象池获取对象成功的时候触发,通过该方法统计或初始化对象
</summary>
<param name="obj">资源对象</param>
</member>
<member name="M:SafeObjectPool.IPolicy`1.OnReturn(SafeObjectPool.Object{`0})">
<summary>
归还对象给对象池的时候触发
</summary>
<param name="obj">资源对象</param>
</member>
<member name="M:SafeObjectPool.IPolicy`1.OnCheckAvailable(SafeObjectPool.Object{`0})">
<summary>
检查可用性
</summary>
<param name="obj">资源对象</param>
<returns></returns>
</member>
<member name="M:SafeObjectPool.IPolicy`1.OnAvailable">
<summary>
事件:可用时触发
</summary>
</member>
<member name="M:SafeObjectPool.IPolicy`1.OnUnavailable">
<summary>
事件:不可用时触发
</summary>
</member>
<member name="P:SafeObjectPool.Object`1.Pool">
<summary>
所属对象池
</summary>
</member>
<member name="P:SafeObjectPool.Object`1.Id">
<summary>
在对象池中的唯一标识
</summary>
</member>
<member name="P:SafeObjectPool.Object`1.Value">
<summary>
资源对象
</summary>
</member>
<member name="P:SafeObjectPool.Object`1.GetTimes">
<summary>
被获取的总次数
</summary>
</member>
<member name="P:SafeObjectPool.Object`1.LastGetTime">
最后获取时的时间
</member>
<member name="P:SafeObjectPool.Object`1.LastReturnTime">
<summary>
最后归还时的时间
</summary>
</member>
<member name="P:SafeObjectPool.Object`1.CreateTime">
<summary>
创建时间
</summary>
</member>
<member name="P:SafeObjectPool.Object`1.LastGetThreadId">
<summary>
最后获取时的线程id
</summary>
</member>
<member name="P:SafeObjectPool.Object`1.LastReturnThreadId">
<summary>
最后归还时的线程id
</summary>
</member>
<member name="M:SafeObjectPool.Object`1.ResetValue">
<summary>
重置 Value 值
</summary>
</member>
<member name="T:SafeObjectPool.ObjectPool`1">
<summary>
对象池管理类
</summary>
<typeparam name="T">对象类型</typeparam>
</member>
<member name="M:SafeObjectPool.ObjectPool`1.CheckAvailable(System.Int32)">
<summary>
后台定时检查可用性
</summary>
<param name="interval"></param>
</member>
<member name="M:SafeObjectPool.ObjectPool`1.#ctor(System.Int32,System.Func{`0},System.Action{SafeObjectPool.Object{`0}})">
<summary>
创建对象池
</summary>
<param name="poolsize">池大小</param>
<param name="createObject">池内对象的创建委托</param>
<param name="onGetObject">获取池内对象成功后,进行使用前操作</param>
</member>
<member name="M:SafeObjectPool.ObjectPool`1.#ctor(SafeObjectPool.IPolicy{`0})">
<summary>
创建对象池
</summary>
<param name="policy">策略</param>
</member>
<member name="M:SafeObjectPool.ObjectPool`1.getFree(System.Boolean)">
<summary>
获取可用资源,或创建资源
</summary>
<returns></returns>
</member>
</members>
</doc>
......@@ -23,6 +23,7 @@
<Data DisPlayName="员工面部特征同步" Key="EmployeeFaceData" IntervalSec="30" ServiceUrl="/Services/EnterpriseIdentification/GetAllEmployeeFaceData/json" Enable="true"/>
<Data DisPlayName="来访记录同步" Key="VisitInfo" IntervalSec="30" ServiceUrl="/api/GS.WebApi.Terminal.Identification.Enterprise/DataSync/GetVisitors" Enable="true"/>
<Data DisPlayName="员工卡片同步" Key="EmployeeCards" IntervalSec="30" ServiceUrl="/api/GS.WebApi.Terminal.Identification.Enterprise/DataSync/GetEmployeeCards" Enable="true"/>
<Data DisPlayName="临时人员同步" Key="TemporaryStaffs" IntervalSec="30" ServiceUrl="/api/GS.WebApi.Terminal.Identification.Enterprise/DataSync/GetTemporaryStaffs" Enable="true"/>
</Datas>
</Structure>
......
......@@ -7,7 +7,7 @@
<clear />
<add key="UpdateUrl" value="http://192.168.1.210/Soft/update" />
<add key="ServerIP" value="192.168.1.7" />
<add key="tCode" value="SYL106" />
<add key="tCode" value="DN01" />
<add key="WebPath" value="http://192.168.1.7:5888" />
<add key="ResourcePath" value="http://192.168.1.7:8888" />
<add key="ClientSettingsProvider.ServiceUri" value="" />
......
......@@ -62,6 +62,14 @@ namespace GS.Terminal.Identification.Enterprise.Logic
return;
}
var temp = LocalDataCenter.GetTemporaryStatffByFaceData(key);
if (temp != null)
{
Program.speakService.VoiceBySoundPlayer("已识别");
LogicHandler.HandlerIdentify(temp, false, score);
return;
}
Program.speakService.VoiceBySoundPlayer("未识别");
}
catch (AggregateException exs)
......
......@@ -23,6 +23,7 @@
<Data DisPlayName="员工面部特征同步" Key="EmployeeFaceData" IntervalSec="30" ServiceUrl="/Services/EnterpriseIdentification/GetAllEmployeeFaceData/json" Enable="true"/>
<Data DisPlayName="来访记录同步" Key="VisitInfo" IntervalSec="30" ServiceUrl="/api/GS.WebApi.Terminal.Identification.Enterprise/DataSync/GetVisitors" Enable="true"/>
<Data DisPlayName="员工卡片同步" Key="EmployeeCards" IntervalSec="30" ServiceUrl="/api/GS.WebApi.Terminal.Identification.Enterprise/DataSync/GetEmployeeCards" Enable="true"/>
<Data DisPlayName="临时人员同步" Key="TemporaryStaffs" IntervalSec="30" ServiceUrl="/api/GS.WebApi.Terminal.Identification.Enterprise/DataSync/GetTemporaryStaffs" Enable="true"/>
</Datas>
</Structure>
......
......@@ -7,7 +7,7 @@
<clear />
<add key="UpdateUrl" value="http://192.168.1.210/Soft/update" />
<add key="ServerIP" value="192.168.1.7" />
<add key="tCode" value="SYL106" />
<add key="tCode" value="DN01" />
<add key="WebPath" value="http://192.168.1.7:5888" />
<add key="ResourcePath" value="http://192.168.1.7:8888" />
<add key="ClientSettingsProvider.ServiceUri" value="" />
......
......@@ -112,7 +112,7 @@
</StackPanel>
</Grid>
</Border>
<Border Visibility="{Binding ShowError, Converter={StaticResource BooleanToVisibilityConverter}}"
<Border d:IsHidden="True" Visibility="{Binding ShowError, Converter={StaticResource BooleanToVisibilityConverter}}"
Grid.Row="1" Width="881" Margin="84,0,84,31"
CornerRadius="25" BorderThickness="2"
Background="#FF0000" BorderBrush="#4Cffffff">
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment