From a150bcdb8c63cefd58352bd36910800cb1ae1948 Mon Sep 17 00:00:00 2001 From: Felix Agner <felix.agner@control.lth.se> Date: Wed, 9 Nov 2022 11:04:19 +0100 Subject: [PATCH] bug fixes and cleaning --- README.md | 11 +++++++++++ src/Omnibot.jl | 2 ++ src/setspeeds.jl | 45 ++++++++++++++++++++------------------------- 3 files changed, 33 insertions(+), 25 deletions(-) diff --git a/README.md b/README.md index f1f1866..57b9cc5 100644 --- a/README.md +++ b/README.md @@ -28,6 +28,17 @@ for i = 1:100 sleep(0.1) end +close(bot) +``` +### Example: Read the maximum set-point for servo speed +``` +using Omnibot + +ip = ... +bot = connectomnibot(ip) + +println(getmaxspeed(bot)) + close(bot) ``` diff --git a/src/Omnibot.jl b/src/Omnibot.jl index 7c45a50..08493ec 100644 --- a/src/Omnibot.jl +++ b/src/Omnibot.jl @@ -5,6 +5,8 @@ export getx export gety export getz export gettheta +export getmaxspeed +export setspeed using Sockets include("connectomnibot.jl") diff --git a/src/setspeeds.jl b/src/setspeeds.jl index 0ca1053..6ebb1c0 100644 --- a/src/setspeeds.jl +++ b/src/setspeeds.jl @@ -1,39 +1,34 @@ """ setspeed(bot::TCPSocket,i::Int,v::Int) -sets the speed of servo `i` to `v`. - -# Arguments -- `bot::TCPSocket`: the socket-connection to the robot. -- `i::Int`: index of the servo, takes values 1-3. -- `v::Int`: integer servo speed set-point. +sets the speed of servo `i::Int` to `v::Int`, where `i` takes values 1,2,3. """ function setspeed(bot::TCPSocket,i::Int,v::Int) -msg = 'w'*string(i)*string(v) -print(bot,msg) -ret = readline(bot) -if msg[1] == 'e' - error(ret) -end + msg = 'w'*string(i)*string(v) + print(bot,msg) + ret = readline(bot) + if msg[1] == 'e' + error(ret) + end -return ret + return ret end """ - setspeeds(bot::TCPSocket,v::Vector{Int}) + setspeed(bot::TCPSocket,v::Vector{Int}) -Set the speed-setpoint of servos to the values in vector v. +Also callable with a vector `v`. Then the set-points are set such that servo 1 gets set-point `v[1]` etc. """ function setspeed(bot::TCPSocket,v::Int) -fullret = "" -for (i,s) in enumerate(v) - msg = 'w'*string(i)*string(s) - print(bot,msg) - ret = readline(bot) - if msg[1] == 'e' - error(ret) + fullret = "" + for (i,s) in enumerate(v) + msg = 'w'*string(i)*string(s) + print(bot,msg) + ret = readline(bot) + if msg[1] == 'e' + error(ret) + end + fullret = fullret*ret*"\n" end - fullret = fullret*ret*"\n" -end -return fullret + return fullret end \ No newline at end of file -- GitLab