chore(infra): remove dead code

This commit is contained in:
Victor Nakoryakov
2017-05-12 17:53:01 +03:00
parent 9044bd36ee
commit 70fa4fcb26
49 changed files with 0 additions and 9907 deletions

View File

@@ -1,112 +0,0 @@
resources:
- name: xod
type: git
source:
uri: git@github.com:amperka/xod.git
branch: master
private_key: {{github-private-key}}
- name: master-version
type: semver
source:
driver: git
uri: git@github.com:xodio/xod-version.git
branch: master
file: master.txt
private_key: {{github-private-key}}
- name: xod-client-browser-image
type: docker-image
source:
repository: xodio/xod-client-browser
username: {{docker-hub-username}}
password: {{docker-hub-password}}
jobs:
- name: build-monorepo
serial: true
public: true
plan:
- get: xod
trigger: true
- task: install
config:
platform: linux
image_resource:
type: docker-image
source:
repository: xodio/node
inputs:
- name: xod
outputs:
- name: installed-xod
run:
path: sh
args:
- -exc
- |
rsync -a xod/ installed-xod/
cd installed-xod
yarn install --silent
yarn run bootstrap
symlinks -cr .
- task: build
config:
platform: linux
image_resource:
type: docker-image
source:
repository: xodio/node
inputs:
- name: installed-xod
outputs:
- name: built-xod
run:
path: sh
args:
- -exc
- |
rsync -a installed-xod/ built-xod/
cd built-xod
yarn run build
- task: test
config:
platform: linux
image_resource:
type: docker-image
source:
repository: xodio/node
inputs:
- name: built-xod
run:
dir: built-xod
path: yarn
args: [test]
- task: lint
config:
platform: linux
image_resource:
type: docker-image
source:
repository: xodio/node
inputs:
- name: built-xod
run:
dir: built-xod
path: yarn
args: [run, lint]
- get: master-version
params: { pre: master }
- put: xod-client-browser-image
params:
build: built-xod/packages/xod-client-browser
tag: master-version/number
- put: master-version
params: { pre: master }

View File

@@ -13,7 +13,6 @@
"lint": "eslint packages/*/src packages/*/test packages/xod-js/platform --ext js,jsx",
"postinstall": "yarn run bootstrap",
"start:xod-client-electron": "node ./tools/lerna-run-sorted start xod-client-electron",
"start:xod-server": "node ./tools/lerna-run-sorted start xod-server",
"storybook": "node ./tools/lerna-serve storybook xod-client",
"test": "node ./tools/lerna-run-sorted test",
"test:watch": "node ./tools/lerna-serve test:watch",

View File

