# setDynamicIgnition **Endpoint:** `POST https://firesim.cs.gsu.edu/api/setDynamicIgnition` Assign a burn team to travel and ignite along a path from (x1,y1) to (x2,y2). Teams with different `teamNum` values run simultaneously. Calling this multiple times with the same `teamNum` chains paths in sequence. ## Parameters | Name | Type | Required | Default | Description | |------|------|----------|---------|-------------| | `userToken` | string | yes | — | Your simulation token. | | `teamNum` | string | yes | — | Team identifier (e.g. "team0"). Unique per simultaneous team. | | `x1` | integer | yes | — | Starting row. | | `y1` | integer | yes | — | Starting column. | | `x2` | integer | yes | — | Ending row. | | `y2` | integer | yes | — | Ending column. | | `speed` | number (double) | yes | — | Movement speed of the team. | | `mode` | continuous | spot | no | continuous | `continuous` — burns a solid line along the path. `spot` — burns individual points separated by `distance`. | | `distance` | number (double) | no | 0 | Distance between ignition points when mode is "spot". | | `waitTime` | number (double) | no | -1 | Timesteps to wait before the team begins. -1 = start immediately. | ## Responses ### HTTP 200 Returns the current list of all burn teams and their paths. Observed when: Lifecycle: dynamic continuous. Observed when: Lifecycle: dynamic continuous. **Example:** ```json "[ team_name:team0// info_num:1[DetailedInfo{type='segment', start_x=10, start_y=10, end_x=20, end_y=10, speed=1.0, mode='continuous', distance=0.0, wait_time=-1.0}\n]\n]" ``` ### HTTP 400 Bad request. Returned when an invalid `mode` value is passed. **Example:** ```json "" ``` ## Examples ### Python ```python import requests base_url: str = "https://firesim.cs.gsu.edu/api/setDynamicIgnition/" params: dict[str, float | int | str] = { "userToken": "abc123xyz", "teamNum": "team0", "x1": 1, "y1": 1, "x2": 100, "y2": 100, "speed": 0.4, "mode": "continuous", # optional, default "continuous" "distance": 0.0, # optional, default 0 "waitTime": -1.0, # optional, default -1 } response = requests.post(base_url, params=params) print(response.text) ``` ### JavaScript ```javascript /** @type {string} */ const BASE_URL = "https://firesim.cs.gsu.edu/api/setDynamicIgnition/"; const params = { userToken: "abc123xyz", teamNum: "team0", x1: 1, y1: 1, x2: 100, y2: 100, speed: 0.4, mode: "continuous", // optional, default "continuous" distance: 0.0, // optional, default 0 waitTime: -1.0, // optional, default -1 }; const url = new URL(BASE_URL); Object.entries(params).forEach(([k, v]) => url.searchParams.set(k, v)); fetch(url.toString(), { method: "POST" }) .then(res => res.text()) .then(console.log); ``` ### cURL ```bash BASE_URL="https://firesim.cs.gsu.edu/api/setDynamicIgnition/" curl -s -X POST \ -G --data-urlencode "userToken=abc123xyz" \ -G --data-urlencode "teamNum=team0" \ -G --data-urlencode "x1=1" \ -G --data-urlencode "y1=1" \ -G --data-urlencode "x2=100" \ -G --data-urlencode "y2=100" \ -G --data-urlencode "speed=0.4" \ -G --data-urlencode "mode=continuous" \ # optional, default "continuous" -G --data-urlencode "distance=0.0" \ # optional, default 0 -G --data-urlencode "waitTime=-1.0" \ # optional, default -1 "$BASE_URL" ``` ### Java ```java import java.net.URI; import java.net.http.*; String BASE_URL = "https://firesim.cs.gsu.edu/api/setDynamicIgnition/"; String queryString = "userToken=abc123xyz" + "&" + "teamNum=team0" + "&" + "x1=1" + "&" + "y1=1" + "&" + "x2=100" + "&" + "y2=100" + "&" + "speed=0.4" + "&" + "mode=continuous" + "&" + // optional, default "continuous" "distance=0.0" + "&" + // optional, default 0 "waitTime=-1.0"; // optional, default -1 HttpRequest request = HttpRequest.newBuilder() .uri(URI.create(BASE_URL + "?" + queryString)) .POST(HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString()); System.out.println(response.body()); ``` ### Go ```go import ( "fmt" "io" "net/http" "net/url" ) baseURL := "https://firesim.cs.gsu.edu/api/setDynamicIgnition/" params := url.Values{} params.Set("userToken", "abc123xyz") params.Set("teamNum", "team0") params.Set("x1", "1") params.Set("y1", "1") params.Set("x2", "100") params.Set("y2", "100") params.Set("speed", "0.4") params.Set("mode", "continuous") // optional, default "continuous" params.Set("distance", "0.0") // optional, default 0 params.Set("waitTime", "-1.0") // optional, default -1 resp, _ := http.PostForm(baseURL, params) defer resp.Body.Close() body, _ := io.ReadAll(resp.Body) fmt.Println(string(body)) ``` ### Rust ```rust use reqwest::blocking::Client; let base_url = "https://firesim.cs.gsu.edu/api/setDynamicIgnition/"; let params = vec![ ("userToken", "abc123xyz"), ("teamNum", "team0"), ("x1", "1"), ("y1", "1"), ("x2", "100"), ("y2", "100"), ("speed", "0.4"), ("mode", "continuous"), // optional, default "continuous" ("distance", "0.0"), // optional, default 0 ("waitTime", "-1.0"), // optional, default -1 ]; let client = Client::new(); let response = client.post(base_url).query(¶ms).send().unwrap(); println!("{}", response.text().unwrap()); ```