poc - 对讲服务

该库对接的是伯纳德对讲平台,并且只能使用支持 PoC 功能的固件。

支持 PoC 功能的模组型号如下:

系列 型号
EC600M EC600MCN_LA、EC600MCN_LE、EC600MCN_LF、EC600MEU_LA、EC600MLA_LA
EC800M EC800MCN_LA、EC800MCN_LE
EC600U EC600UEU_AB
EC800G EC800GCN_LD

请联系 QuecPython 技术支持人员获取伯纳德平台账号。

访问 github 仓库获取示例代码使用说明适用的固件

导入 poc 模块

代码示例:

import poc

初始化

poc.init(init_cb)

该方法用于初始化 poc。

参数描述:

  • init_cb - 初始化回调函数,fun类型。用于通知用户 PoC 是否初始化成功。
    函数原型:init_cb(msg)
    • msg 表示初始化成功与否的结果。
      • 1 - 初始化成功;
      • 0 - 初始化失败。

代码示例:

def init_cb(msg):
    if msg:
        print("poc init successfully.")
    else:
        print("poc init failed.")

poc.init(init_cb)

参数设置

poc.get_init_status()

该方法用于获取初始化状态。

返回值描述:

  • 1 - 已初始化。
  • 0 - 未初始化。

poc.set_solution(solution)

该方法用于设置方案名。

参数描述:

  • solution - 方案名,str 类型。
    方案名用来记录本次方案的具体名称,用户可自行定义。

返回值描述:

  • 0 - 成功;
  • 其它 - 失败。

poc.set_solution_version(version)

该方法用于设置方案版本号。

参数描述:

  • version - 方案版本号,str 类型。
    方案版本号用来记录本次方案的版本号,用户可自行定义。

返回值描述:

  • 0- 成功;
  • 其它 - 失败。

poc.set_productInfo(productInfo)

该方法用于设置产品信息。

参数描述:

  • productInfo - 产品信息,str 类型。
    产品信息用来记录对讲产品的具体信息,用户可自行定义。

返回值描述:

  • 0- 成功;
  • 其它 - 失败。

poc.set_manufacturer(manufacturer)

该方法用于设置制造商信息。

参数描述:

  • manufacturer - 制造商信息,str 类型。
    制造商信息用来记录对讲方案的制造商信息,用户可自行定义。

返回值描述:

  • 0 - 成功;
  • 其它 - 失败。

登录对讲平台

poc.login(login_cb)

该方法用于登录对讲平台。

参数描述:

  • login_cb - 登录状态回调函数,fun 类型。用于通知用户对讲平台是否登录成功。
    函数原型:login_cb(msg)
    • msg 表示初始化成功与否的结果。
      • 1 - 已登录;
      • 0 - 未登录。

返回值描述:

  • 0 - 成功;
  • 小于0 - 失败。

呼叫

poc.speak(ctrl)

该方法用于呼叫组内用户。

参数描述:

  • ctrl表示控制组内呼叫行为。
    • 1 - 呼叫;
    • 0 - 退出呼叫。

返回值描述:

  • 0 - 成功;
  • 其它 - 失败。

poc.callusers(uid, cb)

该方法用于呼叫指定用户。

参数描述:

  • uid - 对方用户 id,int 类型。
  • cb - 单呼回调,fun 类型。
    函数原型:cb(msg)
    • msg 表示呼叫指定用户是否成功。
      • 1 - 呼叫成功;
      • 0 - 呼叫失败。

返回值描述:

  • 0 - 成功;
  • 其它 - 失败。

参数查询

poc.member_getbyid(uid)

该方法用于查询用户信息。

参数描述:

  • uid - 被查询用户的 id,int 类型。
    若为0,则查询当前用户信息。

返回值描述:

列表:[uid, user_name, online_sta, index]

  • uid - 被查询用户的 id,int 类型;
  • user_name - 被查询用户的名称,str 类型;
  • online_sta - 被查询用户的在线状态, int 类型;
    • 1 - 在线;
    • 2 - 离线;
    • 3 - 在线在组。
  • index - 被查询用户的索引号,int 类型。

poc.get_loginstate()

该方法用于查询当前用户在线状态。

返回值描述:

  • 1 - 在线;
  • 2 - 离线;
  • 3 - 在线在组。

群组管理

poc.jiongroup(gid)

该方法用于设备进入群组。

参数描述:

  • gid - 群组 id,int 类型。

返回值描述:

  • 0 - 成功;
  • 其它 - 失败。

poc.leavegroup()

该方法用于设备离开当前群组。

返回值描述:

  • 0 - 成功;
  • 其它 - 失败。

poc.get_groupcount()

该方法用于获取群组数。

返回值描述:

群组个数。

poc.get_grouplist(index_begin, count)

该方法用于查询群组信息。

参数描述:

  • index_begin - 查询的索引起始值,int 类型;
  • count - 计划查询的个数,int 类型。

