contiki学习笔记(一)CTK VNC服务器

mac2026-01-09  7

最大努力多跳转发

RMH模块实现多跳转发机制。

档案 rmh.c 多跳转发 档案 rmh.h 多跳转发头文件。

具体实施方式 RMH模块实现多跳转发机制。 路由必须已经使用route_add()函数设置好了。设置路由是使用另一个Rime模块完成的,如路由发现模块. 一跳可靠的多跳声明原语类似于最好的多跳单播原语,只不过它使用可靠的单跳原语来实现两个单跳邻居之间的通信。 通道 RMH模块使用1通道。

单跳可靠大容量数据传输

Rudolph 2模块实现了一种单跳可靠的大容量数据传输机制。

档案 rudolph2.c Rudolph 2:一个简单的块数据泛滥协议。 档案 rudolph2.h 头文件为单跳可靠的大容量数据传输模块.

具体实施方式 Rudolph 2模块实现了一种单跳可靠的大容量数据传输机制。

通道 Rudolph 2模块使用两个通道;一个用于数据包,另一个用于NACK和修复数据包。

CTK VNC服务器

Functions 函数原型的声明

void vnc_server_update_add (struct vnc_server_state *vs, struct vnc_server_update *a) //Add an update request from a client to the list of pending updates for the connection. //将来自客户端的更新请求添加到连接的挂起更新列表中。 struct vnc_server_update * vnc_server_update_alloc (struct vnc_server_state *vs) //Allocate an update request from the VNC connection state. //从VNC连接状态分配一个更新请求。 void vnc_server_update_free (struct vnc_server_state *vs, struct vnc_server_update *a) //Deallocate an update request from the VNC connection state. //从VNC连接状态释放更新请求。 struct vnc_server_update * vnc_server_update_dequeue (struct vnc_server_state *vs) //Dequeue the first update on the queue of updates. //删除更新队列中的第一个更新。 void vnc_server_update_remove (struct vnc_server_state *vs, struct vnc_server_update *a) //Remove a specific update on the queue of updates. //删除更新队列上的特定更新。 void ctk_draw_init (void) //Initialize the VNC ctk-draw module. //初始化VNC ctk-draw模块。 void ctk_draw_widget (struct ctk_widget *w, unsigned char focus, unsigned char clipy1, unsigned char clipy2) //Draw a widget on the VNC screen. //在VNC屏幕上绘制小部件。 void ctk_draw_clear_window (struct ctk_window *window, unsigned char focus, unsigned char clipy1, unsigned char clipy2) //Clear a window on the VNC screen. //清除VNC屏幕上的一个窗口。 void ctk_draw_window (struct ctk_window *window, unsigned char focus, unsigned char clipy1, unsigned char clipy2, unsigned char draw_borders) //Draw a window on the VNC screen. //在VNC屏幕上绘制一个窗口。 void ctk_draw_dialog (struct ctk_window *dialog) //Draw a dialog on the VNC screen. //在VNC屏幕上绘制一个对话框。 void ctk_draw_clear (unsigned char y1, unsigned char y2) //Clear parts of the VNC desktop. //清除VNC桌面的部分。 void ctk_draw_menus (struct ctk_menus *menus) //Draw the menus on the virtual VNC desktop. //在虚拟VNC桌面上绘制菜单 unsigned char ctk_draw_height (void) //Obtain the height of the VNC desktop. //获取VNC桌面的高度。 unsigned char ctk_draw_width (void) //Obtain the height of the VNC desktop. //获取VNC桌面的高度。 void ctk_arch_draw_char (char c, unsigned char xpos, unsigned char ypos, unsigned char reversedflag, unsigned char color) //Draws a character on the virtual VNC screen. //在虚拟VNC屏幕上绘制一个字符。 unsigned char ctk_arch_keyavail (void) //Checks the key press input queue to see if there are pending keys. //检查按键输入队列,看看是否有暂挂的按键。 ctk_arch_key_t ctk_arch_getkey (void) //Retrieves key presses from the VNC client. //从VNC客户端检索按键。

Function Documentation 具体使用

