/*
* 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;
}
CrankStoryboardSuite汽车仪表盘sample代码
1星 需积分: 9 194 浏览量
2018-01-30
15:55:26
上传
评论
收藏 1.79MB ZIP 举报
wangzhensuo
- 粉丝: 100
- 资源: 6
最新资源
- Windows系统下安装与配置Neo4j的步骤
- 基于matlab实现潮流计算和最优潮流计算的程序1,对毕业设计有一定用处.rar
- 基于大数据学习资源推荐系统的设计与实现(部署视频)-kaic.mp4
- 哈工大形式语言和自动机2022期末含答案
- Windows系统下安装与配置Neo4j的步骤
- 哈希算法(Hash Algorithm)是一种将任意长度的二进制数据映射为较短的、固定长度的二进制值的函数.txt
- Windows系统下安装与配置Neo4j的步骤
- 在二叉树或更复杂的树形结构中,先序输出叶结点.txt
- 列出所有祖先结点的概念通常与树形结构或图论中的节点相关.txt
- 基于matlab实现潮流计算程序,MATLAB潮流计算程序.rar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