65.9K
CodeProject 正在变化。 阅读更多。
Home

Klubd

starIconstarIconstarIconstarIconstarIcon

5.00/5 (2投票s)

2013 年 8 月 18 日

CPOL

11分钟阅读

viewsIcon

17774

所有可能的解决方案都在一个地方

引言

应用程序名称:- Klubd

目标平台:一体化 = 娱乐

编程方法:我将使用 VS 2012 开发应用程序,编程语言将是 C#、JavaScript、JSON 和 HTML 表单应用程序的混合体。

应用程序概述

随着越来越多的人试图在一个地方获取信息,此应用程序旨在让这些用户能够一站式获取信息。AIO 是一个相当灵活且大型的设备,可以一次性输入大量信息。此应用程序将利用 Aura 界面,整合大量引人入胜的应用程序,因此得名“Klubd”。

支持的功能

  • 多点触控传感器
  • 多人交互支持
  • 社交网络连接:Facebook、Twitter 等。
  • Skype 集成

娱乐

  • 电影
  • 通过图像体验增强现实

它是如何工作的?

由于我使用的是 Ocutag API,它提供了一些出色的内置算法来识别您使用 AIO 的 720p 摄像头拍摄的图像,并为您提供期望的结果。图像预加载到 Ocutag 数据库中,并从中获取结果。如果存在,您可以从数据库中获取任何信息。我将用越来越多的图像更新数据库。它为视觉搜索提供了更好的结果。想象一下,只需一张快照即可获得有关电影明星阵容、附近最近影院的所有信息。

它将包含

电影信息(明星、视频链接等)由 Ocutag API 提供,它还将提供好莱坞

电影的首映链接,只需点击一下网络摄像头,即可匹配 Ocutag 数据库中可用的字符串。

一级方程式

由 Ocutag API 提供支持,它还将提供世界各地一级方程式比赛的精彩瞬间,只需点击一下网络摄像头,即可匹配 Ocutag 数据库中可用的字符串并检索可用结果。

社交分享活动

提供 Facebook、Twitter、Skype 支持。

Ocutag API 易于集成到 Windows 8 桌面应用程序中。

我正在考虑整合周末最新派对地点、景点、全球活动的信息。

天气预报

我将使用 World Weather API 显示世界的天气预报,这将是应用程序的一部分。我已注册 API 密钥。

链接:http://www.worldweatheronline.com/free-weather-feed.aspx

任意地点的每日天气预报。

启用加速度计和陀螺仪,以便在遇到极端天气条件时进行预警,并提示您保存工作并关闭 AIO。

地震活动

为了让您时刻保持警惕,您可以获取世界各地发生的最新地震情况。我将尝试在附近发生地震时提供 ALS 效果,并弹出窗口显示

GPS 位置

API 链接:http://www.seismi.org/api/

结果每小时刷新一次。

濒危物种

在这里,您可以获取有关我们星球上濒危物种的信息。为您提供有关它们最新信息的信息。您可以通过将信息分享给您的朋友和同事,并要求他们不要伤害它们来表达您的担忧。

API 链接

https://www.arkive.org/api/docs/v1/showcase

我将将其与 Ocutag API 集成,并与社交网络紧密连接。

  • Facebook
  • Twitter
  • Skype 及其他将在稍后集成

这里有一个强烈的理由将应用程序的这个阶段绑定到 Windows Azure(我将能够测试 Windows Azure 的 50 美元使用额度)。

绿色出行方式

我将集成世界银行数据 API,提供有关每个国家碳足迹的准确信息。这将为您提供导致气候变化的因素。还将提供的信息是

  • 全球变暖
  • 自然资源流失
  • 粮食不安全
  • 生物多样性丧失
  • 世界银行气候数据 API 提供的一些关于森林砍伐的惊人信息

20% 的全球 CO2 排放是由森林砍伐造成的。树木能冷却大气并储存温室气体。洪水和土壤侵蚀是由森林砍伐引起的。16 亿生活在贫困中的人口依靠森林获取食物、燃料和生计。数十亿传粉昆虫失去了栖息地。将这些信息提供给亲朋好友,将对我们迈向更绿色明天的大道非常有帮助。

世界银行气候数据 API

http://data.worldbank.org/developers/climate-data-api

我已经将其用于 Windows Azure 挑战赛,因此很容易将其集成到 Windows 8 桌面应用程序中。

电池监控

应用程序的这部分将显示 AIO 设备的电池使用情况,当电量为 10% 时,它会提示您保存工作并立即充电。我已经在以前的应用程序中集成了它。

集成 Intel Energy Checker SDK

Intel® Energy Checker SDK Release 2.0 使测量能耗、检测应用程序执行有用工作量以及报告能效指标比以往任何时候都更容易。

http://software.intel.com/en-us/articles/intel-energy-checker-sdk/

可能的 WiDi 集成

现在是画布

一些创意编码工作。我将为孩子们提供通过触摸画布进行实验和设计他们想象力的机会。以创新的方式玩字母游戏来学习。

