add libcomm for plc layer
This commit is contained in:
73
LibComm/CommWithCC24.cs
Normal file
73
LibComm/CommWithCC24.cs
Normal file
@@ -0,0 +1,73 @@
|
||||
using Bjcve.Comm.FFP;
|
||||
using Cognex.VisionPro.Comm;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace LibComm
|
||||
{
|
||||
public class CommWithCC24 : ICommPLC
|
||||
{
|
||||
private CC24 cc24;
|
||||
public event OnDataReceived OnDataReceived;
|
||||
public event OnConnectStatus OnConnectStatus;
|
||||
public event OnTrigCamera OnTrigCamera;
|
||||
public event OnCameraStatus OnCameraStatus;
|
||||
public void Initialize()
|
||||
{
|
||||
cc24 = new CC24();
|
||||
|
||||
cc24.VisionReceivedNewUserData += CC24_NewUserDataReceived;
|
||||
cc24.PlcConnectionStatusChanged += CC24_PlcConnectionStatusChanged;
|
||||
cc24.PlcTriggerCamAcqStart += CC24_PlcTriggerCamAcqStart;
|
||||
cc24.PlcTriggerCamAcqStop += CC24_PlcTriggerCamAcqStop;
|
||||
cc24.NotifyCamAcqEnabled += CC24_NotifyCamAcqEnabled;
|
||||
cc24.NotifyCamAcqDisabled += CC24_NotifyCamAcqDisabled;
|
||||
|
||||
cc24.Initialize();
|
||||
cc24.NotifyCamAcqEnable(0);
|
||||
cc24.NotifyCamAcqEnable(1);
|
||||
}
|
||||
public void Stop()
|
||||
{
|
||||
cc24.VisionReceivedNewUserData -= CC24_NewUserDataReceived;
|
||||
cc24.PlcConnectionStatusChanged -= CC24_PlcConnectionStatusChanged;
|
||||
cc24.PlcTriggerCamAcqStart -= CC24_PlcTriggerCamAcqStart;
|
||||
cc24.PlcTriggerCamAcqStop -= CC24_PlcTriggerCamAcqStop;
|
||||
cc24.NotifyCamAcqEnabled -= CC24_NotifyCamAcqEnabled;
|
||||
cc24.NotifyCamAcqDisabled -= CC24_NotifyCamAcqDisabled;
|
||||
cc24.Shutdown();
|
||||
}
|
||||
public void NoticeCamComplete(int index, byte[] datax)
|
||||
{
|
||||
cc24?.NotifyCamInspectionComplete(index, datax);
|
||||
cc24?.NotifyCamAcqComplete(index);
|
||||
}
|
||||
private void CC24_NewUserDataReceived(object sender, CogNdmNewUserDataEventArgs e)
|
||||
{
|
||||
OnDataReceived?.Invoke(cc24.ReadBytesFromPLC(0, 4));
|
||||
}
|
||||
private void CC24_PlcConnectionStatusChanged(object sender, CogNdmProtocolStatusChangedEventArgs e)
|
||||
{
|
||||
OnConnectStatus?.Invoke(e.ProtocolStatus == CogNdmConnectionStatusConstants.Connected);
|
||||
}
|
||||
private void CC24_PlcTriggerCamAcqStart(object sender, CogNdmTriggerAcquisitionEventArgs e)
|
||||
{
|
||||
OnTrigCamera?.Invoke(e.CameraIndex);
|
||||
}
|
||||
private void CC24_PlcTriggerCamAcqStop(object sender, CogNdmTriggerAcquisitionStopEventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
private void CC24_NotifyCamAcqEnabled(int cameraIndex, bool isEnabled)
|
||||
{
|
||||
OnCameraStatus?.Invoke(cameraIndex, isEnabled);
|
||||
}
|
||||
private void CC24_NotifyCamAcqDisabled(int cameraIndex, bool isEnabled)
|
||||
{
|
||||
OnCameraStatus?.Invoke(cameraIndex, isEnabled);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user