返回值描述:

  • -1 - 失败;
  • 元组 - 成功。定义为:(gid, group_name, group_type, index)
    • gid - 被查询的群组 id,int 类型;
    • group_name - 被查询的群组名,str 类型;
    • group_type - 被查询的群组类型,str 类型;
    • index - 被查询的群组索引号,int 类型。

poc.group_getbyindex(index)

该方法用于按索引查询群组信息。

参数描述:

  • index - 被查询群组的索引号,int 类型。

返回值描述:

  • 列表:[gid, group_name, group_type, index]
    • gid - 被查询的群组 id,int 类型;
    • group_name - 被查询的群组名,str 类型;
    • group_type - 被查询的群组类型,str 类型;
    • index - 被查询的群组索引号,int 类型。

poc.group_getbyid(gid)

该方法用于按组id查询群组信息。

参数描述:

  • gid - 群组id,int类型。若为0,则查询当前群组信息。

返回值描述:

  • 列表:[gid, group_name, group_type, index]
    • gid - 被查询的群组 id,int 类型;
    • group_name - 被查询的群组名,str 类型;
    • group_type - 被查询的群组类型,str 类型;
    • index - 被查询的群组索引号,int 类型。

poc.get_membercount(gid)

该方法用于查询群组内成员个数。

参数描述:

  • gid - 群组id,int类型。

返回值描述:

成员个数。

poc.get_memberlist(gid,index_begin,count)

该方法用于获取群组内成员列表。

参数描述:

  • gid - 群组id,int类型;
  • index_begin - 查询的索引起始值,int类型;
  • count - 计划查询的个数,int类型。

返回值描述:

  • -1- 失败;
  • 元组 - 成功。定义为:(uid, user_name, online_sta, priority, index)
    • uid - 组内用户的 id,int 类型;
    • user_name - 组内用户的名称,str 类型;
    • online_sta - 组内用户的在线状态, int 类型。
      • 1 - 在线;
      • 2 - 离线;
      • 3 - 在线在组。
    • priority - 组内用户呼叫的优先级,int 类型。
    • index - 用户索引号,int 类型。

音频播放管理

poc.get_audiostate()

该方法用于获取当前音频状态。

返回值描述:

  • 0 - 空闲;
  • 1 - 开始通话;
  • 2 - 通话中;
  • 3 - 停止通话;
  • 4 - 开始接听;
  • 5 - 接听中;
  • 6 - 停止接听;
  • 7 - 开始播放tts;
  • 8 - 停止播放tts;
  • 9 - 开始播放提示音;
  • 10 - 停止播放提示音;
  • 11 - 开始录音;
  • 12 - 结束录音。

poc.set_tts_enable(enable)

该方法用于使能tts。

参数描述:

  • enable - 是否使能 tts,int 类型。
    • 1:使能;
    • 0:不使能。

返回值描述:

  • 0 - 成功;
  • 其它 - 失败。

poc.play_tts(tts_str,interrupt)

该方法用于播放tts。

参数描述:

  • tts_str - tts 播放的内容,str 类型。
  • interrupt - 是否可以被打断,int 类型。
    • 1:表示允许被打断;
    • 0:表示不允许被打断。

返回值描述:

  • 0 - 成功;
  • 其它 - 失败。

回调注册

poc.register_join_group_cb(cb)

该方法用于注册入组回调。

参数描述:

  • cb - 进组回调,触发源包括主动进组和被动进组,fun 类型。用于通知用户设备是否成功进入群组。
    函数原型:cb(msg)
    • msg为一个列表:[group_name, gid]
      • group_name - 当前群组的名字;
      • gid - 当前群组的 id。

poc.register_audio_cb(poc_audio_cb)

该方法用于注册音频回调。

参数描述:

  • poc_audio_cb - 音频回调,fun 类型。用于通知用户当前的音频信息。
    函数原型:poc_audio_cb(msg)
    • msg为一个列表:[state, uid, name, flag]
      • state - 当前语音状态:收听/讲话/TTS/TONE;
      • uid - 当前操作用户 id,讲话/TTS/TONE时为0;
      • name - 当前操作用户名字,讲话/TTS/TONE时为NULL;
      • flag - 如果 state 为 BND_LISTEN_START,flag 为 1 表示本机可以打断对方讲话,flag 为 0 表示本机不能打断对方讲话。

poc.register_listupdate_cb(poc_listupdate_cb)

该方法注册数据更新回调。

参数描述:

  • poc_listupdate_cb - 数据变化的回调函数,fun 类型。用于通知用户当前数据变化的信息。
    函数原型:poc_listupdate_cb(msg)
    • msg表示列表变化的对象。
      • 1 - 群组列表变化;
      • 2 - 成员列表变化。

poc.register_upgrade_cb(cb)

该方法用于注册是否升级的回调。

参数描述:

  • cb - 升级回调函数,fun 类型。用于通知用户是否需要升级。
    函数原型:cb(msg)
    • msg表示是否需要升级。
      • 1 - 需要升级;
      • 0 - 不需要升级。