@@ -1,225 +0,0 @@
# Makefile for Sphinx documentation
#
# You can set these variables from the command line.
SPHINXOPTS =
SPHINXBUILD = sphinx-build
PAPER =
BUILDDIR = _build
# Internal variables.
PAPEROPT_a4 = -D latex_paper_size=a4
PAPEROPT_letter = -D latex_paper_size=letter
ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
# the i18n builder cannot share the environment and doctrees with the others
I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
.PHONY: help
help:
@echo "Please use \`make <target>' where <target> is one of"
@echo " html to make standalone HTML files"
@echo " dirhtml to make HTML files named index.html in directories"
@echo " singlehtml to make a single large HTML file"
@echo " pickle to make pickle files"
@echo " json to make JSON files"
@echo " htmlhelp to make HTML files and a HTML help project"
@echo " qthelp to make HTML files and a qthelp project"
@echo " applehelp to make an Apple Help Book"
@echo " devhelp to make HTML files and a Devhelp project"
@echo " epub to make an epub"
@echo " epub3 to make an epub3"
@echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
@echo " latexpdf to make LaTeX files and run them through pdflatex"
@echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx"
@echo " text to make text files"
@echo " man to make manual pages"
@echo " texinfo to make Texinfo files"
@echo " info to make Texinfo files and run them through makeinfo"
@echo " gettext to make PO message catalogs"
@echo " changes to make an overview of all changed/added/deprecated items"
@echo " xml to make Docutils-native XML files"
@echo " pseudoxml to make pseudoxml-XML files for display purposes"
@echo " linkcheck to check all external links for integrity"
@echo " doctest to run all doctests embedded in the documentation (if enabled)"
@echo " coverage to run coverage check of the documentation (if enabled)"
@echo " dummy to check syntax errors of document sources"
.PHONY: clean
clean:
rm -rf $(BUILDDIR)/*
.PHONY: html
html:
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
@echo
@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
.PHONY: dirhtml
dirhtml:
$(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
@echo
@echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
.PHONY: singlehtml
singlehtml:
$(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
@echo
@echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
.PHONY: pickle
pickle:
$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
@echo
@echo "Build finished; now you can process the pickle files."
.PHONY: json
json:
$(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
@echo
@echo "Build finished; now you can process the JSON files."
.PHONY: htmlhelp
htmlhelp:
$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
@echo
@echo "Build finished; now you can run HTML Help Workshop with the" \
".hhp project file in $(BUILDDIR)/htmlhelp."
.PHONY: qthelp
qthelp:
$(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
@echo
@echo "Build finished; now you can run "qcollectiongenerator" with the" \
".qhcp project file in $(BUILDDIR)/qthelp, like this:"
@echo "# qcollectiongenerator $(BUILDDIR)/qthelp/XOD.qhcp"
@echo "To view the help file:"
@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/XOD.qhc"
.PHONY: applehelp
applehelp:
$(SPHINXBUILD) -b applehelp $(ALLSPHINXOPTS) $(BUILDDIR)/applehelp
@echo
@echo "Build finished. The help book is in $(BUILDDIR)/applehelp."
@echo "N.B. You won't be able to view it unless you put it in" \
"~/Library/Documentation/Help or install it in your application" \
"bundle."
.PHONY: devhelp
devhelp:
$(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
@echo
@echo "Build finished."
@echo "To view the help file:"
@echo "# mkdir -p $$HOME/.local/share/devhelp/XOD"
@echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/XOD"
@echo "# devhelp"
.PHONY: epub
epub:
$(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
@echo
@echo "Build finished. The epub file is in $(BUILDDIR)/epub."
.PHONY: epub3
epub3:
$(SPHINXBUILD) -b epub3 $(ALLSPHINXOPTS) $(BUILDDIR)/epub3
@echo
@echo "Build finished. The epub3 file is in $(BUILDDIR)/epub3."
.PHONY: latex
latex:
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
@echo
@echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
@echo "Run \`make' in that directory to run these through (pdf)latex" \
"(use \`make latexpdf' here to do that automatically)."
.PHONY: latexpdf
latexpdf:
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
@echo "Running LaTeX files through pdflatex..."
$(MAKE) -C $(BUILDDIR)/latex all-pdf
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
.PHONY: latexpdfja
latexpdfja:
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
@echo "Running LaTeX files through platex and dvipdfmx..."
$(MAKE) -C $(BUILDDIR)/latex all-pdf-ja
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
.PHONY: text
text:
$(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
@echo
@echo "Build finished. The text files are in $(BUILDDIR)/text."
.PHONY: man
man:
$(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
@echo
@echo "Build finished. The manual pages are in $(BUILDDIR)/man."
.PHONY: texinfo
texinfo:
$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
@echo
@echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo."
@echo "Run \`make' in that directory to run these through makeinfo" \
"(use \`make info' here to do that automatically)."
.PHONY: info
info:
$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
@echo "Running Texinfo files through makeinfo..."
make -C $(BUILDDIR)/texinfo info
@echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo."
.PHONY: gettext
gettext:
$(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale
@echo
@echo "Build finished. The message catalogs are in $(BUILDDIR)/locale."
.PHONY: changes
changes:
$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
@echo
@echo "The overview file is in $(BUILDDIR)/changes."
.PHONY: linkcheck
linkcheck:
$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
@echo
@echo "Link check complete; look for any errors in the above output " \
"or in $(BUILDDIR)/linkcheck/output.txt."
.PHONY: doctest
doctest:
$(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
@echo "Testing of doctests in the sources finished, look at the " \
"results in $(BUILDDIR)/doctest/output.txt."
.PHONY: coverage
coverage:
$(SPHINXBUILD) -b coverage $(ALLSPHINXOPTS) $(BUILDDIR)/coverage
@echo "Testing of coverage in the sources finished, look at the " \
"results in $(BUILDDIR)/coverage/python.txt."
.PHONY: xml
xml:
$(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml
@echo
@echo "Build finished. The XML files are in $(BUILDDIR)/xml."
.PHONY: pseudoxml
pseudoxml:
$(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml
@echo
@echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml."
.PHONY: dummy
dummy:
$(SPHINXBUILD) -b dummy $(ALLSPHINXOPTS) $(BUILDDIR)/dummy
@echo
@echo "Build finished. Dummy builder generates no files."

View File

@@ -1,48 +0,0 @@
Prerequisites
-------------
To build the documentation you should have few things installed:
* Python 3.4+
* [Sphinx](http://www.sphinx-doc.org/en/stable/install.html)
* [Plant UML](http://plantuml.com/)
* `make`
It is implied that you are in `/path/to/xod/doc` directory while executing
any command below:
$ cd doc/
Virtual Environment
-------------------
Sphinx has few dependencies on its own, so you can prefer not to intall it
system-wide, but to sandbox within the project. To do this use `pyvenv` which
is a part of Python package:
$ pyvenv _build/venv3
$ . _build/venv3/bin/activate
If youve set up the sandbox Sphinx will install localy in `./_build/venv3`.
Sphinx Install
--------------
Run:
$ pip install -r requirements.txt
Building HTML Documentation
---------------------------
Run:
$ make html
Youll get the result in `_build/html`.
If you get “make: sphinx-build: Command not found”, you have forgot to activate
the virtual environment for the current terminal session. Do:
$ . _build/venv3/bin/activate
$ make html

View File

@@ -1,15 +0,0 @@
.figure.align-right {
text-align: center;
}
div.figure p.caption {
font-family: 'Roboto Condensed', sans-serif;
font-size: 13px;
text-align: left;
}
div.figure p.caption:before {
content: '◼ ';
color: black;
}

View File

@@ -1,346 +0,0 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#
# XOD documentation build configuration file, created by
# sphinx-quickstart on Thu Jun 2 17:39:52 2016.
#
# This file is execfile()d with the current directory set to its
# containing dir.
#
# Note that not all possible configuration values are present in this
# autogenerated file.
#
# All configuration values have a default; values that are commented out
# serve to show the default.
# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
#
# import os
# import sys
# sys.path.insert(0, os.path.abspath('.'))
# -- General configuration ------------------------------------------------
# If your documentation needs a minimal Sphinx version, state it here.
#
# needs_sphinx = '1.0'
# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
extensions = [
'sphinx.ext.imgmath',
]
# Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates']
# The suffix(es) of source filenames.
# You can specify multiple suffix as a list of string:
#
# source_suffix = ['.rst', '.md']
source_suffix = '.rst'
# The encoding of source files.
#
# source_encoding = 'utf-8-sig'
# The master toctree document.
master_doc = 'index'
# General information about the project.
project = 'XOD'
copyright = '2016, Amperka LLC'
author = 'Amperka LLC'
# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
# built documents.
#
# The short X.Y version.
version = '0.1'
# The full version, including alpha/beta/rc tags.
release = '0.1'
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
#
# This is also used if you do content translation via gettext catalogs.
# Usually you set "language" from the command line for these cases.
language = None
# There are two options for replacing |today|: either, you set today to some
# non-false value, then it is used:
#
# today = ''
#
# Else, today_fmt is used as the format for a strftime call.
#
# today_fmt = '%B %d, %Y'
# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
# This patterns also effect to html_static_path and html_extra_path
exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']
# The reST default role (used for this markup: `text`) to use for all
# documents.
#
# default_role = None
# If true, '()' will be appended to :func: etc. cross-reference text.
#
# add_function_parentheses = True
# If true, the current module name will be prepended to all description
# unit titles (such as .. function::).
#
# add_module_names = True
# If true, sectionauthor and moduleauthor directives will be shown in the
# output. They are ignored by default.
#
# show_authors = False
# The name of the Pygments (syntax highlighting) style to use.
pygments_style = 'sphinx'
# A list of ignored prefixes for module index sorting.
# modindex_common_prefix = []
# If true, keep warnings as "system message" paragraphs in the built documents.
# keep_warnings = False
# If true, `todo` and `todoList` produce output, else they produce nothing.
todo_include_todos = False
# -- Options for HTML output ----------------------------------------------
# The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes.
#
html_theme = 'alabaster'
# Theme options are theme-specific and customize the look and feel of a theme
# further. For a list of options available for each theme, see the
# documentation.
#
html_theme_options = {
'description': 'Visual programming for electronics hobbyists',
'font_family': "Roboto, sans-serif",
'head_font_family': "'Roboto Slab', sans-serif",
}
# Add any paths that contain custom themes here, relative to this directory.
# html_theme_path = []
# The name for this set of Sphinx documents.
# "<project> v<release> documentation" by default.
#
# html_title = 'XOD v0.1'
# A shorter title for the navigation bar. Default is the same as html_title.
#
# html_short_title = None
# The name of an image file (relative to this directory) to place at the top
# of the sidebar.
#
# html_logo = None
# The name of an image file (relative to this directory) to use as a favicon of
# the docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
# pixels large.
#
# html_favicon = None
# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
html_static_path = ['_static']
# Add any extra paths that contain custom files (such as robots.txt or
# .htaccess) here, relative to this directory. These files are copied
# directly to the root of the documentation.
#
# html_extra_path = []
# If not None, a 'Last updated on:' timestamp is inserted at every page
# bottom, using the given strftime format.
# The empty string is equivalent to '%b %d, %Y'.
#
# html_last_updated_fmt = None
# If true, SmartyPants will be used to convert quotes and dashes to
# typographically correct entities.
#
# html_use_smartypants = True
# Custom sidebar templates, maps document names to template names.
#
html_sidebars = {
'**': [
'about.html',
'navigation.html',
'relations.html',
'searchbox.html',
]
}
# Additional templates that should be rendered to pages, maps page names to
# template names.
#
# html_additional_pages = {}
# If false, no module index is generated.
#
# html_domain_indices = True
# If false, no index is generated.
#
# html_use_index = True
# If true, the index is split into individual pages for each letter.
#
# html_split_index = False
# If true, links to the reST sources are added to the pages.
#
# html_show_sourcelink = True
# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
#
# html_show_sphinx = True
# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
#
# html_show_copyright = True
# If true, an OpenSearch description file will be output, and all pages will
# contain a <link> tag referring to it. The value of this option must be the
# base URL from which the finished HTML is served.
#
# html_use_opensearch = ''
# This is the file name suffix for HTML files (e.g. ".xhtml").
# html_file_suffix = None
# Language to be used for generating the HTML full-text search index.
# Sphinx supports the following languages:
# 'da', 'de', 'en', 'es', 'fi', 'fr', 'h', 'it', 'ja'
# 'nl', 'no', 'pt', 'ro', 'r', 'sv', 'tr', 'zh'
#
# html_search_language = 'en'
# A dictionary with options for the search language support, empty by default.
# 'ja' uses this config value.
# 'zh' user can custom change `jieba` dictionary path.
#
# html_search_options = {'type': 'default'}
# The name of a javascript file (relative to the configuration directory) that
# implements a search results scorer. If empty, the default will be used.
#
# html_search_scorer = 'scorer.js'
# Output file base name for HTML help builder.
htmlhelp_basename = 'XODdoc'
# -- Options for LaTeX output ---------------------------------------------
latex_elements = {
# The paper size ('letterpaper' or 'a4paper').
#
# 'papersize': 'letterpaper',
# The font size ('10pt', '11pt' or '12pt').
#
# 'pointsize': '10pt',
# Additional stuff for the LaTeX preamble.
#
# 'preamble': '',
# Latex figure (float) alignment
#
# 'figure_align': 'htbp',
}
# Grouping the document tree into LaTeX files. List of tuples
# (source start file, target name, title,
# author, documentclass [howto, manual, or own class]).
latex_documents = [
(master_doc, 'XOD.tex', 'XOD Documentation',
'Amperka LLC', 'manual'),
]
# The name of an image file (relative to this directory) to place at the top of
# the title page.
#
# latex_logo = None
# For "manual" documents, if this is true, then toplevel headings are parts,
# not chapters.
#
# latex_use_parts = False
# If true, show page references after internal links.
#
# latex_show_pagerefs = False
# If true, show URL addresses after external links.
#
# latex_show_urls = False
# Documents to append as an appendix to all manuals.
#
# latex_appendices = []
# If false, no module index is generated.
#
# latex_domain_indices = True
# -- Options for manual page output ---------------------------------------
# One entry per manual page. List of tuples
# (source start file, name, description, authors, manual section).
man_pages = [
(master_doc, 'xod', 'XOD Documentation',
[author], 1)
]
# If true, show URL addresses after external links.
#
# man_show_urls = False
# -- Options for Texinfo output -------------------------------------------
# Grouping the document tree into Texinfo files. List of tuples
# (source start file, target name, title, author,
# dir menu entry, description, category)
texinfo_documents = [
(master_doc, 'XOD', 'XOD Documentation',
author, 'XOD', 'One line description of project.',
'Miscellaneous'),
]
# Documents to append as an appendix to all manuals.
#
# texinfo_appendices = []
# If false, no module index is generated.
#
# texinfo_domain_indices = True
# How to display URL addresses: 'footnote', 'no', or 'inline'.
#
# texinfo_show_urls = 'footnote'
# If true, do not generate a @detailmenu in the "Top" node's menu.
#
# texinfo_no_detailmenu = False

View File

@@ -1,215 +0,0 @@
.. _execution:
***************
Execution Model
***************
In contrast to conventional programming, XOD is data flow language rather than
control flow. That means there is no such thing as instruction pointer that
determines what command will be executed at next moment. Instead, updates are
done in instant transactions where all data is evaluated simultaneously.
Static and Dynamic Parts
========================
Links and nodes are static. They cant be changed at run time. The static
structure makes XOD programs easy to understand and foresee their behavior. You
can always know what changes will affect which nodes just by looking at
links. And these connections doesnt depend on a current or past state of any
objects.
What makes the behavior dynamic are data updates. Data flows along links
from outputs to inputs and cause cascade updates until the patch is fully
evaluated to the defined state.
Data updates are initiated by some external impact. It can be a clock signal
to perform regular updates or a signal from a sensor, for example, that will
make a device respond to an event of the real world.
Signals
=======
Links are flow lanes for your data. Likewise, wires conduct electricity
links conduct data. Electricity spread over with semi-infinite speed.
You may think of data in the same way.
Unlike electricity in wires, however, data is granular and flows along
links only when updated. A moment of data update is called *a signal*
in XOD.
At moments when there is no data update on a link (most of the time) the
link is said to be *idle*.
Signal Value
============
A signal can have payload data associated with it. The data is called *value*.
The type of value is defined by input/output pin type. It can be one of:
* ``pulse`` — no data associated with the signal, used for signals that just
describe the fact of something has occurred;
* ``bool`` — either ``true`` (aka “yes”, logical one) or ``false`` (aka “no”, logical zero);
* ``number`` — integer or real number, infinity or special ``NaN`` (Not a Number) value;
* ``string`` — textual value that can be empty, single character, a line or
multiple lines of text;
Besides any bool, number or string signal value can be ``null``. Null is *not* the
same as ``false``, ``0`` or empty string. It denotes a missing value. Nulls are
used for default values, optional values, and erroneous values.
Also, there are stared types that are suffixed with an asterisk, e.g.
``number*``. Stared types are ordered lists or so-called tuples used to pack
several homogenous values into one.
The type of signal cant change while it flows from an output to an input,
i.e. you cant connect pins of a different type. However, some nodes
can convert signal type if used as a medium.
Buffering
=========
Once an input receives a signal, it *buffers* (cache, capture, hold) its value
so that a node could use it for updates initiated by other input
signals anytime in future.
Receiving a signal again on a particular input overwrites buffered value with
a new one. So input pins always store most recent signals value.
Before an input receive any signal it buffers ``null`` value. However,
a particular node can override the default value for some of its pins.
Transactions
============
Despite many values are continuous in nature, e.g. current time, ambient
temperature, sound pressure level, signals in XOD are not continuous.
So updates in XOD are always discrete.
For example, once the system captures temperature signal from a sensor it takes
the new value as constant. It passes the signal along links causing connected
nodes to be updated. They could initiate own output signals as a response
to that input signal. These new signals are passed further, and the process is
repeated until all nodes that immediately depend on the original signal
are re-evaluated. Only after that the system can take in subsequent temperature
signal to update again.
Such cascade node update caused by a signal is called *transaction*.
Although nothing can be done instantly, you should think of transactions
as moment atomic updates where no external impact is possible until everything
will be evaluated in response to an initiating signal.
Transactions can happen one after another in milliseconds rate appear to be
a real-time reaction to external changes.
Vice versa, transactions can occasionally occur in response to rare events.
This lets processor sleep most of the time and preserve battery charge.
A particular branch of a transactional update completes when it stumbles upon
a node that has no outputs or any node that had not generate an output signal in
response to the input signal.
Order of Evaluation
===================
Once you get the idea of transactions, its intuitive enough to understand which
node will update after which. For the sake of completeness lets outline
evaluation rules of a transaction.
1. A new transaction starts when there is a signal generated by some nodes output.
2. Any signals coming from outside while a transaction is in progress are postponed
until current transaction finishes.
3. Each node is evaluated at most once during a particular transaction.
4. A node is evaluated only after all nodes that it depends on (i.e. linked to
outputs) are evaluated.
Example
-------
Consider an example of power quality monitor. We want to enable an alarm when there
is a voltage (greater than zero), but it is out of desired range from 11.6 to
12.1 volts.
.. image:: images/execution/voltage-monitor.*
:align: center
Although the same can be done with fewer nodes in a more compact way, lets look
at this example to understand node evaluation order step by step.
First, voltage sensor detects a voltage change. Lets say its value is 12 volts.
Voltage signal is spread over three outgoing links to three other node inputs as
shown below.
.. image:: images/execution/voltage-monitor-p1.*
:align: center
After that, these three nodes should be updated. The precise order does not matter
because they do not have cross-dependencies, and it is not predictable at all.
Lets imagine that leftmost node (equality) would be the first. It compares incoming
signal ``12`` with a buffered value ``0``. The result is ``false``, and that value
is passed as an output signal further.
.. image:: images/execution/voltage-monitor-p2.*
:align: center
We are still have three nodes that should be updated. Now there is an input signal
for “or” node, and it should react. However, this would violate the rule #4 since nodes
that “or” depends on indirectly are still not evaluated. So “greater” node is
chosen.
It compares signal ``12`` with buffered constant ``11.6`` and outputs ``true`` since
12 is greater than 11.6.
.. image:: images/execution/voltage-monitor-p3.*
:align: center
There are still three dirty nodes. However, the only one that can be processed next is
“less” node because other two depend on it. The “less” node is evaluated to ``true``.
.. image:: images/execution/voltage-monitor-p4.*
:align: center
Oh, now we have just two node candidates to be updated. Since “or” depends on “and”,
the later one is evaluated first. It finally sends ``true`` to “or” node that waits
here from the second step.
.. image:: images/execution/voltage-monitor-p5.*
:align: center
If we have some very quick voltage sensor, it can try to push new update right at
the current moment. However, we have not finished with current transaction yet because there
are still dirty nodes. So that new update signal will be postponed until we are done.
Node “or” finally got signals for each input, so it is evaluated and passes ``true``
to its output.
.. image:: images/execution/voltage-monitor-p6.*
:align: center
Now “not” node is outdated. It is evaluated and pass ``false`` further.
.. image:: images/execution/voltage-monitor-p7.*
:align: center
As a final result, alarm node receives ``false`` signal and the alarm is not enabled.
That is fine because input voltage falls into permissible range.
At this moment transaction completes, and we are ready to start the new one to handle
voltage meter update that came few steps ago.
Restrictions
------------
To make this rules feasible patch graph should follow few restrictions that are
built into XOD:
1. A patch should not have loops involving only pure functional nodes. I.e. pure functional
node cannot send an output signal back to its input directly or indirectly. So creation
of links that cause graph loops is prohibited in XOD.
2. In a case of simultaneous signals, the resolution priority on conflicting input should
be explicit and well defined. So connecting more than one link to an input is
not possible as well.
There is a special “buffer” node to deal with the first restriction and “merge” node
to deal with the second.

View File

@@ -1,508 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
id="canvas"
width="276.07123"
height="420.02319"
version="1.1"
inkscape:version="0.91 r13725"
sodipodi:docname="voltage-monitor-p1.svg">
<metadata
id="metadata217">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs215" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1016"
id="namedview213"
showgrid="true"
inkscape:zoom="2.0388246"
inkscape:cx="84.335836"
inkscape:cy="261.95618"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-maximized="1"
inkscape:current-layer="layer1"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:snap-bbox="true"
inkscape:bbox-nodes="true" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="Links"
transform="translate(-236.0909,-143.328)"
style="display:inline">
<path
style="fill:none;fill-rule:evenodd;stroke:#cc0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 446.9064,317.10591 364.99646,175.84805"
id="path4289"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#cc0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 348.81067,316.12495 365.48694,176.33853"
id="path4291"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#cc0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 294.85801,316.61543 70.13845,-140.2769"
id="path4293"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 252.67685,285.71528 26.97632,32.37159"
id="path4295"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 379.22035,290.62006 -13.73341,25.01442"
id="path4297"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 480.25895,291.60102 -17.65723,25.50489"
id="path4299"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 349.79163,349.96798 43.6526,25.50489"
id="path4301"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 446.9064,348.98703 -37.76685,27.4668"
id="path4303"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 392.95375,409.80638 377.25843,425.5017"
id="path4305"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 277.20078,349.96798 83.87185,76.51468"
id="path4307"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 361.16296,458.3638 0,17.65724"
id="path4984"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 361.16296,507.90215 1.47144,22.56202"
id="path4986"
inkscape:connector-curvature="0" />
</g>
<g
inkscape:groupmode="layer"
id="layer1"
inkscape:label="Layer 1"
style="display:inline"
transform="translate(-236.0909,-143.328)">
<rect
style="fill:#9e8e9c;fill-opacity:1;stroke:#cc0000;stroke-width:0.99999994"
id="rect47"
height="32"
width="48"
class="outline"
x="348.81079"
y="143.828" />
<text
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff"
id="text49"
class="title"
y="163.828"
x="373.91077"
sodipodi:linespacing="125%">
<tspan
id="tspan4345"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff">Voltage</tspan>
</text>
<circle
style="fill:#cc0000;stroke:#cc0000"
r="4"
id="circle53"
cx="365.31079"
cy="176.328" />
<rect
y="316.68024"
x="431.15775"
class="outline"
width="48"
height="32"
id="rect4406"
style="fill:#888a85;stroke:#555753;stroke-width:1" />
<text
x="455.15775"
y="336.68024"
class="title"
id="text4408"
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff"
sodipodi:linespacing="125%">
<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff"
id="tspan4410">&lt;</tspan>
</text>
<circle
cy="349.18024"
cx="447.65775"
id="circle4412"
r="4"
style="fill:#888a85;stroke:#555753" />
<rect
style="fill:#9e8e9c;fill-opacity:1;stroke:#555753;stroke-width:1"
id="rect4442"
height="32"
width="48"
class="outline"
x="346.38803"
y="530.8512" />
<text
style="font-size:12.5px;text-anchor:middle;fill:#ffffff"
id="text4444"
class="title"
y="550.8512"
x="370.66269">
<tspan
id="tspan4446"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';fill:#ffffff">Alarm</tspan>
</text>
<circle
style="fill:#888a85;stroke:#555753"
r="4"
id="circle4448"
cx="362.88803"
cy="530.3512" />
<circle
style="fill:#cc0000;stroke:#cc0000"
r="4"
id="circle4599"
cx="447.65775"
cy="316.67072" />
<circle
cy="316.67072"
cx="463.65775"
id="circle4601"
r="4"
style="fill:#888a85;stroke:#555753" />
<rect
style="fill:#888a85;stroke:#555753;stroke-width:1"
id="rect4603"
height="32"
width="48"
class="outline"
x="333.25244"
y="316.68024" />
<text
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff"
id="text4605"
class="title"
y="336.68024"
x="357.25244"
sodipodi:linespacing="125%">
<tspan
id="tspan4607"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff">&gt;</tspan>
</text>
<circle
style="fill:#888a85;stroke:#555753"
r="4"
id="circle4609"
cx="349.75244"
cy="349.18024" />
<circle
cy="316.67072"
cx="349.75244"
id="circle4611"
r="4"
style="fill:#cc0000;stroke:#cc0000" />
<circle
style="fill:#888a85;stroke:#555753"
r="4"
id="circle4613"
cx="365.75244"
cy="316.67072" />
<rect
y="258.45245"
x="363.4649"
class="outline"
width="48"
height="32"
id="rect4615"
style="fill:#96a38a;fill-opacity:1;stroke:#555753;stroke-width:1" />
<text
x="387.4649"
y="278.45245"
class="title"
id="text4617"
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff"
sodipodi:linespacing="125%">
<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff"
id="tspan4619">11.6</tspan>
</text>
<circle
cy="290.95245"
cx="379.9649"
id="circle4621"
r="4"
style="fill:#888a85;stroke:#555753" />
<rect
style="fill:#96a38a;fill-opacity:1;stroke:#555753;stroke-width:1"
id="rect4627"
height="32"
width="48"
class="outline"
x="463.66211"
y="258.80374" />
<text
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff"
id="text4629"
class="title"
y="278.80374"
x="487.66211"
sodipodi:linespacing="125%">
<tspan
id="tspan4631"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff">12.1</tspan>
</text>
<circle
style="fill:#888a85;stroke:#555753"
r="4"
id="circle4633"
cx="480.16211"
cy="291.30374" />
<rect
y="376.02817"
x="376.90503"
class="outline"
width="48"
height="32"
id="rect4255"
style="fill:#888a85;stroke:#555753;stroke-width:1" />
<text
sodipodi:linespacing="125%"
x="400.90503"
y="396.02817"
class="title"
id="text4257"
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff">
<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff"
id="tspan4259">and</tspan>
</text>
<circle
cy="408.52817"
cx="393.40503"
id="circle4261"
r="4"
style="fill:#888a85;stroke:#555753" />
<circle
style="fill:#888a85;stroke:#555753"
r="4"
id="circle4263"
cx="393.40503"
cy="376.01865" />
<circle
cy="376.01865"
cx="409.40503"
id="circle4265"
r="4"
style="fill:#888a85;stroke:#555753" />
<rect
style="fill:#888a85;stroke:#555753;stroke-width:1"
id="rect4267"
height="32"
width="48"
class="outline"
x="344.55368"
y="426.00113" />
<text
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff"
id="text4269"
class="title"
y="446.00113"
x="368.55368"
sodipodi:linespacing="125%">
<tspan
id="tspan4271"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff">or</tspan>
</text>
<circle
style="fill:#888a85;stroke:#555753"
r="4"
id="circle4273"
cx="361.05368"
cy="458.50113" />
<circle
cy="425.99161"
cx="361.05368"
id="circle4275"
r="4"
style="fill:#888a85;stroke:#555753" />
<circle
style="fill:#888a85;stroke:#555753"
r="4"
id="circle4277"
cx="377.05368"
cy="425.99161" />
<rect
y="317.00363"
x="262.45349"
class="outline"
width="48"
height="32"
id="rect4406-0"
style="display:inline;fill:#888a85;stroke:#555753;stroke-width:1" />
<text
x="286.45349"
y="337.00363"
class="title"
id="text4408-4"
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ffffff"
sodipodi:linespacing="125%">
<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff"
id="tspan4410-5">=</tspan>
</text>
<circle
cy="349.50363"
cx="278.95349"
id="circle4412-5"
r="4"
style="display:inline;fill:#888a85;stroke:#555753" />
<circle
style="display:inline;fill:#888a85;stroke:#555753"
r="4"
id="circle4599-4"
cx="278.95349"
cy="316.99411" />
<circle
cy="316.99411"
cx="294.95349"
id="circle4601-7"
r="4"
style="display:inline;fill:#cc0000;stroke:#cc0000" />
<rect
style="display:inline;fill:#96a38a;fill-opacity:1;stroke:#555753;stroke-width:1"
id="rect4627-6"
height="32"
width="48"
class="outline"
x="236.5909"
y="253.24139" />
<text
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ffffff"
id="text4629-5"
class="title"
y="273.24139"
x="260.59091"
sodipodi:linespacing="125%">
<tspan
id="tspan4631-6"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff">0</tspan>
</text>
<circle
style="display:inline;fill:#888a85;stroke:#555753"
r="4"
id="circle4633-6"
cx="253.0909"
cy="285.74139" />
<rect
y="476.00113"
x="344.55368"
class="outline"
width="48"
height="32"
id="rect4972"
style="fill:#888a85;stroke:#555753;stroke-width:1" />
<text
sodipodi:linespacing="125%"
x="368.55368"
y="496.00113"
class="title"
id="text4974"
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff">
<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff"
id="tspan4976">not</tspan>
</text>
<circle
cy="508.50113"
cx="361.05368"
id="circle4978"
r="4"
style="fill:#888a85;stroke:#555753" />
<circle
style="fill:#888a85;stroke:#555753"
r="4"
id="circle4980"
cx="361.05368"
cy="475.99161" />
<text
sodipodi:linespacing="125%"
x="320.59091"
y="240.24139"
class="title"
id="text5080"
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#cc0000">
<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#cc0000"
id="tspan5082">12</tspan>
</text>
<text
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#cc0000"
id="text5084"
class="title"
y="240.24139"
x="366.20544"
sodipodi:linespacing="125%">
<tspan
id="tspan5086"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#cc0000">12</tspan>
</text>
<text
sodipodi:linespacing="125%"
x="405.9342"
y="234.35565"
class="title"
id="text5088"
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#cc0000">
<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#cc0000"
id="tspan5090">12</tspan>
</text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 18 KiB

View File

@@ -1,519 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
id="canvas"
width="276.07123"
height="420.02319"
version="1.1"
inkscape:version="0.91 r13725"
sodipodi:docname="voltage-monitor-p3.svg">
<metadata
id="metadata217">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs215" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1016"
id="namedview213"
showgrid="true"
inkscape:zoom="2.0388246"
inkscape:cx="-44.414818"
inkscape:cy="203.09874"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-maximized="1"
inkscape:current-layer="layer1"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:snap-bbox="true"
inkscape:bbox-nodes="true" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="Links"
transform="translate(-236.0909,-143.328)"
style="display:inline">
<path
style="fill:none;fill-rule:evenodd;stroke:#cc0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 446.9064,317.10591 364.99646,175.84805"
id="path4289"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#cc0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 348.81067,316.12495 365.48694,176.33853"
id="path4291"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#cc0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 294.85801,316.61543 70.13845,-140.2769"
id="path4293"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 252.67685,285.71528 26.97632,32.37159"
id="path4295"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 379.22035,290.62006 -13.73341,25.01442"
id="path4297"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 480.25895,291.60102 -17.65723,25.50489"
id="path4299"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 349.79163,349.96798 43.6526,25.50489"
id="path4301"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 446.9064,348.98703 -37.76685,27.4668"
id="path4303"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 392.95375,409.80638 377.25843,425.5017"
id="path4305"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:#cc0000;fill-rule:evenodd;stroke:#cc0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 277.20078,349.96798 83.87185,76.51468"
id="path4307"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 361.16296,458.3638 0,17.65724"
id="path4984"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 361.16296,507.90215 1.47144,22.56202"
id="path4986"
inkscape:connector-curvature="0" />
</g>
<g
inkscape:groupmode="layer"
id="layer1"
inkscape:label="Layer 1"
style="display:inline"
transform="translate(-236.0909,-143.328)">
<rect
style="fill:#9e8e9c;fill-opacity:1;stroke:#cc0000;stroke-width:0.99999994"
id="rect47"
height="32"
width="48"
class="outline"
x="348.81079"
y="143.828" />
<text
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff"
id="text49"
class="title"
y="163.828"
x="373.91077"
sodipodi:linespacing="125%">
<tspan
id="tspan4345"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff">Voltage</tspan>
</text>
<circle
style="fill:#cc0000;stroke:#cc0000"
r="4"
id="circle53"
cx="365.31079"
cy="176.328" />
<rect
y="316.68024"
x="431.15775"
class="outline"
width="48"
height="32"
id="rect4406"
style="fill:#888a85;stroke:#555753;stroke-width:1" />
<text
x="455.15775"
y="336.68024"
class="title"
id="text4408"
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff"
sodipodi:linespacing="125%">
<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff"
id="tspan4410">&lt;</tspan>
</text>
<circle
cy="349.18024"
cx="447.65775"
id="circle4412"
r="4"
style="fill:#888a85;stroke:#555753" />
<rect
style="fill:#9e8e9c;fill-opacity:1;stroke:#555753;stroke-width:1"
id="rect4442"
height="32"
width="48"
class="outline"
x="346.38803"
y="530.8512" />
<text
style="font-size:12.5px;text-anchor:middle;fill:#ffffff"
id="text4444"
class="title"
y="550.8512"
x="370.66269">
<tspan
id="tspan4446"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';fill:#ffffff">Alarm</tspan>
</text>
<circle
style="fill:#888a85;stroke:#555753"
r="4"
id="circle4448"
cx="362.88803"
cy="530.3512" />
<circle
style="fill:#cc0000;stroke:#cc0000"
r="4"
id="circle4599"
cx="447.65775"
cy="316.67072" />
<circle
cy="316.67072"
cx="463.65775"
id="circle4601"
r="4"
style="fill:#888a85;stroke:#555753" />
<rect
style="fill:#888a85;stroke:#555753;stroke-width:1"
id="rect4603"
height="32"
width="48"
class="outline"
x="333.25244"
y="316.68024" />
<text
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff"
id="text4605"
class="title"
y="336.68024"
x="357.25244"
sodipodi:linespacing="125%">
<tspan
id="tspan4607"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff">&gt;</tspan>
</text>
<circle
style="fill:#888a85;stroke:#555753"
r="4"
id="circle4609"
cx="349.75244"
cy="349.18024" />
<circle
cy="316.67072"
cx="349.75244"
id="circle4611"
r="4"
style="fill:#cc0000;stroke:#cc0000" />
<circle
style="fill:#888a85;stroke:#555753"
r="4"
id="circle4613"
cx="365.75244"
cy="316.67072" />
<rect
y="258.45245"
x="363.4649"
class="outline"
width="48"
height="32"
id="rect4615"
style="fill:#96a38a;fill-opacity:1;stroke:#555753;stroke-width:1" />
<text
x="387.4649"
y="278.45245"
class="title"
id="text4617"
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff"
sodipodi:linespacing="125%">
<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff"
id="tspan4619">11.6</tspan>
</text>
<circle
cy="290.95245"
cx="379.9649"
id="circle4621"
r="4"
style="fill:#888a85;stroke:#555753" />
<rect
style="fill:#96a38a;fill-opacity:1;stroke:#555753;stroke-width:1"
id="rect4627"
height="32"
width="48"
class="outline"
x="463.66211"
y="258.80374" />
<text
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff"
id="text4629"
class="title"
y="278.80374"
x="487.66211"
sodipodi:linespacing="125%">
<tspan
id="tspan4631"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff">12.1</tspan>
</text>
<circle
style="fill:#888a85;stroke:#555753"
r="4"
id="circle4633"
cx="480.16211"
cy="291.30374" />
<rect
y="376.02817"
x="376.90503"
class="outline"
width="48"
height="32"
id="rect4255"
style="fill:#888a85;stroke:#555753;stroke-width:1" />
<text
sodipodi:linespacing="125%"
x="400.90503"
y="396.02817"
class="title"
id="text4257"
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff">
<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff"
id="tspan4259">and</tspan>
</text>
<circle
cy="408.52817"
cx="393.40503"
id="circle4261"
r="4"
style="fill:#888a85;stroke:#555753" />
<circle
style="fill:#888a85;stroke:#555753"
r="4"
id="circle4263"
cx="393.40503"
cy="376.01865" />
<circle
cy="376.01865"
cx="409.40503"
id="circle4265"
r="4"
style="fill:#888a85;stroke:#555753" />
<rect
style="fill:#888a85;stroke:#555753;stroke-width:1"
id="rect4267"
height="32"
width="48"
class="outline"
x="344.55368"
y="426.00113" />
<text
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff"
id="text4269"
class="title"
y="446.00113"
x="368.55368"
sodipodi:linespacing="125%">
<tspan
id="tspan4271"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff">or</tspan>
</text>
<circle
style="fill:#888a85;stroke:#555753"
r="4"
id="circle4273"
cx="361.05368"
cy="458.50113" />
<circle
cy="425.99161"
cx="361.05368"
id="circle4275"
r="4"
style="fill:#cc0000;stroke:#cc0000" />
<circle
style="fill:#888a85;stroke:#555753"
r="4"
id="circle4277"
cx="377.05368"
cy="425.99161" />
<rect
y="317.00363"
x="262.45349"
class="outline"
width="48"
height="32"
id="rect4406-0"
style="display:inline;fill:#888a85;stroke:#cc0000;stroke-width:1" />
<text
x="286.45349"
y="337.00363"
class="title"
id="text4408-4"
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ffffff"
sodipodi:linespacing="125%">
<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff"
id="tspan4410-5">=</tspan>
</text>
<circle
cy="349.50363"
cx="278.95349"
id="circle4412-5"
r="4"
style="display:inline;fill:#cc0000;stroke:#cc0000" />
<circle
style="display:inline;fill:#888a85;stroke:#555753"
r="4"
id="circle4599-4"
cx="278.95349"
cy="316.99411" />
<circle
cy="316.99411"
cx="294.95349"
id="circle4601-7"
r="4"
style="display:inline;fill:#cc0000;stroke:#cc0000" />
<rect
style="display:inline;fill:#96a38a;fill-opacity:1;stroke:#555753;stroke-width:1"
id="rect4627-6"
height="32"
width="48"
class="outline"
x="236.5909"
y="253.24139" />
<text
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ffffff"
id="text4629-5"
class="title"
y="273.24139"
x="260.59091"
sodipodi:linespacing="125%">
<tspan
id="tspan4631-6"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff">0</tspan>
</text>
<circle
style="display:inline;fill:#888a85;stroke:#555753"
r="4"
id="circle4633-6"
cx="253.0909"
cy="285.74139" />
<rect
y="476.00113"
x="344.55368"
class="outline"
width="48"
height="32"
id="rect4972"
style="fill:#888a85;stroke:#555753;stroke-width:1" />
<text
sodipodi:linespacing="125%"
x="368.55368"
y="496.00113"
class="title"
id="text4974"
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff">
<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff"
id="tspan4976">not</tspan>
</text>
<circle
cy="508.50113"
cx="361.05368"
id="circle4978"
r="4"
style="fill:#888a85;stroke:#555753" />
<circle
style="fill:#888a85;stroke:#555753"
r="4"
id="circle4980"
cx="361.05368"
cy="475.99161" />
<text
sodipodi:linespacing="125%"
x="320.59091"
y="240.24139"
class="title"
id="text5080"
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#cc0000">
<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#cc0000"
id="tspan5082">12</tspan>
</text>
<text
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#cc0000"
id="text5084"
class="title"
y="240.24139"
x="366.20544"
sodipodi:linespacing="125%">
<tspan
id="tspan5086"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#cc0000">12</tspan>
</text>
<text
sodipodi:linespacing="125%"
x="405.9342"
y="234.35565"
class="title"
id="text5088"
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#cc0000">
<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#cc0000"
id="tspan5090">12</tspan>
</text>
<text
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#cc0000"
id="text5111"
class="title"
y="397.68506"
x="307.34799"
sodipodi:linespacing="125%">
<tspan
id="tspan5113"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#cc0000">false</tspan>
</text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 19 KiB

View File

@@ -1,530 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
id="canvas"
width="276.07123"
height="420.02319"
version="1.1"
inkscape:version="0.91 r13725"
sodipodi:docname="voltage-monitor-p4.svg">
<metadata
id="metadata217">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs215" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1016"
id="namedview213"
showgrid="true"
inkscape:zoom="2.0388246"
inkscape:cx="53.680918"
inkscape:cy="203.09874"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-maximized="1"
inkscape:current-layer="layer1"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:snap-bbox="true"
inkscape:bbox-nodes="true" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="Links"
transform="translate(-236.0909,-143.328)"
style="display:inline">
<path
style="fill:none;fill-rule:evenodd;stroke:#cc0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 446.9064,317.10591 364.99646,175.84805"
id="path4289"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#cc0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 348.81067,316.12495 365.48694,176.33853"
id="path4291"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#cc0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 294.85801,316.61543 70.13845,-140.2769"
id="path4293"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 252.67685,285.71528 26.97632,32.37159"
id="path4295"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 379.22035,290.62006 -13.73341,25.01442"
id="path4297"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 480.25895,291.60102 -17.65723,25.50489"
id="path4299"
inkscape:connector-curvature="0" />
<path
style="fill:#cc0000;fill-rule:evenodd;stroke:#cc0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 349.79163,349.96798 43.6526,25.50489"
id="path4301"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 446.9064,348.98703 -37.76685,27.4668"
id="path4303"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 392.95375,409.80638 377.25843,425.5017"
id="path4305"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:#cc0000;fill-rule:evenodd;stroke:#cc0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 277.20078,349.96798 83.87185,76.51468"
id="path4307"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 361.16296,458.3638 0,17.65724"
id="path4984"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 361.16296,507.90215 1.47144,22.56202"
id="path4986"
inkscape:connector-curvature="0" />
</g>
<g
inkscape:groupmode="layer"
id="layer1"
inkscape:label="Layer 1"
style="display:inline"
transform="translate(-236.0909,-143.328)">
<rect
style="fill:#9e8e9c;fill-opacity:1;stroke:#cc0000;stroke-width:0.99999994"
id="rect47"
height="32"
width="48"
class="outline"
x="348.81079"
y="143.828" />
<text
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff"
id="text49"
class="title"
y="163.828"
x="373.91077"
sodipodi:linespacing="125%">
<tspan
id="tspan4345"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff">Voltage</tspan>
</text>
<circle
style="fill:#cc0000;stroke:#cc0000"
r="4"
id="circle53"
cx="365.31079"
cy="176.328" />
<rect
y="316.68024"
x="431.15775"
class="outline"
width="48"
height="32"
id="rect4406"
style="fill:#888a85;stroke:#555753;stroke-width:1" />
<text
x="455.15775"
y="336.68024"
class="title"
id="text4408"
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff"
sodipodi:linespacing="125%">
<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff"
id="tspan4410">&lt;</tspan>
</text>
<circle
cy="349.18024"
cx="447.65775"
id="circle4412"
r="4"
style="fill:#888a85;stroke:#555753" />
<rect
style="fill:#9e8e9c;fill-opacity:1;stroke:#555753;stroke-width:1"
id="rect4442"
height="32"
width="48"
class="outline"
x="346.38803"
y="530.8512" />
<text
style="font-size:12.5px;text-anchor:middle;fill:#ffffff"
id="text4444"
class="title"
y="550.8512"
x="370.66269">
<tspan
id="tspan4446"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';fill:#ffffff">Alarm</tspan>
</text>
<circle
style="fill:#888a85;stroke:#555753"
r="4"
id="circle4448"
cx="362.88803"
cy="530.3512" />
<circle
style="fill:#cc0000;stroke:#cc0000"
r="4"
id="circle4599"
cx="447.65775"
cy="316.67072" />
<circle
cy="316.67072"
cx="463.65775"
id="circle4601"
r="4"
style="fill:#888a85;stroke:#555753" />
<rect
style="fill:#888a85;stroke:#cc0000;stroke-width:1"
id="rect4603"
height="32"
width="48"
class="outline"
x="333.25244"
y="316.68024" />
<text
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff"
id="text4605"
class="title"
y="336.68024"
x="357.25244"
sodipodi:linespacing="125%">
<tspan
id="tspan4607"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff">&gt;</tspan>
</text>
<circle
style="fill:#cc0000;stroke:#cc0000"
r="4"
id="circle4609"
cx="349.75244"
cy="349.18024" />
<circle
cy="316.67072"
cx="349.75244"
id="circle4611"
r="4"
style="fill:#cc0000;stroke:#cc0000" />
<circle
style="fill:#888a85;stroke:#555753"
r="4"
id="circle4613"
cx="365.75244"
cy="316.67072" />
<rect
y="258.45245"
x="363.4649"
class="outline"
width="48"
height="32"
id="rect4615"
style="fill:#96a38a;fill-opacity:1;stroke:#555753;stroke-width:1" />
<text
x="387.4649"
y="278.45245"
class="title"
id="text4617"
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff"
sodipodi:linespacing="125%">
<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff"
id="tspan4619">11.6</tspan>
</text>
<circle
cy="290.95245"
cx="379.9649"
id="circle4621"
r="4"
style="fill:#888a85;stroke:#555753" />
<rect
style="fill:#96a38a;fill-opacity:1;stroke:#555753;stroke-width:1"
id="rect4627"
height="32"
width="48"
class="outline"
x="463.66211"
y="258.80374" />
<text
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff"
id="text4629"
class="title"
y="278.80374"
x="487.66211"
sodipodi:linespacing="125%">
<tspan
id="tspan4631"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff">12.1</tspan>
</text>
<circle
style="fill:#888a85;stroke:#555753"
r="4"
id="circle4633"
cx="480.16211"
cy="291.30374" />
<rect
y="376.02817"
x="376.90503"
class="outline"
width="48"
height="32"
id="rect4255"
style="fill:#888a85;stroke:#555753;stroke-width:1" />
<text
sodipodi:linespacing="125%"
x="400.90503"
y="396.02817"
class="title"
id="text4257"
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff">
<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff"
id="tspan4259">and</tspan>
</text>
<circle
cy="408.52817"
cx="393.40503"
id="circle4261"
r="4"
style="fill:#888a85;stroke:#555753" />
<circle
style="fill:#cc0000;stroke:#cc0000"
r="4"
id="circle4263"
cx="393.40503"
cy="376.01865" />
<circle
cy="376.01865"
cx="409.40503"
id="circle4265"
r="4"
style="fill:#888a85;stroke:#555753" />
<rect
style="fill:#888a85;stroke:#555753;stroke-width:1"
id="rect4267"
height="32"
width="48"
class="outline"
x="344.55368"
y="426.00113" />
<text
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff"
id="text4269"
class="title"
y="446.00113"
x="368.55368"
sodipodi:linespacing="125%">
<tspan
id="tspan4271"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff">or</tspan>
</text>
<circle
style="fill:#888a85;stroke:#555753"
r="4"
id="circle4273"
cx="361.05368"
cy="458.50113" />
<circle
cy="425.99161"
cx="361.05368"
id="circle4275"
r="4"
style="fill:#cc0000;stroke:#cc0000" />
<circle
style="fill:#888a85;stroke:#555753"
r="4"
id="circle4277"
cx="377.05368"
cy="425.99161" />
<rect
y="317.00363"
x="262.45349"
class="outline"
width="48"
height="32"
id="rect4406-0"
style="display:inline;fill:#888a85;stroke:#cc0000;stroke-width:1" />
<text
x="286.45349"
y="337.00363"
class="title"
id="text4408-4"
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ffffff"
sodipodi:linespacing="125%">
<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff"
id="tspan4410-5">=</tspan>
</text>
<circle
cy="349.50363"
cx="278.95349"
id="circle4412-5"
r="4"
style="display:inline;fill:#cc0000;stroke:#cc0000" />
<circle
style="display:inline;fill:#888a85;stroke:#555753"
r="4"
id="circle4599-4"
cx="278.95349"
cy="316.99411" />
<circle
cy="316.99411"
cx="294.95349"
id="circle4601-7"
r="4"
style="display:inline;fill:#cc0000;stroke:#cc0000" />
<rect
style="display:inline;fill:#96a38a;fill-opacity:1;stroke:#555753;stroke-width:1"
id="rect4627-6"
height="32"
width="48"
class="outline"
x="236.5909"
y="253.24139" />
<text
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ffffff"
id="text4629-5"
class="title"
y="273.24139"
x="260.59091"
sodipodi:linespacing="125%">
<tspan
id="tspan4631-6"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff">0</tspan>
</text>
<circle
style="display:inline;fill:#888a85;stroke:#555753"
r="4"
id="circle4633-6"
cx="253.0909"
cy="285.74139" />
<rect
y="476.00113"
x="344.55368"
class="outline"
width="48"
height="32"
id="rect4972"
style="fill:#888a85;stroke:#555753;stroke-width:1" />
<text
sodipodi:linespacing="125%"
x="368.55368"
y="496.00113"
class="title"
id="text4974"
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff">
<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff"
id="tspan4976">not</tspan>
</text>
<circle
cy="508.50113"
cx="361.05368"
id="circle4978"
r="4"
style="fill:#888a85;stroke:#555753" />
<circle
style="fill:#888a85;stroke:#555753"
r="4"
id="circle4980"
cx="361.05368"
cy="475.99161" />
<text
sodipodi:linespacing="125%"
x="320.59091"
y="240.24139"
class="title"
id="text5080"
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#cc0000">
<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#cc0000"
id="tspan5082">12</tspan>
</text>
<text
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#cc0000"
id="text5084"
class="title"
y="240.24139"
x="366.20544"
sodipodi:linespacing="125%">
<tspan
id="tspan5086"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#cc0000">12</tspan>
</text>
<text
sodipodi:linespacing="125%"
x="405.9342"
y="234.35565"
class="title"
id="text5088"
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#cc0000">
<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#cc0000"
id="tspan5090">12</tspan>
</text>
<text
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#cc0000"
id="text5111"
class="title"
y="397.68506"
x="307.34799"
sodipodi:linespacing="125%">
<tspan
id="tspan5113"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#cc0000">false</tspan>
</text>
<text
sodipodi:linespacing="125%"
x="360.30771"
y="370.38724"
class="title"
id="text5134"
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#cc0000">
<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#cc0000"
id="tspan5136">true</tspan>
</text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 19 KiB

View File

@@ -1,541 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
id="canvas"
width="276.07123"
height="420.02319"
version="1.1"
inkscape:version="0.91 r13725"
sodipodi:docname="voltage-monitor-p5.svg">
<metadata
id="metadata217">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs215" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1016"
id="namedview213"
showgrid="true"
inkscape:zoom="2.0388246"
inkscape:cx="-44.414818"
inkscape:cy="183.47959"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-maximized="1"
inkscape:current-layer="layer1"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:snap-bbox="true"
inkscape:bbox-nodes="true" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="Links"
transform="translate(-236.0909,-143.328)"
style="display:inline">
<path
style="fill:none;fill-rule:evenodd;stroke:#cc0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 446.9064,317.10591 364.99646,175.84805"
id="path4289"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#cc0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 348.81067,316.12495 365.48694,176.33853"
id="path4291"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#cc0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 294.85801,316.61543 70.13845,-140.2769"
id="path4293"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 252.67685,285.71528 26.97632,32.37159"
id="path4295"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 379.22035,290.62006 -13.73341,25.01442"
id="path4297"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 480.25895,291.60102 -17.65723,25.50489"
id="path4299"
inkscape:connector-curvature="0" />
<path
style="fill:#cc0000;fill-rule:evenodd;stroke:#cc0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 349.79163,349.96798 43.6526,25.50489"
id="path4301"
inkscape:connector-curvature="0" />
<path
style="fill:#cc0000;fill-rule:evenodd;stroke:#cc0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 446.9064,348.98703 -37.76685,27.4668"
id="path4303"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 392.95375,409.80638 377.25843,425.5017"
id="path4305"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:#cc0000;fill-rule:evenodd;stroke:#cc0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 277.20078,349.96798 83.87185,76.51468"
id="path4307"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 361.16296,458.3638 0,17.65724"
id="path4984"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 361.16296,507.90215 1.47144,22.56202"
id="path4986"
inkscape:connector-curvature="0" />
</g>
<g
inkscape:groupmode="layer"
id="layer1"
inkscape:label="Layer 1"
style="display:inline"
transform="translate(-236.0909,-143.328)">
<rect
style="fill:#9e8e9c;fill-opacity:1;stroke:#cc0000;stroke-width:0.99999994"
id="rect47"
height="32"
width="48"
class="outline"
x="348.81079"
y="143.828" />
<text
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff"
id="text49"
class="title"
y="163.828"
x="373.91077"
sodipodi:linespacing="125%">
<tspan
id="tspan4345"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff">Voltage</tspan>
</text>
<circle
style="fill:#cc0000;stroke:#cc0000"
r="4"
id="circle53"
cx="365.31079"
cy="176.328" />
<rect
y="316.68024"
x="431.15775"
class="outline"
width="48"
height="32"
id="rect4406"
style="fill:#888a85;stroke:#cc0000;stroke-width:1" />
<text
x="455.15775"
y="336.68024"
class="title"
id="text4408"
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff"
sodipodi:linespacing="125%">
<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff"
id="tspan4410">&lt;</tspan>
</text>
<circle
cy="349.18024"
cx="447.65775"
id="circle4412"
r="4"
style="fill:#cc0000;stroke:#cc0000" />
<rect
style="fill:#9e8e9c;fill-opacity:1;stroke:#555753;stroke-width:1"
id="rect4442"
height="32"
width="48"
class="outline"
x="346.38803"
y="530.8512" />
<text
style="font-size:12.5px;text-anchor:middle;fill:#ffffff"
id="text4444"
class="title"
y="550.8512"
x="370.66269">
<tspan
id="tspan4446"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';fill:#ffffff">Alarm</tspan>
</text>
<circle
style="fill:#888a85;stroke:#555753"
r="4"
id="circle4448"
cx="362.88803"
cy="530.3512" />
<circle
style="fill:#cc0000;stroke:#cc0000"
r="4"
id="circle4599"
cx="447.65775"
cy="316.67072" />
<circle
cy="316.67072"
cx="463.65775"
id="circle4601"
r="4"
style="fill:#888a85;stroke:#555753" />
<rect
style="fill:#888a85;stroke:#cc0000;stroke-width:1"
id="rect4603"
height="32"
width="48"
class="outline"
x="333.25244"
y="316.68024" />
<text
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff"
id="text4605"
class="title"
y="336.68024"
x="357.25244"
sodipodi:linespacing="125%">
<tspan
id="tspan4607"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff">&gt;</tspan>
</text>
<circle
style="fill:#cc0000;stroke:#cc0000"
r="4"
id="circle4609"
cx="349.75244"
cy="349.18024" />
<circle
cy="316.67072"
cx="349.75244"
id="circle4611"
r="4"
style="fill:#cc0000;stroke:#cc0000" />
<circle
style="fill:#888a85;stroke:#555753"
r="4"
id="circle4613"
cx="365.75244"
cy="316.67072" />
<rect
y="258.45245"
x="363.4649"
class="outline"
width="48"
height="32"
id="rect4615"
style="fill:#96a38a;fill-opacity:1;stroke:#555753;stroke-width:1" />
<text
x="387.4649"
y="278.45245"
class="title"
id="text4617"
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff"
sodipodi:linespacing="125%">
<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff"
id="tspan4619">11.6</tspan>
</text>
<circle
cy="290.95245"
cx="379.9649"
id="circle4621"
r="4"
style="fill:#888a85;stroke:#555753" />
<rect
style="fill:#96a38a;fill-opacity:1;stroke:#555753;stroke-width:1"
id="rect4627"
height="32"
width="48"
class="outline"
x="463.66211"
y="258.80374" />
<text
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff"
id="text4629"
class="title"
y="278.80374"
x="487.66211"
sodipodi:linespacing="125%">
<tspan
id="tspan4631"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff">12.1</tspan>
</text>
<circle
style="fill:#888a85;stroke:#555753"
r="4"
id="circle4633"
cx="480.16211"
cy="291.30374" />
<rect
y="376.02817"
x="376.90503"
class="outline"
width="48"
height="32"
id="rect4255"
style="fill:#888a85;stroke:#555753;stroke-width:1" />
<text
sodipodi:linespacing="125%"
x="400.90503"
y="396.02817"
class="title"
id="text4257"
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff">
<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff"
id="tspan4259">and</tspan>
</text>
<circle
cy="408.52817"
cx="393.40503"
id="circle4261"
r="4"
style="fill:#888a85;stroke:#555753" />
<circle
style="fill:#cc0000;stroke:#cc0000"
r="4"
id="circle4263"
cx="393.40503"
cy="376.01865" />
<circle
cy="376.01865"
cx="409.40503"
id="circle4265"
r="4"
style="fill:#cc0000;stroke:#cc0000" />
<rect
style="fill:#888a85;stroke:#555753;stroke-width:1"
id="rect4267"
height="32"
width="48"
class="outline"
x="344.55368"
y="426.00113" />
<text
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff"
id="text4269"
class="title"
y="446.00113"
x="368.55368"
sodipodi:linespacing="125%">
<tspan
id="tspan4271"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff">or</tspan>
</text>
<circle
style="fill:#888a85;stroke:#555753"
r="4"
id="circle4273"
cx="361.05368"
cy="458.50113" />
<circle
cy="425.99161"
cx="361.05368"
id="circle4275"
r="4"
style="fill:#cc0000;stroke:#cc0000" />
<circle
style="fill:#888a85;stroke:#555753"
r="4"
id="circle4277"
cx="377.05368"
cy="425.99161" />
<rect
y="317.00363"
x="262.45349"
class="outline"
width="48"
height="32"
id="rect4406-0"
style="display:inline;fill:#888a85;stroke:#cc0000;stroke-width:1" />
<text
x="286.45349"
y="337.00363"
class="title"
id="text4408-4"
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ffffff"
sodipodi:linespacing="125%">
<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff"
id="tspan4410-5">=</tspan>
</text>
<circle
cy="349.50363"
cx="278.95349"
id="circle4412-5"
r="4"
style="display:inline;fill:#cc0000;stroke:#cc0000" />
<circle
style="display:inline;fill:#888a85;stroke:#555753"
r="4"
id="circle4599-4"
cx="278.95349"
cy="316.99411" />
<circle
cy="316.99411"
cx="294.95349"
id="circle4601-7"
r="4"
style="display:inline;fill:#cc0000;stroke:#cc0000" />
<rect
style="display:inline;fill:#96a38a;fill-opacity:1;stroke:#555753;stroke-width:1"
id="rect4627-6"
height="32"
width="48"
class="outline"
x="236.5909"
y="253.24139" />
<text
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ffffff"
id="text4629-5"
class="title"
y="273.24139"
x="260.59091"
sodipodi:linespacing="125%">
<tspan
id="tspan4631-6"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff">0</tspan>
</text>
<circle
style="display:inline;fill:#888a85;stroke:#555753"
r="4"
id="circle4633-6"
cx="253.0909"
cy="285.74139" />
<rect
y="476.00113"
x="344.55368"
class="outline"
width="48"
height="32"
id="rect4972"
style="fill:#888a85;stroke:#555753;stroke-width:1" />
<text
sodipodi:linespacing="125%"
x="368.55368"
y="496.00113"
class="title"
id="text4974"
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff">
<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff"
id="tspan4976">not</tspan>
</text>
<circle
cy="508.50113"
cx="361.05368"
id="circle4978"
r="4"
style="fill:#888a85;stroke:#555753" />
<circle
style="fill:#888a85;stroke:#555753"
r="4"
id="circle4980"
cx="361.05368"
cy="475.99161" />
<text
sodipodi:linespacing="125%"
x="320.59091"
y="240.24139"
class="title"
id="text5080"
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#cc0000">
<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#cc0000"
id="tspan5082">12</tspan>
</text>
<text
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#cc0000"
id="text5084"
class="title"
y="240.24139"
x="366.20544"
sodipodi:linespacing="125%">
<tspan
id="tspan5086"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#cc0000">12</tspan>
</text>
<text
sodipodi:linespacing="125%"
x="405.9342"
y="234.35565"
class="title"
id="text5088"
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#cc0000">
<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#cc0000"
id="tspan5090">12</tspan>
</text>
<text
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#cc0000"
id="text5111"
class="title"
y="397.68506"
x="307.34799"
sodipodi:linespacing="125%">
<tspan
id="tspan5113"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#cc0000">false</tspan>
</text>
<text
sodipodi:linespacing="125%"
x="360.30771"
y="370.38724"
class="title"
id="text5134"
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#cc0000">
<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#cc0000"
id="tspan5136">true</tspan>
</text>
<text
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#cc0000"
id="text5240"
class="title"
y="369.89676"
x="441.72717"
sodipodi:linespacing="125%">
<tspan
id="tspan5242"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#cc0000">true</tspan>
</text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 20 KiB

View File

@@ -1,552 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
id="canvas"
width="276.07123"
height="420.02319"
version="1.1"
inkscape:version="0.91 r13725"
sodipodi:docname="voltage-monitor-p6.svg">
<metadata
id="metadata217">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs215" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1016"
id="namedview213"
showgrid="true"
inkscape:zoom="2.0388246"
inkscape:cx="34.061771"
inkscape:cy="124.62215"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-maximized="1"
inkscape:current-layer="layer1"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:snap-bbox="true"
inkscape:bbox-nodes="true" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="Links"
transform="translate(-236.0909,-143.328)"
style="display:inline">
<path
style="fill:none;fill-rule:evenodd;stroke:#cc0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 446.9064,317.10591 364.99646,175.84805"
id="path4289"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#cc0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 348.81067,316.12495 365.48694,176.33853"
id="path4291"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#cc0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 294.85801,316.61543 70.13845,-140.2769"
id="path4293"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 252.67685,285.71528 26.97632,32.37159"
id="path4295"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 379.22035,290.62006 -13.73341,25.01442"
id="path4297"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 480.25895,291.60102 -17.65723,25.50489"
id="path4299"
inkscape:connector-curvature="0" />
<path
style="fill:#cc0000;fill-rule:evenodd;stroke:#cc0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 349.79163,349.96798 43.6526,25.50489"
id="path4301"
inkscape:connector-curvature="0" />
<path
style="fill:#cc0000;fill-rule:evenodd;stroke:#cc0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 446.9064,348.98703 -37.76685,27.4668"
id="path4303"
inkscape:connector-curvature="0" />
<path
style="fill:#cc0000;fill-rule:evenodd;stroke:#cc0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 392.95375,409.80638 377.25843,425.5017"
id="path4305"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:#cc0000;fill-rule:evenodd;stroke:#cc0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 277.20078,349.96798 83.87185,76.51468"
id="path4307"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 361.16296,458.3638 0,17.65724"
id="path4984"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 361.16296,507.90215 1.47144,22.56202"
id="path4986"
inkscape:connector-curvature="0" />
</g>
<g
inkscape:groupmode="layer"
id="layer1"
inkscape:label="Layer 1"
style="display:inline"
transform="translate(-236.0909,-143.328)">
<rect
style="fill:#9e8e9c;fill-opacity:1;stroke:#cc0000;stroke-width:0.99999994"
id="rect47"
height="32"
width="48"
class="outline"
x="348.81079"
y="143.828" />
<text
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff"
id="text49"
class="title"
y="163.828"
x="373.91077"
sodipodi:linespacing="125%">
<tspan
id="tspan4345"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff">Voltage</tspan>
</text>
<circle
style="fill:#cc0000;stroke:#cc0000"
r="4"
id="circle53"
cx="365.31079"
cy="176.328" />
<rect
y="316.68024"
x="431.15775"
class="outline"
width="48"
height="32"
id="rect4406"
style="fill:#888a85;stroke:#cc0000;stroke-width:1" />
<text
x="455.15775"
y="336.68024"
class="title"
id="text4408"
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff"
sodipodi:linespacing="125%">
<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff"
id="tspan4410">&lt;</tspan>
</text>
<circle
cy="349.18024"
cx="447.65775"
id="circle4412"
r="4"
style="fill:#cc0000;stroke:#cc0000" />
<rect
style="fill:#9e8e9c;fill-opacity:1;stroke:#555753;stroke-width:1"
id="rect4442"
height="32"
width="48"
class="outline"
x="346.38803"
y="530.8512" />
<text
style="font-size:12.5px;text-anchor:middle;fill:#ffffff"
id="text4444"
class="title"
y="550.8512"
x="370.66269">
<tspan
id="tspan4446"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';fill:#ffffff">Alarm</tspan>
</text>
<circle
style="fill:#888a85;stroke:#555753"
r="4"
id="circle4448"
cx="362.88803"
cy="530.3512" />
<circle
style="fill:#cc0000;stroke:#cc0000"
r="4"
id="circle4599"
cx="447.65775"
cy="316.67072" />
<circle
cy="316.67072"
cx="463.65775"
id="circle4601"
r="4"
style="fill:#888a85;stroke:#555753" />
<rect
style="fill:#888a85;stroke:#cc0000;stroke-width:1"
id="rect4603"
height="32"
width="48"
class="outline"
x="333.25244"
y="316.68024" />
<text
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff"
id="text4605"
class="title"
y="336.68024"
x="357.25244"
sodipodi:linespacing="125%">
<tspan
id="tspan4607"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff">&gt;</tspan>
</text>
<circle
style="fill:#cc0000;stroke:#cc0000"
r="4"
id="circle4609"
cx="349.75244"
cy="349.18024" />
<circle
cy="316.67072"
cx="349.75244"
id="circle4611"
r="4"
style="fill:#cc0000;stroke:#cc0000" />
<circle
style="fill:#888a85;stroke:#555753"
r="4"
id="circle4613"
cx="365.75244"
cy="316.67072" />
<rect
y="258.45245"
x="363.4649"
class="outline"
width="48"
height="32"
id="rect4615"
style="fill:#96a38a;fill-opacity:1;stroke:#555753;stroke-width:1" />
<text
x="387.4649"
y="278.45245"
class="title"
id="text4617"
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff"
sodipodi:linespacing="125%">
<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff"
id="tspan4619">11.6</tspan>
</text>
<circle
cy="290.95245"
cx="379.9649"
id="circle4621"
r="4"
style="fill:#888a85;stroke:#555753" />
<rect
style="fill:#96a38a;fill-opacity:1;stroke:#555753;stroke-width:1"
id="rect4627"
height="32"
width="48"
class="outline"
x="463.66211"
y="258.80374" />
<text
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff"
id="text4629"
class="title"
y="278.80374"
x="487.66211"
sodipodi:linespacing="125%">
<tspan
id="tspan4631"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff">12.1</tspan>
</text>
<circle
style="fill:#888a85;stroke:#555753"
r="4"
id="circle4633"
cx="480.16211"
cy="291.30374" />
<rect
y="376.02817"
x="376.90503"
class="outline"
width="48"
height="32"
id="rect4255"
style="fill:#888a85;stroke:#cc0000;stroke-width:1" />
<text
sodipodi:linespacing="125%"
x="400.90503"
y="396.02817"
class="title"
id="text4257"
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff">
<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff"
id="tspan4259">and</tspan>
</text>
<circle
cy="408.52817"
cx="393.40503"
id="circle4261"
r="4"
style="fill:#cc0000;stroke:#cc0000" />
<circle
style="fill:#cc0000;stroke:#cc0000"
r="4"
id="circle4263"
cx="393.40503"
cy="376.01865" />
<circle
cy="376.01865"
cx="409.40503"
id="circle4265"
r="4"
style="fill:#cc0000;stroke:#cc0000" />
<rect
style="fill:#888a85;stroke:#555753;stroke-width:1"
id="rect4267"
height="32"
width="48"
class="outline"
x="344.55368"
y="426.00113" />
<text
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff"
id="text4269"
class="title"
y="446.00113"
x="368.55368"
sodipodi:linespacing="125%">
<tspan
id="tspan4271"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff">or</tspan>
</text>
<circle
style="fill:#888a85;stroke:#555753"
r="4"
id="circle4273"
cx="361.05368"
cy="458.50113" />
<circle
cy="425.99161"
cx="361.05368"
id="circle4275"
r="4"
style="fill:#cc0000;stroke:#cc0000" />
<circle
style="fill:#cc0000;stroke:#cc0000"
r="4"
id="circle4277"
cx="377.05368"
cy="425.99161" />
<rect
y="317.00363"
x="262.45349"
class="outline"
width="48"
height="32"
id="rect4406-0"
style="display:inline;fill:#888a85;stroke:#cc0000;stroke-width:1" />
<text
x="286.45349"
y="337.00363"
class="title"
id="text4408-4"
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ffffff"
sodipodi:linespacing="125%">
<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff"
id="tspan4410-5">=</tspan>
</text>
<circle
cy="349.50363"
cx="278.95349"
id="circle4412-5"
r="4"
style="display:inline;fill:#cc0000;stroke:#cc0000" />
<circle
style="display:inline;fill:#888a85;stroke:#555753"
r="4"
id="circle4599-4"
cx="278.95349"
cy="316.99411" />
<circle
cy="316.99411"
cx="294.95349"
id="circle4601-7"
r="4"
style="display:inline;fill:#cc0000;stroke:#cc0000" />
<rect
style="display:inline;fill:#96a38a;fill-opacity:1;stroke:#555753;stroke-width:1"
id="rect4627-6"
height="32"
width="48"
class="outline"
x="236.5909"
y="253.24139" />
<text
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ffffff"
id="text4629-5"
class="title"
y="273.24139"
x="260.59091"
sodipodi:linespacing="125%">
<tspan
id="tspan4631-6"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff">0</tspan>
</text>
<circle
style="display:inline;fill:#888a85;stroke:#555753"
r="4"
id="circle4633-6"
cx="253.0909"
cy="285.74139" />
<rect
y="476.00113"
x="344.55368"
class="outline"
width="48"
height="32"
id="rect4972"
style="fill:#888a85;stroke:#555753;stroke-width:1" />
<text
sodipodi:linespacing="125%"
x="368.55368"
y="496.00113"
class="title"
id="text4974"
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff">
<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff"
id="tspan4976">not</tspan>
</text>
<circle
cy="508.50113"
cx="361.05368"
id="circle4978"
r="4"
style="fill:#888a85;stroke:#555753" />
<circle
style="fill:#888a85;stroke:#555753"
r="4"
id="circle4980"
cx="361.05368"
cy="475.99161" />
<text
sodipodi:linespacing="125%"
x="320.59091"
y="240.24139"
class="title"
id="text5080"
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#cc0000">
<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#cc0000"
id="tspan5082">12</tspan>
</text>
<text
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#cc0000"
id="text5084"
class="title"
y="240.24139"
x="366.20544"
sodipodi:linespacing="125%">
<tspan
id="tspan5086"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#cc0000">12</tspan>
</text>
<text
sodipodi:linespacing="125%"
x="405.9342"
y="234.35565"
class="title"
id="text5088"
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#cc0000">
<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#cc0000"
id="tspan5090">12</tspan>
</text>
<text
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#cc0000"
id="text5111"
class="title"
y="397.68506"
x="307.34799"
sodipodi:linespacing="125%">
<tspan
id="tspan5113"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#cc0000">false</tspan>
</text>
<text
sodipodi:linespacing="125%"
x="360.30771"
y="370.38724"
class="title"
id="text5134"
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#cc0000">
<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#cc0000"
id="tspan5136">true</tspan>
</text>
<text
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#cc0000"
id="text5240"
class="title"
y="369.89676"
x="441.72717"
sodipodi:linespacing="125%">
<tspan
id="tspan5242"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#cc0000">true</tspan>
</text>
<text
sodipodi:linespacing="125%"
x="401.61789"
y="422.37906"
class="title"
id="text5348"
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#cc0000">
<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#cc0000"
id="tspan5350">true</tspan>
</text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 20 KiB

View File

@@ -1,563 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
id="canvas"
width="276.07123"
height="420.02319"
version="1.1"
inkscape:version="0.91 r13725"
sodipodi:docname="voltage-monitor-p7.svg">
<metadata
id="metadata217">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs215" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1016"
id="namedview213"
showgrid="true"
inkscape:zoom="2.0388246"
inkscape:cx="-44.414818"
inkscape:cy="85.383856"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-maximized="1"
inkscape:current-layer="layer1"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:snap-bbox="true"
inkscape:bbox-nodes="true" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="Links"
transform="translate(-236.0909,-143.328)"
style="display:inline">
<path
style="fill:none;fill-rule:evenodd;stroke:#cc0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 446.9064,317.10591 364.99646,175.84805"
id="path4289"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#cc0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 348.81067,316.12495 365.48694,176.33853"
id="path4291"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#cc0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 294.85801,316.61543 70.13845,-140.2769"
id="path4293"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 252.67685,285.71528 26.97632,32.37159"
id="path4295"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 379.22035,290.62006 -13.73341,25.01442"
id="path4297"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 480.25895,291.60102 -17.65723,25.50489"
id="path4299"
inkscape:connector-curvature="0" />
<path
style="fill:#cc0000;fill-rule:evenodd;stroke:#cc0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 349.79163,349.96798 43.6526,25.50489"
id="path4301"
inkscape:connector-curvature="0" />
<path
style="fill:#cc0000;fill-rule:evenodd;stroke:#cc0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 446.9064,348.98703 -37.76685,27.4668"
id="path4303"
inkscape:connector-curvature="0" />
<path
style="fill:#cc0000;fill-rule:evenodd;stroke:#cc0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 392.95375,409.80638 377.25843,425.5017"
id="path4305"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:#cc0000;fill-rule:evenodd;stroke:#cc0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 277.20078,349.96798 83.87185,76.51468"
id="path4307"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:#cc0000;fill-rule:evenodd;stroke:#cc0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 361.16296,458.3638 0,17.65724"
id="path4984"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 361.16296,507.90215 1.47144,22.56202"
id="path4986"
inkscape:connector-curvature="0" />
</g>
<g
inkscape:groupmode="layer"
id="layer1"
inkscape:label="Layer 1"
style="display:inline"
transform="translate(-236.0909,-143.328)">
<rect
style="fill:#9e8e9c;fill-opacity:1;stroke:#cc0000;stroke-width:0.99999994"
id="rect47"
height="32"
width="48"
class="outline"
x="348.81079"
y="143.828" />
<text
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff"
id="text49"
class="title"
y="163.828"
x="373.91077"
sodipodi:linespacing="125%">
<tspan
id="tspan4345"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff">Voltage</tspan>
</text>
<circle
style="fill:#cc0000;stroke:#cc0000"
r="4"
id="circle53"
cx="365.31079"
cy="176.328" />
<rect
y="316.68024"
x="431.15775"
class="outline"
width="48"
height="32"
id="rect4406"
style="fill:#888a85;stroke:#cc0000;stroke-width:1" />
<text
x="455.15775"
y="336.68024"
class="title"
id="text4408"
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff"
sodipodi:linespacing="125%">
<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff"
id="tspan4410">&lt;</tspan>
</text>
<circle
cy="349.18024"
cx="447.65775"
id="circle4412"
r="4"
style="fill:#cc0000;stroke:#cc0000" />
<rect
style="fill:#9e8e9c;fill-opacity:1;stroke:#555753;stroke-width:1"
id="rect4442"
height="32"
width="48"
class="outline"
x="346.38803"
y="530.8512" />
<text
style="font-size:12.5px;text-anchor:middle;fill:#ffffff"
id="text4444"
class="title"
y="550.8512"
x="370.66269">
<tspan
id="tspan4446"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';fill:#ffffff">Alarm</tspan>
</text>
<circle
style="fill:#888a85;stroke:#555753"
r="4"
id="circle4448"
cx="362.88803"
cy="530.3512" />
<circle
style="fill:#cc0000;stroke:#cc0000"
r="4"
id="circle4599"
cx="447.65775"
cy="316.67072" />
<circle
cy="316.67072"
cx="463.65775"
id="circle4601"
r="4"
style="fill:#888a85;stroke:#555753" />
<rect
style="fill:#888a85;stroke:#cc0000;stroke-width:1"
id="rect4603"
height="32"
width="48"
class="outline"
x="333.25244"
y="316.68024" />
<text
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff"
id="text4605"
class="title"
y="336.68024"
x="357.25244"
sodipodi:linespacing="125%">
<tspan
id="tspan4607"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff">&gt;</tspan>
</text>
<circle
style="fill:#cc0000;stroke:#cc0000"
r="4"
id="circle4609"
cx="349.75244"
cy="349.18024" />
<circle
cy="316.67072"
cx="349.75244"
id="circle4611"
r="4"
style="fill:#cc0000;stroke:#cc0000" />
<circle
style="fill:#888a85;stroke:#555753"
r="4"
id="circle4613"
cx="365.75244"
cy="316.67072" />
<rect
y="258.45245"
x="363.4649"
class="outline"
width="48"
height="32"
id="rect4615"
style="fill:#96a38a;fill-opacity:1;stroke:#555753;stroke-width:1" />
<text
x="387.4649"
y="278.45245"
class="title"
id="text4617"
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff"
sodipodi:linespacing="125%">
<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff"
id="tspan4619">11.6</tspan>
</text>
<circle
cy="290.95245"
cx="379.9649"
id="circle4621"
r="4"
style="fill:#888a85;stroke:#555753" />
<rect
style="fill:#96a38a;fill-opacity:1;stroke:#555753;stroke-width:1"
id="rect4627"
height="32"
width="48"
class="outline"
x="463.66211"
y="258.80374" />
<text
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff"
id="text4629"
class="title"
y="278.80374"
x="487.66211"
sodipodi:linespacing="125%">
<tspan
id="tspan4631"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff">12.1</tspan>
</text>
<circle
style="fill:#888a85;stroke:#555753"
r="4"
id="circle4633"
cx="480.16211"
cy="291.30374" />
<rect
y="376.02817"
x="376.90503"
class="outline"
width="48"
height="32"
id="rect4255"
style="fill:#888a85;stroke:#cc0000;stroke-width:1" />
<text
sodipodi:linespacing="125%"
x="400.90503"
y="396.02817"
class="title"
id="text4257"
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff">
<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff"
id="tspan4259">and</tspan>
</text>
<circle
cy="408.52817"
cx="393.40503"
id="circle4261"
r="4"
style="fill:#cc0000;stroke:#cc0000" />
<circle
style="fill:#cc0000;stroke:#cc0000"
r="4"
id="circle4263"
cx="393.40503"
cy="376.01865" />
<circle
cy="376.01865"
cx="409.40503"
id="circle4265"
r="4"
style="fill:#cc0000;stroke:#cc0000" />
<rect
style="fill:#888a85;stroke:#cc0000;stroke-width:1"
id="rect4267"
height="32"
width="48"
class="outline"
x="344.55368"
y="426.00113" />
<text
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff"
id="text4269"
class="title"
y="446.00113"
x="368.55368"
sodipodi:linespacing="125%">
<tspan
id="tspan4271"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff">or</tspan>
</text>
<circle
style="fill:#cc0000;stroke:#cc0000"
r="4"
id="circle4273"
cx="361.05368"
cy="458.50113" />
<circle
cy="425.99161"
cx="361.05368"
id="circle4275"
r="4"
style="fill:#cc0000;stroke:#cc0000" />
<circle
style="fill:#cc0000;stroke:#cc0000"
r="4"
id="circle4277"
cx="377.05368"
cy="425.99161" />
<rect
y="317.00363"
x="262.45349"
class="outline"
width="48"
height="32"
id="rect4406-0"
style="display:inline;fill:#888a85;stroke:#cc0000;stroke-width:1" />
<text
x="286.45349"
y="337.00363"
class="title"
id="text4408-4"
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ffffff"
sodipodi:linespacing="125%">
<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff"
id="tspan4410-5">=</tspan>
</text>
<circle
cy="349.50363"
cx="278.95349"
id="circle4412-5"
r="4"
style="display:inline;fill:#cc0000;stroke:#cc0000" />
<circle
style="display:inline;fill:#888a85;stroke:#555753"
r="4"
id="circle4599-4"
cx="278.95349"
cy="316.99411" />
<circle
cy="316.99411"
cx="294.95349"
id="circle4601-7"
r="4"
style="display:inline;fill:#cc0000;stroke:#cc0000" />
<rect
style="display:inline;fill:#96a38a;fill-opacity:1;stroke:#555753;stroke-width:1"
id="rect4627-6"
height="32"
width="48"
class="outline"
x="236.5909"
y="253.24139" />
<text
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ffffff"
id="text4629-5"
class="title"
y="273.24139"
x="260.59091"
sodipodi:linespacing="125%">
<tspan
id="tspan4631-6"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff">0</tspan>
</text>
<circle
style="display:inline;fill:#888a85;stroke:#555753"
r="4"
id="circle4633-6"
cx="253.0909"
cy="285.74139" />
<rect
y="476.00113"
x="344.55368"
class="outline"
width="48"
height="32"
id="rect4972"
style="fill:#888a85;stroke:#cc0000;stroke-width:1" />
<text
sodipodi:linespacing="125%"
x="368.55368"
y="496.00113"
class="title"
id="text4974"
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff">
<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff"
id="tspan4976">not</tspan>
</text>
<circle
cy="508.50113"
cx="361.05368"
id="circle4978"
r="4"
style="fill:#888a85;stroke:#555753" />
<circle
style="fill:#cc0000;stroke:#cc0000"
r="4"
id="circle4980"
cx="361.05368"
cy="475.99161" />
<text
sodipodi:linespacing="125%"
x="320.59091"
y="240.24139"
class="title"
id="text5080"
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#cc0000">
<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#cc0000"
id="tspan5082">12</tspan>
</text>
<text
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#cc0000"
id="text5084"
class="title"
y="240.24139"
x="366.20544"
sodipodi:linespacing="125%">
<tspan
id="tspan5086"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#cc0000">12</tspan>
</text>
<text
sodipodi:linespacing="125%"
x="405.9342"
y="234.35565"
class="title"
id="text5088"
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#cc0000">
<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#cc0000"
id="tspan5090">12</tspan>
</text>
<text
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#cc0000"
id="text5111"
class="title"
y="397.68506"
x="307.34799"
sodipodi:linespacing="125%">
<tspan
id="tspan5113"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#cc0000">false</tspan>
</text>
<text
sodipodi:linespacing="125%"
x="360.30771"
y="370.38724"
class="title"
id="text5134"
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#cc0000">
<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#cc0000"
id="tspan5136">true</tspan>
</text>
<text
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#cc0000"
id="text5240"
class="title"
y="369.89676"
x="441.72717"
sodipodi:linespacing="125%">
<tspan
id="tspan5242"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#cc0000">true</tspan>
</text>
<text
sodipodi:linespacing="125%"
x="401.61789"
y="422.37906"
class="title"
id="text5348"
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#cc0000">
<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#cc0000"
id="tspan5350">true</tspan>
</text>
<text
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#cc0000"
id="text5371"
class="title"
y="471.36954"
x="375.11789"
sodipodi:linespacing="125%">
<tspan
id="tspan5373"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#cc0000">true</tspan>
</text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 21 KiB

View File

@@ -1,574 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
id="canvas"
width="276.07123"
height="420.02319"
version="1.1"
inkscape:version="0.91 r13725"
sodipodi:docname="voltage-monitor-p8.svg">
<metadata
id="metadata217">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs215" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1016"
id="namedview213"
showgrid="true"
inkscape:zoom="2.0388246"
inkscape:cx="-44.414818"
inkscape:cy="26.526408"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-maximized="1"
inkscape:current-layer="layer1"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:snap-bbox="true"
inkscape:bbox-nodes="true" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="Links"
transform="translate(-236.0909,-143.328)"
style="display:inline">
<path
style="fill:none;fill-rule:evenodd;stroke:#cc0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 446.9064,317.10591 364.99646,175.84805"
id="path4289"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#cc0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 348.81067,316.12495 365.48694,176.33853"
id="path4291"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#cc0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 294.85801,316.61543 70.13845,-140.2769"
id="path4293"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 252.67685,285.71528 26.97632,32.37159"
id="path4295"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 379.22035,290.62006 -13.73341,25.01442"
id="path4297"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 480.25895,291.60102 -17.65723,25.50489"
id="path4299"
inkscape:connector-curvature="0" />
<path
style="fill:#cc0000;fill-rule:evenodd;stroke:#cc0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 349.79163,349.96798 43.6526,25.50489"
id="path4301"
inkscape:connector-curvature="0" />
<path
style="fill:#cc0000;fill-rule:evenodd;stroke:#cc0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 446.9064,348.98703 -37.76685,27.4668"
id="path4303"
inkscape:connector-curvature="0" />
<path
style="fill:#cc0000;fill-rule:evenodd;stroke:#cc0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 392.95375,409.80638 377.25843,425.5017"
id="path4305"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:#cc0000;fill-rule:evenodd;stroke:#cc0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 277.20078,349.96798 83.87185,76.51468"
id="path4307"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:#cc0000;fill-rule:evenodd;stroke:#cc0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 361.16296,458.3638 0,17.65724"
id="path4984"
inkscape:connector-curvature="0" />
<path
style="fill:#cc0000;fill-rule:evenodd;stroke:#cc0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 361.16296,507.90215 1.47144,22.56202"
id="path4986"
inkscape:connector-curvature="0" />
</g>
<g
inkscape:groupmode="layer"
id="layer1"
inkscape:label="Layer 1"
style="display:inline"
transform="translate(-236.0909,-143.328)">
<rect
style="fill:#9e8e9c;fill-opacity:1;stroke:#cc0000;stroke-width:0.99999994"
id="rect47"
height="32"
width="48"
class="outline"
x="348.81079"
y="143.828" />
<text
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff"
id="text49"
class="title"
y="163.828"
x="373.91077"
sodipodi:linespacing="125%">
<tspan
id="tspan4345"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff">Voltage</tspan>
</text>
<circle
style="fill:#cc0000;stroke:#cc0000"
r="4"
id="circle53"
cx="365.31079"
cy="176.328" />
<rect
y="316.68024"
x="431.15775"
class="outline"
width="48"
height="32"
id="rect4406"
style="fill:#888a85;stroke:#cc0000;stroke-width:1" />
<text
x="455.15775"
y="336.68024"
class="title"
id="text4408"
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff"
sodipodi:linespacing="125%">
<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff"
id="tspan4410">&lt;</tspan>
</text>
<circle
cy="349.18024"
cx="447.65775"
id="circle4412"
r="4"
style="fill:#cc0000;stroke:#cc0000" />
<rect
style="fill:#9e8e9c;fill-opacity:1;stroke:#cc0000;stroke-width:1"
id="rect4442"
height="32"
width="48"
class="outline"
x="346.38803"
y="530.8512" />
<text
style="font-size:12.5px;text-anchor:middle;fill:#ffffff"
id="text4444"
class="title"
y="550.8512"
x="370.66269">
<tspan
id="tspan4446"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';fill:#ffffff">Alarm</tspan>
</text>
<circle
style="fill:#cc0000;stroke:#cc0000"
r="4"
id="circle4448"
cx="362.88803"
cy="530.3512" />
<circle
style="fill:#cc0000;stroke:#cc0000"
r="4"
id="circle4599"
cx="447.65775"
cy="316.67072" />
<circle
cy="316.67072"
cx="463.65775"
id="circle4601"
r="4"
style="fill:#888a85;stroke:#555753" />
<rect
style="fill:#888a85;stroke:#cc0000;stroke-width:1"
id="rect4603"
height="32"
width="48"
class="outline"
x="333.25244"
y="316.68024" />
<text
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff"
id="text4605"
class="title"
y="336.68024"
x="357.25244"
sodipodi:linespacing="125%">
<tspan
id="tspan4607"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff">&gt;</tspan>
</text>
<circle
style="fill:#cc0000;stroke:#cc0000"
r="4"
id="circle4609"
cx="349.75244"
cy="349.18024" />
<circle
cy="316.67072"
cx="349.75244"
id="circle4611"
r="4"
style="fill:#cc0000;stroke:#cc0000" />
<circle
style="fill:#888a85;stroke:#555753"
r="4"
id="circle4613"
cx="365.75244"
cy="316.67072" />
<rect
y="258.45245"
x="363.4649"
class="outline"
width="48"
height="32"
id="rect4615"
style="fill:#96a38a;fill-opacity:1;stroke:#555753;stroke-width:1" />
<text
x="387.4649"
y="278.45245"
class="title"
id="text4617"
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff"
sodipodi:linespacing="125%">
<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff"
id="tspan4619">11.6</tspan>
</text>
<circle
cy="290.95245"
cx="379.9649"
id="circle4621"
r="4"
style="fill:#888a85;stroke:#555753" />
<rect
style="fill:#96a38a;fill-opacity:1;stroke:#555753;stroke-width:1"
id="rect4627"
height="32"
width="48"
class="outline"
x="463.66211"
y="258.80374" />
<text
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff"
id="text4629"
class="title"
y="278.80374"
x="487.66211"
sodipodi:linespacing="125%">
<tspan
id="tspan4631"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff">12.1</tspan>
</text>
<circle
style="fill:#888a85;stroke:#555753"
r="4"
id="circle4633"
cx="480.16211"
cy="291.30374" />
<rect
y="376.02817"
x="376.90503"
class="outline"
width="48"
height="32"
id="rect4255"
style="fill:#888a85;stroke:#cc0000;stroke-width:1" />
<text
sodipodi:linespacing="125%"
x="400.90503"
y="396.02817"
class="title"
id="text4257"
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff">
<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff"
id="tspan4259">and</tspan>
</text>
<circle
cy="408.52817"
cx="393.40503"
id="circle4261"
r="4"
style="fill:#cc0000;stroke:#cc0000" />
<circle
style="fill:#cc0000;stroke:#cc0000"
r="4"
id="circle4263"
cx="393.40503"
cy="376.01865" />
<circle
cy="376.01865"
cx="409.40503"
id="circle4265"
r="4"
style="fill:#cc0000;stroke:#cc0000" />
<rect
style="fill:#888a85;stroke:#cc0000;stroke-width:1"
id="rect4267"
height="32"
width="48"
class="outline"
x="344.55368"
y="426.00113" />
<text
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff"
id="text4269"
class="title"
y="446.00113"
x="368.55368"
sodipodi:linespacing="125%">
<tspan
id="tspan4271"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff">or</tspan>
</text>
<circle
style="fill:#cc0000;stroke:#cc0000"
r="4"
id="circle4273"
cx="361.05368"
cy="458.50113" />
<circle
cy="425.99161"
cx="361.05368"
id="circle4275"
r="4"
style="fill:#cc0000;stroke:#cc0000" />
<circle
style="fill:#cc0000;stroke:#cc0000"
r="4"
id="circle4277"
cx="377.05368"
cy="425.99161" />
<rect
y="317.00363"
x="262.45349"
class="outline"
width="48"
height="32"
id="rect4406-0"
style="display:inline;fill:#888a85;stroke:#cc0000;stroke-width:1" />
<text
x="286.45349"
y="337.00363"
class="title"
id="text4408-4"
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ffffff"
sodipodi:linespacing="125%">
<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff"
id="tspan4410-5">=</tspan>
</text>
<circle
cy="349.50363"
cx="278.95349"
id="circle4412-5"
r="4"
style="display:inline;fill:#cc0000;stroke:#cc0000" />
<circle
style="display:inline;fill:#888a85;stroke:#555753"
r="4"
id="circle4599-4"
cx="278.95349"
cy="316.99411" />
<circle
cy="316.99411"
cx="294.95349"
id="circle4601-7"
r="4"
style="display:inline;fill:#cc0000;stroke:#cc0000" />
<rect
style="display:inline;fill:#96a38a;fill-opacity:1;stroke:#555753;stroke-width:1"
id="rect4627-6"
height="32"
width="48"
class="outline"
x="236.5909"
y="253.24139" />
<text
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ffffff"
id="text4629-5"
class="title"
y="273.24139"
x="260.59091"
sodipodi:linespacing="125%">
<tspan
id="tspan4631-6"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff">0</tspan>
</text>
<circle
style="display:inline;fill:#888a85;stroke:#555753"
r="4"
id="circle4633-6"
cx="253.0909"
cy="285.74139" />
<rect
y="476.00113"
x="344.55368"
class="outline"
width="48"
height="32"
id="rect4972"
style="fill:#888a85;stroke:#cc0000;stroke-width:1" />
<text
sodipodi:linespacing="125%"
x="368.55368"
y="496.00113"
class="title"
id="text4974"
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff">
<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff"
id="tspan4976">not</tspan>
</text>
<circle
cy="508.50113"
cx="361.05368"
id="circle4978"
r="4"
style="fill:#cc0000;stroke:#cc0000" />
<circle
style="fill:#cc0000;stroke:#cc0000"
r="4"
id="circle4980"
cx="361.05368"
cy="475.99161" />
<text
sodipodi:linespacing="125%"
x="320.59091"
y="240.24139"
class="title"
id="text5080"
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#cc0000">
<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#cc0000"
id="tspan5082">12</tspan>
</text>
<text
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#cc0000"
id="text5084"
class="title"
y="240.24139"
x="366.20544"
sodipodi:linespacing="125%">
<tspan
id="tspan5086"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#cc0000">12</tspan>
</text>
<text
sodipodi:linespacing="125%"
x="405.9342"
y="234.35565"
class="title"
id="text5088"
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#cc0000">
<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#cc0000"
id="tspan5090">12</tspan>
</text>
<text
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#cc0000"
id="text5111"
class="title"
y="397.68506"
x="307.34799"
sodipodi:linespacing="125%">
<tspan
id="tspan5113"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#cc0000">false</tspan>
</text>
<text
sodipodi:linespacing="125%"
x="360.30771"
y="370.38724"
class="title"
id="text5134"
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#cc0000">
<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#cc0000"
id="tspan5136">true</tspan>
</text>
<text
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#cc0000"
id="text5240"
class="title"
y="369.89676"
x="441.72717"
sodipodi:linespacing="125%">
<tspan
id="tspan5242"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#cc0000">true</tspan>
</text>
<text
sodipodi:linespacing="125%"
x="401.61789"
y="422.37906"
class="title"
id="text5348"
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#cc0000">
<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#cc0000"
id="tspan5350">true</tspan>
</text>
<text
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#cc0000"
id="text5371"
class="title"
y="471.36954"
x="375.11789"
sodipodi:linespacing="125%">
<tspan
id="tspan5373"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#cc0000">true</tspan>
</text>
<text
sodipodi:linespacing="125%"
x="378.1373"
y="523.72913"
class="title"
id="text5394"
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#cc0000">
<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#cc0000"
id="tspan5396">false</tspan>
</text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 21 KiB

View File

@@ -1,476 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
id="canvas"
width="276.07123"
height="420.02319"
version="1.1"
inkscape:version="0.91 r13725"
sodipodi:docname="voltage-monitor.svg">
<metadata
id="metadata217">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs215" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1016"
id="namedview213"
showgrid="true"
inkscape:zoom="2.0388246"
inkscape:cx="84.335836"
inkscape:cy="261.95618"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-maximized="1"
inkscape:current-layer="layer2"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:snap-bbox="true"
inkscape:bbox-nodes="true" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="Links"
transform="translate(-236.0909,-143.328)"
style="display:inline">
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 446.9064,317.10591 364.99646,175.84805"
id="path4289"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 348.81067,316.12495 365.48694,176.33853"
id="path4291"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 294.85801,316.61543 70.13845,-140.2769"
id="path4293"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 252.67685,285.71528 26.97632,32.37159"
id="path4295"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 379.22035,290.62006 -13.73341,25.01442"
id="path4297"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 480.25895,291.60102 -17.65723,25.50489"
id="path4299"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 349.79163,349.96798 43.6526,25.50489"
id="path4301"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 446.9064,348.98703 -37.76685,27.4668"
id="path4303"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 392.95375,409.80638 377.25843,425.5017"
id="path4305"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 277.20078,349.96798 83.87185,76.51468"
id="path4307"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 361.16296,458.3638 0,17.65724"
id="path4984"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 361.16296,507.90215 1.47144,22.56202"
id="path4986"
inkscape:connector-curvature="0" />
</g>
<g
inkscape:groupmode="layer"
id="layer1"
inkscape:label="Layer 1"
style="display:inline"
transform="translate(-236.0909,-143.328)"
sodipodi:insensitive="true">
<rect
style="fill:#9e8e9c;fill-opacity:1;stroke:#555753;stroke-width:0.99999994"
id="rect47"
height="32"
width="48"
class="outline"
x="348.81079"
y="143.828" />
<text
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff"
id="text49"
class="title"
y="163.828"
x="373.91077"
sodipodi:linespacing="125%">
<tspan
id="tspan4345"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff">Voltage</tspan>
</text>
<circle
style="fill:#888a85;stroke:#555753"
r="4"
id="circle53"
cx="365.31079"
cy="176.328" />
<rect
y="316.68024"
x="431.15775"
class="outline"
width="48"
height="32"
id="rect4406"
style="fill:#888a85;stroke:#555753;stroke-width:1" />
<text
x="455.15775"
y="336.68024"
class="title"
id="text4408"
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff"
sodipodi:linespacing="125%">
<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff"
id="tspan4410">&lt;</tspan>
</text>
<circle
cy="349.18024"
cx="447.65775"
id="circle4412"
r="4"
style="fill:#888a85;stroke:#555753" />
<rect
style="fill:#9e8e9c;fill-opacity:1;stroke:#555753;stroke-width:1"
id="rect4442"
height="32"
width="48"
class="outline"
x="346.38803"
y="530.8512" />
<text
style="font-size:12.5px;text-anchor:middle;fill:#ffffff"
id="text4444"
class="title"
y="550.8512"
x="370.66269">
<tspan
id="tspan4446"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';fill:#ffffff">Alarm</tspan>
</text>
<circle
style="fill:#888a85;stroke:#555753"
r="4"
id="circle4448"
cx="362.88803"
cy="530.3512" />
<circle
style="fill:#888a85;stroke:#555753"
r="4"
id="circle4599"
cx="447.65775"
cy="316.67072" />
<circle
cy="316.67072"
cx="463.65775"
id="circle4601"
r="4"
style="fill:#888a85;stroke:#555753" />
<rect
style="fill:#888a85;stroke:#555753;stroke-width:1"
id="rect4603"
height="32"
width="48"
class="outline"
x="333.25244"
y="316.68024" />
<text
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff"
id="text4605"
class="title"
y="336.68024"
x="357.25244"
sodipodi:linespacing="125%">
<tspan
id="tspan4607"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff">&gt;</tspan>
</text>
<circle
style="fill:#888a85;stroke:#555753"
r="4"
id="circle4609"
cx="349.75244"
cy="349.18024" />
<circle
cy="316.67072"
cx="349.75244"
id="circle4611"
r="4"
style="fill:#888a85;stroke:#555753" />
<circle
style="fill:#888a85;stroke:#555753"
r="4"
id="circle4613"
cx="365.75244"
cy="316.67072" />
<rect
y="258.45245"
x="363.4649"
class="outline"
width="48"
height="32"
id="rect4615"
style="fill:#96a38a;fill-opacity:1;stroke:#555753;stroke-width:1" />
<text
x="387.4649"
y="278.45245"
class="title"
id="text4617"
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff"
sodipodi:linespacing="125%">
<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff"
id="tspan4619">11.6</tspan>
</text>
<circle
cy="290.95245"
cx="379.9649"
id="circle4621"
r="4"
style="fill:#888a85;stroke:#555753" />
<rect
style="fill:#96a38a;fill-opacity:1;stroke:#555753;stroke-width:1"
id="rect4627"
height="32"
width="48"
class="outline"
x="463.66211"
y="258.80374" />
<text
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff"
id="text4629"
class="title"
y="278.80374"
x="487.66211"
sodipodi:linespacing="125%">
<tspan
id="tspan4631"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff">12.1</tspan>
</text>
<circle
style="fill:#888a85;stroke:#555753"
r="4"
id="circle4633"
cx="480.16211"
cy="291.30374" />
<rect
y="376.02817"
x="376.90503"
class="outline"
width="48"
height="32"
id="rect4255"
style="fill:#888a85;stroke:#555753;stroke-width:1" />
<text
sodipodi:linespacing="125%"
x="400.90503"
y="396.02817"
class="title"
id="text4257"
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff">
<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff"
id="tspan4259">and</tspan>
</text>
<circle
cy="408.52817"
cx="393.40503"
id="circle4261"
r="4"
style="fill:#888a85;stroke:#555753" />
<circle
style="fill:#888a85;stroke:#555753"
r="4"
id="circle4263"
cx="393.40503"
cy="376.01865" />
<circle
cy="376.01865"
cx="409.40503"
id="circle4265"
r="4"
style="fill:#888a85;stroke:#555753" />
<rect
style="fill:#888a85;stroke:#555753;stroke-width:1"
id="rect4267"
height="32"
width="48"
class="outline"
x="344.55368"
y="426.00113" />
<text
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff"
id="text4269"
class="title"
y="446.00113"
x="368.55368"
sodipodi:linespacing="125%">
<tspan
id="tspan4271"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff">or</tspan>
</text>
<circle
style="fill:#888a85;stroke:#555753"
r="4"
id="circle4273"
cx="361.05368"
cy="458.50113" />
<circle
cy="425.99161"
cx="361.05368"
id="circle4275"
r="4"
style="fill:#888a85;stroke:#555753" />
<circle
style="fill:#888a85;stroke:#555753"
r="4"
id="circle4277"
cx="377.05368"
cy="425.99161" />
<rect
y="317.00363"
x="262.45349"
class="outline"
width="48"
height="32"
id="rect4406-0"
style="display:inline;fill:#888a85;stroke:#555753;stroke-width:1" />
<text
x="286.45349"
y="337.00363"
class="title"
id="text4408-4"
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ffffff"
sodipodi:linespacing="125%">
<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff"
id="tspan4410-5">=</tspan>
</text>
<circle
cy="349.50363"
cx="278.95349"
id="circle4412-5"
r="4"
style="display:inline;fill:#888a85;stroke:#555753" />
<circle
style="display:inline;fill:#888a85;stroke:#555753"
r="4"
id="circle4599-4"
cx="278.95349"
cy="316.99411" />
<circle
cy="316.99411"
cx="294.95349"
id="circle4601-7"
r="4"
style="display:inline;fill:#888a85;stroke:#555753" />
<rect
style="display:inline;fill:#96a38a;fill-opacity:1;stroke:#555753;stroke-width:1"
id="rect4627-6"
height="32"
width="48"
class="outline"
x="236.5909"
y="253.24139" />
<text
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ffffff"
id="text4629-5"
class="title"
y="273.24139"
x="260.59091"
sodipodi:linespacing="125%">
<tspan
id="tspan4631-6"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff">0</tspan>
</text>
<circle
style="display:inline;fill:#888a85;stroke:#555753"
r="4"
id="circle4633-6"
cx="253.0909"
cy="285.74139" />
<rect
y="476.00113"
x="344.55368"
class="outline"
width="48"
height="32"
id="rect4972"
style="fill:#888a85;stroke:#555753;stroke-width:1" />
<text
sodipodi:linespacing="125%"
x="368.55368"
y="496.00113"
class="title"
id="text4974"
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff">
<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff"
id="tspan4976">not</tspan>
</text>
<circle
cy="508.50113"
cx="361.05368"
id="circle4978"
r="4"
style="fill:#888a85;stroke:#555753" />
<circle
style="fill:#888a85;stroke:#555753"
r="4"
id="circle4980"
cx="361.05368"
cy="475.99161" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 16 KiB

View File

@@ -1,360 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
id="canvas"
width="305.82501"
height="283.01416"
version="1.1"
inkscape:version="0.91 r13725"
sodipodi:docname="example.svg">
<metadata
id="metadata217">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs215" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1016"
id="namedview213"
showgrid="true"
inkscape:zoom="1.4416667"
inkscape:cx="-63.273802"
inkscape:cy="172.12161"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-maximized="1"
inkscape:current-layer="layer1"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:snap-bbox="true"
inkscape:bbox-nodes="true" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="Links"
transform="translate(-217.85286,-201.83546)">
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 378.15907,317.79611 361.4828,343.79148"
id="path4664"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 267.80137,317.30563 254.06796,343.301"
id="path4666"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 237.63692,375.91783 -2.69763,77.2504"
id="path4668"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 345.78748,376.16308 0,76.02419"
id="path4670"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 278.5919,234.41473 345.297,343.79148"
id="path4672"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 237.39169,342.81052 9.31909,-68.66701 31.88112,-38.74782"
id="path4674"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 475.76433,281.50069 278.10142,234.90521"
id="path4676"
inkscape:connector-curvature="0" />
</g>
<g
inkscape:groupmode="layer"
id="layer1"
inkscape:label="Layer 1"
style="display:inline"
transform="translate(-217.85286,-201.83546)">
<rect
style="fill:#9e8e9c;stroke:#555753;stroke-width:1;fill-opacity:1"
id="rect47"
height="32"
width="80"
class="outline"
x="262.35287"
y="202.34962" />
<text
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff"
id="text49"
class="title"
y="222.34962"
x="303.35287"
sodipodi:linespacing="125%">
<tspan
id="tspan4345"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff">Thermometer</tspan>
</text>
<circle
style="fill:#888a85;stroke:#555753"
r="4"
id="circle53"
cx="278.85287"
cy="234.84962" />
<text
y="278.85287"
x="-239.84962"
transform="matrix(0,-1,1,0,0,0)"
id="text55"
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:end"
sodipodi:linespacing="125%">
<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px"
id="tspan4347">T</tspan>
</text>
<rect
y="343.57739"
x="329.04568"
class="outline"
width="48"
height="32"
id="rect4406"
style="fill:#888a85;stroke:#555753;stroke-width:1" />
<text
x="353.04568"
y="363.57739"
class="title"
id="text4408"
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff"
sodipodi:linespacing="125%">
<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff"
id="tspan4410">&lt;</tspan>
</text>
<circle
cy="376.07739"
cx="345.54568"
id="circle4412"
r="4"
style="fill:#888a85;stroke:#555753" />
<rect
style="fill:#9e8e9c;stroke:#555753;fill-opacity:1"
id="rect4442"
height="32"
width="64"
class="outline"
x="218.35286"
y="452.34964" />
<text
style="font-size:12.5px;text-anchor:middle;fill:#ffffff"
id="text4444"
class="title"
y="472.34964"
x="250.35286">
<tspan
id="tspan4446"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';fill:#ffffff">Cooler</tspan>
</text>
<circle
style="fill:#888a85;stroke:#555753"
r="4"
id="circle4448"
cx="234.85286"
cy="451.84964" />
<text
y="234.85286"
x="-446.84964"
transform="matrix(0,-1,1,0,0,0)"
id="text4450"
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:end;"
sodipodi:linespacing="125%">
<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;"
id="tspan4452">EN</tspan>
</text>
<circle
style="fill:#888a85;stroke:#555753"
r="4"
id="circle4599"
cx="345.54568"
cy="343.56787" />
<circle
cy="343.56787"
cx="361.54568"
id="circle4601"
r="4"
style="fill:#888a85;stroke:#555753" />
<rect
style="fill:#888a85;stroke:#555753;stroke-width:1"
id="rect4603"
height="32"
width="48"
class="outline"
x="221.1404"
y="343.57739" />
<text
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff"
id="text4605"
class="title"
y="363.57739"
x="245.1404"
sodipodi:linespacing="125%">
<tspan
id="tspan4607"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff">&gt;</tspan>
</text>
<circle
style="fill:#888a85;stroke:#555753"
r="4"
id="circle4609"
cx="237.6404"
cy="376.07739" />
<circle
cy="343.56787"
cx="237.6404"
id="circle4611"
r="4"
style="fill:#888a85;stroke:#555753" />
<circle
style="fill:#888a85;stroke:#555753"
r="4"
id="circle4613"
cx="253.6404"
cy="343.56787" />
<rect
y="285.34961"
x="251.35286"
class="outline"
width="48"
height="32"
id="rect4615"
style="fill:#96a38a;stroke:#555753;stroke-width:1;fill-opacity:1" />
<text
x="275.35284"
y="305.34961"
class="title"
id="text4617"
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff"
sodipodi:linespacing="125%">
<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff"
id="tspan4619">77 °F</tspan>
</text>
<circle
cy="317.84961"
cx="267.85284"
id="circle4621"
r="4"
style="fill:#888a85;stroke:#555753" />
<rect
style="fill:#96a38a;stroke:#555753;stroke-width:1;fill-opacity:1"
id="rect4627"
height="32"
width="48"
class="outline"
x="361.55005"
y="285.7009" />
<text
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff"
id="text4629"
class="title"
y="305.7009"
x="385.55005"
sodipodi:linespacing="125%">
<tspan
id="tspan4631"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff">71 °F</tspan>
</text>
<circle
style="fill:#888a85;stroke:#555753"
r="4"
id="circle4633"
cx="378.05005"
cy="318.2009" />
<rect
y="452.34964"
x="328.35284"
class="outline"
width="64"
height="32"
id="rect4639"
style="fill:#9e8e9c;stroke:#555753;fill-opacity:1" />
<text
x="360.35284"
y="472.34964"
class="title"
id="text4641"
style="font-size:12.5px;text-anchor:middle;fill:#ffffff">
<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';fill:#ffffff"
id="tspan4643">Heater</tspan>
</text>
<circle
cy="451.84964"
cx="344.85284"
id="circle4645"
r="4"
style="fill:#888a85;stroke:#555753" />
<text
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:end;"
id="text4647"
transform="matrix(0,-1,1,0,0,0)"
x="-446.84964"
y="344.85284"
sodipodi:linespacing="125%">
<tspan
id="tspan4649"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;">EN</tspan>
</text>
<rect
y="282.15353"
x="459.17789"
class="outline"
width="64"
height="32"
id="rect4651"
style="fill:#9e8e9c;stroke:#555753;fill-opacity:1" />
<text
x="491.17789"
y="302.15353"
class="title"
id="text4653"
style="font-size:12.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff"
sodipodi:linespacing="125%">
<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';letter-spacing:0px;word-spacing:0px;fill:#ffffff"
id="tspan4655">Display</tspan>
</text>
<circle
cy="281.65353"
cx="475.67789"
id="circle4657"
r="4"
style="fill:#888a85;stroke:#555753" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 13 KiB

View File

@@ -1,191 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="31.669367mm"
height="49.529999mm"
viewBox="0 0 112.21429 175.5"
id="svg4205"
version="1.1"
inkscape:version="0.91 r13725"
sodipodi:docname="knob-led.svg">
<defs
id="defs4207" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="2.8"
inkscape:cx="70.747418"
inkscape:cy="134.92744"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1920"
inkscape:window-height="1016"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-maximized="1"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
<metadata
id="metadata4210">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="Layer 2"
transform="translate(11.071426,4.2047778)">
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 5.3571429,45.438093 33.214286,72.223807"
id="path6009"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 70,29.366664 48.571429,71.152379"
id="path6011"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 31.785714,103.29524 -1.071428,35.71428"
id="path6013"
inkscape:connector-curvature="0" />
</g>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-104.42857,-264.54553)"
style="display:inline">
<rect
y="265.04553"
x="168.14287"
class="outline"
width="48"
height="32"
id="rect4406"
style="display:inline;fill:#9e8e9c;fill-opacity:1;stroke:#555753;stroke-width:1" />
<text
x="192.14287"
y="285.04553"
class="title"
id="text4408"
style="text-anchor:middle;display:inline;fill:#ffffff">
<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';fill:#ffffff"
id="tspan4410">Knob</tspan>
</text>
<circle
cy="297.54553"
cx="184.64287"
id="circle4412"
r="4"
style="display:inline;fill:#888a85;stroke:#555753" />
<rect
style="display:inline;fill:#888a85;stroke:#555753;stroke-width:1"
id="rect4826"
height="32"
width="48"
class="outline"
x="131"
y="339.68842" />
<text
style="text-anchor:middle;display:inline;fill:#ffffff"
id="text4828"
class="title"
y="359.68842"
x="155">
<tspan
id="tspan4830"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';fill:#ffffff"></tspan>
</text>
<circle
style="display:inline;fill:#888a85;stroke:#555753"
r="4"
id="circle4832"
cx="147.5"
cy="372.18842" />
<circle
cy="339.67889"
cx="147.5"
id="circle4834"
r="4"
style="display:inline;fill:#888a85;stroke:#555753" />
<circle
style="display:inline;fill:#888a85;stroke:#555753"
r="4"
id="circle4836"
cx="163.5"
cy="339.67889" />
<rect
y="407.54553"
x="129.92856"
class="outline"
width="48"
height="32"
id="rect4838"
style="display:inline;fill:#9e8e9c;fill-opacity:1;stroke:#555753;stroke-width:1" />
<text
x="153.92856"
y="427.54553"
class="title"
id="text4840"
style="text-anchor:middle;display:inline;fill:#ffffff">
<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';fill:#ffffff"
id="tspan4842">LED</tspan>
</text>
<circle
style="display:inline;fill:#888a85;stroke:#555753"
r="4"
id="circle4846"
cx="146.42856"
cy="407.53601" />
<rect
y="281.47412"
x="104.92857"
class="outline"
width="48"
height="32"
id="rect4850"
style="display:inline;fill:#96a38a;fill-opacity:1;stroke:#555753;stroke-width:1" />
<text
x="128.92857"
y="301.47412"
class="title"
id="text4852"
style="text-anchor:middle;display:inline;fill:#ffffff">
<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';fill:#ffffff"
id="tspan4854">1.0</tspan>
</text>
<circle
cy="313.97412"
cx="121.42857"
id="circle4856"
r="4"
style="display:inline;fill:#888a85;stroke:#555753" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 6.0 KiB

View File

@@ -1,97 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="13.828889mm"
height="11.71491mm"
viewBox="0 0 49 41.509522"
id="svg4205"
version="1.1"
inkscape:version="0.91 r13725"
sodipodi:docname="pow.svg">
<defs
id="defs4207" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="2.8"
inkscape:cx="60.72776"
inkscape:cy="-11.422464"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1920"
inkscape:window-height="1016"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-maximized="1"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
<metadata
id="metadata4210">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-115.5,-268.75031)">
<rect
y="273.25983"
x="116"
class="outline"
width="48"
height="32"
id="rect4406"
style="display:inline;fill:#888a85;stroke:#555753;stroke-width:1" />
<text
x="140"
y="293.25983"
class="title"
id="text4408"
style="text-anchor:middle;display:inline;fill:#ffffff">
<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, ';fill:#ffffff"
id="tspan4410">pow</tspan>
</text>
<circle
cy="305.75983"
cx="132.5"
id="circle4412"
r="4"
style="display:inline;fill:#888a85;stroke:#555753" />
<circle
style="display:inline;fill:#888a85;stroke:#555753"
r="4"
id="circle4599"
cx="132.5"
cy="273.25031" />
<circle
cy="273.25031"
cx="148.5"
id="circle4601"
r="4"
style="display:inline;fill:#888a85;stroke:#555753" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 2.7 KiB

View File

@@ -1,14 +0,0 @@
.. XOD documentation master file, created by
sphinx-quickstart on Thu Jun 2 17:39:52 2016.
You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive.
Welcome to XOD!
===============
.. toctree::
:maxdepth: 2
intro
structure
execution

View File

@@ -1,88 +0,0 @@
************
Introduction
************
XOD is a visual functional reactive programming language aimed to electronics
hobbyists.
It contrasts to classical programming like one do with C++ or JavaScript in
many ways although it is powerful enough to solve same problems.
A Quick Look
============
.. image:: images/intro/example.*
:align: center
The image is a climate control program example that strives to keep temperature in
7177 °F range. It uses a digital thermometer as a sensor, a cooler, and a heater
as actuators, and an LCD to display current temperature.
As you can see XOD program is a diagram that describes what system
*should* be. Not a sequence of steps that would lead to the desired result.
Formally XOD is a data flow system rather than a control flow.
A processor running XOD program will evaluate the graph when required. So that
reality gets along with declared desire. That's it.
Rationale
=========
Programming is hard. Good programming is manifold hard. But its required to
create something new and *smart*.
Our intent is to create a shortcut. We found that many people feel more natural
if they think about a program as an electrical circuit or a mechanism rather than
as a sequence of instructions.
.. todo:: Example
Fundamental Concepts
====================
Let's explain few concepts that stay behind programming in XOD:
* It's **visual**. In contrast to usual programming where behavior is described by
text with some syntax rules, in XOD you describe the program with blocks and
lines that connect them together. That blocks are called *nodes* and lines
connecting them are called *links*. There are many nodes built in, there are
nodes authored by other XODers, you can also create your own.
* It's **functional**. Formally it means that no nodes share mutable state. If you
don't understand what does it mean exactly, don't worry. It means that what you see
is what you get, and it is impossible that a change of data in one part of
the program would *implicitly* change another data in another part without an
*explicit* link. This is how programming should look like in any language, but
it is not, and such implicit dependencies are often lead to bugs, glitches,
and crashes. XOD protects you from them.
* It's **reactive**. It means that nodes are activated and produce output signals
as a reaction to input signals. Give an update in and you'll get an update
out.
These three concepts together give you the ability to create robust programs
in a simple way. Even if you haven't programming experience before.
What Makes XOD Different
========================
Some languages and tools that look similar to XOD at a first sight.
Notably Scratch_, `Lego Mindstorms`_, vvvv_, LabView_, NoFlo_.
.. _vvvv: https://vvvv.org/
.. _NoFlo: http://noflojs.org/
.. _Scratch: https://scratch.mit.edu/
.. _`Lego Mindstorms`: http://www.lego.com/en-us/mindstorms/learn-to-program
.. _LabView: http://www.ni.com/labview/
But neither of them share the same set of principles at once. Although some ideas
will look familiar if you have an experience with that products.
#. XOD is not a tool to build toy-only projects. It is scalable, reliable, and complete.
You can use it for serious tasks.
#. XOD is targeted specifically toward electronics engineers making it easy to build
gadgets, robotics, IoT.
#. XOD is visual in a first place. Visualization features are used primarily to give
you an easy program structure overview and ability to quickly and intuitively change
that program, not to make it look funny or coarse-grained.
#. XOD is open source. Its free in sense of freedom. You can fork it, tweak it, host it
and contribute back.

View File

@@ -1,281 +0,0 @@
@ECHO OFF
REM Command file for Sphinx documentation
if "%SPHINXBUILD%" == "" (
set SPHINXBUILD=sphinx-build
)
set BUILDDIR=_build
set ALLSPHINXOPTS=-d %BUILDDIR%/doctrees %SPHINXOPTS% .
set I18NSPHINXOPTS=%SPHINXOPTS% .
if NOT "%PAPER%" == "" (
set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS%
set I18NSPHINXOPTS=-D latex_paper_size=%PAPER% %I18NSPHINXOPTS%
)
if "%1" == "" goto help
if "%1" == "help" (
:help
echo.Please use `make ^<target^>` where ^<target^> is one of
echo. html to make standalone HTML files
echo. dirhtml to make HTML files named index.html in directories
echo. singlehtml to make a single large HTML file
echo. pickle to make pickle files
echo. json to make JSON files
echo. htmlhelp to make HTML files and a HTML help project
echo. qthelp to make HTML files and a qthelp project
echo. devhelp to make HTML files and a Devhelp project
echo. epub to make an epub
echo. epub3 to make an epub3
echo. latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter
echo. text to make text files
echo. man to make manual pages
echo. texinfo to make Texinfo files
echo. gettext to make PO message catalogs
echo. changes to make an overview over all changed/added/deprecated items
echo. xml to make Docutils-native XML files
echo. pseudoxml to make pseudoxml-XML files for display purposes
echo. linkcheck to check all external links for integrity
echo. doctest to run all doctests embedded in the documentation if enabled
echo. coverage to run coverage check of the documentation if enabled
echo. dummy to check syntax errors of document sources
goto end
)
if "%1" == "clean" (
for /d %%i in (%BUILDDIR%\*) do rmdir /q /s %%i
del /q /s %BUILDDIR%\*
goto end
)
REM Check if sphinx-build is available and fallback to Python version if any
%SPHINXBUILD% 1>NUL 2>NUL
if errorlevel 9009 goto sphinx_python
goto sphinx_ok
:sphinx_python
set SPHINXBUILD=python -m sphinx.__init__
%SPHINXBUILD% 2> nul
if errorlevel 9009 (
echo.
echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
echo.installed, then set the SPHINXBUILD environment variable to point
echo.to the full path of the 'sphinx-build' executable. Alternatively you
echo.may add the Sphinx directory to PATH.
echo.
echo.If you don't have Sphinx installed, grab it from
echo.http://sphinx-doc.org/
exit /b 1
)
:sphinx_ok
if "%1" == "html" (
%SPHINXBUILD% -b html %ALLSPHINXOPTS% %BUILDDIR%/html
if errorlevel 1 exit /b 1
echo.
echo.Build finished. The HTML pages are in %BUILDDIR%/html.
goto end
)
if "%1" == "dirhtml" (
%SPHINXBUILD% -b dirhtml %ALLSPHINXOPTS% %BUILDDIR%/dirhtml
if errorlevel 1 exit /b 1
echo.
echo.Build finished. The HTML pages are in %BUILDDIR%/dirhtml.
goto end
)
if "%1" == "singlehtml" (
%SPHINXBUILD% -b singlehtml %ALLSPHINXOPTS% %BUILDDIR%/singlehtml
if errorlevel 1 exit /b 1
echo.
echo.Build finished. The HTML pages are in %BUILDDIR%/singlehtml.
goto end
)
if "%1" == "pickle" (
%SPHINXBUILD% -b pickle %ALLSPHINXOPTS% %BUILDDIR%/pickle
if errorlevel 1 exit /b 1
echo.
echo.Build finished; now you can process the pickle files.
goto end
)
if "%1" == "json" (
%SPHINXBUILD% -b json %ALLSPHINXOPTS% %BUILDDIR%/json
if errorlevel 1 exit /b 1
echo.
echo.Build finished; now you can process the JSON files.
goto end
)
if "%1" == "htmlhelp" (
%SPHINXBUILD% -b htmlhelp %ALLSPHINXOPTS% %BUILDDIR%/htmlhelp
if errorlevel 1 exit /b 1
echo.
echo.Build finished; now you can run HTML Help Workshop with the ^
.hhp project file in %BUILDDIR%/htmlhelp.
goto end
)
if "%1" == "qthelp" (
%SPHINXBUILD% -b qthelp %ALLSPHINXOPTS% %BUILDDIR%/qthelp
if errorlevel 1 exit /b 1
echo.
echo.Build finished; now you can run "qcollectiongenerator" with the ^
.qhcp project file in %BUILDDIR%/qthelp, like this:
echo.^> qcollectiongenerator %BUILDDIR%\qthelp\XOD.qhcp
echo.To view the help file:
echo.^> assistant -collectionFile %BUILDDIR%\qthelp\XOD.ghc
goto end
)
if "%1" == "devhelp" (
%SPHINXBUILD% -b devhelp %ALLSPHINXOPTS% %BUILDDIR%/devhelp
if errorlevel 1 exit /b 1
echo.
echo.Build finished.
goto end
)
if "%1" == "epub" (
%SPHINXBUILD% -b epub %ALLSPHINXOPTS% %BUILDDIR%/epub
if errorlevel 1 exit /b 1
echo.
echo.Build finished. The epub file is in %BUILDDIR%/epub.
goto end
)
if "%1" == "epub3" (
%SPHINXBUILD% -b epub3 %ALLSPHINXOPTS% %BUILDDIR%/epub3
if errorlevel 1 exit /b 1
echo.
echo.Build finished. The epub3 file is in %BUILDDIR%/epub3.
goto end
)
if "%1" == "latex" (
%SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex
if errorlevel 1 exit /b 1
echo.
echo.Build finished; the LaTeX files are in %BUILDDIR%/latex.
goto end
)
if "%1" == "latexpdf" (
%SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex
cd %BUILDDIR%/latex
make all-pdf
cd %~dp0
echo.
echo.Build finished; the PDF files are in %BUILDDIR%/latex.
goto end
)
if "%1" == "latexpdfja" (
%SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex
cd %BUILDDIR%/latex
make all-pdf-ja
cd %~dp0
echo.
echo.Build finished; the PDF files are in %BUILDDIR%/latex.
goto end
)
if "%1" == "text" (
%SPHINXBUILD% -b text %ALLSPHINXOPTS% %BUILDDIR%/text
if errorlevel 1 exit /b 1
echo.
echo.Build finished. The text files are in %BUILDDIR%/text.
goto end
)
if "%1" == "man" (
%SPHINXBUILD% -b man %ALLSPHINXOPTS% %BUILDDIR%/man
if errorlevel 1 exit /b 1
echo.
echo.Build finished. The manual pages are in %BUILDDIR%/man.
goto end
)
if "%1" == "texinfo" (
%SPHINXBUILD% -b texinfo %ALLSPHINXOPTS% %BUILDDIR%/texinfo
if errorlevel 1 exit /b 1
echo.
echo.Build finished. The Texinfo files are in %BUILDDIR%/texinfo.
goto end
)
if "%1" == "gettext" (
%SPHINXBUILD% -b gettext %I18NSPHINXOPTS% %BUILDDIR%/locale
if errorlevel 1 exit /b 1
echo.
echo.Build finished. The message catalogs are in %BUILDDIR%/locale.
goto end
)
if "%1" == "changes" (
%SPHINXBUILD% -b changes %ALLSPHINXOPTS% %BUILDDIR%/changes
if errorlevel 1 exit /b 1
echo.
echo.The overview file is in %BUILDDIR%/changes.
goto end
)
if "%1" == "linkcheck" (
%SPHINXBUILD% -b linkcheck %ALLSPHINXOPTS% %BUILDDIR%/linkcheck
if errorlevel 1 exit /b 1
echo.
echo.Link check complete; look for any errors in the above output ^
or in %BUILDDIR%/linkcheck/output.txt.
goto end
)
if "%1" == "doctest" (
%SPHINXBUILD% -b doctest %ALLSPHINXOPTS% %BUILDDIR%/doctest
if errorlevel 1 exit /b 1
echo.
echo.Testing of doctests in the sources finished, look at the ^
results in %BUILDDIR%/doctest/output.txt.
goto end
)
if "%1" == "coverage" (
%SPHINXBUILD% -b coverage %ALLSPHINXOPTS% %BUILDDIR%/coverage
if errorlevel 1 exit /b 1
echo.
echo.Testing of coverage in the sources finished, look at the ^
results in %BUILDDIR%/coverage/python.txt.
goto end
)
if "%1" == "xml" (
%SPHINXBUILD% -b xml %ALLSPHINXOPTS% %BUILDDIR%/xml
if errorlevel 1 exit /b 1
echo.
echo.Build finished. The XML files are in %BUILDDIR%/xml.
goto end
)
if "%1" == "pseudoxml" (
%SPHINXBUILD% -b pseudoxml %ALLSPHINXOPTS% %BUILDDIR%/pseudoxml
if errorlevel 1 exit /b 1
echo.
echo.Build finished. The pseudo-XML files are in %BUILDDIR%/pseudoxml.
goto end
)
if "%1" == "dummy" (
%SPHINXBUILD% -b dummy %ALLSPHINXOPTS% %BUILDDIR%/dummy
if errorlevel 1 exit /b 1
echo.
echo.Build finished. Dummy builder generates no files.
goto end
)
:end

View File

@@ -1,2 +0,0 @@
sphinx
sphinxcontrib-plantuml

View File

@@ -1,176 +0,0 @@
*****************
Program Structure
*****************
Instead of writing a program in a text editor you're drawing it in XOD IDE.
Underlying format of XOD programs is a set of JSON-files, but it doesn't
matter much for the end user. These files are not intended to be manipulated
directly and are used just to store and distribute projects.
Nodes
=====
.. figure:: images/structure/pow.*
:align: right
:figwidth: 20%
An example of “pow” node that takes a power of input number and passes it
further.
Any XOD program consists of nodes that interact with each other. Roughly you can
think of nodes as electronic components: ICs, LEDs, mechanical switches, etc.
Every node has a *type* that determines what the node can and will do in the
program. Some nodes represent hardware modules (thermometers,
accelerometers, relays, motors), other nodes represent logic and mathematical
transformations (sum, comparison, merge, filter); another are watches and
constants used to configure and control behavior.
Of course, you may have as many nodes of a particular type as necessary.
Many node types are built in XOD. Also, you can include third-party node types,
create your own and share them with the community.
Nodes are presented as rectangles with a label. You can overwrite default label
with your own for clarity. It doesn't change a logic anyhow. For example, it is
a good idea to label a node “Water Pump” instead of default “Relay” if you have
a pump connected to the relay. After all, youre trying to control a pump, not an
abstract relay.
Pins, Inputs, and Outputs
=========================
Every node has pins. They are depicted by small circles along edges of a node.
Rougly if a node is analogous to IC, its pins are ICs legs.
The pin can be either input or output. Input pins are always on top and
outputs are at the bottom.
Think of inputs as data receivers and outputs are data senders or data sources.
Give something on nodes input and itll get triggered to process the data, make
something useful and possibly produce some output as a reaction. The reactive
programming concept in action.
Some pins have labels. They are only for visual differentiation and consist
of few letters that are mnemonics for pin function. Some mnemonics are widespread
like EN for “enable”, VAL for “value”, CK for “clock”. Other are node-specific
but anyway easy to remember. If there are just a few pins on the node and their
designation is unambigous it is OK to left labels out because it makes programs
more compact.
Every pin has a type on their own. The type denotes kind of data this pin was
designed to work with. There are few basic types: pulse, boolean, number,
string, array and a grouping mechanism that allows you create new composite
pin types. But more on that later.
Node Categories
===============
You may already noticed that nodes are colored differently. The color depends on
node type or rather on type *category*. There are few of them.
*Pure functional* nodes are gray. They react to input change instantly.
Think that their outputs are hard-bound to inputs. They are functions in the
mathematical sense: change of an input parameter lead to re-computation of the
function and update of the output. Also, pure functional nodes cannot change
their outputs sporadically without input change. Pure function nodes are used
to perform mathematical and logical operations, data transformations,
filtering, and formatting.
*Hardware* nodes are purple. They represent physical peripheral devices such as
sensors or actuators. Their inputs are commands to perform something useful, and
their outputs are signals of something has happened in the real world.
*Configuration* nodes (or config nodes for short) are green. They serve a value
that passes as a signal at the very beginning of program execution. You would
usually use constants to tweak the system. You can change the value served either
from patch editor directly or via a GUI board.
*Watch* nodes are pink. They show you the last signal value they have received.
You would use them to debug the program and to gather system output. Watches
are available in patch editor and on GUI boards as well.
Links
=====
.. figure:: images/structure/knob-led.*
:align: right
:figwidth: 20%
Program example where four nodes are linked together to produce anti-dimmer.
Rotate the knob more to get LED shine dimmer.
Nodes alone can't make your program different. To do something new they should
be connected to work together. To be more precise you dont connect nodes,
but you connect their input and output pins. These connections are called *links*.
Rougly links are analogous to wires or traces in an electrical circuit.
Once there is a link between an output and an input any data appearing on the
output will instantly flow into the input. Which in turn will lead to node
update and further cascade update of other nodes behind that node.
It is only allowed to link inputs with outputs. You cant connect output to
output for example. Also, an output can have an arbitrary number of outgoing links,
but an input can have at most one incoming link. There is a reason for this namely
explicit handling of simultaneous signals and conflict resolution. Well talk
about this in :ref:`execution` chapter.
Links can be drawn as straight lines or as polylines at your will. An appearance
doesn't affect logic anyhow. Its just for program clearness.
Cycles and Buffers
==================
One thing to note is that links should not create cycles or loops within the
program. Thus, you will be not allowed to create a link that would create a
path that data can flow infinitely round after round.
However, there are cases when feeding a signal back is required. For these
cases there is a couple of special nodes that can be put in-between to
close the loop. But more on that later.
Patches
=======
A collection of nodes and links between them that are drawn together on single
canvas is called a *patch*. Patches a rough analog to files or modules in
classic programming.
In contrast to usual programming, however, there is no such thing as an entry point.
All patches of your program are equal in rights and execute in parallel.
You can give your patch input and output pins effectively turning it into
a new node type that you can place and use in your other patches and projects.
Schemes
=======
Schemes are a different kind of patches that describe your hardware wiring rather
than your program logic. They are static and just declare which things
connected where.
Nodes on schemes are required by those logical nodes that represent hardware so
that theyre able to convert data to real electrical signals and back when required.
Pins of hardware nodes has another type system as well. A pin can require or provide
*features*. Features denote supported hardware interfaces, electrical capabilities
of physical devices.
Again, there are hardware nodes built in and you can easily create your own or use
third-party nodes to communicate with potentially any piece of hardware in your
project.
Schemes are not restricted to a single target processor that will run the program.
They could include a definition of several distinct devices that work together for
one mission. For example, you can have a button directly linked to an LED on logical
patch but split them on hardware level to a pair of distinct devices: one with
button and one with LED connected by a 433 MHz channel or an Internet cloud service
accessed with Wi-Fi.
Once you look to a scheme of some XOD project, it should become obvious how to
wire electronic modules and components to replicate that device.
UI Boards
=========
TODO

View File

@@ -1,13 +0,0 @@
# EditorConfig helps developers define and maintain consistent
# coding styles between different editors and IDEs
# http://editorconfig.org
root = true
[*]
indent_style = space
indent_size = 2
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true

View File

@@ -1 +0,0 @@
/client/

View File

@@ -1,19 +0,0 @@
*.csv
*.dat
*.iml
*.log
*.out
*.pid
*.seed
*.sublime-*
*.swo
*.swp
*.tgz
*.xml
.DS_Store
.idea
.project
.strong-pm
coverage
node_modules
npm-debug.log

View File

@@ -1,3 +0,0 @@
{
"generator-loopback": {}
}

View File

@@ -1,48 +0,0 @@
{
"name": "xod-server",
"version": "0.0.1",
"description": "Here will be server-side scripts.",
"main": "server/server.js",
"scripts": {
"start": "node .",
"posttest": "npm run lint && nsp check",
"dev": "npm-watch",
"reset": "node ./scripts/resetDb.js",
"addUser": "node ./scripts/addUser.js"
},
"keywords": [
"xod",
"amperka"
],
"author": "Amperka team",
"license": "MIT",
"engines": {
"node": "6.0.0"
},
"dependencies": {
"compression": "^1.0.3",
"cors": "^2.5.2",
"helmet": "^1.3.0",
"loopback": "^2.22.0",
"loopback-boot": "^2.6.5",
"loopback-component-explorer": "^2.4.0",
"loopback-connector-mongodb": "^1.15.2",
"loopback-datasource-juggler": "^2.39.0",
"ramda": "^0.23.0",
"serve-favicon": "^2.0.1",
"strong-error-handler": "^1.0.1"
},
"devDependencies": {
"npm-watch": "^0.1.6",
"nsp": "^2.1.0"
},
"watch": {
"start": {
"patterns": [
"server",
"node_modules"
],
"extensions": "js, json"
}
}
}

View File

@@ -1,21 +0,0 @@
const R = require('ramda');
const server = require('../server/server.js');
const createUser = require('./parts/create-user.js');
const options = R.slice(2, Infinity, process.argv);
if (options.length !== 3) {
console.error("(!) You should pass three parameters: username, email and password!");
console.error("For example: npm run addUser test test@amperka.ru qwe123");
process.exit(1);
}
const userOptions = {
username: options[0],
email: options[1],
password: options[2],
};
createUser(userOptions)(server)
.then(() => { process.exit(); })
.catch(err => { console.error(err); process.exit(1); })

View File

@@ -1,13 +0,0 @@
// Create a user
module.exports = userOptions => app =>
new Promise(resolve => {
const User = app.models.user;
User.create(
userOptions,
(err, instance) => {
if (err) { console.error(err); }
console.log(`+ Add user ${instance.username}:${userOptions.password}: successfully.`);
resolve(app);
});
});

View File

@@ -1,47 +0,0 @@
const R = require('ramda');
const server = require('../server/server.js');
const createUser = require('./parts/create-user.js');
/* eslint-disable max-len */
const userOptions = {
email: 'test@amperka.ru',
username: 'Amperka',
password: 'qwe123',
};
// Utils
const emptyLine = (data) => { console.log(''); return data; };
// Destroy all datas!
const destroyAll = (app) =>
new Promise(resolve => {
const models = R.pipe(
R.prop('models'),
R.toPairs,
R.reject(([modelName]) => modelName === 'AccessToken')
)(app);
let curCount = 0;
R.forEach(
([modelName, model]) => model.destroyAll(
(err, info) => {
if (err) { console.error(err); }
console.log(`- Clear model '${modelName}': removed ${info.count} records.`);
curCount++;
if (curCount === models.length) { resolve(app); }
}
)
)(models);
});
// Run
Promise.resolve(server)
.then(destroyAll)
.then(emptyLine)
.then(createUser(userOptions))
.then(emptyLine)
.then(() => {
console.log('=== It\'s done! ===');
process.exit();
});

