<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Home on pycertifspec</title>
    <link>https://pycertifspec.readthedocs.io/en/latest/</link>
    <description>Recent content in Home on pycertifspec</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language><atom:link href="https://pycertifspec.readthedocs.io/en/latest/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Client</title>
      <link>https://pycertifspec.readthedocs.io/en/latest/docs/api-documentation/client/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://pycertifspec.readthedocs.io/en/latest/docs/api-documentation/client/</guid>
      <description>pycertifspec.Client #  [view_source]
Client Objects #  class Client() [view_source]
Connection to SPEC
You should only need one instance of this class and use it to create Motor, Variable, etc. instances
__init__ #  | __init__(host: str = &amp;#34;localhost&amp;#34;, port: int = None, port_range: Tuple[int, int] = (6510, 6530), ports: List[int] = [], timeout: float = 0.5, log_messages: bool = False) [view_source]
Attempt to create a connection to SPEC</description>
    </item>
    
    <item>
      <title>Motor</title>
      <link>https://pycertifspec.readthedocs.io/en/latest/docs/api-documentation/motor/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://pycertifspec.readthedocs.io/en/latest/docs/api-documentation/motor/</guid>
      <description>pycertifspec.Motor #  [view_source]
Motor Objects #  class Motor(object) [view_source]
SPEC motor
position #  [view_source]
Get the motor position in user units (setting a value will NOT move the motor but change the position offset)
dial_position #  [view_source]
Get motor position in dial units (setting a value will NOT move the motor)
offset #  [view_source]
The current user offset in dial units
step_size #  [view_source]</description>
    </item>
    
    <item>
      <title>SpecSocket</title>
      <link>https://pycertifspec.readthedocs.io/en/latest/docs/api-documentation/specsocket/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://pycertifspec.readthedocs.io/en/latest/docs/api-documentation/specsocket/</guid>
      <description>pycertifspec.SpecSocket #  [view_source]
SpecMessage #  [view_source]
NamedTuple representing a response from SPEC. Fields are named the same as in the server documentation: https://www.certif.com/spec_help/server.html#protocol
Properties:
 magic - Spec magic number (4277009102) vers - Protocol version number size - Size of the header sn - Serial number (same as request if response) sec - Time when sent usec - Time when sent cmd - Command code (One of pycertifspec.EventTypes) type - Type of body data (One of pycertifspec.</description>
    </item>
    
    <item>
      <title>Variables</title>
      <link>https://pycertifspec.readthedocs.io/en/latest/docs/api-documentation/variables/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://pycertifspec.readthedocs.io/en/latest/docs/api-documentation/variables/</guid>
      <description>pycertifspec.ArrayVar #  [view_source]
ArrayVar Objects #  class ArrayVar(Var, collections.MutableSequence) [view_source]
Represents a SPEC array and behaves like a regular python list. Values assigned to array indices will be pushed to SPEC.
The connection to SPEC decreases performance since the array gets fetched every time it is accessed. Therefore, for expensive computations, store the .value to a different variable and use that.
You usually don&amp;rsquo;t need to instantiate this class since it is easier to just use client.</description>
    </item>
    
    <item>
      <title>Getting Started</title>
      <link>https://pycertifspec.readthedocs.io/en/latest/docs/getting-started/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://pycertifspec.readthedocs.io/en/latest/docs/getting-started/</guid>
      <description>Getting Started #  Installation #  With python &amp;gt;=3.4
pip install git+https://github.com/SEBv15/pycertifspec.git Usage #  Starting SPEC #  The library needs a SPEC session to communicate with. To start SPEC in server mode simply start the shell with the -S [port] flag. When the port is not specified, one off 6510 - 6530 will be used.
Example:
spec -S 6510 This also works for specfe:
specfe fourc -S More on the official documentation</description>
    </item>
    
    <item>
      <title>constants</title>
      <link>https://pycertifspec.readthedocs.io/en/latest/docs/api-documentation/constants/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://pycertifspec.readthedocs.io/en/latest/docs/api-documentation/constants/</guid>
      <description>pycertifspec.DataTypes #  [view_source]
DataTypes Objects #  class DataTypes() [view_source]
All supported SPEC data types
SV_DOUBLE #  [view_source]
Not used by SPEC (np.double)
SV_STRING #  [view_source]
Regular string. Basically used for everything by SPEC
SV_ERROR #  [view_source]
An error occurred
SV_ASSOC #  [view_source]
Associative array (dict)
SV_ARR_DOUBLE #  [view_source]
Array of np.double
SV_ARR_FLOAT #  [view_source]
Array of np.single
SV_ARR_LONG #  [view_source]
Array of np.</description>
    </item>
    
    <item>
      <title>CommandDetector</title>
      <link>https://pycertifspec.readthedocs.io/en/latest/docs/api-documentation/bluesky/commanddetector/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://pycertifspec.readthedocs.io/en/latest/docs/api-documentation/bluesky/commanddetector/</guid>
      <description>pycertifspec.bluesky.CommandDetector #  [view_source]
CommandDetector Objects #  class CommandDetector() [view_source]
__init__ #  | __init__(client: SPECClient, name: str, start_command: str, poll_command: Optional[str] = None, evaluate_poll: Callable[[SpecMessage, str], bool] = lambda _, __: True) [view_source]
Create a bluesky combatible detector backed by SPEC commands.
For each run, the response to all commands will be saved as metadata. In addition, it is possible to configure a description string which can be used to store, for example, the location of the data files for later reference.</description>
    </item>
    
    <item>
      <title>Counter</title>
      <link>https://pycertifspec.readthedocs.io/en/latest/docs/api-documentation/bluesky/counter/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://pycertifspec.readthedocs.io/en/latest/docs/api-documentation/bluesky/counter/</guid>
      <description>pycertifspec.bluesky.Counter #  [view_source]
Counter Objects #  class Counter() [view_source]
__init__ #  | __init__(client, name=&amp;#34;SPEC&amp;#34;, visualize_counters=[]) [view_source]
Create a bluesky combatible detector from SPEC counters
Arguments:
 client - An instance of the Client class name string - Name to be used in bluesky visualize_counters list - List of counter names to use for best-effort visualization  configure #  | configure(duration: float) [view_source]
Configure the time (in seconds) to count</description>
    </item>
    
    <item>
      <title>Motor</title>
      <link>https://pycertifspec.readthedocs.io/en/latest/docs/api-documentation/bluesky/motor/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://pycertifspec.readthedocs.io/en/latest/docs/api-documentation/bluesky/motor/</guid>
      <description>pycertifspec.bluesky.Motor #  [view_source]
Motor Objects #  class Motor() [view_source]
Class representing a SPEC motor that can be used with bluesky
__init__ #  | __init__(motor) [view_source]
Create a bluesky motor from a SPEC motor
Arguments:
 motor pycertifspec.Motor - A pycertifspec motor  configure #  | configure(offset: float = None) [view_source]
Configure settings for the motor
Arguments:
 offset number - Set by what amount the reported position should deviate from the measured  </description>
    </item>
    
  </channel>
</rss>