将使用一个由 Processing JS 驱动的绘图工具。支持多点触控。

下图展示了整个概念

 

开发方法和应用程序预期用途说明

我将使用 VS 2012 作为工具,编码语言将是 c#、JavaScript、HTML、JSON、Processing JS,整个应用程序将是表单应用程序。下面将通过代码片段和图示对每个平台进行简要描述以及我将如何集成它们。

什么是 Ocutag 平台?

告别二维码和条形码。现在您的桌面应用程序可以直接识别图像,触发您设计的数字体验。Ocutag 平台允许您通过 API 将 Ricoh 专有的视觉搜索技术集成到您的桌面应用程序中。基于 Web 的创作工具可让您为用户创建引人入胜的数字体验。物理世界中的静态图像,包括海报、杂志、目录、产品包装、广告牌和照片,都可以将您的用户连接到您的动态数字内容。

Ocutag 服务如何工作。

当您将 Ocutag 添加到您的应用程序中时,您的用户只需使用其移动设备拍摄真实世界的图像即可参与。然后,Ocutag 服务器会在您集合中发布的图像中查找匹配项。找到匹配项后,将在桌面上显示您指定的数字体验——视频、音频、网站、社交媒体、电子商务渠道等。

分步示例

1) 登录后,点击“创建”来创建一个新集合。输入名称

 

2) 集合本质上是一个存储图像的数据库。

选择上传并点击添加图像以上传图像。

 

 

3) 为了有效识别,图像必须为 400*400 像素。

确保选择了“上传时启用”按钮,以便图像被启用。一旦图像被启用,它们就可以与数字内容关联。选择图像并点击编辑。

4) 链接可以是简单的 URL 或自定义定义的。使用区域热点,可以将不同内容链接到单个图像的不同区域。您可以在一张图像中创建任意多区域。

 

5) 当用户拍摄的图像区域与已定义的热点区域匹配时,就会传递链接。

代码片段:-

集成 Ocutag Web Service API。COLLECTION 可以是在门户上创建的集合名称,也可以是 getCollections API 输出中的任何一个。

//
public static string HOST = "api.ocutag.com";
public static string DEV_ID = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
public static string DEV_SECRET = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
public static string APP_ID = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
public static string APP_SECRET = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
//

获取集合 API 调用