View File

@@ -1,4 +0,0 @@
module.exports = function enableAuthentication(server) {
// enable authentication
server.enableAuth();
};

View File

@@ -1,6 +0,0 @@
module.exports = function rootBoot(server) {
// Install a `/` route that returns server status
const router = server.loopback.Router();
router.get('/', server.loopback.status());
server.use(router);
};

View File

@@ -1,5 +0,0 @@
{
"loopback-component-explorer": {
"mountPath": "/explorer"
}
}

View File

@@ -1,24 +0,0 @@
{
"restApiRoot": "/api",
"host": "0.0.0.0",
"port": 3000,
"remoting": {
"context": false,
"rest": {
"normalizeHttpPath": false,
"xml": false
},
"json": {
"strict": false,
"limit": "100kb"
},
"urlencoded": {
"extended": true,
"limit": "100kb"
},
"cors": false,
"handleErrors": false
},
"legacyExplorer": false,
"aclErrorStatus": 403
}

View File

@@ -1,7 +0,0 @@
/* eslint-disable max-len */
module.exports = {
project: {
validProjectName: 'Project name should contain only latin alphabet, digits, minus or underscore char.',
},
};

View File

@@ -1,16 +0,0 @@
{
"db": {
"name": "db",
"connector": "memory"
},
"Mongo": {
"host": "127.0.0.1",
"port": 27017,
"url": "mongodb://127.0.0.1:27017/xod",
"database": "xod",
"password": "",
"name": "Mongo",
"user": "",
"connector": "mongodb"
}
}

