This is an automated email from the ASF dual-hosted git repository.
pkarashchenko pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx-apps.git
The following commit(s) were added to refs/heads/master by this push:
new ab67cb191 examples/usbserial: Check if usbserial device exist before
register
ab67cb191 is described below
commit ab67cb1911942732e89bd57d3a6015b91acb1b06
Author: Kevin Zhou <[email protected]>
AuthorDate: Mon Aug 19 16:07:57 2024 +0800
examples/usbserial: Check if usbserial device exist before register
---
examples/usbserial/usbserial_main.c | 127 ++++++++++++++++++++----------------
1 file changed, 70 insertions(+), 57 deletions(-)
diff --git a/examples/usbserial/usbserial_main.c
b/examples/usbserial/usbserial_main.c
index 17c051a49..a06b2bdbf 100644
--- a/examples/usbserial/usbserial_main.c
+++ b/examples/usbserial/usbserial_main.c
@@ -120,29 +120,30 @@ static const char g_shortmsg[] = "Hello, World!!\n";
static const char g_longmsg[] =
"The Spanish Armada a Speech by Queen Elizabeth I of England\n"
"Addressed to the English army at Tilbury Fort - 1588\n"
- "My loving people, we have been persuaded by some, that are careful of our "
- "safety, to take heed how we commit ourselves to armed multitudes, for fear "
- "of treachery; but I assure you, I do not desire to live to distrust my "
- "faithful and loving people.\n"
- "Let tyrants fear; I have always so behaved myself that, under God, I have "
- "placed my chiefest strength and safeguard in the loyal hearts and good will
"
- "of my subjects. And therefore I am come amongst you at this time, not as
for "
- "my recreation or sport, but being resolved, in the midst and heat of the "
- "battle, to live or die amongst you all; to lay down, for my God, and for "
- "my kingdom, and for my people, my honour and my blood, even the dust.\n"
- "I know I have but the body of a weak and feeble woman; but I have the heart
"
- "of a king, and of a king of England, too; and think foul scorn that Parma "
- "or Spain, or any prince of Europe, should dare to invade the borders of my "
- "realms: to which, rather than any dishonour should grow by me, I myself
will "
- "take up arms; I myself will be your general, judge, and rewarder of every "
- "one of your virtues in the field.\n"
+ "My loving people, we have been persuaded by some, that are careful of "
+ "our safety, to take heed how we commit ourselves to armed multitudes, "
+ "or fear of treachery; but I assure you, I do not desire to live to "
+ "distrust my faithful and loving people.\n"
+ "Let tyrants fear; I have always so behaved myself that, under God, I "
+ "have placed my chiefest strength and safeguard in the loyal hearts and "
+ "good will of my subjects. And therefore I am come amongst you at this "
+ "time, not as for my recreation or sport, but being resolved, in the "
+ "midst and heat of the battle, to live or die amongst you all; to lay "
+ "down, for my God, and for my kingdom, and for my people, my honour and "
+ "my blood, even the dust.\n"
+ "I know I have but the body of a weak and feeble woman; but I have the "
+ "heart of a king, and of a king of England, too; and think foul scorn "
+ "hat Parma or Spain, or any prince of Europe, should dare to invade the "
+ "borders of my realms: to which, rather than any dishonour should grow "
+ "by me, I myself will take up arms; I myself will be your general, "
+ "judge, and rewarder of every one of your virtues in the field.\n"
"I know already, by your forwardness, that you have deserved rewards and "
- "crowns; and we do assure you, on the word of a prince, they shall be duly "
- "paid you. In the mean my lieutenant general shall be in my stead, than whom
"
- "never prince commanded a more noble and worthy subject; not doubting by "
- "your obedience to my general, by your concord in the camp, and by your "
- "valour in the field, we shall shortly have a famous victory over the
enemies "
- "of my God, of my kingdom, and of my people.\n";
+ "crowns; and we do assure you, on the word of a prince, they shall be "
+ "duly paid you. In the mean my lieutenant general shall be in my stead, "
+ "than whom never prince commanded a more noble and worthy subject; not "
+ "doubting by your obedience to my general, by your concord in the camp, "
+ "and by your valour in the field, we shall shortly have a famous victory "
+ "over the enemies of my God, of my kingdom, and of my people.\n";
#endif
#ifndef CONFIG_EXAMPLES_USBSERIAL_INONLY
@@ -191,43 +192,48 @@ int main(int argc, FAR char *argv[])
#endif
ssize_t nbytes;
#ifndef CONFIG_EXAMPLES_USBSERIAL_INONLY
- int i, j, k;
+ int i;
+ int j;
+ int k;
#endif
int ret;
- /* Initialize the USB serial driver */
+ if (access(USBSER_DEVNAME, F_OK) < 0)
+ {
+ /* Initialize the USB serial driver */
- printf("usbserial_main: Registering USB serial driver\n");
+ printf("usbserial_main: Registering USB serial driver\n");
#ifdef CONFIG_CDCACM
- ctrl.usbdev = BOARDIOC_USBDEV_CDCACM;
- ctrl.action = BOARDIOC_USBDEV_CONNECT;
- ctrl.instance = 0;
- ctrl.handle = &handle;
+ ctrl.usbdev = BOARDIOC_USBDEV_CDCACM;
+ ctrl.action = BOARDIOC_USBDEV_CONNECT;
+ ctrl.instance = 0;
+ ctrl.handle = &handle;
#else
- ctrl.usbdev = BOARDIOC_USBDEV_PL2303;
- ctrl.action = BOARDIOC_USBDEV_CONNECT;
- ctrl.instance = 0;
- ctrl.handle = &handle;
+ ctrl.usbdev = BOARDIOC_USBDEV_PL2303;
+ ctrl.action = BOARDIOC_USBDEV_CONNECT;
+ ctrl.instance = 0;
+ ctrl.handle = &handle;
#endif
- ret = boardctl(BOARDIOC_USBDEV_CONTROL, (uintptr_t)&ctrl);
- if (ret < 0)
- {
- printf("usbserial_main: ERROR: Failed to create the USB serial device:
%d\n",
- -ret);
- return 1;
- }
+ ret = boardctl(BOARDIOC_USBDEV_CONTROL, (uintptr_t)&ctrl);
+ if (ret < 0)
+ {
+ printf("usbserial_main: ERROR: Failed to create the USB serial "
+ "device: %d\n", -ret);
+ return 1;
+ }
- printf("usbserial_main: Successfully registered the serial driver\n");
+ printf("usbserial_main: Successfully registered the serial driver\n");
+ }
#if defined(CONFIG_USBDEV_TRACE) && CONFIG_USBDEV_TRACE_INITIALIDSET != 0
- /* If USB tracing is enabled and tracing of initial USB events is specified,
- * then dump all collected trace data to stdout
+ /* If USB tracing is enabled and tracing of initial USB events is
+ * specified, then dump all collected trace data to stdout
*/
sleep(5);
@@ -255,7 +261,7 @@ int main(int argc, FAR char *argv[])
if (errcode == ENOTCONN)
{
- printf("usbserial_main: Not connected. Wait and try
again.\n");
+ printf("usbserial_main: Not connected. Wait and try again.\n");
sleep(5);
}
else
@@ -267,7 +273,9 @@ int main(int argc, FAR char *argv[])
}
}
- /* If USB tracing is enabled, then dump all collected trace data to
stdout */
+ /* If USB tracing is enabled, then dump all collected trace data
+ * to stdout
+ */
dumptrace();
}
@@ -278,7 +286,7 @@ int main(int argc, FAR char *argv[])
#ifndef CONFIG_EXAMPLES_USBSERIAL_INONLY
#ifndef CONFIG_EXAMPLES_USBSERIAL_OUTONLY
- infd = open(USBSER_DEVNAME, O_RDONLY|O_NONBLOCK);
+ infd = open(USBSER_DEVNAME, O_RDONLY | O_NONBLOCK);
if (infd < 0)
{
printf("usbserial_main: ERROR: Failed to open " USBSER_DEVNAME
@@ -289,7 +297,7 @@ int main(int argc, FAR char *argv[])
#else
do
{
- infd = open(USBSER_DEVNAME, O_RDONLY|O_NONBLOCK);
+ infd = open(USBSER_DEVNAME, O_RDONLY | O_NONBLOCK);
if (infd < 0)
{
int errcode = errno;
@@ -300,7 +308,7 @@ int main(int argc, FAR char *argv[])
if (errcode == ENOTCONN)
{
- printf("usbserial_main: Not connected. Wait and try
again.\n");
+ printf("usbserial_main: Not connected. Wait and try again.\n");
sleep(5);
}
else
@@ -312,7 +320,9 @@ int main(int argc, FAR char *argv[])
}
}
- /* If USB tracing is enabled, then dump all collected trace data to
stdout */
+ /* If USB tracing is enabled, then dump all collected trace data
+ * to stdout
+ */
dumptrace();
}
@@ -324,9 +334,9 @@ int main(int argc, FAR char *argv[])
/* Send messages and get responses -- forever */
- for (;;)
+ for (; ; )
{
- /* Test IN (device-to-host) messages */
+ /* Test IN (device-to-host) messages */
#ifndef CONFIG_EXAMPLES_USBSERIAL_OUTONLY
#if !defined(CONFIG_EXAMPLES_USBSERIAL_ONLYBIG) &&
!defined(CONFIG_EXAMPLES_USBSERIAL_ONLYSMALL)
@@ -405,9 +415,9 @@ int main(int argc, FAR char *argv[])
printf(" ");
}
- if (j+k < nbytes)
+ if (j + k < nbytes)
{
- printf("%02x", g_iobuffer[j+k]);
+ printf("%02x", g_iobuffer[j + k]);
}
else
{
@@ -423,11 +433,12 @@ int main(int argc, FAR char *argv[])
printf(" ");
}
- if (j+k < nbytes)
+ if (j + k < nbytes)
{
- if (g_iobuffer[j+k] >= 0x20 && g_iobuffer[j+k] <
0x7f)
+ if (g_iobuffer[j + k] >= 0x20 &&
+ g_iobuffer[j + k] < 0x7f)
{
- printf("%c", g_iobuffer[j+k]);
+ printf("%c", g_iobuffer[j + k]);
}
else
{
@@ -453,7 +464,9 @@ int main(int argc, FAR char *argv[])
sleep(5);
#endif /* CONFIG_EXAMPLES_USBSERIAL_INONLY */
- /* If USB tracing is enabled, then dump all collected trace data to
stdout */
+ /* If USB tracing is enabled, then dump all collected trace data
+ * to stdout
+ */
dumptrace();
}