ETC——001
来源:互联网 发布:网络招人的技巧 编辑:程序博客网 时间:2024/05/29 10:58
Dsrc.c 是重要的领头文件,其中的函数dsrc_start首当其冲.
gboolean
dsrc_start(DSRC_t *dsrc)的参数
介是一个很重要的数据结构
struct _DSRC_t {
int listenfd;
int sockfd;
GThread *work_thread;
int cmd[2];
gboolean started;
gboolean connected;
GHashTable *elements;
gboolean set_stamped;
char trx_ip[16];
unsigned short port;
GModule *dsrc_plugin_handle;
dsrc_on_thread_init thread_init_func;
dsrc_on_thread_destroy thread_destroy_func;
dsrc_on_recv_data recv_data_func;
dsrc_on_send_data send_data_func;
dsrc_on_connect connect_func;
dsrc_on_disconnect disconnect_func;
dsrc_on_life_message life_message_func;
dsrc_on_vst vst_func;
dsrc_on_get_stamped get_stamped_func;
dsrc_on_set_stamped set_stamped_func;
dsrc_on_set_resp set_resp_func;
dsrc_on_trans_end trans_end_func;
dsrc_get_accr_func_t get_accr_func;
}; 其中定义的函数之中有重要作用
dsrc_start完成了建立监听绑定套接字listenfd,然后 dsrc->work_thread = g_thread_create(dsrc_main_thread_func, dsrc, TRUE, NULL);
dsrc->started = TRUE;调用dsrc_main_thread_func
原来 myetc C语言定义了定义了许多python可以调用的函数,在python脚本中,调用了myetc定义的c语言的函数,然后python脚本还会被myetc中的c语言函数所调用。
myetc 中的main.c是入口函数文件,main函数完成一些初始化的操作 (splash_display_action 这个函数是一个屏幕溅射窗口的实现函数)调用etc_main_win_show 建立etc主窗口,然后调用_python_init 通过
PyObject *func = etc_sys_get_python_object("etc_init"); 调用etc_callback.py中定义的etc_init 来初始化
在sys_wrapper.c文件中定义了
static PyObject * wrap_sys_dsrc_start(PyObject *self, PyObject *args)这个函数调用了etc_sys.c中的etc_sys_dsrc_start函数,这个函数如下
int etc_sys_dsrc_start(etc_config_t *config, gboolean set_stamped)
{
if (dsrc == NULL)
dsrc = dsrc_init(config->dsrc_lib, config->trax_ip, config->dsrc_port,
set_stamped); //此处config->dsrc_lib 会对应该调用的天线库进行选择
dsrc_thread_init_callback(dsrc, _dsrc_on_thread_init);
dsrc_thread_destroy_callback(dsrc, _dsrc_on_thread_destroy);
dsrc_recv_data_callback(dsrc, _dsrc_on_recv_data);
dsrc_send_data_callback(dsrc, _dsrc_on_send_data);
dsrc_connect_callback(dsrc, _dsrc_on_connect);
dsrc_disconnect_callback(dsrc, _dsrc_on_disconnect);
dsrc_life_message_callback(dsrc, _dsrc_on_life_message);
dsrc_vst_callback(dsrc, _dsrc_on_vst);
dsrc_get_stamped_callback(dsrc, _dsrc_on_get_stamped);
dsrc_set_stamped_callback(dsrc, _dsrc_on_set_stamped);
dsrc_set_resp_callback(dsrc, _dsrc_on_set_resp);
dsrc_trans_end_callback(dsrc, _dsrc_on_trans_end);
return dsrc_start(dsrc) ? 0 : -1; 然后调用dsrc.c文件中的dsrc_start,启动天线
}
- ETC——001
- Linux —— /etc/profile、/etc/bashrc、.bash_profile、.bashrc理解
- 配置文件——/etc/shadow
- etc配置文件解读——fstab
- etc配置文件解读——inittab
- Ubuntu——/etc/ld.so.conf
- etc配置文件解读——fstab
- etc配置文件解读——inittab
- etc配置文件解读——inittab
- 鸟哥私房菜学习笔试(三)——/etc/passwd和/etc/shadow 文件格式
- Linux 限制IP——/etc/hosts.allow和/etc/hosts.deny文件
- Linux登陆——账号和密码文件 /etc/passwd和/etc/shadow
- Linux登陆——账号和密码文件 /etc/passwd和/etc/shadow
- ETC
- etc
- Bootstrap的一些笔记——form,button,etc.
- Linux基础2——修改启动模式/etc/inittab
- Linux 磁盘管理2——/etc/fstab 文件解释
- 一些有用的类库转载
- 【飞秋】位运算与组合搜索(二)
- pku3372(找规律,公式,推理)
- Gridview用法:根据某列的值改变gridview其他列的属性
- javascript 抛出自定义错误
- ETC——001
- 【飞秋】做需求分析一点心得
- Junit: How to skip a test case in Junit ?
- 基于J2ME的手机联网程序[多图]
- 理解I/O Completion Port
- Dll Explore查看程序加载组件
- 二分图匹配的基础知识
- JS问题整理 更新中。。。
- DivMod 方法