From d94209f033f3c90c67983582c0a6c68be38dde3e Mon Sep 17 00:00:00 2001
From: helge <helgewurst@web.de>
Date: 周六, 06 11月 2021 22:19:19 +0800
Subject: [PATCH] add includes

---
 examples/test-LwIP-netconn/scpi_server.c |   61 +++++++++++++++++++++++-------
 1 files changed, 47 insertions(+), 14 deletions(-)

diff --git a/examples/test-LwIP-netconn/scpi_server.c b/examples/test-LwIP-netconn/scpi_server.c
index 5145167..95d5ac7 100644
--- a/examples/test-LwIP-netconn/scpi_server.c
+++ b/examples/test-LwIP-netconn/scpi_server.c
@@ -49,10 +49,6 @@
 #include "lwip/tcp.h"
 #include "lwip/inet.h"
 
-
-#define DEVICE_PORT 5025
-#define CONTROL_PORT 5026
-
 #define SCPI_THREAD_PRIO (tskIDLE_PRIORITY + 2)
 
 #define SCPI_MSG_TIMEOUT                0
@@ -117,11 +113,10 @@
     iprintf("**ERROR: %ld, \"%s\"\r\n", (int32_t) err, SCPI_ErrorTranslate(err));
     if (err != 0) {
         /* New error */
-        /* Beep */
-        /* Error LED ON */
+        SCPI_Event_ErrorIndicatorOn(context, err);
     } else {
         /* No more errors in the queue */
-        /* Error LED OFF */
+        SCPI_Event_ErrorIndicatorOff(context, err);
     }
     return 0;
 }
@@ -152,7 +147,7 @@
 }
 
 scpi_result_t SCPI_SystemCommTcpipControlQ(scpi_t * context) {
-    SCPI_ResultInt(context, CONTROL_PORT);
+    SCPI_ResultInt(context, SCPI_CONTROL_PORT);
     return SCPI_RES_OK;
 }
 
@@ -165,6 +160,7 @@
 }
 
 void SCPI_RequestControl(void) {
+    BaseType_t xReturned;
     queue_event_t msg;
     msg.cmd = SCPI_MSG_SET_ESE_REQ;
 
@@ -174,18 +170,24 @@
     }
      */
 
-    xQueueSend(user_data.evtQueue, &msg, 1000);
+    xReturned = xQueueSend(user_data.evtQueue, &msg, 1000);
+    /* @fixme: replace by real error handling code */
+    LWIP_ASSERT("SCPI_RequestControl failed", xReturned == pdPASS);
 }
 
 void SCPI_AddError(int16_t err) {
+    BaseType_t xReturned;
     queue_event_t msg;
     msg.cmd = SCPI_MSG_SET_ERROR;
     msg.param2 = err;
 
-    xQueueSend(user_data.evtQueue, &msg, 1000);
+    xReturned = xQueueSend(user_data.evtQueue, &msg, 1000);
+    /* @fixme: replace by real error handling code */
+    LWIP_ASSERT("SCPI_AddError failed", xReturned == pdPASS);
 }
 
 void scpi_netconn_callback(struct netconn * conn, enum netconn_evt evt, u16_t len) {
+    BaseType_t xReturned;
     queue_event_t msg;
     (void) len;
 
@@ -201,7 +203,9 @@
         } else if (conn == user_data.control_io_listen) {
             msg.cmd = SCPI_MSG_CONTROL_IO_LISTEN;
         }
-        xQueueSend(user_data.evtQueue, &msg, 1000);
+        xReturned = xQueueSend(user_data.evtQueue, &msg, 1000);
+        /* @fixme: replace by real error handling code */
+        LWIP_ASSERT("scpi_netconn_callback failed", xReturned == pdPASS);
     }
 }
 
@@ -243,6 +247,7 @@
             netconn_delete(newconn);
         } else {
             /* connection established */
+            SCPI_Event_DeviceConnected(newconn);
             iprintf("***Connection established %s\r\n", inet_ntoa(newconn->pcb.ip->remote_ip));
             user_data->io = newconn;
         }
@@ -270,6 +275,7 @@
 
 static void closeIo(user_data_t * user_data) {
     /* connection closed */
+	SCPI_Event_DeviceDisconnected(user_data->io);
     netconn_close(user_data->io);
     netconn_delete(user_data->io);
     user_data->io = NULL;
@@ -357,6 +363,7 @@
     (void) arg;
 
     user_data.evtQueue = xQueueCreate(10, sizeof (queue_event_t));
+    LWIP_ASSERT("user_data.evtQueue != NULL", user_data.evtQueue != NULL);
 
     /* user_context will be pointer to socket */
     SCPI_Init(&scpi_context,
@@ -369,8 +376,11 @@
 
     scpi_context.user_context = &user_data;
 
-    user_data.io_listen = createServer(DEVICE_PORT);
-    user_data.control_io_listen = createServer(CONTROL_PORT);
+    user_data.io_listen = createServer(SCPI_DEVICE_PORT);
+    LWIP_ASSERT("user_data.io_listen != NULL", user_data.io_listen != NULL);
+
+    user_data.control_io_listen = createServer(SCPI_CONTROL_PORT);
+    LWIP_ASSERT("user_data.control_io_listen != NULL", user_data.control_io_listen != NULL);
 
     while (1) {
         waitServer(&user_data, &evt);
@@ -409,5 +419,28 @@
 }
 
 void scpi_server_init(void) {
-    sys_thread_new("SCPI", scpi_server_thread, NULL, 2 * DEFAULT_THREAD_STACKSIZE, SCPI_THREAD_PRIO);
+    TaskHandle_t xHandle = NULL;
+    BaseType_t xReturned;
+    xReturned = xTaskCreate(scpi_server_thread, "SCPI", DEFAULT_THREAD_STACKSIZE, NULL, SCPI_THREAD_PRIO, &xHandle);
+    LWIP_ASSERT("scpi_server_init failed", xReturned == pdPASS);
+}
+
+/* Called by processIoListen() for additional reporting. Override on demand. */
+void __attribute__((weak)) SCPI_Event_DeviceConnected(struct netconn * conn) {
+    /* Remote or Eth LED ON */
+}
+
+/* Called by closeIO() for additional reporting. Override on demand. */
+void __attribute__((weak)) SCPI_Event_DeviceDisconnected(struct netconn * conn) {
+    /* Remote or Eth LED OFF */
+}
+
+/* Called by SCPI_Error() for reporting. Override on demand. */
+void __attribute__((weak)) SCPI_Event_ErrorIndicatorOn(scpi_t * context, int_fast16_t err) {
+    /* New error : Beep, Error LED ON */
+}
+
+/* Called by SCPI_Error() for reporting. Override on demand. */
+void __attribute__((weak)) SCPI_Event_ErrorIndicatorOff(scpi_t * context, int_fast16_t err) {
+    /* No more errors in the queue : Error LED OFF */
 }

--
Gitblit v1.9.1