I2C Simulation Tool

by labjacksupport

HTML

<style>
@media print {
  #unprintable-content {
    display:none;
  }
  #print-warning {
    display:inline;
  }
}
@media screen {
  #unprintable-content {
    display:inline;
  }
  #print-warning {
    display:none;
  }
}
</style>

<div id="print-warning">
<h2>Unprintable Content</h2>
<p>This page contains material that is only viewable online.</p>
</div>

<!-- <script>
// Register a "on document ready" function callback.
$(document).ready(function() {
  // Search page for the shopping cart icon.
  var cartIcon = jQuery('.region-header-top #block-system-user-menu .leaf.cart');

  try {
    // See if the shopping cart icon exists
    if(cartIcon.length >= 1) {
      // if it exists then we are not a printer.
    } else {
      // if it doesn't exist then we are a printer.
      jQuery('#unprintable-content').hide()
      jQuery('#print-warning').show()
    }
  } catch(err) {
    // we must be a printer
    jQuery('#unprintable-content').hide()
    jQuery('#print-warning').show()
  }
});

</script> -->

<style>
/* Table Styling Fixes */
table { border:none; width: inherit; }
table, td { border:none }
table td, table th { padding:0px; }
tbody { border-top:none; }
/*.imgSelector {display:none;position:absolute;visibility:hidden;}*/

/* Overall Page Div for I2C Timing Diagrams */
.i2c {position:relative;width:100%;}
/* Overall Graph Box (SliderDiv)*/
.timingDiagramGraphs {
    position:relative;
    top:0px;
    left:0px;
    height:140px;
    width:100%;
}
/* Bank of Images */
.imgSelector {display:none;position:none;visibility:hidden;}
/* Secondary Overall Graph Box (SliderEl)*/
.timingDiagramGraphBox {
    height: 100%;
}
/* Element that slides (Slider)*/
.timingDiagramGraphSlider {
    margin: 0px;
    padding: 0px;
    height: 100%;
    width: 100%;
    overflow-x: auto;
}
.timingDiagramGraphSliderBox {
    position: relative;
    height: 100%;
    width: 1349px;/* Value Must Be Changed When Updating Graph!!! */
    padding-right: 10px;
}
/* First Individual...

JavaScript

$(document).ready(function () {
    //console.log('');
    //console.log('Start Script Output:');

    /* Get HTML Elements */
    var pictureUL = jQuery('.i2c .imgSelector .imageList li');
    //Index html elements into imgDict
    var imgDict = [];
    pictureUL.each(function( index, val ) {
        var indexStr = val.id.split("png")[0];
        var classes = val.className;
        var imgStr = val.innerHTML;
        var newStr = "<li id='"+indexStr+"' class='" + classes + "'>" + imgStr + "</li";
        var imgDictIndex = {
            key:indexStr,
            val:newStr
        };
        imgDict[index] = imgDictIndex;
    });

    //Get width of image (for auto-resizing multiple)
    var tImg = jQuery('.i2c #1png img');
    var widthDivisor = 32/tImg.width();
    var initialTextWidth = jQuery('.i2c .graphLabelTitle').width();
    var timingDiagramGraphWidth = 8000;
    

    //Get Element of body to resize when adding/removing images
    var graphBody = jQuery('.i2c .timingDiagramGraphSliderBox');

    //Get various graph boxes
    var i2cFunctUL = jQuery('.i2c .timingDiagramGraphSlider #I2CGraph #I2COperation ul');
    var SDAGraphUL = jQuery('.i2c .timingDiagramGraphSlider #SDAGraph #SDAChannel ul');
    var SCLGraphUL = jQuery('.i2c .timingDiagramGraphSlider #SCLGraph #SCLChannel ul');

    var i2cFunctLI = jQuery('.i2c .timingDiagramGraphSlider #I2CGraph #I2COperation li');
    var SDAGraphLI = jQuery('.i2c .timingDiagramGraphSlider #SDAGraph #SDAChannel li');
    var SCLGraphLI = jQuery('.i2c .timingDiagramGraphSlider #SCLGraph #SCLChannel li');

    var SDAGraphTitleEl = jQuery('.i2c .timingDiagramGraphSlider #SDAGraph .graphLabelTitle');
    var SCLGraphTitleEl = jQuery('.i2c .timingDiagramGraphSlider #SCLGraph .graphLabelTitle');

    //Get various user input form elements:
    var dummyCheckBoxEl = jQuery('.i2c .inputForum #insertDummyCheckBox');
    var dummyCheckBoxVal = dummyCheckBoxEl.is(':checked');

    var i2cOptionElements = {
       ...