当前位置:网站首页>Shell script realizes the reading of serial port and the parsing of message
Shell script realizes the reading of serial port and the parsing of message
2022-07-05 08:10:00 【Nanbolwan】
Recently, I am reading the message from the serial port and judging whether the message content is valid , Originally used C++ Wrote a little program . How board card sftp The service is always disconnected , So consider using shell Scripts do this . use shell Script implementation of these functions faces the following problems :
1. How to set and read the serial port from the command line ?
stty yes Linux A good terminal setting tool under the platform , Various terminal properties can be set . In essence, the serial port is also Linux A terminal in a system . So the first step is to set the baud rate of the serial port :
stty -F /dev/ttyO1 raw speed 9600
Then read the serial port , We use cat The command can easily read and print out the serial port information from the terminal , But in the script, we want to read a line of serial port messages into string variables , So there is the following code :
cat /dev/ttyO1 | while read LINE
do
echo LINE
#do something
...
done
2. How to intercept and compare strings ?
str="hello world"
# Intercept hello
h=${str:0:5}
# first : After that is the position ; the second : The following number indicates the number of characters
# There are many ways to compare strings , Here is one of them
if [ $h == 'hello' ]; then
#do something
...
fi
3. How to be in shell Count in script
shell All variables in the script are strings by default , So when we declare variables, we should explicitly assign values :
num=0
# to num Add 1
num=`expr $num + 1`
# Judge num Is it greater than 10
if [ $num -ge 10 ]; then
#do something
...
fi
4. Script implementation
The script reads the serial port message , Intercept the message header and valid as and judge , After passing the judgment, the counter adds 1, Timer exceeded 10 Program exit after ;
#!/bin/sh
stty -F /dev/ttyO1 raw speed 9600
num=0
cat /dev/ttyO1 | while read LINE
do
head=${LINE:0:6}
valid = ${LINE:17:1}
if [ $head == '$GPRMC' ] && [ $valid == 'A' ]; then
echo $num
num = `expr $num + 1`
if [ $num -ge 10 ]; then
exit
fi
fi
done
边栏推荐
- Simple design description of MIC circuit of ECM mobile phone
- Wifi-802.11 negotiation rate table
- List of linked lists
- Explain task scheduling based on Cortex-M3 in detail (Part 2)
- Consul安装
- C WinForm [help interface - send email] - practice five
- 1-stm32 operation environment construction
- Classic application of MOS transistor circuit design (2) - switch circuit design
- C WinForm [view status bar -- statusstrip] - Practice 2
- Record the opening ceremony of Beijing Winter Olympics with display equipment
猜你喜欢
找不到实时聊天软件?给你推荐电商企业都在用的!
[trio basic from introduction to mastery tutorial 20] trio calculates the arc center and radius through three points of spatial arc
LED display equipment records of the opening ceremony of the Beijing Winter Olympics
[cloud native | learn kubernetes from scratch] III. kubernetes cluster management tool kubectl
Stablq of linked list
Mlperf training v2.0 list released, with the same GPU configuration, the performance of Baidu PaddlePaddle ranks first in the world
Management and use of DokuWiki
PMSM dead time compensation
Compilation warning solution sorting in Quartus II
Semiconductor devices (I) PN junction
随机推荐
Problem solving: interpreter error: no file or directory
Explain task scheduling based on Cortex-M3 in detail (Part 2)
C, Numerical Recipes in C, solution of linear algebraic equations, LU decomposition source program
WiFi wpa_ Detailed description of supplicant hostpad interface
Several important parameters of LDO circuit design and type selection
More than 90% of hardware engineers will encounter problems when MOS tubes are burned out!
2021-10-28
FIO测试硬盘性能参数和实例详细总结(附源码)
solver. Learning notes of prototxt file parameters
After installing the new version of keil5 or upgrading the JLINK firmware, you will always be prompted about the firmware update
Measurement fitting based on Halcon learning [II] meaure_ pin. Hdev routine
动力电池UL2580测试项目包括哪些
Management and use of DokuWiki
Class of color image processing based on Halcon learning_ ndim_ norm. hdev
Connection mode - bridge and net
Explain task scheduling based on Cortex-M3 in detail (Part 1)
Classic application of MOS transistor circuit design (1) -iic bidirectional level shift
Semiconductor devices (III) FET
Shape template matching based on Halcon learning [VII] reuse_ model. Hdev routine
Improve lighting C program