void ctk_arch_draw_char ( char c, unsigned char xpos, unsigned char ypos, unsigned char reversedflag, unsigned char color ) //在虚拟VNC屏幕上绘制一个字符。 //由libconio模块调用。

参数: c 要绘制的字符 xpos 字符x的位置 ypos 字符y的位置 reversedflag 确定字符是否应该反转 color 字符的颜色

ctk_arch_key_t ctk_arch_getkey ( void ) //从VNC客户端检索按键。 //由CTK模块调用

返回值: 输入队列中的下一个键。

unsigned char ctk_arch_keyavail ( void ) //检查按键输入队列,看看是否有暂挂的按键。 //由CTK模块调用

返回: 如果缓冲区中没有按键,则为零;如果输入缓冲区中有按键,则为非零。

void ctk_draw_clear ( unsigned char y1, unsigned char y2 ) //清除VNC桌面的部分。 //清除屏幕之间的剪辑界限。 //由CTK模块调用

参数: y1 y坐标的下界。 y2 y坐标上界。

void ctk_draw_clear_window ( struct ctk_window * window, unsigned char focus, unsigned char clipy1, unsigned char clipy2 ) //清除VNC屏幕上的一个窗口。 //绘制窗口背景。 //由CTK模块调用

参数: window 要清除的窗口。 focus 窗口的中心 clipy1 y坐标的下界。 clipy2 y坐标的上界。

void ctk_draw_dialog ( struct ctk_window * dialog ) //在VNC屏幕上绘制一个对话框。 //由CTK模块调用

参数: dialog 要绘制的对话框。

unsigned char ctk_draw_height ( void ) //获取VNC桌面的高度。 //由CTK模块调用

返回: VNC桌面的高度,以字符表示。

void ctk_draw_init ( void ) //初始化VNC ctk-draw模块。 //初始化函数 void ctk_draw_menus ( struct ctk_menus * menus ) //在虚拟VNC桌面上绘制菜单。

参数: menus CTK菜单栏

void ctk_draw_widget ( struct ctk_widget * w, unsigned char focus, unsigned char clipy1, unsigned char clipy2 ) //在VNC屏幕上绘制小部件。

参数: w 要绘制的小部件。 focus 小部件的中心。 clipy1 y坐标的下界。 clipy2 y坐标的上界。

unsigned char ctk_draw_width ( void ) //获取VNC桌面的高度。

返回: VNC桌面的高度,以字符表示。

void ctk_draw_window ( struct ctk_window * window, unsigned char focus, unsigned char clipy1, unsigned char clipy2, unsigned char draw_borders ) //在VNC屏幕上绘制一个窗口。

参数: window 要绘制的窗口 focus 窗口的中心 clipy1 y坐标的下界。 clipy2 y坐标的上界。 draw_borders 用于绘制边界的旗帜。

void vnc_server_update_add ( struct vnc_server_state * vs, struct vnc_server_update * a ) //将来自客户端的更新请求添加到连接的挂起更新列表中。 //这个函数是从vnc-out模块调用的。

参数: vs VNC连接状态。 a 需要更新的区域。

struct vnc_server_update* vnc_server_update_alloc ( struct vnc_server_state * vs ) [read] //从VNC连接状态分配一个更新请求。 //这个函数是从vnc-out模块调用的。

参数: vs VNC连接状态。 返回: 更新结构的内存,如果不能分配更新,则为空。

struct vnc_server_update* vnc_server_update_dequeue ( struct vnc_server_state * vs ) [read] //删除更新队列中的第一个更新。 //这个函数是从vnc-out模块调用的。.

参数: vs VNC连接状态。 返回: 队列上的第一次更新,如果队列为空则为NULL。

References NULL.

void vnc_server_update_free ( struct vnc_server_state * vs, struct vnc_server_update * a ) //从VNC连接状态释放更新请求。 //这个函数是从vnc-out模块调用的。.

参数: vs VNC连接状态。 a 要释放的更新结构。

void vnc_server_update_remove ( struct vnc_server_state * vs, struct vnc_server_update * a ) //删除更新队列上的特定更新。

参数: vs VNC连接状态。 a 要删除的更新。

最新回复(0)