View File

@@ -1,10 +0,0 @@
{
"final:after": {
"strong-error-handler": {
"params": {
"debug": true,
"log": true
}
}
}
}

View File

@@ -1,55 +0,0 @@
{
"initial:before": {
"loopback#favicon": {}
},
"initial": {
"compression": {},
"cors": {
"params": {
"origin": true,
"credentials": true,
"maxAge": 86400
}
},
"helmet#xssFilter": {},
"helmet#frameguard": {
"params": [
"deny"
]
},
"helmet#hsts": {
"params": {
"maxAge": 0,
"includeSubdomains": true
}
},
"helmet#hidePoweredBy": {},
"helmet#ieNoOpen": {},
"helmet#noSniff": {},
"helmet#noCache": {
"enabled": false
}
},
"session": {},
"auth": {},
"parse": {},
"routes": {
"loopback#rest": {
"paths": [
"${restApiRoot}"
]
}
},
"files": {
"loopback#static": {
"paths": "/public",
"params": "./public"
}
},
"final": {
"loopback#urlNotFound": {}
},
"final:after": {
"strong-error-handler": {}
}
}

View File

@@ -1,51 +0,0 @@
{
"_meta": {
"sources": [
"loopback/common/models",
"loopback/server/models",
"../common/models",
"./models"
],
"mixins": [
"loopback/common/mixins",
"loopback/server/mixins",
"../common/mixins",
"./mixins"
]
},
"AccessToken": {
"dataSource": "Mongo",
"public": false
},
"ACL": {
"dataSource": "Mongo",
"public": false
},
"RoleMapping": {
"dataSource": "Mongo",
"public": false
},
"Role": {
"dataSource": "Mongo",
"public": false
},
"User": {
"dataSource": "Mongo",
"public": false,
"options": {
"emailVerificationRequired": false
}
},
"project": {
"dataSource": "Mongo",
"public": true
},
"package": {
"dataSource": "Mongo",
"public": true
},
"user": {
"dataSource": "Mongo",
"public": true
}
}

