crank storyboard学习笔记(一)环境安装

简介: 如有问题请联系我,微信 814565668.目标:用crank实现仪表盘的动态效果。参考博客:http://blog.csdn.net/guokehello/article/details/51644891他的代码没有验证,这里用的是软件带的sample中的代码。

如有问题请联系我,微信 814565668.

目标:用crank实现仪表盘的动态效果。

参考博客:http://blog.csdn.net/guokehello/article/details/51644891

他的代码没有验证,这里用的是软件带的sample中的代码。应该是差不多一样的。

 

1.环境准备:

1)crank storyboard下载

下载地址:http://www.cranksoftware.com/cranksoftware/v5.1.0/eval/storyboard/Crank_Storyboard_Suite-v5.1.0.exe

30天试用版,需要用手机和邮箱申请。

2)vs2013下载安装

http://download.microsoft.com/download/9/3/E/93EA27FF-DB02-4822-8771-DCA0238957E9/vs2013.5_ult_chs.iso?type=ISO

 

2.软件安装:默认安装即可。

3.运行sample程序。

导入工程

File->Import->Storyboard Sample->storyboard_io,导入就可以了。 
这里写图片描述 
这里写图片描述 
导入后界面显示效果如下,还可以吧,比较绚。下面我们让这个界面动起来。 
这里写图片描述

创建底层数据驱动

Crank Storyboard Suite的特点在于可以方便的开发界面,而且不同平台之间可以方便的移植,底层提供了接口。如果需要换平台的话只需要将底层的数据驱动修改一下就可以运行了。导入的工程里面有如下文件: 
这里写图片描述 
其实这个就是数据驱动的C语言代码了。我这里用的是Visual Studio 2012作为编译环境。新建工程文件,copy以下代码:

 

 

?
/*
  * Copyright 2017, Crank Software Inc. All Rights Reserved.
  *
  * For more information email info@cranksoftware.com.
  */
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <inttypes.h>
#ifdef WIN32
#include <windows.h>
#else
#include <unistd.h> // for usleep
#endif
#include "greio.h"
#define CLUSTER_UPDATE_EVENT "cluster_update"
#define CLUSTER_UPDATE_FMT "2u1 speed 2u1 rpm 2u1 fuel 2u1 battery 2u1 oil 2u1 odometer 2u1 trip"
// Cluster update data structure
typedef struct cluster_update_event {
  uint16_t speed;
  uint16_t rpm;
  uint16_t fuel;
  uint16_t battery;
  uint16_t oil;
  uint16_t odometer;
  uint16_t trip;
} cluster_update_event_t;
/**
  * cross-platform sleep
  */
void
sleep_ms( int milliseconds) {
#ifdef WIN32
  Sleep(milliseconds);
#else
  usleep(milliseconds * 1000);
#endif
}
int
main( int argc, char **argv) {
  gre_io_t                    *send_handle;
     gre_io_serialized_data_t    *nbuffer = NULL;
  cluster_update_event_t   event_data;
  int        ret;
   // Connect to a channel to send messages (write)
  send_handle = gre_io_open( "cluster" , GRE_IO_TYPE_WRONLY);
     if (send_handle == NULL) {
         fprintf (stderr, "Can't open send channel\n" );
         return 0;
  }
  memset (&event_data, 0, sizeof (event_data));
  while (1) {
   // Simulate data acquisition ...
   sleep_ms(80);
   event_data.speed = (event_data.speed + 1) % 200;
   event_data.rpm = (event_data.rpm + 50) % 10000;
   // Serialize the data to a buffer
   nbuffer = gre_io_serialize(nbuffer, NULL, CLUSTER_UPDATE_EVENT, CLUSTER_UPDATE_FMT, &event_data, sizeof (event_data));
   if (!nbuffer) {
          fprintf (stderr, "Can't serialized data to buffer, exiting\n" );
    break ;
   }
   // Send the serialized event buffer
   ret = gre_io_send(send_handle, nbuffer);
   if (ret < 0) {
    fprintf (stderr, "Send failed, exiting\n" );
    break ;
   }
  }
  //Release the buffer memory, close the send handle
  gre_io_free_buffer(nbuffer);
  gre_io_close(send_handle);
  return 0;
}


