{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "SITL (gazebo)",
            "type": "cppdbg",
            "request": "launch",
            "program": "${command:cmake.launchTargetPath}",
            "args": [
                "${workspaceFolder}/ROMFS/px4fmu_common",
                "-s", "etc/init.d-posix/rcS",
                "-t", "${workspaceFolder}/test_data"
            ],
            "stopAtEntry": false,
            "cwd": "${command:cmake.buildDirectory}/tmp",
            "environment": [
                {
                    "name": "PX4_SIM_MODEL",
                    "value": "${input:PX4_SIM_MODEL}"
                }
            ],
            "externalConsole": false,
            "preLaunchTask": "gazebo",
            "postDebugTask": "gazebo kill",
            "linux": {
                "MIMode": "gdb",
                "externalConsole": false,
                "setupCommands": [
                    {
                        "description": "Enable pretty-printing for gdb",
                        "text": "-enable-pretty-printing",
                        "ignoreFailures": true
                    },
                    {
                        "description": "PX4 ignore wq signals",
                        "text": "handle SIGCONT nostop noprint nopass",
                        "ignoreFailures": true
                    }
                ]
            },
            "osx": {
                "MIMode": "lldb",
                "externalConsole": true,
                "setupCommands": [
                    {
                        "text": "pro hand -p true -s false -n false SIGCONT",
                    }
                ]
            }
        },
        {
            "name": "SITL (jmavsim iris)",
            "type": "cppdbg",
            "request": "launch",
            "program": "${command:cmake.launchTargetPath}",
            "args": [
                "${workspaceFolder}/ROMFS/px4fmu_common",
                "-s", "etc/init.d-posix/rcS",
                "-t", "${workspaceFolder}/test_data"
            ],
            "stopAtEntry": false,
            "cwd": "${command:cmake.buildDirectory}/tmp",
            "environment": [
                {
                    "name": "PX4_SIM_MODEL",
                    "value": "iris"
                }
            ],
            "preLaunchTask": "jmavsim",
            "postDebugTask": "jmavsim kill",
            "linux": {
                "MIMode": "gdb",
                "externalConsole": false,
                "setupCommands": [
                    {
                        "description": "Enable pretty-printing for gdb",
                        "text": "-enable-pretty-printing",
                        "ignoreFailures": true
                    },
                    {
                        "description": "PX4 ignore wq signals",
                        "text": "handle SIGCONT nostop noprint nopass",
                        "ignoreFailures": true
                    }
                ]
            },
            "osx": {
                "MIMode": "lldb",
                "externalConsole": true,
                "setupCommands": [
                    {
                        "text": "pro hand -p true -s false -n false SIGCONT",
                    }
                ]
            }
        },
        {
            "name": "SITL (shell)",
            "type": "cppdbg",
            "request": "launch",
            "program": "${command:cmake.launchTargetPath}",
            "args": [
                "${workspaceFolder}/ROMFS/px4fmu_common",
                "-s", "etc/init.d-posix/rcS",
                "-t", "${workspaceFolder}/test_data"
            ],
            "stopAtEntry": false,
            "cwd": "${command:cmake.buildDirectory}/tmp",
            "environment": [
                {
                    "name": "PX4_SIM_MODEL",
                    "value": "shell"
                }
            ],
            "linux": {
                "MIMode": "gdb",
                "externalConsole": false,
                "setupCommands": [
                    {
                        "description": "Enable pretty-printing for gdb",
                        "text": "-enable-pretty-printing",
                        "ignoreFailures": true
                    },
                    {
                        "description": "PX4 ignore wq signals",
                        "text": "handle SIGCONT nostop noprint nopass",
                        "ignoreFailures": true
                    }
                ]
            },
            "osx": {
                "MIMode": "lldb",
                "externalConsole": true,
                "setupCommands": [
                    {
                        "text": "pro hand -p true -s false -n false SIGCONT",
                    }
                ]
            }
        }
    ],
    "inputs": [
        {
            "type": "pickString",
            "id": "PX4_SIM_MODEL",
            "description": "PX4_SIM_MODEL",
            "options": [
              "iris",
              "typhoon_h480",
              "plane",
              "plane_catapult",
              "plane_lidar",
              "standard_vtol",
              "tailsitter",
              "tiltrotor",
              "r1_rover",
              "boat"
            ],
            "default": "iris"
          }
    ]
}