View File

@@ -1,19 +0,0 @@
const methods = require('../utils/methods');
module.exports = function PakcageModel(Package) {
methods.filter(
[
'create',
'find',
'findOne',
'findById',
'count',
'exists',
'__get__author',
],
Package
);
};

View File

@@ -1,24 +0,0 @@
{
"name": "package",
"base": "PersistedModel",
"idInjection": true,
"options": {
"validateUpsert": true
},
"properties": {
"name": {
"type": "string",
"required": true
}
},
"validations": [],
"relations": {
"author": {
"type": "belongsTo",
"model": "Profile",
"foreignKey": "ownerId"
}
},
"acls": [],
"methods": {}
}

View File

@@ -1,41 +0,0 @@
const errors = require('../constants/errors');
const methods = require('../utils/methods');
module.exports = function ProjectModel(Project) {
// validation methods
function checkProjectName(err) {
if (/^[a-zA-Z0-9_\-]*$/.test(this.name) === false) {
err();
}
}
// validation bindings
Project.validate(
'validProjectName',
checkProjectName,
{
message: errors.project.validProjectName,
}
);
// methods
methods.filter(
[
'create',
'upsert',
'deleteById',
'find',
'findOne',
'findById',
'count',
'exists',
'__get__author',
],
Project
);
};

