Advertisement
PPMTechLtd

PPMonitor dataflow diagram

May 13th, 2011
3,086
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
DOT 8.47 KB | None | 0 0
  1. /*
  2.  
  3. PPMonitor dataflow diagram, showing how data gets from the various sensors to
  4. the users PC screen.
  5.  
  6. Licenced as Creative Commons Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) -- http://creativecommons.org/licenses/by-sa/3.0/
  7.  
  8. v1.00 : 05APR2011
  9.     Initial internal release.
  10.    
  11. v1.01 : 05APR2011
  12.     ROJ - Group sensors into cluster & group servers/clients into cluster. Also added "TCP/IP" link to SQL Database.
  13.     JBJ - Split "Top Board" into components.
  14.  
  15. v1.02 : 05APR2011
  16.     Pubic Release.
  17.     ROJ - Add distinct "Serial Sensor" path.
  18.     ROJ - Add more clusters, they rock.
  19.     ROJ - Tweak colours.
  20.     ROJ - Add alternative path for SHT7x sensor.
  21.     ROJ - Change CAN path to "dotted" to indicate old tech.
  22.     TH  - Spelling correction to "PPMonitor Unit".
  23.    
  24. v1.03 : 07APR2011
  25.     ROJ - Corrected spelling on "Formaldemeter" node label.
  26.     ROJ - Added optional settings to scale down to A4 sized image.
  27.     ROJ - Added version & date label to image.
  28.  
  29. */
  30. digraph SensorToScreen {
  31.     /* We really like Arial! */
  32.     fontname = "Arial"; node [ fontname = "Arial" ]; edge [ fontname = "Arial" ];
  33.  
  34.     /* Brand the output with the following info... */
  35.     label = "http://ppm-technology.com .:. PPMonitor DataFlow Diagram .:. v1.03 .:. 07APR2011\nhttp://creativecommons.org/licenses/by-sa/3.0/";
  36.    
  37.     /* Use these for PDF o/p to A4
  38.      *
  39.      * Comment them out for anything else to get the best resolution. */
  40.     size = "8.3,11.7";
  41.     ratio = fill;
  42.     /******************************************************************/
  43.    
  44.  
  45.     /* The PPMoniotr Node */
  46.     subgraph cluster_A {
  47.    
  48.         /* Example Serial Sensor */
  49.         subgraph cluster_0s {
  50.             node [ style = filled ];
  51.            
  52.             as0;
  53.            
  54.             label = "Serial Sensor Assembly";
  55.             color = "blue";
  56.             fontcolor = "blue";
  57.         }
  58.  
  59.         /* Example Voltage Sensor */
  60.         subgraph cluster_VoltageSensor {
  61.             node [ style = filled ];
  62.            
  63.             av0 -> av1;
  64.            
  65.             label = "Voltage Sensor Assembly";
  66.             color = "blue";
  67.             fontcolor = "blue";
  68.         }
  69.  
  70.         /* Example Current Sensor */
  71.         subgraph cluster_0c {
  72.             node [ style = filled ];
  73.            
  74.             ac0 -> ac1;
  75.            
  76.             label = "Current Sensor Assembly";
  77.             color = "blue";
  78.             fontcolor = "blue";
  79.         }
  80.  
  81.         /*  ADC type Top-Board */
  82.         subgraph cluster_TopBoard_ADC {
  83.             node [ style = filled ];
  84.            
  85.             ADC -> ZERO -> LPF -> vIEEE754 -> SPAN -> Baseline;
  86.            
  87.             label = "Top Board (SPIADC Code)";
  88.             color = "blue";
  89.             fontcolor = "blue";
  90.         }
  91.        
  92.         /* USART type Top-Board */
  93.         subgraph cluster_TopBoard_USART {
  94.             node [ style = filled ];
  95.            
  96.             Offset -> sIEEE754;
  97.            
  98.             label = "Top Board (SPIUSART Code)";
  99.             color = "blue";
  100.             fontcolor = "blue";
  101.         }
  102.        
  103.         /* Main-Board */
  104.         subgraph cluster_MainBoard {
  105.             node [ style = filled ];
  106.  
  107.             PIC -> Relays;
  108.             PIC -> ETRX2                [ label = "SPI", dir = both ];
  109.             PIC -> CANBus               [ dir = both, style = dotted ];
  110.             SHT75 -> FGMD -> PIC        [ label = "Serial" ];
  111.             SHT75 -> PIC                [ label = "I2C", style = dashed ];
  112.            
  113.             label = "Main Board";
  114.             color = "blue";
  115.             fontcolor = "blue";
  116.         }
  117.        
  118.         labelloc = b;
  119.         label = "PPMonitor Unit";
  120.         color = "forestgreen";
  121.         fontcolor = "forestgreen";
  122.         style = rounded;
  123.     }
  124.    
  125.     subgraph cluster_B {
  126.        
  127.         subgraph cluster_2 {
  128.             node [style=filled];
  129.            
  130.             ETRX2USB -> ZigBeeService   [ dir = both ];
  131.             CANCntrl-> PPMService       [ dir = both, style = dotted ];
  132.             PPMService -> ZigBeeService
  133.            
  134.             label = "PC (Server Side)";
  135.             color=blue;
  136.             fontcolor = blue;
  137.         }
  138.  
  139.         subgraph cluster_3 {
  140.             node [style=filled];
  141.            
  142.             Screen -> Client [ dir = both ];
  143.            
  144.             label = "PC (Client Side)";
  145.             color=blue;
  146.             fontcolor = blue;
  147.         }
  148.  
  149.         SQLDB;
  150.        
  151.         color=red;
  152.         fontcolor = red;
  153.         labelloc = b;
  154.         label = "Users PC";
  155.         style = rounded;
  156.     }
  157.  
  158.     /*
  159.      * Inter-Cluster connections.
  160.      *
  161.      *************************************************************************/
  162.     /* Sensors to Top-Board */
  163.     as0 -> Offset                       [ label = "Serial" ];
  164.     ac1 -> ADC                          [ label = "4-20mA" ];
  165.     av1 -> ADC                          [ label = "0 - 5V" ];
  166.    
  167.     /*  Top-Board to Main-Board */
  168.     Baseline -> PIC                      [ label = "SPI" ];
  169.     sIEEE754 -> PIC                      [ label = "SPI" ];
  170.  
  171.     /*  Main-Board to PC */
  172.     ETRX2 -> ZigBeeNet -> ETRX2USB      [ label = "SCAST", dir = both ];
  173.     CANBus -> CANCntrl                  [ label = "CAN Bus", dir = both, style = dotted ];
  174.    
  175.     /* Clients & Servers */
  176.     ZigBeeService -> SQLDB              [ dir = both ];
  177.     PPMService -> SQLDB                 [ dir = both ];
  178.     SQLDB -> Client                     [ dir = both ];
  179.     Client -> PPMService                [ dir = both ];
  180.     SQLDB -> Other                      [ dir = both, label = "TCP/IP Connection" ];
  181.  
  182.     /*
  183.      * Node setup
  184.      *
  185.      *************************************************************************/
  186.     /* Sensors and TXBoards. */
  187.     av0                                 [ label = "Sensor\n(e.g. TVOC)", shape = "invhouse", color="yellow" ];
  188.     av1                                 [ label = "Transmitter Board\n(w. Zero & Span Adjust)" ];
  189.     ac0                                 [ label = "Sensor\n(e.g. CO, NO2)", shape = "invhouse", color="yellow" ];
  190.     ac1                                 [ label = "Transmitter Board\n(w. Zero & Span Adjust)" ];
  191.     as0                                 [ label = "Sensor\n(e.g. CO2)", shape = "invhouse", color="yellow" ];
  192.     FGMD                                [ label = "Formaldemeter", shape = "invhouse", color="yellow" ];
  193.     SHT75                               [ label = "SHT7x Temp/Humi\nModule", shape = "invhouse", color="yellow" ];
  194.    
  195.     /* Top-Board and Main-Board Components */
  196.     ADC                                 [ label = "10-bit\nAnalgue to Digital\nConverter" ];
  197.     ZERO                                [ label = "Subtract D.C. Level\n(ZERO)" ];
  198.     SPAN                                [ label = "Apply Gain = RANGE / SPAN\n(convert to \"ppm\" value)" ];
  199.     sIEEE754                            [ label = "Convert to Floating-Point\n(using IEEE754 format)" ];
  200.     vIEEE754                            [ label = "Convert to Floating-Point\n(using IEEE754 format)" ];
  201.     LPF                                 [ label = "Apply Low-Pass Filter" ];
  202.     Baseline                            [ label = "Subtract baseline\n(a floating-point value)" ];
  203.     Offset                              [ label = "Subtract offset\n(an integer value -- ZERO)" ];
  204.     PIC                                 [ label = "Processor" ];
  205.     Relays                              [ label = "Relay outputs", shape = "house" fontcolor = "white", fillcolor="slateblue" ];
  206.    
  207.     /* NIC and Communication */
  208.     CANBus                              [ label = "CAN Controller", style = dotted ];
  209.     CANCntrl                            [ label = "CAN Controller", style = dotted ];
  210.     ETRX2                               [ label = "ETRX2" ];
  211.     ETRX2USB                            [ label = "ETRX2" ];
  212.     ZigBeeNet   [ label = "ZigBee Wireless Network", style = filled, shape = "doublecircle", color = "deepskyblue1" ];
  213.    
  214.     /* Services */
  215.     ZigBeeService                       [ label = "PPMonitor ZigBee Service" ];
  216.     PPMService                          [ label = "PPMonitor Service" ];
  217.     SQLDB                               [ label = "SQL Database", style = filled, shape = "folder", fillcolor = "bisque" ];
  218.  
  219.     /* Clients */
  220.     Client                              [ label = "PPMonitor Client" ];
  221.     Screen                              [ label = "PC Screen", shape = "house", fillcolor = "slateblue", fontcolor = "white"  ];
  222.     Other                               [ label = "Other users\n& tools", style = filled, shape = "note", fillcolor = "bisque" ];
  223.    
  224. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement