目录
涂鸦 IoT App SDK 是专为物联网移动应用 (IoT App) 开发打造的一系列 SDK。SDK 提供丰富组件和示例代码,开发者可以快速实现移动 App 对智能设备的连接、控制以及丰富的智能场景应用。
IoT App 是物联网设备和手机之间的媒介。让连接到云端的 IoT 设备始终保持同步,让设备能够无缝访问关键数据,让用户能够远程操作智能设备。
只有与移动应用程序集成后,IoT 系统才能更便捷化地控制所有设备,发挥出物联网的更大的优势。与 PC 端应用相比,移动端应用控制 IoT 设备具有典型的优点:
随身携带的手机更适合远程操控智能设备。
手机集成更多的传感器,提供更丰富完整的连接选项,例如 Wi-Fi、蓝牙、蜂窝网络等。
借助 IoT App,手机可以将地理位置等信息传递到您的智能设备和云端,创造出更多可能的智能化场景。
例如,应用程序可以跟踪您的位置。当您在家里附近的某个地方时,它会在您到家之前打开空调,开始为房屋供暖或制冷。
这些优势使手机成为管理 IoT 设备的最佳用户终端,因此移动端 IoT 行业的 App 的开发也相应而生。
涂鸦 IoT App SDK 提供用户账号、设备配网、设备管理等能力,SDK 本身具备以下优势:
智能生活 App SDK 提供丰富智能家居场景功能组件和示例代码。开发者可以快速集成全屋智能体系的移动端 App 功能。
涂鸦商用照明解决方案是一套完整的物联网控制系统,适用于新装和存量的商用照明市场,为其提供从设备端到软件控制端以及施工端的一套完整方案服务。通过设备管理、能源管控、人因照明等实现绿色建筑与健康建筑。
商用照明 App SDK 是涂鸦商用照明解决方案配套 App 开发产品,帮助开发者快速集成照明体系的移动端 App 功能。
涂鸦智慧社区基于社区业务服务,对小区基础信息智能实时同步更新,构建以住户(人)为核心,关联房屋、地址、关系等关联的社区运行数据,适用于各类新建小区、老旧小区改造项目,为其提供从业主端到软件控制端的一套完整方案服务。
涂鸦智慧社区 App SDK 是一套针对智慧社区提供的移动端开发工具。通过智慧社区 SDK,开发者可以基于 SDK 快速实现社区相关的 App 功能开发。
涂鸦智慧租住解决方案 是一套完整的租住业务管理+物联网控制系统,适用于公寓、酒店、网约房等空间租住市场,为其提供从设备端到移动控制端的一套完整的软硬件服务。
涂鸦智慧居住 App SDK 是一套针对租住场景提供的移动端开发工具。通过智慧居住 SDK,开发者可以快速实现公寓租住相关的 App 功能。
涂鸦 行业 App SDK 提供设备配网、登录注册、资产管理等基本功能,是涂鸦 SaaS 开发框架产品的重要组成部分。开发者可以基于 SDK 快速地实现物联网 App 功能开发,实现对智能设备的配网、控制。
与传统硬件设备相比,IoT 设备搭载一块装有传感器的电路板。这些传感器使用 Wi-Fi 或蓝牙等方式连接到互联网,具备和云端及移动终端的通信能力。
涂鸦提供开源 SDK,用于构建在设备上运行的应用,极大地简化并加速 IoT 解决方案的开发。
通常,IoT 设备将自身数据发送到云端服务。同时接收来自云端的数据和指令。例如:
相比于手机等计算资源充足的移动设备,IoT 设备往往具有不同的特征,如:
因此,借助 SDK 可解决如何以安全可靠的方式将设备连接到云端的难题。
涂鸦 IoT App SDK 和云平台支持 MQTT(Message Queuing Telemetry Transport,遥信消息队列传输)协议。MQTT 是一个基于 TCP 的发布订阅协议,设计的初始目的是为了在带宽很低的不可靠网络条件下,实现与内存极有限的设备的通信,非常适合物联网通信。

在 IoT 解决方案中,IoT 云平台通常提供如下功能:
面板指的是一类运行在涂鸦智能生活 App、OEM App 或基于涂鸦设备控制 UI 业务包开发的 App 上的用于控制智能产品的界面程序。
相比于原生 App,面板基于 ReactNative 开发,一次编写,随处运行,可以在多个平台上运行的代码类型。此外,面板开发支持热更新,您无需再为应用上架审核所需要等待的大量时间而苦恼,应用更新迭代、bug 修复都可以快速上线。