View File

@@ -1,67 +0,0 @@
{
"name": "project",
"base": "PersistedModel",
"strict": true,
"idInjection": true,
"options": {
"validateUpsert": true
},
"properties": {
"ownerId": {
"type": "number",
"required": true
},
"name": {
"type": "string",
"required": true
},
"createdAt": {
"type": "date",
"required": false,
"defaultFn": "now"
},
"updatedAt": {
"type": "date",
"required": false,
"defaultFn": "now"
},
"pojo": {
"type": "string"
},
"public": {
"type": "boolean",
"required": true,
"default": false
}
},
"validations": [],
"relations": {
"author": {
"type": "belongsTo",
"model": "user",
"foreignKey": "ownerId"
}
},
"acls": [
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "$unauthenticated",
"permission": "DENY"
},
{
"accessType": "EXECUTE",
"principalType": "ROLE",
"principalId": "$authenticated",
"permission": "ALLOW",
"property": "create"
},
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "$owner",
"permission": "ALLOW"
}
],
"methods": {}
}

View File

@@ -1,85 +0,0 @@
const R = require('ramda');
const methods = require('../utils/methods');
const extract = source => JSON.parse(JSON.stringify(source)); // @TODO: Remove this hack
module.exports = function UserModel(User) {
User.validatesUniquenessOf('username', { message: 'User already exists' });
User.validatesLengthOf('password', { min: 6, message: { min: 'Password is too short' } });
User.validatesUniquenessOf('email', { message: 'Email is not unique' });
methods.filter(
[
'logout',
'resetPassword',
'confirm',
'__findById__projects',
'__get__projects',
'__count__projects',
],
User
);
// /user/login
// Custom login with returning user data, includes project list
User.signIn = (credentials, send) => {
const app = User.app;
const Project = app.models.Project;
User.login(
credentials,
'user',
(uErr, usr) => {
const userData = extract(usr);
Project.find({
where: { ownerId: userData.userId },
}, (pErr, proj) => {
const err = (uErr || pErr) ? R.merge(uErr, pErr) : null;
send(err, {
id: userData.id,
ttl: userData.ttl,
userId: userData.userId,
username: userData.user.username,
userpic: userData.user.userpic,
projects: proj,
});
});
}
);
};
User.remoteMethod('signIn', {
http: { path: '/login', verb: 'post' },
accepts: { arg: 'credentials', type: 'object', http: { source: 'body' } },
returns: [
{ arg: 'id', type: 'string', root: true },
{ arg: 'ttl', type: 'number', root: true },
{ arg: 'userId', type: 'string', root: true },
{ arg: 'username', type: 'string', root: true },
{ arg: 'userpic', type: 'string', root: true },
{ arg: 'projects', type: ['object'], root: true },
],
});
// /user/{id}
// Returns userdata, includes project list
User.getUserData = (id, send) => {
User.findOne({
where: { id },
include: 'projects',
}, (err, result) => {
send(err, result);
});
};
User.remoteMethod('getUserData', {
http: { path: '/:id', verb: 'get' },
accepts: { arg: 'id', type: 'string', required: true },
returns: [
{ arg: 'id', type: 'string', root: true },
{ arg: 'username', type: 'string', root: true },
{ arg: 'userpic', type: 'string', root: true },
{ arg: 'projects', type: ['object'], root: true },
],
});
};

