@@ -2290,6 +2290,107 @@ SARA_R5_error_t SARA_R5::socketListen(int socket, unsigned int port)
2290
2290
return err;
2291
2291
}
2292
2292
2293
+ SARA_R5_error_t SARA_R5::socketDirectLinkMode (int socket)
2294
+ {
2295
+ SARA_R5_error_t err;
2296
+ char *command;
2297
+
2298
+ command = sara_r5_calloc_char (strlen (SARA_R5_SOCKET_DIRECT_LINK) + 8 );
2299
+ if (command == NULL )
2300
+ return SARA_R5_ERROR_OUT_OF_MEMORY;
2301
+ sprintf (command, " %s=%d" , SARA_R5_SOCKET_DIRECT_LINK, socket);
2302
+
2303
+ err = sendCommandWithResponse (command, SARA_R5_RESPONSE_CONNECT, NULL ,
2304
+ SARA_R5_STANDARD_RESPONSE_TIMEOUT);
2305
+
2306
+ free (command);
2307
+ return err;
2308
+ }
2309
+
2310
+ SARA_R5_error_t SARA_R5::socketDirectLinkTimeTrigger (int socket, int timerTrigger)
2311
+ {
2312
+ // valid range is 0 (trigger disabled), 100-120000
2313
+ if (!((timerTrigger == 0 ) || ((timerTrigger >= 100 ) && (timerTrigger <= 120000 ))))
2314
+ return SARA_R5_ERROR_ERROR;
2315
+
2316
+ SARA_R5_error_t err;
2317
+ char *command;
2318
+
2319
+ command = sara_r5_calloc_char (strlen (SARA_R5_UD_CONFIGURATION) + 16 );
2320
+ if (command == NULL )
2321
+ return SARA_R5_ERROR_OUT_OF_MEMORY;
2322
+ sprintf (command, " %s=5,%d,%d" , SARA_R5_UD_CONFIGURATION, socket, timerTrigger);
2323
+
2324
+ err = sendCommandWithResponse (command, SARA_R5_RESPONSE_OK, NULL ,
2325
+ SARA_R5_STANDARD_RESPONSE_TIMEOUT);
2326
+
2327
+ free (command);
2328
+ return err;
2329
+ }
2330
+
2331
+ SARA_R5_error_t SARA_R5::socketDirectLinkDataLengthTrigger (int socket, int dataLengthTrigger)
2332
+ {
2333
+ // valid range is 0, 3-1472 for UDP
2334
+ if (!((dataLengthTrigger == 0 ) || ((dataLengthTrigger >= 3 ) && (dataLengthTrigger <= 1472 ))))
2335
+ return SARA_R5_ERROR_ERROR;
2336
+
2337
+ SARA_R5_error_t err;
2338
+ char *command;
2339
+
2340
+ command = sara_r5_calloc_char (strlen (SARA_R5_UD_CONFIGURATION) + 16 );
2341
+ if (command == NULL )
2342
+ return SARA_R5_ERROR_OUT_OF_MEMORY;
2343
+ sprintf (command, " %s=6,%d,%d" , SARA_R5_UD_CONFIGURATION, socket, dataLengthTrigger);
2344
+
2345
+ err = sendCommandWithResponse (command, SARA_R5_RESPONSE_OK, NULL ,
2346
+ SARA_R5_STANDARD_RESPONSE_TIMEOUT);
2347
+
2348
+ free (command);
2349
+ return err;
2350
+ }
2351
+
2352
+ SARA_R5_error_t SARA_R5::socketDirectLinkCharacterTrigger (int socket, int characterTrigger)
2353
+ {
2354
+ // The allowed range is -1, 0-255, the factory-programmed value is -1; -1 means trigger disabled.
2355
+ if (!((characterTrigger >= -1 ) && (characterTrigger <= 255 )))
2356
+ return SARA_R5_ERROR_ERROR;
2357
+
2358
+ SARA_R5_error_t err;
2359
+ char *command;
2360
+
2361
+ command = sara_r5_calloc_char (strlen (SARA_R5_UD_CONFIGURATION) + 16 );
2362
+ if (command == NULL )
2363
+ return SARA_R5_ERROR_OUT_OF_MEMORY;
2364
+ sprintf (command, " %s=7,%d,%d" , SARA_R5_UD_CONFIGURATION, socket, characterTrigger);
2365
+
2366
+ err = sendCommandWithResponse (command, SARA_R5_RESPONSE_OK, NULL ,
2367
+ SARA_R5_STANDARD_RESPONSE_TIMEOUT);
2368
+
2369
+ free (command);
2370
+ return err;
2371
+ }
2372
+
2373
+ SARA_R5_error_t SARA_R5::socketDirectLinkCongestionTimer (int socket, int congestionTimer)
2374
+ {
2375
+ // valid range is 0, 1000-72000
2376
+ if (!((congestionTimer == 0 ) || ((congestionTimer >= 1000 ) && (congestionTimer <= 72000 ))))
2377
+ return SARA_R5_ERROR_ERROR;
2378
+
2379
+ SARA_R5_error_t err;
2380
+ char *command;
2381
+
2382
+ command = sara_r5_calloc_char (strlen (SARA_R5_UD_CONFIGURATION) + 16 );
2383
+ if (command == NULL )
2384
+ return SARA_R5_ERROR_OUT_OF_MEMORY;
2385
+ sprintf (command, " %s=8,%d,%d" , SARA_R5_UD_CONFIGURATION, socket, congestionTimer);
2386
+
2387
+ err = sendCommandWithResponse (command, SARA_R5_RESPONSE_OK, NULL ,
2388
+ SARA_R5_STANDARD_RESPONSE_TIMEOUT);
2389
+
2390
+ free (command);
2391
+ return err;
2392
+ }
2393
+
2293
2394
// Issues command to get last socket error, then prints to serial. Also updates rx/backlog buffers.
2294
2395
int SARA_R5::socketGetLastError ()
2295
2396
{
0 commit comments