配置一下VC++目录包含目录、库目录以及连接器里面的附加依赖项。关于如何配置这里不再详述,每个编译环境配置有所不同。

修改模拟配置

注意第2)步代码里面的

send_handle = gre_io_open( "cluster", GRE_IO_TYPE_WRONLY );
  • 1

打开的是cluster通道,需要配置一下Storyboard的simulation configurations使得通道名字一致才可以收到信息,操作如下所示: 
这里写图片描述 
这里写图片描述

运行实例

首先点击Simulate storyboard project打开模拟界面,先运行模拟器,再运行vs2013. 然后即可看到仪表盘的变化。 (如果运行vs2013代码有问题,往本文下看)
这里写图片描述 
这里写图片描述 

 

 问题汇总:

1.这个include "greio.h"头文件会报错

解决办法:在crank安装路径里面搜索这个文件,找到后粘贴到当前的这个工程里面。如下

2.提示缺少lib库。

解决办法:

选择要添加lib库的工程,鼠标右键选择属性,在选项的最下面:

 

在属性页左边菜单栏,有很多选项,选择linker->general:

可以看到右边的选项都发生变化了,其中有一项additional library directories,最后面有个下拉按钮,点击下拉按钮,弹出新页面:

单击黄色文件夹状按钮,可以看到下面多了一行可以编辑的。按钮最后的省略号状按钮:

弹出文件夹选择窗口,选择你需要添加的库所在的目录,点击下面的选择按钮:

比如我的是:C:\Program Files (x86)\Crank_Software\Storyboard_Engine\5.1.201707240438\win32-x86-opengles_2.0-obj\lib

 然后在菜单栏选择linker->input:输入你要引用的lib文件名,注意是全名,要加扩展名的:

这样就可以了。

相关文章
|
JavaScript 测试技术 Linux
|
2月前
|
存储 小程序 Java
热门小程序源码合集:微信抖音小程序源码支持PHP/Java/uni-app完整项目实践指南
小程序已成为企业获客与开发者创业的重要载体。本文详解PHP、Java、uni-app三大技术栈在电商、工具、服务类小程序中的源码应用,提供从开发到部署的全流程指南,并分享选型避坑与商业化落地策略,助力开发者高效构建稳定可扩展项目。
|
存储
分页存储管理系统的计算
分页存储管理系统的计算
1312 2
|
编解码 网络协议 网络性能优化
RTP/RTCP 协议讲解
RTP/RTCP 协议讲解
2395 0
vue3+ts+vite读取静态资源图片和环境变量
vue3+ts+vite读取静态资源图片和环境变量
1040 0
vue3+ts+vite读取静态资源图片和环境变量
|
前端开发 数据可视化 编译器
嵌入式 QT Creator使用
嵌入式 QT Creator使用
|
SQL 运维 Oracle
【大数据开发运维解决方案】Oracle通过sqoop同步数据到hive
将关系型数据库ORACLE的数据导入到HDFS中,可以通过Sqoop、OGG来实现,相比较ORACLE GOLDENGATE,Sqoop不仅不需要复杂的安装配置,而且传输效率很高,同时也能实现增量数据同步。 本文档将在以上两个文章的基础上操作,是对第二篇文章环境的一个简单使用测试,使用过程中出现的错误亦可以验证暴漏第二篇文章安装的问题出现的错误,至于sqoop增量同步到hive请看本人在这篇文章之后写的测试文档。
【大数据开发运维解决方案】Oracle通过sqoop同步数据到hive
|
消息中间件 Linux 网络安全
让终端支持https,移植OpenSSL和libcurl到嵌入式linux,遇到的问题总结
让终端支持https,移植OpenSSL和libcurl到嵌入式linux,遇到的问题总结
|
算法 新能源 调度
基于模型预测控制(MPC)的微电网调度优化的研究(Matlab代码实现)
基于模型预测控制(MPC)的微电网调度优化的研究(Matlab代码实现)
505 0
|
Java 测试技术 容器
mockito(模拟测试)框架基本使用指南
mockito(模拟测试)框架基本使用指南
2964 1