最近,和同学接手了一个某军校《导航原理》课程的教学实验平台软件开发工作。

  本项目在客户端主要用到的技术便是node-webkit,使用它能够以Web的方式开发桌面应用程序。下面,就以本项目为例,介绍一下node-webkit项目。

  顾名思义,node-webkit就是nodejs+webkit。这样做的好处显而易见,核心奥义在于,用nodejs来进行本地化调用,用webkit来解析和执行HTML+JS。

  首先,下载安装node-webkit。点击下面的链接下载解压即可。

    https://github.com/rogerwang/node-webkit

  下载完之后解压,可以看到如下内容:

双击nw.exe直接运行,看到如下界面说明一切都ok,在你的机器上可以运行:

  接着,便可开始本项目的开发工作了。我选择了webstorm作为ide工具,下载安装webstorm,再去网上随便找个破解码(建议花点钱装个B)。

  下载安装好webstorm后,新建一个空工程,命名为“daohang”。如下图:

  

  最简单的node-webkit项目只需要两个文件,即:一个html文件和一个package.json(来说明项目名称、版本和依赖等)。而本项目需要制作很多飞机航行位置变化等动画效果,还需要与硬件交互,所以还需要借助css、js、node.js、jquery、johnny-five等。下面,简要介绍一下各个技术。

  1、页面样式:css

  2、svg动画和特效:html5、css3、jquery、js

  3、串口通信:node-serialport(node.js的一个通信模块)、johnny-five(使Arduino板能与网络交互的框架)

  目前,本项目的模块只完成了基本页面的跳转,还未开始动画和串口通信的开发。项目结构如下:

  

  最后,我们来看看项目初步运行效果。主页面index.html如下,用户可以选择进入路基或星基系统。

  

  在路基系统中,操作界面如下:

  

  系统主要的功能模块分为:无线测角、测距和测速。这里涉及和硬件交互,需要使用node-serialport、J5等技术与Arduino板进行数据交互,动态地更新页面,目前正在学习中。

  今后,会随着项目的进展,和大家分享有关SVG动画制作、J5、node-serialport的相关应用。

  

导航原理实验系统软件——node-webkit初探的更多相关文章

  1. Node.js初探之GET方式传输

    Node.js初探之GET方式传输 例子:form用GET方法向后台传东西 html文件: <form action="http://localhost:8080/aaa" ...

  2. Node Express 初探

    一如既往,先上一张图 Express 基于 Node.js 平台,快速.开放.极简的 web 开发框架. 关于Express更多相关知识请链接至官网http://www.expressjs.com.c ...

  3. 编译原理实验之SLR1文法分析

    ---内容开始--- 这是一份编译原理实验报告,分析表是手动造的,可以作为借鉴. 基于  SLR(1) 分析法的语法制导翻译及中间代码生成程序设计原理与实现1 .理论传授语法制导的基本概念,目标代码结 ...

  4. Node.js 初探

    概念 Node.js 是构建在Chrome javascript runtime之上的平台,能够很容易的构建快速的,可伸缩性的网络应用程序.Node.js使用事件驱动,非阻塞I/O 模式,这使它能够更 ...

  5. 解密SVM系列(四):SVM非线性分类原理实验

    前面几节我们讨论了SVM原理.求解线性分类下SVM的SMO方法.本节将分析SVM处理非线性分类的相关问题. 一般的非线性分类例如以下左所看到的(后面我们将实战以下这种情况): 能够看到在原始空间中你想 ...

  6. 计算机网络原理实验_使用网络协议分析仪Wireshark

    一.实验名称  使用网络协议分析仪Wireshark 二.实验目的: 1. 掌握安装和配置网络协议分析仪Wireshark的方法: 2. 熟悉使用Wireshark工具分析网络协议的基本方法,加深对协 ...

  7. 堆栈上的舞蹈之释放重引用(UAF) 漏洞原理实验分析

    0x01 前言 释放重引用的英文名名称是 Use After Free,也就是著名的 UAF 漏洞的全称.从字面意思可以看出 After Free 就是释放后的内存空间,Use 就是使用的意思,使用释 ...

  8. ARP协议工作原理实验

    一.实验目的 验证"在向目的主机发送数据包时会先查询ARP高速缓存,如果ARP高速缓存中已保存了目的主机的MAC地址,不进行ARP查询,使用ARP高速缓存中的MAC地址:如果缓存中没有IP对 ...

  9. Node.js系列之node.js初探

    官方介绍:Node.js is a platform built on Chrome's JavaScript runtime for easily building fast, scalable n ...

随机推荐

  1. PowerShell学习小结

    1. 获取所有别名信息Get-Alias 2. 获取指定别名信息Get-Alias xx 3. 通过command name获得指定别名信息Get-Alias -Definition xx-xxx 4 ...

  2. VMVare 桥接上网

    桥接模式设置小解: 第1步 虚拟机下fedora安装好后,打开VM虚拟机的菜单栏,单击编辑------虚拟网络编辑器,选择“主机虚拟网络 映射”标签,然后把VMnet0 手动选择为你本地的物理网卡(要 ...

  3. Struts2标签遍历List<Map<String,String>>

    <s:if test="resultList != null && resultList.size() > 0"> <s:iterator  ...

  4. UVa 10226 - Hardwood Species

    题目大意:给出n棵树(有重复),统计每种树出现的频率.使用STL的map. #include <cstdio> #include <iostream> #include < ...

  5. C#创建datatable (转)

      C#创建datatable 方法一: DataTable tblDatas = new DataTable("Datas"); DataColumn dc = null; dc ...

  6. PHP根据设备类型自动跳转相应网址页面,这个现在实用

    现在移动设备上网也很方便,比如Android智能手机,iPhone/iPad等,很多网站都相继推出了针对电脑和这些手机等移动设备访问的网页,如果你的系统是用PHP写的,那面本代码对你会很实用,可根据这 ...

  7. Java多线程(学习篇)

    Java多线程:(学习篇) 1.什么是线程 2.线程状态 3.线程中断 4.线程交互 5.同步机制 6.锁机制 7.堵塞队列与堵塞栈 8.条件变量.原子量.线程池等 9.线性安全类和Callable与 ...

  8. 《Linux多线程服务端编程》笔记——线程同步精要

    并发编程基本模型 message passing和shared memory. 线程同步的四项原则 尽量最低限度地共享对象,减少需要同步的场合.如果确实需要,优先考虑共享 immutable 对象. ...

  9. jQuery获取、设置title的值

    获取值:var t = $(document).attr('title'); 设置值:$(document).attr('title','value');

  10. Spark计算模型

    [TOC] Spark计算模型 Spark程序模型 一个经典的示例模型 SparkContext中的textFile函数从HDFS读取日志文件,输出变量file var file = sc.textF ...