Tange Cloud for Device
Rev.333 |
在设备端有事件发生时,固件调用 TciSetEventEx() 上报事件,如果设备有事件云存服务,本调用会自动触发事件的云录像。
上报事件时需要附带一张jpeg格式的缩略图。
为每张图片单独分配(使用malloc())内存,在 TciSetEventEx() 的参数中为 EVENTPARAM::evtp_flags 设置 EPF_RELEASE_PIC_IN_SDK (=0x01) 标志。
在 TciSetEventEx()返回0时,SDK内部会释放图片内存。如果返回非0,应用需要自己释放图片。
图片建议不要使用全局内存,因为上传是异步的,不确定什么时间上传完成。
SDK确实有一个 TciStopEvent(ECEVENT) 接口, 但目前只对 ECEVENT_DOORBELL 事件有效(用来取消呼叫. 因为呼叫是由 TciSetEventEx()发起, 作为对应,取消呼叫用了 StopEvent 这样的名字)。
对其它事件,SDK没有事件结束的概念,也不依赖应用报告事件结束,而是在内部自认为合适的时间结束事件相关的处理。
事件初次调用 TciSetEventEx(), 会上报到平台并留下记录(同时会通知App)。
如果事件触发了云录像,SDK会从事件时间之前3~5"的I帧开始录像,并持续一个平台配置的时长 N。如果在这个时长到达时没有触发新的事件, 录像自动结束。
否则从新的事件的时间开始向后再录 N"。 所以如果事件一直持续(例如移动侦测),固件应在录像结束前再次调用 TciSetEventEx()。对持续的事件,固件可以5"的间隔持续上报。
后面的调用不会上报平台,只是告诉SDK保持录像.
同一事件 30"内的再次调用TciSetEventEx()只可能会延长云录像。 在距前次上报平台超过30"的那次调用才会再次上报平台(留下事件记录和给App发通知)