From 2a1fbbd629e4c1d7f636bbb7817bea1ba082981a Mon Sep 17 00:00:00 2001
From: folkert van heusden <mail@vanheusden.com>
Date: 周五, 19 11月 2021 05:00:39 +0800
Subject: [PATCH] The problem of the fragmented *IDN? response can be mitigated somewhat by enabling nagle during the response to that command.

---
 examples/test-LwIP-netconn/scpi_server.h |   12 ++++++++++--
 1 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/examples/test-LwIP-netconn/scpi_server.h b/examples/test-LwIP-netconn/scpi_server.h
index 50e677c..dedc158 100644
--- a/examples/test-LwIP-netconn/scpi_server.h
+++ b/examples/test-LwIP-netconn/scpi_server.h
@@ -32,10 +32,16 @@
 extern "C" {
 #endif
 
+#define SCPI_KEEP_IDLE    2000 // (ms) keepalive quiet time after last TCP packet
+#define SCPI_KEEP_INTVL   1000 // (ms) keepalive repeat interval
+#define SCPI_KEEP_CNT        4 // Retry count before terminating connection (SCPI_KEEP_INTVL * SCPI_KEEP_INTVL (ms)).
+
 #define SCPI_DEVICE_PORT  5025 // scpi-raw standard port
 #define SCPI_CONTROL_PORT 5026 // libscpi control port (not part of the standard)
 
 #include <stdint.h>
+#include "lwip/api.h"
+#include "scpi/types.h"
 
 void scpi_server_init(void);
 
@@ -43,8 +49,10 @@
 void SCPI_RequestControl(void);
 
 // optional event handlers
-void SCPI_Event_DeviceConnected(struct netconn * conn);
-void SCPI_Event_DeviceDisconnected(struct netconn * conn);
+void SCPI_Event_DeviceConnected(scpi_t * context, struct netconn * conn);
+void SCPI_Event_DeviceDisconnected(scpi_t * context, struct netconn * conn);
+void SCPI_Event_ControlConnected(scpi_t * context, struct netconn * conn);
+void SCPI_Event_ControlDisconnected(scpi_t * context, struct netconn * conn);
 void SCPI_Event_ErrorIndicatorOn(scpi_t * context, int_fast16_t err);
 void SCPI_Event_ErrorIndicatorOff(scpi_t * context, int_fast16_t err);
 

--
Gitblit v1.9.1