微波EDA网,见证研发工程师的成长!
首页 > 应用设计 > 工业电子 > 嵌入式数据库在数控系统中的实现与应用

嵌入式数据库在数控系统中的实现与应用

时间:08-02 来源:互联网 点击:
2.3 填充模块  

实现了与数据库的连接后,接下来应将数据库的数据填充到用户界面上去。应用程序中用Fill_clist()模块实现数据填充功能,其实现流程为:用MySQL查询所需的数据;将查询结果保存在内部缓存中;将缓存中的数据显示在用户界面上。模块代码如下:  

void Fill_clist(){ ……;  
gchar *amend_clist_row[5] = {,,,,}; //定义gtk+数组数据指针及变量   
mysql_query(conx,select number,shapeh,deleteh,shaped,deleted from tbl_amend_amend);  
result_set = mysql_store_result(conx); //将查询结果保存在内部缓存中  
num_fields = mysql_num_fields(result_set); //获得结果集中列的数量  
while(db_row = mysql_fetch_row(result_set)) {  
lengths = mysql_fetch_lengths(result_set); //获得列的长度  
amend_clist_row[0] = db_row[0];  
……;   
amend_clist_row[4] = db_row[4]; //将获得的db_row字符串数组的值一一对应地赋值给amend_clist_row  
gtk_clist_append(GTK_CLIST(modify_list),amend_clist_row); }//填充到clist对应的域中  
mysql_free_result(result_set);} //释放结果集所用的内存  
编译运行插入程序,实现了数据库向用户界面填充数据功能,获得了如图2所示的界面。  

  
图2 MySQL填充图  

2.4 更新模块  

当用户在界面上对系统参数进行修改后,希望将新的数据写入数据库保存,确保数据信息的一致性和连续性,因此应用程序应具有根据系统参数的改变而更新数据库的功能。与填充模块类似,应用程序中用Update_database()模块实现数据库更新功能。  

3 数据库移植  

3.1 移植的硬件平台  

本数控系统中采用了嵌入式PC平台,嵌入式PC与标准PC机完全兼容。因而,可以在普通PC上做好设计和开发,再将软件移植到嵌入式PC上。本系统开发采用嵌入式PC104计算机,硬件水平达到P3级,内存为128M,程序存储选用128M CF[4]卡。  

3.2 移植过程  

要在数控系统中应用数据库和操作界面,则需要将MySQL和操作界面应用程序移植到CF卡中。考虑到CF卡的容量问题,在移植的过程中要对数据库进行裁剪。  

3.2.1 mysqld运行服务器的移植  

要让MySQL能运行在嵌入式系统中,那么mysqld运行服务器文件的移植有着至关重要的作用。用命令ldd mysqld查询与mysqld可执行文件相关的库,结果如表2所示:  

表2 与mysqld可执行文件相关的库文件  


相关库文件  

大小  

相关库文件  

大小  

librt.so.1 => /lib/librt.so.1  

37K  

libstdc++.so.5 => /usr/lib/libstdc++.so.5  

71K  

libdl.so.2 => /lib/libdl.so.2  

15K  

libm.so.6 => /lib/tls/libm.so.6  

21K  

libpthread.so.0 => /lib/tls/libpthread.so.0  

79K  

libgcc_s.so.1 => /lib/libgcc_s.so.1  

30K  

libz.so.1 => /usr/lib/libz.so.1  

52K  

libc.so.6 => /lib/tls/libc.so.6  

1531K  

libcrypt.so.1 => /lib/libcrypt.so.1  

23K  

/lib/ld-linux.so.2 => /lib/ld-linux.so.2  

103K  

libnsl.so.1 => /lib/libnsl.so.1  

91K  

  

  

执行文件mysqld的大小为3.3M,而其相关的库文件的大小约为2M,将mysqld并同上述相关的库文件一起移植到CF卡上,这样mysqld便可在嵌入式硬件平台上有效地执行了。  

3.2.2应用文件的移植  

假定应用程序的可执行文件为app,用命令ldd app同样可以查询到与可执行文件app相关的库。将应用程序连同与应用程序执行相关的库文件一起移植到CF卡上。应用程序的大小约为100K,与应用程序执行相关联的库文件的大小约为8M,而这8M的库文件大部分为嵌入式Linux系统自身带有的库文件,基本上不需要再移植。这样就可在嵌入式数控系统中运行用户操作界面程序,而在后台运行数据库程序了。  

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top