Digilent代理协议

命令格式


  • 为了便于阅读,下面的JSON数据进行了扩展。在传输之前,所有JSON都应该精简(删除空白)。
  • 使用HTTP时,所有的命令都是通过POST方式发送的,除非特别说明。
  • 所有Digilent Agent Protocol命令必须是JSON对象或分块传输:
    • JSON对象
      • 必须以“{”字符开始,以“}”字符结束。
      • 后面可以跟一个或多个' r\n'。
    • 块传输
      • 由一个或多个块组成。
      • 每个数据块必须以数据块中的字节数开始美国信息交换标准代码十六进制格式,后跟一个'\r\n',即二进制数据和一个'\r\n'。
        • 块长度不包括块长度和数据之间的“r n”。
        • 块长度不包括二进制数据后的末尾' r\n'。
      • 每个分块传输以一个零长度的分块结束。
      • 前女友。
6\r\n chunk1\r\n 8\r\n somedata\r\n E\r\n in\r\n\r\nchunks。0 \ r \ n \ r \ n \ r \ n

枚举设备


枚举系统上的设备并返回一个设备列表。

命令

  • 命令—(String)—枚举设备命令" enumerateDevices "。

响应

  • 命令—(String)—枚举设备命令" enumerateDevices "。
  • statusCode—(整数)—表示设备状态的数字值。看到勤奋的代理人状态代码
  • 设备- (Array)—设备名称的数组。

例子

命令

{"agent":[{"command":"enumerateDevices"}]}

响应

{"代理":[{“命令”:“enumerateDevices”、“statusCode”:0,“设备”:[“COM1”、“COM3”、“COM6”]}]}



获取代理信息


获取有关Digilent代理的信息。

命令

  • 命令—(String)—获取信息命令“getInfo”。

响应

  • 命令—(String)—获取信息命令“getInfo”。
  • statusCode—(整数)—表示设备状态的数字值。看到勤奋的代理人状态代码
  • 版本- (Object) -表示Agent版本的对象。
    • 主要—(Integer)—Agent的主版本。
    • —(Integer)—Agent小版本。
    • 补丁—(整数)—Agent补丁版本号。

例子

命令

{"agent":[{"command":"getInfo"}]}

响应

{"代理":[{“命令”:“getInfo”、“statusCode”:0,“版本”:{“主要”:1、“小”:0,“补丁”:0}}]}



得到积极的设备


注意:在Digilent Agent 1.2.1中尚未实现。获取主设备。

命令

  • 命令—(String)—Get ActiveDevice命令“getActiveDevice”。

响应

  • 命令—(String)—Get ActiveDevice命令“getActiveDevice”。
  • statusCode—(整数)—表示设备状态的数字值。看到勤奋的代理人状态代码
  • 设备—(String)—主设备名称。

例子

命令

{"agent":[{"command":"getActiveDevice"}]}

响应

{"代理":[{“命令”:“getActiveDevice”、“statusCode”:0,“设备”:“COM3”}]}



设置活动设备


设置主用设备。

命令

  • 命令—(String)—设置激活设备命令“setActiveDevice”。
  • 设备—(String)—要设置为主用设备的名称。

响应

  • 命令—(String)—设置激活设备命令“setActiveDevice”。
  • statusCode—(整数)—表示设备状态的数字值。看到勤奋的代理人状态代码

例子

命令

{"代理":[{“命令”:“setActiveDevice”、“设备”:“COM3”}]}

响应

{"agent": [{"command": "setActiveDevice", "statusCode": 0}]}



进入JSON模式


将活动设备置于JSON命令模式。

命令

  • 命令—(字符串)—输入JSON模式命令“enterJsonMode”。

响应

  • 命令—(字符串)—输入JSON模式命令“enterJsonMode”。
  • statusCode—(整数)—表示设备状态的数字值。看到勤奋的代理人状态代码

例子

命令

{"agent":[{"command":"enterJsonMode"}]}

响应

{"agent":[{"command":"enterJsonMode", "statusCode":0}]}



发布活动设备


释放主用设备,释放硬件资源。命令

  • 命令—(String)—释放激活设备命令“releaseActiveDevice”。

响应

  • 命令—(String)—释放激活设备命令“releaseActiveDevice”。
  • statusCode—(整数)—表示设备状态的数字值。看到勤奋的代理人状态代码

例子

命令

{"agent":[{"command":"releaseActiveDevice"}]}

响应

{"agent":[{"command":"releaseActiveDevice", "statusCode":0}]}



保存到临时文件


将提供的二进制数据保存为临时目录中的指定文件。

命令

  • 命令—(String)—保存Temp文件命令“saveTempFile”。
  • 文件名—(String)—保存二进制数据时使用的文件名。

响应

  • 命令—(String)—保存Temp文件命令“saveTempFile”。
  • statusCode—(整数)—表示设备状态的数字值。看到勤奋的代理人状态代码

例子

命令

{"agent":[{"command":"saveTempFile", "fileName":"openscope-mz-firmware. "Hex "}]}

响应

{"代理":[{“命令”:“saveTempFile”、“statusCode”:0}]}



上传的固件


上传新固件到主用设备。

命令

  • 命令—(字符串)—上传固件命令“updateFirmware”。
  • enterBootloader-(布尔值)-如果为true,代理将尝试将设备置于引导加载模式。
  • firmwarePath—(String)—固件文件的路径。如果只提供文件名,则假定该目录为临时目录。

响应

  • 命令—(字符串)—上传固件命令“updateFirmware”。
  • statusCode—(整数)—表示设备状态的数字值。看到勤奋的代理人状态代码

例子

{"agent":[{"command":"updateFirmware", "firmwarePath":"openscope-mz-firmware. conf ";hex", "enterBootloader": true}]}

响应

{"agent": [{"command": "updateFirmware", "statusCode": 0}]}



更新波形实时浏览器


更新WaveForms Live的离线浏览器版本。

命令

  • 命令-(字符串)-更新波形实时浏览器命令“updateWaveFormsLiveBrowser”
  • updateZipFileName-(字符串)-包含更新的zip文件的文件名的路径,包括扩展名为.zip的文件(文件必须在临时目录中)。

响应

  • 命令-(字符串)-更新波形实时浏览器命令“updateWaveFormsLiveBrowser”
  • statusCode—(整数)—表示设备状态的数字值。看到勤奋的代理人状态代码

例子

{"agent":[{"command":"updateWaveFormsLiveBrowser", "updateZipFileName":"waveforms-live 0.1. zip"}]}

响应

{"agent": [{"command": "updateWaveFormsLiveBrowser", "statusCode": 0}]}



获取更新固件状态


获取固件更新进程状态。

命令

  • 命令—(String)—更新固件获取状态命令“updateFirmwareGetStatus”。

响应

  • 命令- (String) -更新固件获取状态“updateFirmwareGetStatus”。
  • statusCode—(整数)—表示设备状态的数字值。看到勤奋的代理人状态代码
  • 状态- (String) -固件更新进程状态('idle', 'uploading', 'failed');
  • 进步-(整数)-整数值0-100表示完成百分比。

响应

例子

{"agent":[{"command":"updateFirmwareGetStatus"}]}

响应

{"agent": [{"command": "updateFirmwareGetStatus", "statusCode": 0, "status": "uploading", "progress" 25}]}