Esempio n. 1
0
        internal void Init(string[] args)
        {
            string[] newArgs = new string[args.Length + 1];
            newArgs[0] = "program";
            if (System.Reflection.Assembly.GetEntryAssembly() != null)
            {
                newArgs[0] = System.Reflection.Assembly.GetEntryAssembly().FullName;
            }

            Array.Copy(args, 0, newArgs, 1, args.Length);

            ctx = Cfunctions.Survive_init_internal(newArgs.Length, newArgs, IntPtr.Zero, log_func);

            if (ctx == IntPtr.Zero)
            {
                throw new Exception("There was a problem initializing the lib!");
            }

            light_Process_Func           = LightEvent;
            raw_Pose_Func                = PoseEvent;
            lighthouse_pose_process_func = LightHouseEvent;
            angle_Process_Func           = AngleEvent;
            button_Process_Func          = ButtonEvent;
            Config_Func      = ConfigEvent;
            imu_Process_Func = IMUEvent;
            log_func         = InfoEvent;

            Cfunctions.Survive_install_pose_fn(ctx, raw_Pose_Func);
            Cfunctions.Survive_install_light_fn(ctx, light_Process_Func);
            Cfunctions.Survive_install_lighthouse_pose_fn(ctx, lighthouse_pose_process_func);
            Cfunctions.Survive_install_angle_fn(ctx, angle_Process_Func);
            Cfunctions.Survive_install_button_fn(ctx, button_Process_Func);
            Cfunctions.Survive_install_config_fn(ctx, Config_Func);
            Cfunctions.Survive_install_imu_fn(ctx, imu_Process_Func);
        }
Esempio n. 2
0
 public static extern void Survive_install_angle_fn(SurviveContextPtr ctx, angle_process_func fbp);
Esempio n. 3
0
    internal void CreateContext()
    {
        LogInfo("Start Init");

        SetupConfigs configs = new SetupConfigs
        {
            configFile = "survive_conf.json"
        };

        string[] args = CreateStartParameters(configs);

        //string[] vs = new[] { "--playback", "P:/c/libsurvive-data/lightcap-reformat/lightcap-reformat.log", "--disambiguator", "StateBased", "--calibrate" };

        context = Cfunctions.Survive_init_internal(args.Length, args);

        if (context == IntPtr.Zero)
        {
            throw new Exception("There was a problem initializing the lib!");
        }

        light_Process_Func   = LightEvent;
        raw_Pose_Func        = PoseEvent;
        lighthouse_Pose_Func = LightHouseEvent;
        angle_Process_Func   = AngleEvent;
        button_Process_Func  = ButtonEvent;
        htc_Config_Func      = HTCConfigEvent;
        imu_Process_Func     = IMUEvent;
        error_func           = ErrorEvent;
        info_func            = InfoEvent;

        Cfunctions.Survive_install_raw_pose_fn(context, raw_Pose_Func);
        Cfunctions.Survive_install_light_fn(context, light_Process_Func);
        Cfunctions.Survive_install_lighthouse_pose_fn(context, lighthouse_Pose_Func);
        Cfunctions.Survive_install_angle_fn(context, angle_Process_Func);
        Cfunctions.Survive_install_button_fn(context, button_Process_Func);
        Cfunctions.Survive_install_htc_config_fn(context, htc_Config_Func);
        Cfunctions.Survive_install_imu_fn(context, imu_Process_Func);
        Cfunctions.Survive_install_error_fn(context, error_func);
        Cfunctions.Survive_install_info_fn(context, info_func);

        LogInfo("Finished Init");

        LogInfo("Start Startup");

        int a = 0;

        try
        {
            a = Cfunctions.Survive_startup(context);
        }
        catch (Exception)
        {
            throw;
        }

        if (a != 0)
        {
            throw new Exception("Error in startup");
        }

        LogInfo("Finished Startup");
    }