|   | 1 | [[Include(WikiToC)]] | 
          
          
            |   | 2 |  | 
          
          
            |   | 3 | === Service: XY Table | 
          
          
            |   | 4 |  | 
          
          
            |   | 5 | This service is used to control the positioning of the [wiki:Hardware/SubSystems/Sivers Sivers 60GHz] antenna arrays mounted on the XY-tables in COSMOS Sandbox 1. | 
          
          
            |   | 6 |  | 
          
          
            |   | 7 | XY Tables: | 
          
          
            |   | 8 |  ||= '''Name''' =||= '''Location''' =||= Mounted Device =|| | 
          
          
            |   | 9 |  ||  xytable1.sb1.cosmos-lab.org  ||  COSMOS Sandbox 1  ||  rfdev3-5  || | 
          
          
            |   | 10 |  ||  xytable2.sb1.cosmos-lab.org  ||  COSMOS Sandbox 1  ||  rfdev3-6  || | 
          
          
            |   | 11 |  | 
          
          
            |   | 12 | Please visit the [wiki:Architecture/Domains/cosmos_sb1 Sandbox 1 page] for more details. | 
          
          
            |   | 13 |  | 
          
          
            |   | 14 | [[BR]] | 
          
          
            |   | 15 |  | 
          
          
            |   | 16 | === Usage === | 
          
          
            |   | 17 |  | 
          
          
            |   | 18 | All the available methods are accessible from the a testbed console via an HTTP API located at `am1.cosmos-lab.org:5054/xy_table`. This API can be interacted with via a command line tool such as "curl" or any script using a "REST client" library. | 
          
          
            |   | 19 |  | 
          
          
            |   | 20 | [[BR]] | 
          
          
            |   | 21 |  | 
          
          
            |   | 22 | === Get the Current Status & Positions === | 
          
          
            |   | 23 |  | 
          
          
            |   | 24 | This API call is used to get the current status of the XY-table(s). The response will specify the current movement state of the XY platform and angular rotation systems as well as their current and target positions. | 
          
          
            |   | 25 |  | 
          
          
            |   | 26 | HTTP API Path: `am1.cosmos-lab.org:5054/xy_table/status` | 
          
          
            |   | 27 |  | 
          
          
            |   | 28 | Parameters: | 
          
          
            |   | 29 |  ||= '''Name''' =||= '''Decription''' =||= '''Required''' =||= '''Acceptable Input''' =|| | 
          
          
            |   | 30 |  ||  name ||  Comma separated list of XY-table FQDNs  ||  Y  ||  (list of XY table FQDNs)  || | 
          
          
            |   | 31 |  | 
          
          
            |   | 32 | Selected response values and their meaning: | 
          
          
            |   | 33 | * '''xy_status''': | 
          
          
            |   | 34 |  | 
          
          
            |   | 35 |  ||= '''Value''' =||= '''Decription''' =|| | 
          
          
            |   | 36 |  ||  Idle  || Platform is stopped in the X and Y plane. || | 
          
          
            |   | 37 |  ||  Run  || Platform is moving in the X and/or Y directions. || | 
          
          
            |   | 38 |  ||  ''other values''  || Indicate possible error, may require staff intervention if persistent. || | 
          
          
            |   | 39 |  | 
          
          
            |   | 40 | * '''rotator_status''': | 
          
          
            |   | 41 |  | 
          
          
            |   | 42 |  ||= '''Value''' =||= '''Decription''' =|| | 
          
          
            |   | 43 |  ||  Limp  || Rotator is stopped but the motor is not trying to hold the position fixed. || | 
          
          
            |   | 44 |  ||  Holding  || Rotator is stopped and the motor is trying to hold the position fixed. || | 
          
          
            |   | 45 |  ||  Accelerating[[BR]]Travelling[[BR]]Decelerating  || Rotator is moving. || | 
          
          
            |   | 46 |  ||  ''other values''  || Indicate possible error, may require staff intervention if persistent. || | 
          
          
            |   | 47 |  | 
          
          
            |   | 48 | * '''current_position''': The position information at the time the request was issued. Note that this is not real-time and may have up to a 1 second delay. | 
          
          
            |   | 49 |  | 
          
          
            |   | 50 | * '''target_position''': The last requested X, Y, and angle positions. | 
          
          
            |   | 51 |  | 
          
          
            |   | 52 | ==== Example 1 ==== | 
          
          
            |   | 53 |  | 
          
          
            |   | 54 | Get status of `xytable1`. | 
          
          
            |   | 55 |  | 
          
          
            |   | 56 | HTTP Request: | 
          
          
            |   | 57 | {{{ | 
          
          
            |   | 58 | am1.cosmos-lab.org:5054/xy_table/status?name=xytable1.sb1.cosmos-lab.org | 
          
          
            |   | 59 | }}} | 
          
          
            |   | 60 |  | 
          
          
            |   | 61 | Response: | 
          
          
            |   | 62 | {{{ | 
          
          
            |   | 63 | <response status="OK"> | 
          
          
            |   | 64 |   <action service="xy_table" name="status"> | 
          
          
            |   | 65 |     <xy_table xy_status="Idle" rotator_status="Holding" name="xytable1.sb1.cosmos-lab.org"> | 
          
          
            |   | 66 |       <current_position x="650.998" y="0.997" angle="-0.4"/> | 
          
          
            |   | 67 |       <target_position x="650" y="0" angle="0.0"/> | 
          
          
            |   | 68 |     </xy_table> | 
          
          
            |   | 69 |   </action> | 
          
          
            |   | 70 | </response> | 
          
          
            |   | 71 | }}} | 
          
          
            |   | 72 |  | 
          
          
            |   | 73 | ==== Example 2 ==== | 
          
          
            |   | 74 |  | 
          
          
            |   | 75 | Get status of `xytable1` and `xytable2`. | 
          
          
            |   | 76 |  | 
          
          
            |   | 77 | HTTP Request: | 
          
          
            |   | 78 | {{{ | 
          
          
            |   | 79 | am1.cosmos-lab.org:5054/xy_table/status?name=xytable1.sb1.cosmos-lab.org,xytable2.sb1.cosmos-lab.org | 
          
          
            |   | 80 | }}} | 
          
          
            |   | 81 |  | 
          
          
            |   | 82 | Response: | 
          
          
            |   | 83 | {{{ | 
          
          
            |   | 84 | <response status="OK"> | 
          
          
            |   | 85 |   <action service="xy_table" name="status"> | 
          
          
            |   | 86 |     <xy_table xy_status="Idle" rotator_status="Holding" name="xytable1.sb1.cosmos-lab.org"> | 
          
          
            |   | 87 |       <current_position x="650.998" y="0.997" angle="-0.4"/> | 
          
          
            |   | 88 |       <target_position x="650" y="0" angle="0.0"/> | 
          
          
            |   | 89 |     </xy_table> | 
          
          
            |   | 90 |     <xy_table xy_status="Run" rotator_status="Holding" name="xytable2.sb1.cosmos-lab.org"> | 
          
          
            |   | 91 |       <current_position x="641.916" y="0.997" angle="0.4"/> | 
          
          
            |   | 92 |       <target_position x="650" y="0" angle="0.0"/> | 
          
          
            |   | 93 |     </xy_table> | 
          
          
            |   | 94 |   </action> | 
          
          
            |   | 95 | </response> | 
          
          
            |   | 96 | }}} | 
          
          
            |   | 97 |  | 
          
          
            |   | 98 | [[BR]] | 
          
          
            |   | 99 |  | 
          
          
            |   | 100 | === Move XY Table Platform === | 
          
          
            |   | 101 |  | 
          
          
            |   | 102 | Moves the platform(s) to the desired X, Y coordinates and rotates it to the desired angle. The response will be a "status" style response immediately following the execution of the command. | 
          
          
            |   | 103 |  | 
          
          
            |   | 104 | HTTP API Path: `am1.cosmos-lab.org:5054/xy_table/move_to` | 
          
          
            |   | 105 |  | 
          
          
            |   | 106 | Parameters: | 
          
          
            |   | 107 |  ||= '''Name''' =||= '''Decription''' =||= '''Required''' =||= '''Acceptable Input''' =|| | 
          
          
            |   | 108 |  ||  name  ||  Comma separated list of XY table FQDNs  ||  Y  ||  (list of XY table FQDNs)  || | 
          
          
            |   | 109 |  ||  x  ||  X-axis target coordinate (mm)  ||  Y  ||  0 to 1300  || | 
          
          
            |   | 110 |  ||  y  ||  Y-axis target coordinate (mm)  ||  Y  ||  0 to 1300  || | 
          
          
            |   | 111 |  ||  angle  ||  Target angle (deg)  ||  Y  ||  -45 to 45  || | 
          
          
            |   | 112 |  | 
          
          
            |   | 113 | ==== Example 1 ==== | 
          
          
            |   | 114 |  | 
          
          
            |   | 115 | Move the platform of `xytable1` to X=500 and Y=30, and rotate to 15 degrees.  | 
          
          
            |   | 116 |  | 
          
          
            |   | 117 | HTTP Request: | 
          
          
            |   | 118 | {{{ | 
          
          
            |   | 119 | am1.cosmos-lab.org:5054/xy_table/move_to?name=xytable1.sb1.cosmos-lab.org&x=500&y=30&angle=15 | 
          
          
            |   | 120 | }}} | 
          
          
            |   | 121 |  | 
          
          
            |   | 122 | Response: | 
          
          
            |   | 123 | {{{ | 
          
          
            |   | 124 | <response status="OK"> | 
          
          
            |   | 125 |   <action service="xy_table" name="move_to"> | 
          
          
            |   | 126 |     <xy_table xy_status="Run" rotator_status="Traveling" name="xytable1.sb1.cosmos-lab.org"> | 
          
          
            |   | 127 |       <current_position x="650.998" y="0.997" angle="-0.4"/> | 
          
          
            |   | 128 |       <target_position x="500" y="30" angle="15.0"/> | 
          
          
            |   | 129 |     </xy_table> | 
          
          
            |   | 130 |   </action> | 
          
          
            |   | 131 | </response> | 
          
          
            |   | 132 | }}} | 
          
          
            |   | 133 |  | 
          
          
            |   | 134 | [[BR]] | 
          
          
            |   | 135 |  | 
          
          
            |   | 136 | === Stop the Current Movement === | 
          
          
            |   | 137 |  | 
          
          
            |   | 138 | Immediately cancels the last requested movement and bring the platform(s) to a stop. | 
          
          
            |   | 139 |  | 
          
          
            |   | 140 | HTTP API Path: `am1.cosmos-lab.org:5054/xy_table/stop` | 
          
          
            |   | 141 |  | 
          
          
            |   | 142 | Parameters: | 
          
          
            |   | 143 |  ||= '''Name''' =||= '''Decription''' =||= '''Required''' =||= '''Acceptable Input''' =|| | 
          
          
            |   | 144 |  ||  name  ||  Comma separated list of XY table FQDNs  ||  Y  ||  (list of XY table FQDNs)  || | 
          
          
            |   | 145 |  | 
          
          
            |   | 146 | ==== Example 1 ==== | 
          
          
            |   | 147 |  | 
          
          
            |   | 148 | Stop the current movement of `xytable1`.  | 
          
          
            |   | 149 |  | 
          
          
            |   | 150 | HTTP Request: | 
          
          
            |   | 151 | {{{ | 
          
          
            |   | 152 | am1.cosmos-lab.org:5054/xy_table/stop?name=xytable1.sb1.cosmos-lab.org | 
          
          
            |   | 153 | }}} | 
          
          
            |   | 154 |  | 
          
          
            |   | 155 | Response: | 
          
          
            |   | 156 | {{{ | 
          
          
            |   | 157 | <response status="OK"> | 
          
          
            |   | 158 |   <action service="xy_table" name="stop"> | 
          
          
            |   | 159 |     <xy_table xy_status="Idle" rotator_status="Holding" name="xytable1.sb1.cosmos-lab.org"> | 
          
          
            |   | 160 |       <current_position x="650.998" y="0.997" angle="-0.4"/> | 
          
          
            |   | 161 |     </xy_table> | 
          
          
            |   | 162 |   </action> | 
          
          
            |   | 163 | </response> | 
          
          
            |   | 164 | }}} |