From cadc17b6922526f0c97d1fa0fa32639f240639cb Mon Sep 17 00:00:00 2001 From: David Lamparter Date: Sun, 10 Mar 2013 04:42:34 +0100 Subject: doc: add some graphics --- protocol.tex | 11 ++ svg/proto-actor.eps | 450 +++++++++++++++++++++++++++++++++++++++++++++++++++ svg/proto-actor.svg | 281 ++++++++++++++++++++++++++++++++ svg/proto-sensor.eps | 381 +++++++++++++++++++++++++++++++++++++++++++ svg/proto-sensor.svg | 202 +++++++++++++++++++++++ 5 files changed, 1325 insertions(+) create mode 100644 svg/proto-actor.eps create mode 100644 svg/proto-actor.svg create mode 100644 svg/proto-sensor.eps create mode 100644 svg/proto-sensor.svg diff --git a/protocol.tex b/protocol.tex index 1b57783..3f8eb10 100644 --- a/protocol.tex +++ b/protocol.tex @@ -3,6 +3,9 @@ \usepackage{hyperref} \hypersetup{colorlinks=true,linkcolor=blue} \usepackage{xltxtra} +\usepackage{graphicx} +\DeclareGraphicsExtensions{.eps} +\usepackage{wrapfig} \usepackage{longtable} \usepackage[font=small,labelfont=bf]{caption} \setmainfont[Mapping=tex-text]{Delicious-Roman} @@ -36,6 +39,14 @@ \end{tabular} \end{table} +\begin{wrapfigure}{l}{50mm} +\includegraphics{svg/proto-sensor} +\end{wrapfigure} + +\begin{wrapfigure}{l}{60mm} +\includegraphics{svg/proto-actor} +\end{wrapfigure} + \section{addressing} Sensors and lights share a 12-bit address space, located in the CAN address at diff --git a/svg/proto-actor.eps b/svg/proto-actor.eps new file mode 100644 index 0000000..d657a21 --- /dev/null +++ b/svg/proto-actor.eps @@ -0,0 +1,450 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Creator: cairo 1.10.2 (http://cairographics.org) +%%CreationDate: Thu Sep 20 13:34:44 2012 +%%Pages: 1 +%%BoundingBox: 0 -1 153 69 +%%DocumentData: Clean7Bit +%%LanguageLevel: 2 +%%EndComments +%%BeginProlog +/cairo_eps_state save def +/dict_count countdictstack def +/op_count count 1 sub def +userdict begin +/q { gsave } bind def +/Q { grestore } bind def +/cm { 6 array astore concat } bind def +/w { setlinewidth } bind def +/J { setlinecap } bind def +/j { setlinejoin } bind def +/M { setmiterlimit } bind def +/d { setdash } bind def +/m { moveto } bind def +/l { lineto } bind def +/c { curveto } bind def +/h { closepath } bind def +/re { exch dup neg 3 1 roll 5 3 roll moveto 0 rlineto + 0 exch rlineto 0 rlineto closepath } bind def +/S { stroke } bind def +/f { fill } bind def +/f* { eofill } bind def +/n { newpath } bind def +/W { clip } bind def +/W* { eoclip } bind def +/BT { } bind def +/ET { } bind def +/pdfmark where { pop globaldict /?pdfmark /exec load put } + { globaldict begin /?pdfmark /pop load def /pdfmark + /cleartomark load def end } ifelse +/BDC { mark 3 1 roll /BDC pdfmark } bind def +/EMC { mark /EMC pdfmark } bind def +/cairo_store_point { /cairo_point_y exch def /cairo_point_x exch def } def +/Tj { show currentpoint cairo_store_point } bind def +/TJ { + { + dup + type /stringtype eq + { show } { -0.001 mul 0 cairo_font_matrix dtransform rmoveto } ifelse + } forall + currentpoint cairo_store_point +} bind def +/cairo_selectfont { cairo_font_matrix aload pop pop pop 0 0 6 array astore + cairo_font exch selectfont cairo_point_x cairo_point_y moveto } bind def +/Tf { pop /cairo_font exch def /cairo_font_matrix where + { pop cairo_selectfont } if } bind def +/Td { matrix translate cairo_font_matrix matrix concatmatrix dup + /cairo_font_matrix exch def dup 4 get exch 5 get cairo_store_point + /cairo_font where { pop cairo_selectfont } if } bind def +/Tm { 2 copy 8 2 roll 6 array astore /cairo_font_matrix exch def + cairo_store_point /cairo_font where { pop cairo_selectfont } if } bind def +/g { setgray } bind def +/rg { setrgbcolor } bind def +/d1 { setcachedevice } bind def +%%EndProlog +%!FontType1-1.1 f-0-0 1.0 +11 dict begin +/FontName /f-0-0 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/FontBBox {0 -176 467 694 } readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 1 /uni0063 put +dup 2 /uni006F put +dup 3 /uni006E put +dup 4 /uni0074 put +dup 5 /uni0072 put +dup 6 /uni006C put +dup 7 /uni0065 put +dup 8 /uni0061 put +dup 9 /uni0020 put +dup 10 /uni0034 put +dup 11 /uni0035 put +dup 12 /uni0064 put +dup 13 /uni0037 put +dup 14 /uni0038 put +dup 15 /uni0069 put +dup 16 /uni0070 put +dup 17 /uni006B put +dup 18 /uni0073 put +readonly def +currentdict end +currentfile eexec +f983ef0097ece636fb4a96c74d26ab84185f6dfa4a16a7a1c27bbe3f1156aea698df336d20b467 +b10e7f33846656653c5ac6962759d3056cbdb3190bac614b984bf5a132dc418192443014ba63de +800d392b6fea026574bb2535fd7bb5338f35bf15a88ea328fdaa49670c7852e3d060f3c5d6b07f +2ef6d0f22646c5d18e19a2ae3ee120390f6dd96f76dcf1e127de5e9299077a00c17c0d71e36e5b +9d5ec58fceda57739a6a4214d4b79d6c48d2784b60c320323c7acddddf34db833cac0cf109f799 +69d114a330d372e5c978a66acc84e3fe5557f6240856a013ffaa0199444e5c5036f775eba4a5c5 +8cde66cf604b9aca2178431127b8a1ff7ed633a65c04600af5f573483112251caf31d0c7c7e1a8 +decc942f4bccae86153efd43475966e5202fd074454fb512388d1cf765ac5cf5ff1d0a81ff8a70 +3470b136c9d4e56f728984f30c1728cf4abe44bb355f471c677b4e518cbcc9f401011f0184ccf0 +a1e79f1bc95609148ced99e98d133373a9a9a787c69bfa9348a48b710a814bb7eca020313731c7 +f41f24c99f0e613a9f6ee519682d678904fe21be9bb9473069cbdde2dfa025965925d0cadb0983 +6fc20bee7b48e711e12562903dcc86ec9f2f811326806238024b1a22d39283fbf0ba7ab514a7a7 +452dfe531a06b65e749834efbcf202d452dec8fa2e4d3c823342a5d4034fe541c1ec44b7123d67 +4560305cd38af64b72f637c260d372e53c1dd26e444f030a177b8645b78c239563b2b810e083f2 +22689f5d896ca8228f29e7e73b1fd9bedfe588bc3183d59336841e123193dcc5107125f4faeeee +40bced58592a4273935c2a7aa93f15bbc90cf9d6a7df9211c27d36b5a6204ded349c7fa5c86462 +0a7ccb7e14b0179ab9551f8b9bbd386e5c835f79d026ce9f5b78a53d1b9bdf0b5271d13a1e4873 +efc2ce938539ec2f82b98f658046fdff72c728e1ea3999e0280c4e1fcc1e2b3599e2ce165f8275 +a953105d6b9209122c945eee412c70ae0611ac0f4793256617a644871f2d2f24a79f8458b7aa20 +19a803e9729455f77e37143b2e58228bb47ff75c87db984820b2a76dbf8ba050e2493f96b3f6ae +19589e4d3afd47b0c16f5967451ccc64e9e2febe96f58ad5bd387b4a97cb3e24afc172a944a6f5 +eb0c0e08abb017e7ce2749e9792bc0e824554c74679bf993459d9227ac18eb96cf9c0b74eaca5a +7d87bd7bb65d8a8fb8bdd52ab632a7e58fa076d46431045849cda80fe002ba764bcc2c50c3444f +d10d1c98764ef35285267efa36aa88c4277705adca9e08f0705bf6c1761facbb3f07608383ce5c +63bfb168c1c996a703217976ff7df8c1328b048e8260eba87058acfe685cdd699fdaec6f15b250 +dc297edcad87d3697c1de7f4467748631d25b40805eb6f9500629fcc198a699b15c86c39c1a856 +9be294ea3898bd481e55679da380c833aaa8ac9ca8a2d5497dd1f7c8205bdf3181310ad78667e0 +b76c949539a1a0f8bb82ae0c96ade369f317f61d8d4b44b123a21760d6503c25a1c15c623aeb36 +22c2287c83bd9da4abecbb210cdc61c50d38fc63b659f9477daebe0b808932ca0fc5751d8493bd +1ad50804cce7b74944ebd36248a4e25b8282fc112e06347d805dacde2ad40eb50a80c38bf8c5ed +c1470e38974fc6689c72833fc64dbe75f814a82f5e079abd4be29e699d9e4437ebcd5f9e3b493b +15e2a5cf0cae0adf4384e7e3a88a2b5d38820c6950a8b38244bd1d4d41cbae44c6016a049fc4bb +0a3026744ea85038f09fda85690066d207d5dfa0df615eed12df6a6e37daacaea3bf1a94c19851 +6bfc70733bd090d2787186197a4dc79c98f8a9efc09ba172134d243acb9aea29c483560ab37846 +d286ceefbb71e5ba188f05a5c1c73cd899fc856056ae516961a53382b309e3855af1d5e90391c0 +a75332fca7b4a358450d3f1efe170d4517ad87d7cd806ad9ac976adf5811680c6d90bffb5d37ca +4d8e3eeb9b128b55c733597f1ba58bfae4025dafd1684aec981ec72da10ab18ac669fafabf604f +d18956022f2e0e250b18f6836a4417b9f66703dedf830d413ddff140ae1c95d8a20c67ee774d7f +0d20aa4028a77fb89b201e4ceed569270212d83439419fe9a4c45506824253670c31b904ce90d9 +061eff0eb2db6dda7110f4e6966fc983344f950ec55f508ab71d8e9f4c703f1c2d41b340413f71 +ab42705016da160c104887506cf7362b2904dce54e2033dabd281e87ae7b688c766564877cea8a +21ff44cf705f4c872312887758369f4f7e004a8d4c8b01775517a28c86af1bb5e01a0720b52bd3 +1650c14ebaf85d9c687b0fef3debf6cfe4153852cae6d4634423a18594bb1ab6e8c4373f0cf95b +4ed549298215943608065a193b2bb9eac175a5177b88da2cd4142526d9d5429d2ecd063a90fdec +5eddeaadd0afa256a5d2f811d7259a15f3a01b7e64a0eb545e960bc9bfe95f8e9405598d384480 +c6fea629e1250f64995137ca6fad368897d92b96939a93945a6c970aaed3bb6916505a793cadca +cdcea8f21f0757ea3b731d817cd32544a22625d4bbc46f421c46e15475610228e3ad315e1dd546 +f724f050bfd2aba3728c9e3e0893c4b4247beb489567027946ab5c26172c023a5c4b40449957cb +6cf071bc4e0d81ddda1653136bdf7c0bc53fe4aed8759d597aec5d33bedcea77e58e21f555198e +2027ebc7faecda29235bb6d078c3e6ce58d9397d6d1bee4a87ec19094a1ceda86254411d200d2f +fe4401cd3e3fcd791779c1880bb13405bd31e404e8846e882de145989473c7826fcf1d45a5da8b +ee6ce3e079e7909fd1c7bc143f522982bef086007964429dc78f55c69711a6dd321f93472a4803 +0a9a7f3c62ee26331179bd4a29647216336168f6d62814e47604924bf40e49ae3d74853778ec2b +6fe0e30bbe6628d4cb2e4b98d788fa77917277adf9b3f96ec3af0baba64df671842369ba4e690f +639b6ebffd870424e6a43dcfbb19c3c606a39ce1097fc373bf23a9518084b345d51787ba9027c3 +4f98a2f5aac46fdfcfee1fe4482c024ebb17b2fe321f2ab3856ab1b281f825f767fe048f0a08e7 +a2ce32d107ce1c641db1ac25d6034d4b986924b44a3fc0868e2971c5631b4c2ce91923ec8d14e5 +b09e211f61e50536457db1093b5244c6a68346eb3063fc0b55391178a9795e509126991ae461a8 +4a0224efaed7841222d2724e044cca1a4bbb18bddd29eaef49dd7d198b08b0c7b231503db16e32 +c3086de75b16c21b2aadd1e99ca38dc646b1c6f43fdd2fc2dee80b00bf0ad45b0c8d8d0becb4b9 +7ee23fe4cab3ff16bdb136fa13126de9446015da11ba0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%!FontType1-1.1 f-1-0 1.0 +11 dict begin +/FontName /f-1-0 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/FontBBox {0 -12 457 665 } readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 1 /uni0063 put +dup 2 /uni0030 put +dup 3 /uni002D put +dup 4 /uni002A put +dup 5 /uni0032 put +dup 6 /uni0064 put +dup 7 /uni0020 put +dup 8 /uni0034 put +dup 9 /uni0065 put +readonly def +currentdict end +currentfile eexec +f983ef0097ece636fb4a96c74d26ab84185f6dfa4a16a7a1c27bbe3f1156aea698df336d20b467 +b10e7f33846656653c5ac6962759d3056cbdb3190bac614b984bf5a132dc418192443014ba63de +800d392b6fea026574bb2535fd7bb5338f35bf15a88ea328fdaa49670c7852e3d060f3c5d6b07f +2ef6d0f22646c5d18e19a2ae3ee120390f6dd96f76dcf1e127de5e9299077a00c17c0d71e36e5b +9d5ec58fceda57739a6a4214d4b79d6c48d2784b60c320323c7acddddf34db833cac0cf109f799 +69d114a330d372e5c978a66acc84e3fe5557f6240856a013ffaa0199444e5c5036f775eba4a5c5 +8cde66cf604b9aca2178431127b8a1ff7ed633a65c04600af5f573483112251caca7670b56325c +dedbcd3a2fcc3d5b01771869c6979972f9896b238fe17fc314037c7e13f3518bece91746184b5e +12f73265e044c15462a6c591c833bea435cf4310f49839bb4f35360dde80ed1c51d875e9e2e830 +f7ae4db922c5502cdc9adb4dccf02c03f42f9a722e3576d10f70924480f810a07d6ef6e0406a47 +3d6505ff58fc199c46f2db32dd8c72470f35e699b94e6e56ef50c147fb9302df2915d70e926413 +1fabe2a19087a4a0d4c222b2f41a5b13af43e6487c97d8228ec9e7f59648d963c9cbcd2891e6af +130f066b713c3a4609ee3202e9e20e446137a49e46e317e562a4f1c04161a259daf621cb77afb5 +76f6a04f028c0f68fa2c961fad5d64c8ea0891feaa275c08607fb163b7783743071ee4da86a10c +381c55d8730beca9725266bfec2b750b4ae2a3cfe0faed2aca294029b943d7e93fd4586d559737 +41f7435186e2dbd63f642fb687307beac29d580cea19ac85586399c4cb7de5c8e043a181a0e06d +e0ccd39f4f6c86d764cb8b64afbc7dbd87bc7f74839904bebf8cb8913115e58567407fb9b5fe9a +c8ea74ba0618c550712673f708b0c510d8d48bd295f97f6b8ad561c5ecaf152664c01d9bc71d2c +8705faf60ac322a2f15ef1eeac0f4e7dcfd94ff0971264c14cab7eb5329fde27774fa39adf0d45 +98da3b0ed2935987c7d4cf3920d01b2dd2fa571e6c3ff10e93f8bdbc4070d9556e93ed0cdd6dbf +1811249e9a68acc72b781d0f5849b135dd264e4d7385e17dc7589d28bedbb3a210aa32cb0e1652 +e42f309cc58d23998b2f25d86dc799ec7f948224cdb304898e8a5107523f4b6c36f668923befde +a40a75e77a06a2ec0b712f996234669707003c65bf80fb2cc03924fea4a4f716c4f6fbca9fab04 +3a15a34da557ef6cda338699a64eb1ca0d6a096604c266ac480c37eaab44797769976de3b5520b +2788427e9d630370a3b398134f6c3b683622f507316f39f0cd24305668078dd93519f7f9ecd6f5 +3acbf1b5c9f755440d72b52ee87190b67e18e8aa6752d44b908aebf2fd83026db457514a0d5c68 +4bc7715de583d60b4729e5749a10ed3eb62570bbd0b3a6fd5a1f189e01a3b6a5f87c46948c5821 +ab2882f63a17f2434af150c58c00d2d74577dc961f9836629ed5eb1823c4b47ce0356b7126738e +b2f351d129daad915d01a3b6a638d2ba844aaa9b7b53b0defe73f888156661f9aa3ce843e627cb +dc03e78c479dec03a7d4d13c1038dc6d9c099bbbc6e689481be195b38a3fa62153328d130ddcc9 +813f9b1e9446fddf1e4c8262ed79482f1cb9ea61eba4041d44ef5a451d6be062d9b31482747bb4 +cb3e4341c04cabf480cd35218dfd70ab58da35715363e661d2f700bad7ac1dd7c79b42b3802d6e +c8afa4dee25d37216408f0ad17288f80efc0aef003428e7e001d1d0e963cebc7cf919bea79d5c7 +ed4ec8aa31c574179e61b3076e53a5d94076a23163dfe4b9a34afdd642ba67d5de51335b16d063 +c6c079fd41d3b9eba7ff683bd7aa99c05632cb80ae737a916a4582c87f850000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%!FontType1-1.1 f-2-0 1.0 +11 dict begin +/FontName /f-2-0 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/FontBBox {-22 -193 715 706 } readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 1 /uni0070 put +dup 2 /uni0065 put +dup 3 /uni0072 put +dup 4 /uni0069 put +dup 5 /uni006F put +dup 6 /uni0064 put +dup 7 /uni0063 put +dup 8 /uni0020 put +dup 9 /uni0062 put +dup 10 /uni0061 put +dup 11 /uni0073 put +dup 12 /uni0074 put +dup 13 /uni0067 put +dup 14 /uni0076 put +dup 15 /uni006D put +dup 16 /uni006E put +dup 17 /uni0041 put +dup 18 /uni0043 put +dup 19 /uni004B put +readonly def +currentdict end +currentfile eexec +f983ef0097ece636fb4a96c74d26ab84185f6dfa4a16a7a1c27bbe3f1156aea698df336d20b467 +b10e7f33846656653c5ac6962759d3056cbdb3190bac614b984bf5a132dc418192443014ba63de +800d392b6fea026574bb2535fd7bb5338f35bf15a88ea328fdaa49670c7852e3d060f3c5d6b07f +2ef6d0f22646c5d18e19a2ae3ee120390f6dd96f76dcf1e127de5e9299077a00c17c0d71e36e5b +9d5ec58fceda57739a6a4214d4b79d6c48d2784b60c320323c7acddddf34db833cac0cf109f799 +69d114a330d372e5c978a66acc84e3fe5557f6240856a013ffaa0199444e5c5036f775eba4a5c5 +8cde66cf604b9aca2178431127b8a1ff7ed633a65c04600af5f573483112251caf30017b277238 +efcf5771340938fe80f4a00100eb95a658bfe12cf8247fae74b8d924e48e0e2fe1b447d1f3564f +d6f161cd92f37b9345a5f4c2fb59ffd710dfeba70819677a7ead7521981841d8e1b7fe7716c998 +af791f3cca2a709fd042704141c4cef2e13d1a803db2b1113d89ae0bd876525ac1bcbf7a3bc4de +124f3c2e94abcd0d83ec139a495d753d69c07d6ec586b5af8370bdc48bcc0c0ea1c2ebd863aa6a +4980d74c5aa69be1f2f3a56cca6a90e8869a74c721d90f1e267c2543d179d46830c5e068760409 +d9af158da3e61c89fdb0450d15aca03db47e0a5144518bb647280eba7af0380b198186584cac0d +6b902f29ae43de7ac638451c07f8279f53cf4ea6a220e6616ce6303c026d4de405bea9943acfb7 +702e837fccd3834c7e74a0655f1e9be2a9f2a737e99b0b2c458f3232d9a1cc493c7654004a38c0 +a5cb3bd74de9b93bb7d33815ad197f16553af372d75a71baf5c7a30679179e2e49a9831f045e8c +8cefeb6a3691ff45f4b8c38b7d831eac08b125a4db49b5b88380f8cfb87217d99e7f0713eac303 +8c242c3543ffe82de7e0f087644d8b4bba2ca571a2ecb114fab87a9f7ec02338ac5f2e0b34888e +fa8dca131b78b81698a85cf6fdb775075b8ca17ff39b08798fa72855ac9aa47fbdcf8e97f1dd2a +88693ffc687e0e71ca1946effc748f23e1a3a16bab05d75082245eb5c63c749affd1b609ac7ded +5cba92787027c722b626c6cb488bacbd5cb6d29971034b279197bf13f6143be9a493e30a9a542e +d21444c51311a0bc00477a0df2308ca22bff7593df8554f1b13485df78ac9a1f595443c38de0d4 +5ca0789280f776d62b20021c645af98fd0218875662ec0d47cbc9249c67b8b084e92f5f605d52c +623fd1e621555bbc1156c8c9856986ae95603b93b9d2b02f85ac7972192c8c35ebb959123ce227 +d10a08e8032d52c2eb78cb4e6c4998713f693e46ac940dc2282d9c8cf0b1e0eb5e85a7d8965427 +2de971f1ca4649f21926fdd2f6e6d92cd2f812a7bc319469fffd9c88f7f8e04813d74b0cf1f9f5 +90a3194dedd03449bcce0dd890f8d211ff031c847d11743e1cb0d28cfce68db807520983cc6741 +de808d18ac07562606a826cba778fc9780467b9debe6bf241a5c595e61998d808c1432bbce86f8 +256cae67873badce689bc5e119341d74725988ea1a312ab495599b9ce767f21540eec343f2ae22 +d459d95ddb23a2b17fb8091abfe51371c8d7935835323e85d72c6a6006cce2a0cc126fc8243092 +a04e311548febcf23607e832c14ce937e8e6d9d3e2d5d94777b8130859278efbe5290098fd1e8b +b9bc23278793b11d7dea307b68c957f07a06e343f3975f00bcfb580f1c0db92122820f600fc051 +ba8859cbb85253b6d7bc03945da2ef11eb8aef976feaacd3f847f8be9ffb25433b5fd57a5580c9 +4f6a49e50acf6e8ada6d5f67c7b3054fbe3994ad63d63c43273fc71bca82a8bb978c0f3ab9f1a4 +878e43962018f4f6facd356f4ad753bdf98c6302a3ebb32e82e7d8326a5d7fe3a448b2fd7992b9 +4126dc55d7c30d00186ff88d63478c7471c3f9a7f2a281be54dbca6eae7b2b2bc65a8e12f59ff4 +f32cbf96ae8d74588445b1a08d440f7ea13e2cf4a9359a0d072cf844871e2c6cc8e2497e7854e4 +dc18cfcb853a5d722b915d235e69bbf355e1cb2ba3a373a7e4d303aa48afdf5b462289a4fd3a3d +719d53315df5dacc3f705a96737b54eb6ecbabc3ada28ae18d198458b835a8547185e004b2e32a +78d6ce76fbf65d4a3072f79aedd5e67d6f8a21728f9b7162ced87c664988492e31dc76b9fbbd11 +a6dd59bcc4a22161a70a508a9f943ed1bf5f40ba2a232de28ecc676fedcd34c1e190b995b06170 +1e73234dc803153f20e791eeecb34fc7d96d040a5817bfccb3e2e8c4043a34e333130d8222fcda +af5987873afb81e556f0ef44acd47d0b9a67d62b34b85083553c6923522518cccaa3f67ef851b7 +cd4b1fcc56fea17d5b3c41fd7c210b220d16ac60ef67df4ba908f0c231a396b137ca947d5deac1 +9768da20aeba6b89aa70b3c023d3e70a2f869ce02c89821833b9a365c56c921ea0efbcb0b0706d +377515af68da87f029f0bae12b206a5db399b434df72c1d85f14e7ef1ac5040b26c199718f9174 +12f552becd8475ca65a03ee6b37bdc2b47065a5070f6513c2290b9a86968d81d988f3b6c3f63be +aa23ce4195e76298111338516c151fa84fab132f30bd4351fc48684fe92d3239edd839ee3a521d +b940db2f3b2ca1b7d3ce0749a8d61d219333bfb08dea62378ecac484e17f4d877119b90149ff3b +a7075222cafaa4f0afdc03fc5c0901b4fa8243ee1933091fe3a4873ea6f16799a7942be5fbe4d5 +1d433885931babe9a7ac8fd8146779faa097898c2cc3035e158b714a1c886ed2419499ac01317a +1b1a97377c50945e7def65f93c02c02dcdd05245a640cbc8446b16e78072a7f92a1bf6b8ea3b03 +901b77463c0cec59613d4911a63c5db6de66a00617b25bde18e20db09d621568cbb6ffd2ba0863 +d9e2e1537dc82714d871ca7c268becd2ebab11ddfc409e029ebfde345b1b9bfd910e446781f1f3 +a91e80fbf20adb2675f04b45a826061c53708414383f2d5317b99898362d4acea615932cc26f35 +2e799af99deb62f1473d7ceb83de16e22294704b14905591de02223e7692ab7f78ff7a53ab4599 +3f3d5b36762d282633fc7bcf96b4c90fa3b77d64615c5d85b5af396111f2e8bdca068b5421d944 +80adb127ea76ea3ec23b30e95702dc13015e2200072cfa6f4acaed178c7f3eaf8cfef5ec3fe45a +a88269a45cde57cf28e6686139be4cd77e75cd44c587a61e0beeadc3fa023db81c5cdafc96d872 +a922c3150584c7cdec274f7fa67f6b5a35e469b706b5aa23d20a8220c50ac4fafe0a12e4e8dfe8 +25188f70bce756590ef63e691486b55721d89bd0a41a1c75d1cf245462bb5b019204f252b2c78d +2eb09bf39ff9f483b4957dfd4bcb63a35f196380dcdc1e051433b4a7f1e3a496c923018ec09777 +b517c7083210fa2974236f0904cfbd7fe7c4c2ccab4eed8ab2d3e63641b163430940d12507b823 +ba251466b7200245b4f3aebfae0599254227ca4068049c2bec9480a46b1a82c7c0766f5f06ffe7 +a0252f8eef5bd5600acb54e9469372b677a3f452fb8460367697389a77ab6881df22a6926cc08b +e4ac51ef232bdb1aca6c908eb0d3275ade8b78bbb3f867f2923fddf54b12397af31e4546a5565b +8c974ee61f88598d09e123f7521d1ecd916fd0619c21009361a98d0acdc9474e88556bc870ca10 +e7ce66a738c6a6fc32cb34fccdc51d778a547a5d7f92225c84df45a9f25218cee5c80d8b837457 +dc0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%Page: 1 1 +%%BeginPageSetup +%%PageBoundingBox: 0 -1 153 69 +%%EndPageSetup +q 0 -1 153 70 rectclip q +0 68.567 153 -69 re W n +0 g +0.79937 w +0 J +0 j +[] 0.0 d +4 M q 1 0 0 -1 0 68.566833 cm +82.598 13.59 m 82.598 19.258 l S Q +82.598 53.411 m 81.715 53.411 81 54.129 81 55.012 c 81 55.891 81.715 +56.61 82.598 56.61 c 83.48 56.61 84.199 55.891 84.199 55.012 c 84.199 +54.129 83.48 53.411 82.598 53.411 c h +82.598 53.411 m f* +0.399685 w +q 0.000000000000000061 -1 -1 -0.000000000000000061 0 68.566833 cm +15.156 -82.598 m 15.156 -81.715 14.438 -81 13.555 -81 c 12.676 -81 +11.957 -81.715 11.957 -82.598 c 11.957 -83.48 12.676 -84.199 13.555 +-84.199 c 14.438 -84.199 15.156 -83.48 15.156 -82.598 c h +15.156 -82.598 m S Q +0.8 w +q 1 0 0 -1 0 68.566833 cm +82.598 7.918 m 82.598 2.25 l S Q +82.598 68.164 m 84.199 65.395 l 81 65.395 l h +82.598 68.164 m f* +0.4 w +q 0.000000000000000061 1 1 -0.000000000000000061 0 68.566833 cm +-0.402 82.598 m -3.172 84.199 l -3.172 81 l h +-0.402 82.598 m S Q +BT +9.6 0 0 9.6 64.411517 40.80506 Tm +/f-0-0 1 Tf +[<010203>-1<04>-1<05>7<02>-1<06060705>]TJ +ET +BT +9.6 0 0 9.6 3.228933 23.797052 Tm +/f-0-0 1 Tf +[<08>-1<0104>-1<0205>1<09>-1<0a>1<0b090c08>-1<04>-1<08>-1<090d0e>]TJ +ET +0 0.501961 0 rg +BT +8.8 0 0 8.8 3.228933 15.293244 Tm +/f-1-0 1 Tf +<010102030404020506070809>Tj +ET +0 g +0.8 w +q 1 0 0 -1 0 68.566833 cm +76.93 58.941 m 76.93 33.43 l S Q +76.93 36.981 m 78.531 34.215 l 75.328 34.215 l h +76.93 36.981 m f* +0.4 w +q 0.000000000000000061 1 1 -0.000000000000000061 0 68.566833 cm +-31.586 76.93 m -34.352 78.531 l -34.352 75.328 l h +-31.586 76.93 m S Q +BT +6.4 0 0 6.4 105.276184 1.120002 Tm +/f-2-0 1 Tf +[<01>1<02>-1<03>1<04>-1<05>1<0604>-1<07>1<0809>-1<03>10<050a0607>1<0a0b +0c>]TJ +ET +0.8 w +q 1 0 0 -1 0 68.566833 cm +0.395 33.43 70.867 25.512 re S Q +BT +6.4 0 0 6.4 88.268304 63.482209 Tm +/f-2-0 1 Tf +[<0c>-1<0a030d02>-1<0c>-1<08>-1<06020e>-1<0407>1<02>]TJ +ET +BT +6.4 0 0 6.4 25.39223 1.120002 Tm +/f-2-0 1 Tf +[<07>1<05>1<0f0f0a100608>-1<0c>-1<03>16<0a>-1<100b01>1<0503>1<0c>]TJ +ET +q 1 0 0 -1 0 68.566833 cm +105.277 33.43 m 105.277 58.941 l S Q +105.277 7.778 m 103.676 10.547 l 106.875 10.547 l h +105.277 7.778 m f* +0.4 w +q 0.000000000000000061 -1 -1 -0.000000000000000061 0 68.566833 cm +60.789 -105.277 m 58.02 -103.676 l 58.02 -106.875 l h +60.789 -105.277 m S Q +0.8 w +q 1 0 0 -1 0 68.566833 cm +82.598 33.43 m 85.434 33.43 88.27 36.266 88.27 39.102 c 88.27 58.941 l S Q +88.27 7.778 m 86.668 10.547 l 89.867 10.547 l h +88.27 7.778 m f* +0.4 w +q 0.000000000000000061 -1 -1 -0.000000000000000061 0 68.566833 cm +60.789 -88.27 m 58.02 -86.668 l 58.02 -89.867 l h +60.789 -88.27 m S Q +BT +6.4 0 0 6.4 88.268304 1.120002 Tm +/f-2-0 1 Tf +<111213>Tj +ET +BT +9.6 0 0 9.6 113.780115 23.797101 Tm +/f-0-0 1 Tf +[<0f0c070304>-1<0f0108>-1<06>]TJ +ET +BT +9.6 0 0 9.6 113.780115 14.197101 Tm +/f-0-0 1 Tf +<10080111070412>Tj +ET +Q Q +showpage +%%Trailer +count op_count sub {pop} repeat +countdictstack dict_count sub {end} repeat +cairo_eps_state restore +%%EOF diff --git a/svg/proto-actor.svg b/svg/proto-actor.svg new file mode 100644 index 0000000..3b64b85 --- /dev/null +++ b/svg/proto-actor.svg @@ -0,0 +1,281 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + controller + actor 45 data 78 + cc0-**02d 4e + + periodic broadcast + + target device + command transport + + + ACK + identicalpackets + + diff --git a/svg/proto-sensor.eps b/svg/proto-sensor.eps new file mode 100644 index 0000000..dbf029c --- /dev/null +++ b/svg/proto-sensor.eps @@ -0,0 +1,381 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Creator: cairo 1.10.2 (http://cairographics.org) +%%CreationDate: Thu Sep 20 13:27:44 2012 +%%Pages: 1 +%%BoundingBox: 0 -1 105 71 +%%DocumentData: Clean7Bit +%%LanguageLevel: 2 +%%EndComments +%%BeginProlog +/cairo_eps_state save def +/dict_count countdictstack def +/op_count count 1 sub def +userdict begin +/q { gsave } bind def +/Q { grestore } bind def +/cm { 6 array astore concat } bind def +/w { setlinewidth } bind def +/J { setlinecap } bind def +/j { setlinejoin } bind def +/M { setmiterlimit } bind def +/d { setdash } bind def +/m { moveto } bind def +/l { lineto } bind def +/c { curveto } bind def +/h { closepath } bind def +/re { exch dup neg 3 1 roll 5 3 roll moveto 0 rlineto + 0 exch rlineto 0 rlineto closepath } bind def +/S { stroke } bind def +/f { fill } bind def +/f* { eofill } bind def +/n { newpath } bind def +/W { clip } bind def +/W* { eoclip } bind def +/BT { } bind def +/ET { } bind def +/pdfmark where { pop globaldict /?pdfmark /exec load put } + { globaldict begin /?pdfmark /pop load def /pdfmark + /cleartomark load def end } ifelse +/BDC { mark 3 1 roll /BDC pdfmark } bind def +/EMC { mark /EMC pdfmark } bind def +/cairo_store_point { /cairo_point_y exch def /cairo_point_x exch def } def +/Tj { show currentpoint cairo_store_point } bind def +/TJ { + { + dup + type /stringtype eq + { show } { -0.001 mul 0 cairo_font_matrix dtransform rmoveto } ifelse + } forall + currentpoint cairo_store_point +} bind def +/cairo_selectfont { cairo_font_matrix aload pop pop pop 0 0 6 array astore + cairo_font exch selectfont cairo_point_x cairo_point_y moveto } bind def +/Tf { pop /cairo_font exch def /cairo_font_matrix where + { pop cairo_selectfont } if } bind def +/Td { matrix translate cairo_font_matrix matrix concatmatrix dup + /cairo_font_matrix exch def dup 4 get exch 5 get cairo_store_point + /cairo_font where { pop cairo_selectfont } if } bind def +/Tm { 2 copy 8 2 roll 6 array astore /cairo_font_matrix exch def + cairo_store_point /cairo_font where { pop cairo_selectfont } if } bind def +/g { setgray } bind def +/rg { setrgbcolor } bind def +/d1 { setcachedevice } bind def +%%EndProlog +%!FontType1-1.1 f-0-0 1.0 +11 dict begin +/FontName /f-0-0 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/FontBBox {0 -176 459 694 } readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 1 /uni0063 put +dup 2 /uni006F put +dup 3 /uni006E put +dup 4 /uni0074 put +dup 5 /uni0072 put +dup 6 /uni006C put +dup 7 /uni0065 put +dup 8 /uni0073 put +dup 9 /uni0020 put +dup 10 /uni0031 put +dup 11 /uni0032 put +dup 12 /uni0033 put +dup 13 /uni0064 put +dup 14 /uni0061 put +dup 15 /uni0036 put +dup 16 /uni0037 put +readonly def +currentdict end +currentfile eexec +f983ef0097ece636fb4a96c74d26ab84185f6dfa4a16a7a1c27bbe3f1156aea698df336d20b467 +b10e7f33846656653c5ac6962759d3056cbdb3190bac614b984bf5a132dc418192443014ba63de +800d392b6fea026574bb2535fd7bb5338f35bf15a88ea328fdaa49670c7852e3d060f3c5d6b07f +2ef6d0f22646c5d18e19a2ae3ee120390f6dd96f76dcf1e127de5e9299077a00c17c0d71e36e5b +9d5ec58fceda57739a6a4214d4b79d6c48d2784b60c320323c7acddddf34db833cac0cf109f799 +69d114a330d372e5c978a66acc84e3fe5557f6240856a013ffaa0199444e5c5036f775eba4a5c5 +8cde66cf604b9aca2178431127b8a1ff7ed633a65c04600af5f573483112251cacaecc7da90d73 +c5ec91557783f026804a22f6155bc35b68d0fe30ee1adb3f3edc5fa135471f0836040b091f5c6e +78f140c7b0bf60ab2e22931f3105b13895988ad2d1f46b09b9a6e052f3f8713a1ef1cc20efd51c +a31ab6283f17a7c38f6fb2945a20ef55b49a2249e5ba852e455e0fb65133dbef3e3a7633c774a6 +22d28cc9e41d786182e241c090d7fc8bb283d3ff97d45e8d50a7b012532ad3e19fc560f9df6ea4 +20cd8b799b81353dc405a4669013a36c7545f9e0f55d5f2d9c93e5b8f07e4d29107878fef46a08 +d3eea28860c8e72ac0c75e15a639402430a0684f99e88774d5d913312175d69a327642e100eeba +1ab5bf642a9da824dbb398d71811152cc95bc2f3219a43812da99cd1a31f84ad4bab1ea470bf24 +8c0593b8af5af0b24b801710b34e415381ecec9d9af3ebe07170e2198eabe68960894947363e7e +1a0d401723bd353c3c3e6f5fd93383fa5c0662d060fe802a4927cce5de450b6ecb6b574647bd85 +6561b2966370debb8504cc2800488134e8bcc2df4b83a1eb775861cb0bfbbd9fbdb275c6a9dde3 +cca2872e351c1941fb9519bb50f4f7910c7a811b34be572e63fac7af5fd712276fe1987e380b18 +4d0e1b7dd6eadb2e68fe08ccc1443e5bcbbdc510fed8961810dfd11d42e364ab58d7f8d077be35 +83524d5b943847e94f863ae060c1535236ec97eb60ec9990806a5f90c30659646aa2d532a50eab +aeae96226d9d706ce56582284825ced10c32c06e9a204f01015d3a7a6b304d304ae5925ce38906 +5e3edd1144f342367af7bca30b1a03e44b2fe08bcbe6a0612272979ad2b79eb13ce88cadd86ff0 +e6a22414caa5252211cdb0b5ca51c77111a138a5f661c52f3e8470da2fbde50711e328c9aaad1c +7a0642dda30f199765895f644c8605b99af5d982648b0caa299db9a9db08415296cb3103cc6f9f +fc901ebc511fc79250f4e10d4cd1d9b12db0fa087d383924c780ed90ccccaf5d7599dc45730f2d +04ad12d11ae32d44ef8364cba1e614a4789264edbf386a813a67ac3880610de49c8e7791b4427e +8c13cf56e344d2b1de6edeff1c6d92298023b5a14a5e52c83a9c3def4408443dcc9d1d4f7e4c2c +f63d7771ce14a024487337e33fce76e853737acda7406358ee8f14fc28246472e7cdb31eec1419 +40e7da58df72d7228fba79682dd95d2331e233219293bffc0e3f3e07409640ce8ad9163747d682 +1f5320329c7c408c450e4a0aeafbabd2efb00510787012352e22e70cbc3fde8618c3ea50b80094 +939218c2197e5b652f28bc08c76b6c417b61b77134350e2a6258addb87dd0d883a13a3ea510d10 +f534fb37685b18dc568a93ec1e629d906a6b4b50e147fffa44442782de83136a454cab831c8771 +5db1100d54ac0650e88367c4ba4fa775de88fc98c2835e71b3b322d6d8cea28e7066cf7407cc55 +eee80f1d8eb4bd1ec08ff3f918aa6fe8d7884c8f1fd054a1741c63755cb6947395576487634503 +8ce53fc8be4633480aca0dd26d69aba6948aa45f9dc1bcbec29471f58aefad90c8c34da0380472 +6ef223968ab8c1a37ac300fcbb1c57312b71de2e52cc1506e7fcf3515210a33cb4dc55a81cd4d3 +0c9c083ff22c99791c36673c7810e32131b6789427fc5b423998229720697e9ab07f47ea4d023d +4c05b7cf5224a5e63814062aa410a74aebed4e31281a54c003febb6882ba1d727f80f231169a32 +2a14c0c1fd72219e63f377063e9f052cf6c33d7ac0c5a1d431cc4aef3b7f3dfad66c206d2f3824 +ffbce3d81e2cc47772ac3adc1df540b3d46f823b9fd4f34ac7ccf246c8c24e806d11c1ed67d569 +7e8b0b91217147a308d2dbbe564d14f8a44ba2352b69e4828eee988f1c684ad9cbb1e0a85999ca +eb5adcd3bd28c3fa16919282986f900e8604a512d3cda9902edb8aef3d74e2740b44c8a139d1e8 +0aa31f1885d9f31c155f433661f7d245c0bb9f1886c5d0f9bba977c798d0efd52011e7408b9d8c +645e6b279df1a2acb324b11a590674915f443c7f77b1e3d3bfe25db99ce914103ca2fd24facd38 +94511b4b9961748d80363243f53857251ca9fac06a38ad02e9b141cfa78ce6de9652c35ea4ce31 +2843011757f9d3ec69c66419d1ba0e1671e2fab558ed8e5b03f37840a3f522e88c34323849e398 +39c0e82babed7070e656c15ea9c7c247438114e7d9c2b8b829647f7d32559465df37849fdd8290 +f092ffccda11cae8eb35db08e8129b19be1abd2831b96a185ccd8ffdb4eddda5125b338d433770 +813eef53eb0ed32fe41f18cc0963a73f5f0fd3c2f194190d4bacaade906fccc725a27205dab237 +6ed5364537ff22b30b9a45edf4ff066dc2e4681886ea59315ecf7dd67662e6a898f229c5a72fc7 +a21b7f2e750c6a0eb8fed649f6fcb62984eb136eca5aa0cf8b8a97364168f81c8ca8f964f709c3 +480ed8342e82b622d44999dda645db4e69a25ca5cc0417dad2f36d19f7ce49fc2d89c0dee03a11 +0936c13f1be8958ae08ce1d860895d8e632ae8e049962be0e2ccd5c1f7bcc8b3c316a04f383882 +45d8bf7f53ef33eff6c7bbff5d2449f0243647e37a3c5939dcb5e87096587e21b688a51b70f1c6 +e991835bc74495a8de2c5e3bd7a6e627910d9cee736251ebff0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%!FontType1-1.1 f-1-0 1.0 +11 dict begin +/FontName /f-1-0 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/FontBBox {0 -12 457 665 } readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 1 /uni0065 put +dup 2 /uni0036 put +dup 3 /uni0030 put +dup 4 /uni002D put +dup 5 /uni0037 put +dup 6 /uni0062 put +dup 7 /uni0020 put +dup 8 /uni0034 put +dup 9 /uni0033 put +readonly def +currentdict end +currentfile eexec +f983ef0097ece636fb4a96c74d26ab84185f6dfa4a16a7a1c27bbe3f1156aea698df336d20b467 +b10e7f33846656653c5ac6962759d3056cbdb3190bac614b984bf5a132dc418192443014ba63de +800d392b6fea026574bb2535fd7bb5338f35bf15a88ea328fdaa49670c7852e3d060f3c5d6b07f +2ef6d0f22646c5d18e19a2ae3ee120390f6dd96f76dcf1e127de5e9299077a00c17c0d71e36e5b +9d5ec58fceda57739a6a4214d4b79d6c48d2784b60c320323c7acddddf34db833cac0cf109f799 +69d114a330d372e5c978a66acc84e3fe5557f6240856a013ffaa0199444e5c5036f775eba4a5c5 +8cde66cf604b9aca2178431127b8a1ff7ed633a65c04600af5f573483112251caca7670b56325c +dedbcd3a2fcc3d5b01771869c6979972f9896b238fe17fc314037c7e13f3518bece91746184b5e +12f73265e044c15462a6c3348e9c740515971b4ce4375aaa209975b49f64bd8cbc7ec0a5797893 +692e02607ca54d5b1c284762860d86e8eaaa2e0c7cb945b4d2067ecc3b6833c709a701440df75c +b476f5cb1debeb4f07063d478a1d79cb9b0fe5afcb7eae5c8960f388181061dfb4f858bda99a6c +2bc3ff7b16776ab92dad29de482a8af9b1d29d58f71df1f9d0ccd55fcfa35a542d7f205b6a8969 +808dfaee1433d47b77e95ad5a547dcae946340557aed19738b70f7978b5505ace6ac3bdb5d0182 +8343f6ed09cb89edce53e871f79c9827a76ac5c2fd0e6ab99529ec7890494440fa06529d3545ac +f1a4cd5b1c4cb94324fffa4c637d9d8057c309835ec2ca9b0f17e171f39808cd58170482c9787c +4347cb0eb985d72f916958234bfccbc368ba388fe3f7d003875bd2a710ac5ac35fcb8104d09459 +cf79dc3ed1158b640437271bf2cd8357d54efee9c3f0ec8ab1700a3601f462fe2a00e017d8c596 +27935598f08bfe0387b042985c3caf2cfc527eb5f874133f39a9704e7aea8b8ff0395557187052 +bd4954648ed848e680aae5f81e045802ccee17c2533c194f497c22d2855bd97472bb6f23b283b9 +3370b07c82169d71bb76457d1a1446d88bfb9cd98e0a655c190cfe11563d2a3d51b1ba5abf1578 +6fcf464ab0b7b8efe693ac54ebde9effc83e4168467a22aedbdbf3e7770b880a7a56825d9d8120 +153fd0683ac043481ea5bb2535dedcb5b6b49f6bdc73ecf46036c9ad0068a6276715147658012b +1e003c8b8b90d677d98e65877ca29d7444659164486e0480f1872b0c648c19d232758134472ff7 +29a90f338fd86d31c2703dac2ca374d15c9ba4b262fb8f30945b6a0e056ca45763a6efda4b7f88 +cb6e0b728db32d331e03f8b8c45740f63a4cb89e748bd57931c4e6b1ad4268031ad3acabfb3cc1 +ea72ed08f7937ce32b461cdaaa5c5d3688643f1d09798dec1b0ce7e80a93f88a7851e4425f2697 +afde8de0f1ffdd58458d37902c533ecf1ef2168513805934af41ce296d151c4845ac3c3f6a59ad +f64c017c814a58e00b4b28f054ce24582eba311e87eae115e45352521b0760e16f9e4b1e8bb971 +1d3a655fe0215a60fa8bcfadd4970089634ced5517db1e5190fe30c419e0dcdba952cf54174413 +1de7ef9fb09cf28021b7a66172511e0af72bd8a665f885113cd2e2e255527aa345d44784d8ebf3 +7f30b74be0c81104ab415e18ae90a207f9257a8ea2dc09b957ac2824f867ea13a323a10e259bbb +2787c1f9a39e77605302355c38ff168bc798905c0402baaa9623c22e958a4a3471439adeed36e5 +429ae2a34d54d7d400a814c12c00adc46fee82882d5940bb89a186b9dad73a128bfd1a59f6f506 +ace6359e0ee15ecc9c431d1ca0d929e223ff1903cafc6c43a03b1d5e8304c2b36f8c63b5f818f1 +36c9b0525b95931d6f8636ad30a69eea6bd6f30bc7668aa632b3f5e62dd6079aae65441ffae515 +11d11bf9adae2803f298e3d9ea3f14249e86b4fc4ac0b7ef2a0cc7d50000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%!FontType1-1.1 f-2-0 1.0 +11 dict begin +/FontName /f-2-0 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/FontBBox {0 -175 491 706 } readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 1 /uni0070 put +dup 2 /uni0065 put +dup 3 /uni0072 put +dup 4 /uni0069 put +dup 5 /uni006F put +dup 6 /uni0064 put +dup 7 /uni0063 put +dup 8 /uni0020 put +dup 9 /uni0062 put +dup 10 /uni0061 put +dup 11 /uni0073 put +dup 12 /uni0074 put +dup 13 /uni0075 put +readonly def +currentdict end +currentfile eexec +f983ef0097ece636fb4a96c74d26ab84185f6dfa4a16a7a1c27bbe3f1156aea698df336d20b467 +b10e7f33846656653c5ac6962759d3056cbdb3190bac614b984bf5a132dc418192443014ba63de +800d392b6fea026574bb2535fd7bb5338f35bf15a88ea328fdaa49670c7852e3d060f3c5d6b07f +2ef6d0f22646c5d18e19a2ae3ee120390f6dd96f76dcf1e127de5e9299077a00c17c0d71e36e5b +9d5ec58fceda57739a6a4214d4b79d6c48d2784b60c320323c7acddddf34db833cac0cf109f799 +69d114a330d372e5c978a66acc84e3fe5557f6240856a013ffaa0199444e5c5036f775eba4a5c5 +8cde66cf604b9aca2178431127b8a1ff7ed633a65c04600af5f573483112251caca32d24105429 +52dab918f902a7b3fad186ee064ddb928b9c9f312c96f99cb068ec99b0f5a9ff000f3a3db99444 +7534379869a8d2d92324740c65e4083ca72ec2190940122da3d4c49e6fa0446853a63ad583d58d +6d911d937ce71716963dbf5d5f80e30070c954aa9dcf182ab3e12caf133ac8f098f3a1b8c0d41c +e1a3550dcef93ff0d4031268204167d107be252cd1a4637df334e6abe99922e23675d242cbf119 +febb208761ef900b3b3a2aaeea67aa2d35230cd10568cadecdcaf9a2dd5b7ed3ea75376666e7e0 +215b48e816002b6bf51b3f92f4e3681ff31164b0f759243548b58d1e3d92ad9c26addfce316691 +e43ce215b89b59b1fcde5c8547cacfafec5c29a6d62af29f8b4776b84129978bce9740e317ec84 +03ba80538a2bb5168b9a4cfdafe69911bbfc5cc48d09f4f84ea8d2f8b776848b7d27f47f205ee9 +53887a3cfaf7e5e7d7fa9589c7f6bb8f09a8b8a41108cc6507e89b97158ead4a6c04fc09770214 +280c0b9ef589f326fe736ebd3a7b1f633dbd4a7159ee02067cfe1b31527ffe471db272756ac8e8 +86e248964b97170fc084d9bb771b0a05bf5b3b5d4f5ae0d1eee20339c0743fae68fa44a9be85b8 +4cb832782f7981d010942908e648413872be2944d28c968a4482da2194f5fa7c36f5c0de284f84 +ab8752aa62ccbfa5b26bec799843fb1736becbc731f6d398fc36baa222171bfa9c845f5b01c07e +907bfce3f2558fd1c5ada2da3dfd2b9af3254267fb48af285f5684ea632d8a1153488ea413f4c6 +73d49cb0bea000211b3e8e1478fa5293c1a302733391e491fa41b80332df9ebedb1cc2437a80b8 +17a1782426a991a78dec9a933ec857dc0ea3375dde2c26cc4da2e60affe5db59e58ae4b7bb01cb +b85afd46ed46ccad373c0625a78382100f7580f4ce4fbbf273df2575d6c87a5a5d78e3927cd30f +55423b8f13a7ada257d9fb10e29266d607a4147b0b67bbeb37e27d7597d680ca70db457a4acf38 +6c0e1fa177e0177526449b32db93ea47bf3e5574010f7539a942263648cb4f326a28a498c707fe +6d4a8b1bff5f3611ae3b6adda9a71e17a35f8203d0adea0246cf251c1f5b805c2cbb324c90207b +01a0c65f2bcf1bba7a9f91ae2ee744b8781daa427aae8b7ab9e950f090273df206bef50c4fcb0f +c2c1ac9437520f7cf4b41e3c0db130adabbade735e2c711a6c1caccfe47e734f156c5668fb313e +5b92f69d08682555188655bee2ab6cd512124d381ddb9dbe2a0a4abff013ab63e68a7f87759f0d +5cd00fa0d530d84f9f00dd7bcd3924408650605b5825b56c4b98f24d97e18bdba5426ddea48a27 +2cba99828f75eb0fa2e564108836860f2be2f38474446c093537ace2e4d161ca32b78e39ca5e58 +d658c1b40fa5d58c8c411a5235fef08b210c28913d7b5ec51a43664b2e513e408d67ff7af01a5d +55ea941912d92d1e51ef6a0666a9c4adf711502af427398b9ed71a7fd592caa0fcc7004217ed13 +e9c34323eb771d6cea787a8673557c8312473c93f36ab0eb45dc9d187304935813227740df01b5 +6bd64cc39f07529e371a2a3a5703f1df04e20cb939bf5761dbf5b7bb46bf818f30f4c8565896ad +0597c2fb3b8622447a8296003f89871739082ffd3fda8e3822c16cd53fcde0443a0f327ae4f97e +899b495e0a490fb8805e0b32e85db0653278a7ec4d65d2484218cb438c82bb59e26ebbf0cc7cc9 +b77825695bd957f278b8a3b8225865026de1782a65c6e2b0ac74fb6cd35586c297aca20ffe91ea +b6dfcd84e2c5564a865136ed699db73eb5f346092459c7f04dc8b6396fa2a43a2e7da3f8e2fc51 +99cc93c6a596bd9ef07bf6096490ec656876a8370e2e70f3b6231e98cbb850caeb4a8a53d891c0 +01c437b23150a5d29c4ec96c03de9a897984bb441d9683b6d5fc198027cba14bb0126a74fd7c94 +a5c14fa02a44853982e7577b020749486598ef6b768f5f32c7e4cf3e87c88ad5fdcdc2723b4100 +8e70ba62cfbd821f00014373b52a95d2c79f96e28a1d1973959639cc4ec34ba420588ca5a47e32 +0bccf8777c2f414b66dad10e92f9aac3ee248c38487f8367cd240f67ef0a036df2d4699ee3c824 +89cf670acc3d72c6443850af8732a440e26799009fb398b9505d3cfe01005554384cedb80df4ff +a13a7f46b699f7091d8036f13d07bdd788f70ff6c87e758089df2fe848e9caeca58fa0900ff5aa +8083f343c8d0a5260133a7a3e58cce6f126fa324f16d26d29419310efc5e2d0a33514964d23f09 +38912feb87a88ea582c4d0fc69539a3cb16186ea4ac251173121c6f576ea17e78ffc95fa663295 +3069b7240be7c780784fe7184e0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%Page: 1 1 +%%BeginPageSetup +%%PageBoundingBox: 0 -1 105 71 +%%EndPageSetup +q 0 -1 105 72 rectclip q +0 70.286 105 -71 re W n +0 g +0.79937 w +0 J +0 j +[] 0.0 d +4 M q 1 0 0 -1 0 70.285759 cm +1.949 11.344 m 1.949 25.516 l 10.453 25.516 l S Q +1.949 57.376 m 1.066 57.376 0.352 58.09 0.352 58.973 c 0.352 59.856 +1.066 60.575 1.949 60.575 c 2.832 60.575 3.547 59.856 3.547 58.973 c +3.547 58.09 2.832 57.376 1.949 57.376 c h +1.949 57.376 m f* +0.399685 w +q 0.000000000000000061 -1 -1 -0.000000000000000061 0 70.285759 cm +12.91 -1.949 m 12.91 -1.066 12.195 -0.352 11.312 -0.352 c 10.43 -0.352 +9.711 -1.066 9.711 -1.949 c 9.711 -2.832 10.43 -3.547 11.312 -3.547 c +12.195 -3.547 12.91 -2.832 12.91 -1.949 c h +12.91 -1.949 m S Q +0.8 w +q 1 0 0 -1 0 70.285759 cm +1.949 0.004 m 1.949 5.672 l S Q +1.949 62.766 m 0.352 65.532 l 3.551 65.532 l h +1.949 62.766 m f* +0.4 w +q 0.000000000000000061 -1 -1 -0.000000000000000061 0 70.285759 cm +7.52 -1.949 m 4.754 -0.352 l 4.754 -3.551 l h +7.52 -1.949 m S Q +BT +9.6 0 0 9.6 13.288583 41.934978 Tm +/f-0-0 1 Tf +[<010203>-1<04>-1<05>7<02>-1<06060705>]TJ +ET +BT +9.6 0 0 9.6 27.46181 24.927019 Tm +/f-0-0 1 Tf +[<0807030802>-1<05>1<09>-1<0a>1<0b>1<0c>1<09>-1<0d0e>-1<04>-1<0e09>-1<0f>1<10>]TJ +ET +0 0.501961 0 rg +BT +8.8 0 0 8.8 27.46181 16.423161 Tm +/f-1-0 1 Tf +<010203040303030506070809>Tj +ET +0 g +0.8 w +q 1 0 0 -1 0 70.285759 cm +18.957 34.02 m 18.957 68.035 l S Q +18.957 0.403 m 17.359 3.172 l 20.559 3.172 l h +18.957 0.403 m f* +0.4 w +q -0.0000000235186 -1 -1 0.0000000235186 0 70.285759 cm +69.883 -18.957 m 67.113 -17.359 l 67.113 -20.559 l h +69.883 -18.957 m S Q +BT +6.4 0 0 6.4 24.627167 2.249919 Tm +/f-2-0 1 Tf +[<01>1<02>-1<03>1<04>-1<05>1<0604>-1<07>1<0809>-1<03>10<050a0607>1<0a0b +0c>]TJ +ET +0.8 w +q 1 0 0 -1 0 70.285759 cm +24.629 34.02 79.367 25.512 re S Q +BT +6.4 0 0 6.4 7.619292 61.777507 Tm +/f-2-0 1 Tf +[<060a0c>-1<0a08>-1<0b050d>-1<03>10<07>1<02>]TJ +ET +Q Q +showpage +%%Trailer +count op_count sub {pop} repeat +countdictstack dict_count sub {end} repeat +cairo_eps_state restore +%%EOF diff --git a/svg/proto-sensor.svg b/svg/proto-sensor.svg new file mode 100644 index 0000000..ad889d0 --- /dev/null +++ b/svg/proto-sensor.svg @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + controller + sensor 123 data 67 + e60-0007b 43 + + periodic broadcast + + data source + + -- cgit v1.2.1