SQLite数据库(www.sqlite.org)是一个轻型的数据库引擎,应用非常广泛。我们使用SQLite来存储采集到的通讯数据,一帧通讯原始数据加上时间戳后作为一条记录存入数据库中。在这个项目中,只需要用到数据库的存储功能,不需要查询之类的(到本地上位机上解析数据时才会用到),所以下面也只介绍存储相关的部分,其他功能可以参考这个网址:
程序说明
用下面这些函数就可以插入记录完成存储,还需要解决的是SQL语句:sql_create_table、sql_insert_record,以及记录集合:records_list。
1 import sqlite3
2
3 # 连接到SQLite数据库:DB_NAME,如果不存在就创建
4 conn = sqlite3.connect(DB_NAME)
5 # 创建一个游标Cursor,可以通过Cursor来执行SQL语句
6 cursor = conn.cursor()
7 # 创建记录表:records
8 cursor.execute(sql_create_table)
9 # 插入多条记录
10 cursor.executemany(sql_insert_record, records_list)
11 # 关闭Cursor
12 cursor.close()
13 # 提交事务
14 conn.commit()
15 # 关闭数据库连接
16 conn.close()
>> SQL语句:sql_create_table、sql_insert_record
sql_create_table
在数据库中建一个表records,表中记录的结构为:单条记录结构:id(自增),时间戳(text),从数据库创建开始的累计时间(real),通讯原始数据(400个,int)
sql_insert_record
插入记录时只需要:时间戳、累计时间、通讯数据*400
1 def init_sql_sentences(param_num):
2 global sql_create_table
3 global sql_insert_record
4
5 # sql_create_table
6 sql_create_table = 'create table if not exists records('
7 sql_create_table += 'id integer primary key autoincrement, '
8 sql_create_table += 'datetime text, '
9 sql_create_table += 'runningtime real, '
10 for i in range(0,