Skip to content

File IManagedSystem.h

File List > SpinnakerNET > IManagedSystem.h

Go to the documentation of this file

//=============================================================================
// Copyright (c) 2026 FLIR Integrated Imaging Solutions, Inc. All Rights Reserved.
//
// This software is the confidential and proprietary information of FLIR
// Integrated Imaging Solutions, Inc. ("Confidential Information"). You
// shall not disclose such Confidential Information and shall use it only in
// accordance with the terms of the license agreement you entered into
// with FLIR Integrated Imaging Solutions, Inc. (FLIR).
//
// FLIR MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
// SOFTWARE, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
// IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
// PURPOSE, OR NON-INFRINGEMENT. FLIR SHALL NOT BE LIABLE FOR ANY DAMAGES
// SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
// THIS SOFTWARE OR ITS DERIVATIVES.
//=============================================================================

#ifndef FLIR_SPINNAKER_IMANAGED_SYSTEM_H
#define FLIR_SPINNAKER_IMANAGED_SYSTEM_H

#include "System.h"
#include "ManagedCameraList.h"
#include "ManagedInterfaceList.h"
#include "ManagedDefs.h"
#include "ManagedLoggingEventHandler.h"
#include "ManagedTransportLayerSystem.h"

using namespace ::System;
using namespace ::System::Collections::Generic;

namespace SpinnakerNET
{
    public interface class IManagedSystem
    {
        ManagedInterfaceList^ GetInterfaces();
        ManagedInterfaceList^ GetInterfaces(bool updateInterface);
        ManagedCameraList^ GetCameras();
        ManagedCameraList^ GetCameras(bool updateInterfaces, bool updateCameras);
        Spinnaker::SystemPtr* GetNativeSystemPtr();
        SpinnakerNET::GenApi::INodeMap^ GetTLNodeMap();
        const LibraryVersion^ GetLibraryVersion();

        bool UpdateCameras();
        bool UpdateCameras(bool updateInterfaces);
        void UpdateInterfaceList();
        bool UpdateProducers();
        bool UpdateProducers(::System::String ^ ctiPath);

        void RegisterLoggingEventHandler(ManagedLoggingEventHandler^ loggingCallback);
        void UnregisterLoggingEventHandler(ManagedLoggingEventHandler^ loggingCallback);
        void UnregisterLoggingEventHandler(void);
        void RegisterEventHandler(ManagedEventHandler^ event);
        void UnregisterEventHandler(ManagedEventHandler^ event);

        bool IsInUse(void);
        List<ActionCommandResult^>^ SendActionCommand(unsigned int deviceKey, unsigned int groupKey, unsigned int groupMask, [Optional] Nullable<unsigned long long> actionTime, bool requestAck);
        void DisposeInterfaces(ManagedInterfaceList^ interfaceList);
        SpinnakerNET::ManagedLoggingLevel GetLoggingEventPriorityLevel();
        void SetLoggingEventPriorityLevel(ManagedLoggingLevel level);

        property ManagedTransportLayerSystem^ TLSystem
        {
            ManagedTransportLayerSystem^ get();
        }
    };
}

#endif // FLIR_SPINNAKER_IMANAGED_INTERFACE_SYSTEM_H