using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Threading.Tasks; using TeamAAS_VP.Enums; using TeamAAS_VP.Models; using TeamAAS_VP.Models.Calibration; using TeamAAS_VP.Models.Feeder; using TeamAAS_VP.Models.Lights; using TeamAAS_VP.Models.PLC; using TeamAAS_VP.Models.ScrewDriver; using TeamAAS_VP.Models.Torque; namespace TeamAAS_VP.Interfaces { /// /// ���ù������񣺹���ϵͳ���á�����������ˡ�Feeder��PLC����̨ͨѶ�����õ���ɾ�IJ���־û��� /// ʵ���ฺ�����ڴ���־û��洢�������ļ������ݿ⣩֮��ͬ�����ݣ����ṩͬ�����첽�ļ���/����ӿڡ� /// public interface IConfigService : IDisposable { // Load/Save /// /// ͬ�������������ã��ӳ־û��洢��ȡ�������ڴ��е����ã��� /// /// /// �÷���Ϊ�������ã�������Ӧ������ʱ����ȷ��Ҫͬ�����صij����� /// ʵ��Ӧ��֤�ڷ�������ʱ��¼��־���ڱ�Ҫʱ�׳��쳣��֪ͨ���÷��� /// void LoadAll(); /// /// �첽�����������ã��ӳ־û��洢��ȡ�������ڴ��е����ã��� /// /// һ����ʾ�첽���ز��������� Task LoadAllAsync(); /// /// ͬ���������е�ǰ�ڴ��е����õ��־û��洢�� /// /// /// �÷���Ϊ�������ã���������Ҫ������֤���ó־û��ij����� /// void SaveAll(); /// /// �첽�������е�ǰ�ڴ��е����õ��־û��洢�� /// /// ��ʾ���������ɵ����� Task SaveAllAsync(); // Cameras /// /// ��ȡ������ע��������Ϣ��ֻ�����ϡ� /// /// �����Ϣ��ֻ�����Ͽ��ա� IReadOnlyCollection GetAllCameras(); /// /// ���ݱ�ʶ��ȡ���������Ϣ�� /// /// �����Ψһ��ʶ���� /// ��Ӧ�� ʵ������δ�ҵ��򷵻� null�� CameraInfo GetCamera(Guid id); /// /// ���������ָ���������Ϣ�� /// /// Ҫ��������µ������Ϣ������Ϊ null�� /// �� Ϊ null ʱ�׳��� CameraInfo AddOrUpdateCamera(CameraInfo camera); /// /// �Ƴ�ָ����ʶ�������Ϣ�� /// /// Ҫ�Ƴ��������Ψһ��ʶ���� /// ����ҵ����Ƴ��ɹ��򷵻� true�����򷵻� false�� bool RemoveCamera(Guid id); /// /// �ж��Ƿ����ָ����ʶ��������á� /// /// ���Ψһ��ʶ���� /// �����򷵻� true�����򷵻� false�� bool ContainsCamera(Guid id); // Robots /// /// ��ȡ������ע��Ļ�������Ϣ��ֻ�����ϡ� /// /// ��������Ϣ��ֻ�����Ͽ��ա� IReadOnlyCollection GetAllRobots(); /// /// ���ݱ�ʶ��ȡ������������Ϣ�� /// /// �����˵�Ψһ��ʶ���� /// ��Ӧ�� ʵ������δ�ҵ��򷵻� null�� RobotInfo GetRobot(Guid id); /// /// ���������ָ���Ļ�������Ϣ�� /// /// Ҫ��������µĻ�������Ϣ������Ϊ null�� /// �� Ϊ null ʱ�׳��� RobotInfo AddOrUpdateRobot(RobotInfo robot); /// /// �Ƴ�ָ����ʶ�Ļ�������Ϣ�� /// /// Ҫ�Ƴ��Ļ����˵�Ψһ��ʶ���� /// ����ҵ����Ƴ��ɹ��򷵻� true�����򷵻� false�� bool RemoveRobot(Guid id); /// /// �ж��Ƿ����ָ����ʶ�Ļ��������á� /// /// ������Ψһ��ʶ���� /// �����򷵻� true�����򷵻� false�� bool ContainsRobot(Guid id); /// /// �޸�ָ��������id�IJ������� /// /// ������Ψһ��ʶ���� /// �������� /// bool UpdateRobotStepDistance(Guid id, double stepDistance); /// /// ��ȡָ��������Id�IJ������� /// /// /// double GetRobotStepDistance(Guid id); // Feeders /// /// ��ȡ������ע��� Feeder ��Ϣ��ֻ�����ϡ� /// /// Feeder ��Ϣ��ֻ�����Ͽ��ա� IReadOnlyCollection GetAllFeeders(); /// /// ���ݱ�ʶ��ȡ���� Feeder ��Ϣ�� /// /// Feeder ��Ψһ��ʶ���� /// ��Ӧ�� ʵ������δ�ҵ��򷵻� null�� FeederInfo GetFeeder(Guid id); /// /// ���������ָ���� Feeder ��Ϣ�� /// /// Ҫ��������µ� Feeder ��Ϣ������Ϊ null�� /// �� Ϊ null ʱ�׳��� FeederInfo AddOrUpdateFeeder(FeederInfo feeder); /// /// �Ƴ�ָ����ʶ�� Feeder ��Ϣ�� /// /// Ҫ�Ƴ��� Feeder ��Ψһ��ʶ���� /// ����ҵ����Ƴ��ɹ��򷵻� true�����򷵻� false�� bool RemoveFeeder(Guid id); /// /// �ж��Ƿ����ָ����ʶ�� Feeder ���á� /// /// Feeder Ψһ��ʶ���� /// �����򷵻� true�����򷵻� false�� bool ContainsFeeder(Guid id); // PLCs /// /// ��ȡ������ע��� PLC ��Ϣ��ֻ�����ϡ� /// /// PLC ��Ϣ��ֻ�����Ͽ��ա� IReadOnlyCollection GetAllPlcs(); /// /// ���ݱ�ʶ��ȡ���� PLC ��Ϣ�� /// /// PLC ��Ψһ��ʶ���� /// ��Ӧ�� ʵ������δ�ҵ��򷵻� null�� PlcInfo GetPlc(Guid id); /// /// ���������ָ���� PLC ��Ϣ�� /// /// Ҫ��������µ� PLC ��Ϣ������Ϊ null�� /// �� Ϊ null ʱ�׳��� PlcInfo AddOrUpdatePlc(PlcInfo plc); /// /// �Ƴ�ָ����ʶ�� PLC ��Ϣ�� /// /// Ҫ�Ƴ��� PLC ��Ψһ��ʶ���� /// ����ҵ����Ƴ��ɹ��򷵻� true�����򷵻� false�� bool RemovePlc(Guid id); /// /// �ж��Ƿ����ָ����ʶ�� PLC ���á� /// /// PLC Ψһ��ʶ���� /// �����򷵻� true�����򷵻� false�� bool ContainsPlc(Guid id); // Plc Addresses /// /// Get all PlcAddress entries /// /// PlcAddressConfig GetPlcAddresses(); // Background TCP /// /// ��ȡ��̨ͨѶ��TCP/IP�����á� /// /// ��ǰ��̨ TCP ���ÿ��ա� BgTcpIP GetBgTcp(); /// /// ���ú�̨ͨѶ��TCP/IP�����ã��������ڴ棩�� /// /// �µĺ�̨ TCP ���ã�����Ϊ null�� /// �� Ϊ null ʱ�׳��� void SetBgTcp(BgTcpIP cfg); /// /// ����ǰ�ڴ��еĺ�̨ TCP ���ñ��浽�־û��洢�� /// void SaveBgTcp(); // Background Modbus /// /// ��ȡ��̨ Modbus TCP ���á� /// /// ��ǰ��̨ Modbus TCP ���ÿ��ա� BgModbusTcp GetBgModbusTcp(); /// /// ���ú�̨ Modbus TCP ���ã��������ڴ棩�� /// /// �µĺ�̨ Modbus TCP ���ã�����Ϊ null�� /// �� Ϊ null ʱ�׳��� void SetBgModbusTcp(BgModbusTcp cfg); /// /// ����ǰ�ڴ��еĺ�̨ Modbus TCP ���ñ��浽�־û��洢�� /// void SaveBgModbusTcp(); //ϵͳ���� /// /// ��ȡϵͳ���� /// /// SystemConfiguration GetSystemConfiguration(); /// /// ����ϵͳ���� /// void SaveSystemConfiguration(SystemConfiguration systemConfiguration); /// /// ��ȡ��ǰ���� /// /// Language GetCurrentLanguage(); /// /// ���õ�ǰ���� /// /// void SetCurrentLanguage(Language language); //�������� /// /// ��ȡ������������ /// /// IReadOnlyCollection GetAllClearanceTasks(); /// /// ����������������� /// /// /// FeederClearWork AddOrUpdateClearanceTask(FeederClearWork task); /// /// �Ƴ��������� /// /// /// bool RemoveClearanceTask(Guid id); /// /// ��������������� /// void ClearAllClearanceTasks(); /// /// �ж��Ƿ����ָ����ʶ���������� /// /// /// bool ContainsClearanceTask(Guid id); /// /// ���ݱ�ʶ��ȡ��������������Ϣ /// /// /// FeederClearWork GetClearanceTask(Guid id); /// /// �ж��Ƿ����ָ����ŵ��������� /// /// /// bool ContainsClearanceTaskByNumber(int taskNumber); /// /// ���ݱ�Ż�ȡ��������������Ϣ /// /// /// FeederClearWork GetClearanceTaskByNumber(int taskNumber); // Light controllers and channels /// /// ��ȡ������ע��ĵƹ��������Ϣ��ֻ�����ϡ� /// /// �ƹ��������Ϣ��ֻ�����Ͽ��ա� IReadOnlyCollection GetAllLightControllers(); /// /// ���ݱ�ʶ��ȡ�����ƹ��������Ϣ�� /// /// �ƹ��������Ψһ��ʶ���� /// ��Ӧ�� ʵ������δ�ҵ��򷵻� null�� LightControllerConfig GetLightController(int id); /// /// ���������ָ���ĵƹ��������Ϣ�� /// /// Ҫ��������µĵƹ��������Ϣ������Ϊ null�� /// �� Ϊ null ʱ�׳��� LightControllerConfig AddOrUpdateLightController(LightControllerConfig controller); /// /// �Ƴ�ָ����ʶ�ĵƹ��������Ϣ�� /// /// Ҫ�Ƴ��ĵƹ��������Ψһ��ʶ���� /// ����ҵ����Ƴ��ɹ��򷵻� true�����򷵻� false�� bool RemoveLightController(int id); /// /// �ж��Ƿ����ָ����ʶ�ĵƹ���������á� /// /// �ƹ������Ψһ��ʶ���� /// �����򷵻� true�����򷵻� false�� bool ContainsLightController(int id); /// /// ��ȡ������ע��ĵƹ�ͨ����Ϣ��ֻ�����ϡ� /// /// �ƹ�ͨ����Ϣ��ֻ�����Ͽ��ա� IReadOnlyCollection GetAllLightChannels(); /// /// ����ȫ��������ȡ�����ƹ�ͨ����Ϣ�� /// /// �ƹ�ͨ����ȫ�������� /// ��Ӧ�� ʵ������δ�ҵ��򷵻� null�� ChannelConfig GetLightChannelByGlobalIndex(int globalIndex); /// /// �ж��Ƿ����ָ��ȫ�������ĵƹ�ͨ�����á� /// /// �ƹ�ͨ����ȫ�������� /// �����򷵻� true�����򷵻� false�� bool ContainsLightChannelByGlobalIndex(int globalIndex); /// /// ����ָ���ƹ�ͨ����Ĭ������ֵ�����浽�־û��洢�� /// /// �ƹ�ͨ����ȫ�������� /// �µ�Ĭ������ֵ����ΧӦ�ں��ʵ������ڡ� /// ����ҵ������³ɹ��򷵻� true�����򷵻� false�� bool UpdateChannelDefaultBrightness(int globalIndex, int brightness); // Screw driver (single device) configuration accessors /// /// ��ȡ�������ã����豸���� /// /// ��ǰ�� ����δ�����򷵻� null�� ScrewDriverConfig GetScrewDriverConfig(); /// /// ���ò��־û��������ã����豸���� /// /// �µ����ö��󣬲���Ϊ�ա� void SetScrewDriverConfig(ScrewDriverConfig cfg); // Device info - 支持多设备 /// /// 获取所有设备信息配置列表 /// /// 设备信息列表的只读集合 IReadOnlyCollection GetAllDeviceInfos(); /// /// 根据设备编号获取设备信息(兼容旧API,返回第一个设备) /// DeviceInfo GetDeviceInfo(); /// /// 根据设备编号获取设备信息 /// /// 设备编号 DeviceInfo GetDeviceInfo(int deviceNo); /// /// 保存设备信息配置(添加或更新) /// void SaveDeviceInfo(DeviceInfo deviceInfo); /// /// 保存所有设备信息列表 /// /// 设备信息列表 void SaveAllDeviceInfos(IEnumerable deviceInfoList); /// /// 添加新设备 /// /// 新添加的设备 DeviceInfo AddDeviceInfo(); /// /// 删除设备 /// /// 设备编号 /// 是否删除成功 bool RemoveDeviceInfo(int deviceNo); /// /// ������ǰ�ڴ��еĵ������ñ��浽�ļ��� /// void SaveScrewDriverConfig(); // Screw feeder (material) management /// /// ��ȡ������ע�����˿��������Ϣ��ֻ�����ϡ� /// IReadOnlyCollection GetAllScrewFeeders(); /// /// ���ݱ�ʶ��ȡ������˿��������Ϣ�� /// ScrewFeederInfo GetScrewFeeder(Guid id); /// /// ���������ָ������˿��������Ϣ�� /// ScrewFeederInfo AddOrUpdateScrewFeeder(ScrewFeederInfo feeder); /// /// �Ƴ�ָ����ʶ����˿��������Ϣ�� /// bool RemoveScrewFeeder(Guid id); /// /// �ж��Ƿ����ָ����ʶ����˿���������á� /// bool ContainsScrewFeeder(Guid id); /// /// Ϊָ����������ŵݼ�ָ��������ͨ��Ϊ 1�������������㷵�� false /// int DecrementScrewCountByFeederNumber(int feederNumber, int decrement = 1); /// /// ���ָ����������ŵ���˿��Ϣ�����κ���ʣ�������ÿ�/��0�� /// void ClearScrewFeederByNumber(int feederNumber); /// /// Ϊָ�����������������˿���κţ�����ԭ��ʣ������������һ����������PackSize�� /// void SetBatchForFeederNumber(int feederNumber, string batchNumber); /// /// ��ȡָ����������ŵ�ʣ����˿�������Ҳ������� -1�� /// int GetRemainingCountByFeederNumber(int feederNumber); /// /// ��ȡָ����������ŵĵ�������״̬���Ҳ������� false�� /// bool GetLowLevelAlarmStatusByFeederNumber(int feederNumber); /// /// ��ij����˿������������������ʱ�ᴥ�����¼��������߿������ϱ��� UI ��ʾ�� /// event Action ScrewFeederLowLevelAlarmTriggered; /// /// ���ʣ����˿�Ƿ񱨾� /// bool CheckAlarm(int feederNumber); //ˢ����¼ /// /// ��ȡˢ�������� /// /// SerialPortConfig GetCardReaderConfig(); /// /// ����ˢ�������� /// /// void SaveCardReaderConfig(SerialPortConfig config); void SaveTorqueReaderConfig(TorqueSerialPortConfig config); TorqueSerialPortConfig GetTorqueReaderConfig(); CTQ_Data GetCTQDataInfo(); void SaveCTQDataInfo(CTQ_Data cd); } }