Skip to main content

Dobotlink communication module

Project description

This version is relevant for Dobotlink 5.0.0 and python3.5+

DobotRPC is a dobotlink communication module based on websocket and JSON-RPC . It provides python ports to communicate with dobotlink and allows developers to communicate with the GUI.

APIS

  • RPCClient: RPCClient is a class that allows users to instantiate their own client, which uses WebSocket protocol to connect to a target IP and port, and then uses JSON format for data communication.

    • set_ip: Version 4.7.4 or above is acceptable. The IP and port used to set the destination address.
  • RPCServer: RPCServer is a class that allows users to instantiate their own server, which waits for a client to connect using the WebSocket protocol, and then uses JSON format for data communication. The default port number is 9091.

  • loggers: Provide an instantiated loggers interface. The user can call the following interfaces to do the configuration.

    • set_filename: Set log file name.
    • set_level: Set the log output level.
    • set_use_console: Set log output to the console.
    • set_use_file: Set log output to a file.
  • DobotlinkAdapter: Provides an adapter for DobotLink RPC communication.

  • NormalAdapter: Provides an adapter for normal RPC communication

Examples

  • Users can communicate synchronously or asynchronously.The asynchronous mode is as follows:
# Async demo
from DobotRPC import DobotlinkAdapter, RPCClient, loggers
# The asyncio module provides infrastructure for writing single-threaded concurrent code using coroutines, multiplexing I/O access over sockets and other resources, running network clients and servers, and other related primitives.
import asyncio


# Coroutines function
async def main(dobotlink_async):
    # Display information with Dobotlink
    await dobotlink_async.api.ShowMessage(title="Async Demo Message",
                                          message="Async Demo is running.")

    # Search for available ports
    res = await dobotlink_async.Magician.SearchDobot()

    # Get ports
    if len(res) < 1:
        return
    port_name = res[0]["portName"]

    # Connect
    await dobotlink_async.Magician.ConnectDobot(portName=port_name)

    # PTP
    await dobotlink_async.Magician.SetPTPCmd(portName=port_name,
                                             ptpMode=0,
                                             x=230,
                                             y=50,
                                             z=0,
                                             r=20)
    # Disconnect
    await dobotlink_async.Magician.DisconnectDobot(portName=port_name,
                                                   queueStop=True,
                                                   queueClear=True)


if __name__ == "__main__":
    loggers.set_level(loggers.DEBUG)
    # Get the Eventloop reference
    loop = asyncio.get_event_loop()
    # Initializes, connects to dobotlink, and is executed before the Loop runs
    dobotlink_async = DobotlinkAdapter(RPCClient(loop=loop), is_sync=False)
    # Perform coroutines
    loop.run_until_complete(main(dobotlink_async))
  • The synchronization mode is as follows:
# Sync Demo
from DobotRPC import RPCClient, DobotlinkAdapter, loggers


def main(dobotlink_sync):
    # Display information with Dobotlink
    dobotlink_sync.api.ShowMessage(title="Sync Demo Message",
                                   message="Sync Demo is running.")

    # Search for available ports
    res = dobotlink_sync.Magician.SearchDobot()

    # Get ports
    if len(res) < 1:
        return
    port_name = res[0]["portName"]

    # Connect
    dobotlink_sync.Magician.ConnectDobot(portName=port_name)

    # PTP
    dobotlink_sync.Magician.SetPTPCmd(portName=port_name,
                                      ptpMode=0,
                                      x=230,
                                      y=50,
                                      z=0,
                                      r=20)

    # Disconnect
    dobotlink_sync.Magician.DisconnectDobot(portName=port_name)


if __name__ == "__main__":
    loggers.set_level(loggers.DEBUG)
    # Initialize, connect to dobotlink
    dobotlink_sync = DobotlinkAdapter(RPCClient(), is_sync=True)

    main(dobotlink_sync)

Installtion

To install DobotRPC, type:

pip install DobotRPC

DobotRPC is a free software distributed under the Apache license

Usage

  • Users can use the API: loggers, RPCClient, DobotlinkAdapter, NetworkError, client, aip
  • Install Dobotlink 32bit 64bit
  • Right-click the Dobotlink icon and click help, pop up a Dobotlink help documentation.
  • You can guide by examples, reference the Dobotlink help documentation.
  • Then go ahead and develop your first python script.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

DobotRPC-4.8.8.tar.gz (11.1 kB view details)

Uploaded Source

File details

Details for the file DobotRPC-4.8.8.tar.gz.

File metadata

  • Download URL: DobotRPC-4.8.8.tar.gz
  • Upload date:
  • Size: 11.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.4.2 requests/2.22.0 setuptools/40.2.0 requests-toolbelt/0.9.1 tqdm/4.26.0 CPython/3.7.0

File hashes

Hashes for DobotRPC-4.8.8.tar.gz
Algorithm Hash digest
SHA256 d3e9a6c341bb7fa75749d1c4905d42d25047ed481786e49e22529f3117dc065c
MD5 4dd82b96fe75defa04c9a5742aa84999
BLAKE2b-256 b56c5f865cf8eb4fe555f9c59e8f593dc136570036d70fee3f89fc122615cd98

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page