SDK:为 Software Development Kit 的缩写,即软件开发工具包,是辅助开发软件的相关文档、示例、工具的集合。涂鸦根据多种系统或者语言提供了免费的 SDK。
MQTT:为 Message Queuing Telemetry Transport 的缩写,即消息队列遥测传输,是 IBM 开发的一个即时通信协议。MQTT 支持所有平台,几乎可以把所有联网物品和外部连接起来,被用来当做传感器和制动器的通信协议。
IoT App SDK,专为 IoT 移动 App 开发打造,提供丰富组件和示例代码,开发者可以快速实现移动 App 对智能设备的连接、控制以及丰富的智能场景应用。点击开始开发。
类classAprivatedeffooputs:fooendpublicdefbarputs:barendprivatedefzimputs:zimendprotecteddefdibputs:dibendendA的实例a=A.new测试a.foorescueputs:faila.barrescueputs:faila.zimrescueputs:faila.dibrescueputs:faila.gazrescueputs:fail测试输出failbarfailfailfail.发送测试[:foo,:bar,:zim,:dib,:gaz].each{|m|a.send(m)resc
我有一个模型:classItem项目有一个属性“商店”基于存储的值,我希望Item对象对特定方法具有不同的行为。Rails中是否有针对此的通用设计模式?如果方法中没有大的if-else语句,这是如何干净利落地完成的? 最佳答案 通常通过Single-TableInheritance. 关于ruby-on-rails-Rails-子类化模型的设计模式是什么?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.co
我正在使用的第三方API的文档状态:"[O]urAPIonlyacceptspaddedBase64encodedstrings."什么是“填充的Base64编码字符串”以及如何在Ruby中生成它们。下面的代码是我第一次尝试创建转换为Base64的JSON格式数据。xa=Base64.encode64(a.to_json) 最佳答案 他们说的padding其实就是Base64本身的一部分。它是末尾的“=”和“==”。Base64将3个字节的数据包编码为4个编码字符。所以如果你的输入数据有长度n和n%3=1=>"=="末尾用于填充n%
我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i
为什么4.1%2返回0.0999999999999996?但是4.2%2==0.2。 最佳答案 参见此处:WhatEveryProgrammerShouldKnowAboutFloating-PointArithmetic实数是无限的。计算机使用的位数有限(今天是32位、64位)。因此计算机进行的浮点运算不能代表所有的实数。0.1是这些数字之一。请注意,这不是与Ruby相关的问题,而是与所有编程语言相关的问题,因为它来自计算机表示实数的方式。 关于ruby-为什么4.1%2使用Ruby返
它不等于主线程的binding,这个toplevel作用域是什么?此作用域与主线程中的binding有何不同?>ruby-e'putsTOPLEVEL_BINDING===binding'false 最佳答案 事实是,TOPLEVEL_BINDING始终引用Binding的预定义全局实例,而Kernel#binding创建的新实例>Binding每次封装当前执行上下文。在顶层,它们都包含相同的绑定(bind),但它们不是同一个对象,您无法使用==或===测试它们的绑定(bind)相等性。putsTOPLEVEL_BINDINGput
我可以得到Infinity和NaNn=9.0/0#=>Infinityn.class#=>Floatm=0/0.0#=>NaNm.class#=>Float但是当我想直接访问Infinity或NaN时:Infinity#=>uninitializedconstantInfinity(NameError)NaN#=>uninitializedconstantNaN(NameError)什么是Infinity和NaN?它们是对象、关键字还是其他东西? 最佳答案 您看到打印为Infinity和NaN的只是Float类的两个特殊实例的字符串
如果您尝试在Ruby中的nil对象上调用方法,则会出现NoMethodError异常并显示消息:"undefinedmethod‘...’fornil:NilClass"然而,有一个tryRails中的方法,如果它被发送到一个nil对象,它只返回nil:require'rubygems'require'active_support/all'nil.try(:nonexisting_method)#noNoMethodErrorexceptionanymore那么try如何在内部工作以防止该异常? 最佳答案 像Ruby中的所有其他对象
关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭8年前。Improvethisquestion为什么SecureRandom.uuid创建一个唯一的字符串?SecureRandom.uuid#=>"35cb4e30-54e1-49f9-b5ce-4134799eb2c0"SecureRandom.uuid方法创建的字符串从不重复?
我刚刚被困在这个问题上一段时间了。以这个基地为例:moduleTopclassTestendmoduleFooendend稍后,我可以通过这样做在Foo中定义扩展Test的类:moduleTopmoduleFooclassSomeTest但是,如果我尝试通过使用::指定模块来最小化缩进:moduleTop::FooclassFailure这失败了:NameError:uninitializedconstantTop::Foo::Test这是一个错误,还是仅仅是Ruby解析变量名的方式的逻辑结果? 最佳答案 Isthisabug,or