本文将介绍如何使用SSCOM进行多个字符串的发送
发送多字符串
- 点击软件上方多字符串,在软件右侧会出现多字符串发送的窗口
- 软件已经预设了一部分字符串,单击字符串可进行修改;双击可以修改注释;单机注释文字可发送该行字符串;顺序是勾选循环发送后的发送顺序,填0不会发送;勾选循环发送后立即开始根据顺序循环发送
发送文件内的字符串
点击了一遍软件的菜单栏,没有发现可以按照文件内容进行字符串的功能。但在多字符串窗口窗口内有导入ini文件,应该可以将要发送的字符串一次性导入进来。
- 观察自带的ini文件,下面是自带的ini文件部分内容
;删除本文件可以恢复默认值。
;这是SSCOM的设置保存文件,您在程序中设置好的串口参数和字符串数据都会自动保存,请最好不要用外部编辑器改动本文件!
;如果文件被修改后程序不能打开,请删除本文件,程序将会自动生成一个新的ini文件.
;靠行首的半角分号是注释符号
;每行都以回车结束
;"="后面的H表示这是个HEX数据串
;"="后面的A表示这是个ASC字符串
;Nx表示第几条定义的字符串(1<x<=N)
N101=1,十六进制数据串1,1000
N1=H,13 00 FF 88
N102=3,字符串1,1000
N2=A,output string
N103=2,欢迎语,1000
N3=A,欢迎您使用SSCOM!
N104=0,4无注释,1000
N4=A,
...............
可以看到要发送的字符串存在NX(1<X<100)所在行,而N(X+100)代表该行的发送顺序、注释、延时,下拉软件滚动条发现最大只只支持99个字符串
- 将自己的数据放在软件写入观察变化
写入的字符串如下
$GNRMC,012300.000,V,2235.7997,N,11359.9563,E,0.00,0.00,270116,,,N*6B
ini文件的变化如下
N101=1,十六进制数据串1,1000
N1=H,$GNRMC012300.000V2235.7997N11359.9563E0.000.00270116N*6B
可以看到",“发生了变化,为了找到变化规律,对比两个字符串的十六进制数据
发现”,"的十六进制2C变成了02,下面就是写代码实现将文本文件内的字符串转换为软件可以导入的形式了
- 代码比较简单这里就不赘述了,下面是完整python代码
def process_line(line, index):
replacement = "\x02"
# 格式化字符串
formatted_line1 = f"N{index + 100}={index},{index}无注释,200\n"
formatted_line2 = f"N{index}=A,{line.strip().replace(',', replacement)}\n\n"
return formatted_line1 + formatted_line2
def process_file(input_filepath, output_filepath, max_lines=99):
with open(input_filepath, 'r', encoding='gbk') as infile, \
open(output_filepath, 'w', encoding='gbk') as outfile:
for index, line in enumerate(infile, 1):
if index > max_lines:
break
outfile.write(process_line(line, index))
input_filepath = r'D:\工具\安卓GPS模拟工具及数据\GPSTRACE_LOG.txt' # 这里填入你的输入文件路径
output_filepath = 'output.ini' # 这里填入你想要输出的文件路径
process_file(input_filepath, output_filepath)
- 导入生成的ini
替换输入文件名,执行代码后得到output.ini,点击软件上的导入ini
选择文件并导入后,软件多字符串窗口发生变化
至此导入成功,可以发送文件里的字符串了。