View File

@@ -1,50 +0,0 @@
{
"name": "user",
"base": "User",
"strict": false,
"idInjection": true,
"hidden": [
"email"
],
"protected": [
"email"
],
"properties": {
"username": {
"type": "string",
"required": true
},
"userpic": {
"type": "string"
}
},
"validations": [],
"relations": {
"projects": {
"type": "hasMany",
"model": "project",
"foreignKey": "ownerId"
},
"packages": {
"type": "hasMany",
"model": "package",
"foreignKey": "ownerId"
}
},
"acls": [
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "$authenticated",
"permission": "ALLOW"
},
{
"accessType": "EXECUTE",
"principalType": "ROLE",
"principalId": "$everyone",
"permission": "ALLOW",
"property": "signIn"
}
],
"methods": {}
}

View File

@@ -1,26 +0,0 @@
const loopback = require('loopback');
const boot = require('loopback-boot');
const app = module.exports = loopback();
// start the web server
app.start = () => app.listen(() => {
app.emit('started');
const baseUrl = app.get('url').replace(/\/$/, '');
console.log('Web server listening at: %s', baseUrl);
if (app.get('loopback-component-explorer')) {
const explorerPath = app.get('loopback-component-explorer').mountPath;
console.log('Browse your REST API at %s%s', baseUrl, explorerPath);
}
});
// Bootstrap the application, configure models, datasources and middleware.
// Sub-apps like REST API are mounted via boot scripts.
boot(app, __dirname, (err) => {
if (err) throw err;
// start the server if `$ node server.js`
if (require.main === module) {
app.start();
}
});