//
(void) getCollectionList {

    private void GetCollections ()
    {
    try
    {
    OcutagAPI ocutagApi = new OcutagAPI(HOST, DEV_ID, DEV_SECRET, APP_ID, APP_SECRET);
    ocutagApi.CompletionHandler += OcutagGetCollections_Completed;
    ocutagApi.getCollections();
    }
    catch (Exception ex)
    {
    MessageBox.Show(ex.Message);
    }

    }

    private void OcutagGetCollections_Completed(object sender, OcutagResponse e)
    {

    this.Dispatcher.BeginInvoke(delegate()
    {
    if (e.exception == null)
    {
    string result = System.Text.Encoding.UTF8.GetString(e.responseData, 0, e.responseData.Length);
    MessageBox.Show(result);
    }
    else if (e.exception is WebException)
    MessageBox.Show("Error Code : " + e.statusCode);
    else
    MessageBox.Show("Some error occured : " + e.exception.Message);
    });
    }
//

下面展示了 Ocutag 如何将结果获取到 AIO。

 

什么是天气预报 API?

免费本地天气 REST API 方法允许开发者和程序员访问当前天气状况以及未来 5 天的准确可靠的天气预报。使用 C#、VB、C++、JAVA 或 PHP 等您选择的任何语言,将我们的天气预报集成到您的网站、iPhone/智能手机或 CMS 中。

本地天气 API 返回 XML、JSON 和 CSV 格式的天气数据,并包含温度、降水(降雨)、天气描述、天气图标和风速等天气要素。

HTTP方法

免费本地天气 API 支持 GET。

URL

//
//
http://api.worldweatheronline.com/free/v1/tz.ashx?key=xxxxxxxxxxxxxxxxx&q=98115&format=json
//

响应

响应可以为 XMLJSON(支持 JSONP)或 CSV(逗号分隔值)。

地震活动

SEISMI

Seismi 是一个地震数据可视化项目,它使用美国地质调查局 (USGS) 提供的公开数据,并将其转换为更具信息性、易于阅读且视觉上更有趣的形式。

REST API

它提供带有 JSON 输出的 REST API,用于 Seismi 中的地震数据。

示例查询

//
//
http://www.seismi.org/api/eqs/2012/03?min_magnitude=6
//

这会返回 2012 年 3 月发生的、震级大于 6 的最近地震。

濒危物种

什么是 ARKive API?

您想在您的网站或博客上使用 ARKive 令人惊叹的图片和物种事实吗?现在,您可以通过 ARKive API 轻松地将 ARKive 内容嵌入到您的网站中,从而增强您的网站。

ARKive API(应用程序编程接口)提供了一系列方法来检索特定的 ARKive 数据,帮助用户自动化链接到我们的物种信息和多媒体内容。

所有 API 访问均通过 HTTP 请求,格式如下:

//
http://www.arkive.org/api/{your API key}/{method name}/{required parameters}?{optional parameters}

世界银行气候 API

什么是世界银行气候 API?

气候数据 API 提供对世界银行 气候变化知识门户 上使用的大部分气候数据的编程访问。Web 开发人员可以使用此 API 实时访问知识门户的数据,以支持他们自己的应用程序,前提是他们遵守世界银行的 使用条款

Intel® Energy Checker SDK

软件可以绿色。那些专注于硬件特定系统功能的人经常忽略软件对整体系统效率的关键影响。Intel® Energy Checker SDK 提供了一种方法来衡量系统的“绿色”程度,方法是衡量系统完成的生产力与系统能耗的比例。现在,随着 2011 年新增的众多功能,Intel® Energy Checker SDK Release 2.0 比以往任何时候都更容易测量能耗、检测应用程序执行有用工作量以及报告能效指标。

测量功耗是确定能效的关键部分,但功耗本身并不能说明全部情况。一个完成实际工作量很少的低功耗系统可能不如一个为消耗的能量执行大量工作的较高功耗系统高效。没有一个“一刀切”的指标可以捕捉到每种类型系统的实际工作量,因为工作负载因应用程序而异。行业需要清晰的指标来将业务生产力与消耗的能量相关联,而 Intel® Energy Checker SDK 为软件工程师提供了工具来检测他们的应用程序和系统,以测量和跟踪其系统特定的能效。

2.0 版本新功能

  • 支持没有文件系统的系统(如嵌入式或移动设备)和 MeeGo*。
  • 支持额外的电源计,包括 Watts-Up* PRO、Kill-a-Watt*、ZES Zimmer* LMG450/LMG500/LMG95 以及某些 APC* 电源分配单元。
  • 支持多通道数据采集 (DAQ) 设备,包括 Yokogawa* MW100 DAQ。
  • 支持 Objective-C*、原始 TCP 和串行 over USB 接口。
  • 通过 Ganglia* 集成和集群能效工具增强高性能计算和集群支持。
  • 通过 PL GUI Monitor 工具实现动态 Web 更新,支持 HTML5。
  • 用于测量给定任务能耗的 Energy 工具(类似于 Linux* 的“time”命令),以及更多内容。

什么是 Intel Energy Checker SDK?

此软件开发工具包 (SDK) 使独立软件供应商 (ISV) 能够轻松分析应用程序的能效。SDK 提供了一个简单的 API 和定义、测量和共享效率数据所需的工具。ISV 可以检测其应用程序的源代码,以标准方式导出和导入计数器。尽管此 SDK 的最初目的是促进能效分析和优化,但它可以用于公开对 ISV 及其客户有意义的任何计数器。

画布

关于 Processing js

Processing.js 是流行的 Processing 可视化编程语言的姐妹项目,专为 Web 设计。Processing.js 使您的数据可视化、数字艺术、交互式动画、教育图表、视频游戏等能够使用 Web 标准且无需任何插件运行。您可以使用 Processing 语言编写代码,将其包含在您的网页中,其余的由 Processing.js 完成。它不是魔法,但几乎和魔法一样。

与 Windows 8 桌面应用程序一起使用

用于构建应用程序的工具将是 VS 2012。

代码片段

//
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Windows.Storage;
using Windows.Storage.Streams;
using System.IO;
using Windows.UI.Xaml.Controls;

namespace Processing
{
    public partial class Form1 : Form
    {
        bool _isForm1load = false;
        bool _isJavascriptReady = false;
        public Form1()
        {
            
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            bool _isForm1load = true;
            ValidateAndLoadSketch();
        }

        private void JSListener(object sender, NotifyEventArgs e)
        {
            _isJavascriptReady = true;

            ValidateAndLoadSketch();
        }

        private async void ValidateAndLoadSketch()
        {
            if (!_isJavascriptReady || !_isForm1load)
                return;

            var file = await StorageFile.GetFileFromApplicationUriAsync(
              new Uri("ms-appx:///sketch.pde", UriKind.RelativeOrAbsolute));
            var processingJsFile = "";
            using (var fs = await file.OpenReadAsync())
            {
                using (var inStream = fs.GetInputStreamAt(0))
                {
                    using (var dataReader = new DataReader(inStream))
                    {
                        await dataReader.LoadAsync((uint)fs.Size);
                        processingJsFile = dataReader.ReadString((uint)fs.Size);
                        dataReader.DetachStream();
                    }
                }
            }

           // if (processingJsFile != "")
                //Form.FromHandle("loadSketch", new[] { processingJsFile });
        }
    }
}
//

 代码仍存在一些问题,将尽快解决。

历史

文章已更新。最有雄心的项目 V1。

© . All rights reserved.