View File

@@ -1,117 +0,0 @@
const R = require('ramda');
const list = [
{ name: 'create', isStatic: true },
{ name: 'upsert', isStatic: true },
{ name: 'updateAll', isStatic: true },
{ name: 'updateAttributes', isStatic: false },
{ name: 'replaceOrCreate', isStatic: true },
{ name: 'createChangeStream', isStatic: true },
{ name: 'find', isStatic: true },
{ name: 'findById', isStatic: true },
{ name: 'findOne', isStatic: true },
{ name: 'deleteById', isStatic: true },
{ name: 'count', isStatic: true },
{ name: 'exists', isStatic: true },
{ name: 'confirm', isStatic: true },
{ name: 'login', isStatic: true },
{ name: 'logout', isStatic: true },
{ name: 'resetPassword', isStatic: true },
{ name: '__count__', isStatic: false },
{ name: '__create__', isStatic: false },
{ name: '__delete__', isStatic: false },
{ name: '__destroyById__', isStatic: false },
{ name: '__findById__', isStatic: false },
{ name: '__get__', isStatic: false },
{ name: '__updateById__', isStatic: false },
];
const disable = R.curry(
(methods, Model) => {
if (!R.isArrayLike(methods)) { return; }
methods.forEach(method => {
Model.disableRemoteMethod(method.name, method.isStatic);
});
}
);
// :: ['methodName', ...] -> [{name: methodName, isStatic: boolean}, ...]
const get = R.map(
R.compose(
R.flip(R.find)(list),
R.propEq('name')
)
);
const reject = R.curry(
(methods, Model) => {
const listToDisable = get(methods);
return disable(listToDisable, Model);
}
);
const filter = R.curry(
(methodsToExpose, Model) => {
if (Model && Model.sharedClass) {
const publicMethods = methodsToExpose || [];
const methods = Model.sharedClass.methods();
const relationMethods = [];
const hiddenMethods = [];
Object.keys(Model.definition.settings.relations).forEach(relation => {
relationMethods.push({ name: `__findById__${relation}`, isStatic: false });
relationMethods.push({ name: `__destroyById__${relation}`, isStatic: false });
relationMethods.push({ name: `__updateById__${relation}`, isStatic: false });
relationMethods.push({ name: `__exists__${relation}`, isStatic: false });
relationMethods.push({ name: `__link__${relation}`, isStatic: false });
relationMethods.push({ name: `__get__${relation}`, isStatic: false });
relationMethods.push({ name: `__create__${relation}`, isStatic: false });
relationMethods.push({ name: `__update__${relation}`, isStatic: false });
relationMethods.push({ name: `__destroy__${relation}`, isStatic: false });
relationMethods.push({ name: `__unlink__${relation}`, isStatic: false });
relationMethods.push({ name: `__count__${relation}`, isStatic: false });
relationMethods.push({ name: `__delete__${relation}`, isStatic: false });
});
methods.concat(relationMethods).forEach(method => {
const methodName = method.name;
if (publicMethods.indexOf(methodName) < 0) {
hiddenMethods.push(methodName);
Model.disableRemoteMethod(methodName, method.isStatic);
}
});
}
}
);
const rejectUnauthorized = (Model) => {
const acls = Model.definition.settings.acls || [];
let authorizedMethods = [];
acls.forEach((acl) => {
if (acl.permission === 'ALLOW' && acl.property) {
if (Array.isArray(acl.property)) {
authorizedMethods = authorizedMethods.concat(acl.property);
} else if (acl.property !== '*') {
authorizedMethods.push(acl.property);
}
}
});
filter(authorizedMethods, Model);
};
module.exports = {
list,
reject,
rejectUnauthorized,
filter,
};

File diff suppressed because it is too large Load Diff