diff --git a/.gitignore b/.gitignore index 5dd601d3..7558e5ea 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,11 @@ Installers /LabVIEW/vi.lib/MakerHub/LINX/Firmware/Logs /LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/bin/* /LabVIEW/resource +/LabVIEW/vi.lib/MakerHub/LINX/*.aliases +/LabVIEW/vi.lib/MakerHub/LINX/*.lvlps +/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/make/VS2005/*.user +/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/make/VS2005/*.res +/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/make/VS2005/*.ncb +/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/make/VS2005/*.suo +/LabVIEW/vi.lib/MakerHub/LINX/API/*.aliases +/LabVIEW/vi.lib/MakerHub/LINX/API/*.lvlps diff --git a/All LINX VIs.vi b/All LINX VIs.vi new file mode 100644 index 00000000..9d8c26ac Binary files /dev/null and b/All LINX VIs.vi differ diff --git a/LabVIEW/examples/MakerHub/LINX/LINX - AD9850.vi b/LabVIEW/examples/MakerHub/LINX/LINX - AD9850.vi index 0a6d6c07..6eb3d889 100644 Binary files a/LabVIEW/examples/MakerHub/LINX/LINX - AD9850.vi and b/LabVIEW/examples/MakerHub/LINX/LINX - AD9850.vi differ diff --git a/LabVIEW/examples/MakerHub/LINX/LINX - Analog Read 1 Channel.vi b/LabVIEW/examples/MakerHub/LINX/LINX - Analog Read 1 Channel.vi index 84769810..49994334 100644 Binary files a/LabVIEW/examples/MakerHub/LINX/LINX - Analog Read 1 Channel.vi and b/LabVIEW/examples/MakerHub/LINX/LINX - Analog Read 1 Channel.vi differ diff --git a/LabVIEW/examples/MakerHub/LINX/LINX - Analog Read N Channels.vi b/LabVIEW/examples/MakerHub/LINX/LINX - Analog Read N Channels.vi index 7ff10b6f..7b724279 100644 Binary files a/LabVIEW/examples/MakerHub/LINX/LINX - Analog Read N Channels.vi and b/LabVIEW/examples/MakerHub/LINX/LINX - Analog Read N Channels.vi differ diff --git a/LabVIEW/examples/MakerHub/LINX/LINX - Analog Set Voltage Reference.vi b/LabVIEW/examples/MakerHub/LINX/LINX - Analog Set Voltage Reference.vi index 4eba2424..33f4ab09 100644 Binary files a/LabVIEW/examples/MakerHub/LINX/LINX - Analog Set Voltage Reference.vi and b/LabVIEW/examples/MakerHub/LINX/LINX - Analog Set Voltage Reference.vi differ diff --git a/LabVIEW/examples/MakerHub/LINX/LINX - Blink (Advanced).vi b/LabVIEW/examples/MakerHub/LINX/LINX - Blink (Advanced).vi index 9130d41f..e1282e6d 100644 Binary files a/LabVIEW/examples/MakerHub/LINX/LINX - Blink (Advanced).vi and b/LabVIEW/examples/MakerHub/LINX/LINX - Blink (Advanced).vi differ diff --git a/LabVIEW/examples/MakerHub/LINX/LINX - Blink (Simple) (TCP).vi b/LabVIEW/examples/MakerHub/LINX/LINX - Blink (Simple) (TCP).vi index dd2bed33..f8c2d0f2 100644 Binary files a/LabVIEW/examples/MakerHub/LINX/LINX - Blink (Simple) (TCP).vi and b/LabVIEW/examples/MakerHub/LINX/LINX - Blink (Simple) (TCP).vi differ diff --git a/LabVIEW/examples/MakerHub/LINX/LINX - Blink (Simple).vi b/LabVIEW/examples/MakerHub/LINX/LINX - Blink (Simple).vi index bfbfa1a1..d1c28107 100644 Binary files a/LabVIEW/examples/MakerHub/LINX/LINX - Blink (Simple).vi and b/LabVIEW/examples/MakerHub/LINX/LINX - Blink (Simple).vi differ diff --git a/LabVIEW/examples/MakerHub/LINX/LINX - BlinkM Smart LED.vi b/LabVIEW/examples/MakerHub/LINX/LINX - BlinkM Smart LED.vi index 576559c5..58cdfe83 100644 Binary files a/LabVIEW/examples/MakerHub/LINX/LINX - BlinkM Smart LED.vi and b/LabVIEW/examples/MakerHub/LINX/LINX - BlinkM Smart LED.vi differ diff --git a/LabVIEW/examples/MakerHub/LINX/LINX - DS1307 Real Time Clock.vi b/LabVIEW/examples/MakerHub/LINX/LINX - DS1307 Real Time Clock.vi index 9b91b3c1..e73ab7e3 100644 Binary files a/LabVIEW/examples/MakerHub/LINX/LINX - DS1307 Real Time Clock.vi and b/LabVIEW/examples/MakerHub/LINX/LINX - DS1307 Real Time Clock.vi differ diff --git a/LabVIEW/examples/MakerHub/LINX/LINX - Digital Read 1 Channel.vi b/LabVIEW/examples/MakerHub/LINX/LINX - Digital Read 1 Channel.vi index 0a0dde82..ddf8ec2e 100644 Binary files a/LabVIEW/examples/MakerHub/LINX/LINX - Digital Read 1 Channel.vi and b/LabVIEW/examples/MakerHub/LINX/LINX - Digital Read 1 Channel.vi differ diff --git a/LabVIEW/examples/MakerHub/LINX/LINX - Digital Read N Channels.vi b/LabVIEW/examples/MakerHub/LINX/LINX - Digital Read N Channels.vi index dbba7159..6e2df9ff 100644 Binary files a/LabVIEW/examples/MakerHub/LINX/LINX - Digital Read N Channels.vi and b/LabVIEW/examples/MakerHub/LINX/LINX - Digital Read N Channels.vi differ diff --git a/LabVIEW/examples/MakerHub/LINX/LINX - Digital Write N Channels.vi b/LabVIEW/examples/MakerHub/LINX/LINX - Digital Write N Channels.vi index 2db55637..2e18839e 100644 Binary files a/LabVIEW/examples/MakerHub/LINX/LINX - Digital Write N Channels.vi and b/LabVIEW/examples/MakerHub/LINX/LINX - Digital Write N Channels.vi differ diff --git a/LabVIEW/examples/MakerHub/LINX/LINX - Digital Write Square Wave.vi b/LabVIEW/examples/MakerHub/LINX/LINX - Digital Write Square Wave.vi index 1afa5cb0..26e6ced1 100644 Binary files a/LabVIEW/examples/MakerHub/LINX/LINX - Digital Write Square Wave.vi and b/LabVIEW/examples/MakerHub/LINX/LINX - Digital Write Square Wave.vi differ diff --git a/LabVIEW/examples/MakerHub/LINX/LINX - Interactions DHT11.vi b/LabVIEW/examples/MakerHub/LINX/LINX - Interactions DHT11.vi index 5a97ac6b..3921885b 100644 Binary files a/LabVIEW/examples/MakerHub/LINX/LINX - Interactions DHT11.vi and b/LabVIEW/examples/MakerHub/LINX/LINX - Interactions DHT11.vi differ diff --git a/LabVIEW/examples/MakerHub/LINX/LINX - Interactions LED Matrix.vi b/LabVIEW/examples/MakerHub/LINX/LINX - Interactions LED Matrix.vi index 6f7b060d..03877dff 100644 Binary files a/LabVIEW/examples/MakerHub/LINX/LINX - Interactions LED Matrix.vi and b/LabVIEW/examples/MakerHub/LINX/LINX - Interactions LED Matrix.vi differ diff --git a/LabVIEW/examples/MakerHub/LINX/LINX - Interactions Seven Segement Display.vi b/LabVIEW/examples/MakerHub/LINX/LINX - Interactions Seven Segement Display.vi index 9169b252..9a97c185 100644 Binary files a/LabVIEW/examples/MakerHub/LINX/LINX - Interactions Seven Segement Display.vi and b/LabVIEW/examples/MakerHub/LINX/LINX - Interactions Seven Segement Display.vi differ diff --git a/LabVIEW/examples/MakerHub/LINX/LINX - MMA8452Q Accelerometer.vi b/LabVIEW/examples/MakerHub/LINX/LINX - MMA8452Q Accelerometer.vi index 2f8c9877..ada91d68 100644 Binary files a/LabVIEW/examples/MakerHub/LINX/LINX - MMA8452Q Accelerometer.vi and b/LabVIEW/examples/MakerHub/LINX/LINX - MMA8452Q Accelerometer.vi differ diff --git a/LabVIEW/examples/MakerHub/LINX/LINX - PWM 1 Channel.vi b/LabVIEW/examples/MakerHub/LINX/LINX - PWM 1 Channel.vi index 25464548..7b97dfc0 100644 Binary files a/LabVIEW/examples/MakerHub/LINX/LINX - PWM 1 Channel.vi and b/LabVIEW/examples/MakerHub/LINX/LINX - PWM 1 Channel.vi differ diff --git a/LabVIEW/examples/MakerHub/LINX/LINX - PWM N Channel.vi b/LabVIEW/examples/MakerHub/LINX/LINX - PWM N Channel.vi index 4119307e..1a8fc1aa 100644 Binary files a/LabVIEW/examples/MakerHub/LINX/LINX - PWM N Channel.vi and b/LabVIEW/examples/MakerHub/LINX/LINX - PWM N Channel.vi differ diff --git a/LabVIEW/examples/MakerHub/LINX/LINX - Photocell.vi b/LabVIEW/examples/MakerHub/LINX/LINX - Photocell.vi index f583d3eb..76d48471 100644 Binary files a/LabVIEW/examples/MakerHub/LINX/LINX - Photocell.vi and b/LabVIEW/examples/MakerHub/LINX/LINX - Photocell.vi differ diff --git a/LabVIEW/examples/MakerHub/LINX/LINX - PmodACL2.vi b/LabVIEW/examples/MakerHub/LINX/LINX - PmodACL2.vi index c34a860c..c17c22ed 100644 Binary files a/LabVIEW/examples/MakerHub/LINX/LINX - PmodACL2.vi and b/LabVIEW/examples/MakerHub/LINX/LINX - PmodACL2.vi differ diff --git a/LabVIEW/examples/MakerHub/LINX/LINX - PmodALS.vi b/LabVIEW/examples/MakerHub/LINX/LINX - PmodALS.vi index a16377e5..218a7d6e 100644 Binary files a/LabVIEW/examples/MakerHub/LINX/LINX - PmodALS.vi and b/LabVIEW/examples/MakerHub/LINX/LINX - PmodALS.vi differ diff --git a/LabVIEW/examples/MakerHub/LINX/LINX - PmodBT2.vi b/LabVIEW/examples/MakerHub/LINX/LINX - PmodBT2.vi index 50034c4f..f3ca3a32 100644 Binary files a/LabVIEW/examples/MakerHub/LINX/LINX - PmodBT2.vi and b/LabVIEW/examples/MakerHub/LINX/LINX - PmodBT2.vi differ diff --git a/LabVIEW/examples/MakerHub/LINX/LINX - PmodCMPS.vi b/LabVIEW/examples/MakerHub/LINX/LINX - PmodCMPS.vi index 590abb79..380e92fb 100644 Binary files a/LabVIEW/examples/MakerHub/LINX/LINX - PmodCMPS.vi and b/LabVIEW/examples/MakerHub/LINX/LINX - PmodCMPS.vi differ diff --git a/LabVIEW/examples/MakerHub/LINX/LINX - PmodGPS.vi b/LabVIEW/examples/MakerHub/LINX/LINX - PmodGPS.vi index 73acb1aa..a467ed57 100644 Binary files a/LabVIEW/examples/MakerHub/LINX/LINX - PmodGPS.vi and b/LabVIEW/examples/MakerHub/LINX/LINX - PmodGPS.vi differ diff --git a/LabVIEW/examples/MakerHub/LINX/LINX - PmodGYRO.vi b/LabVIEW/examples/MakerHub/LINX/LINX - PmodGYRO.vi index 61fdda33..1d9c1976 100644 Binary files a/LabVIEW/examples/MakerHub/LINX/LINX - PmodGYRO.vi and b/LabVIEW/examples/MakerHub/LINX/LINX - PmodGYRO.vi differ diff --git a/LabVIEW/examples/MakerHub/LINX/LINX - PmodJSTK.vi b/LabVIEW/examples/MakerHub/LINX/LINX - PmodJSTK.vi index 5ec12227..0d3610cb 100644 Binary files a/LabVIEW/examples/MakerHub/LINX/LINX - PmodJSTK.vi and b/LabVIEW/examples/MakerHub/LINX/LINX - PmodJSTK.vi differ diff --git a/LabVIEW/examples/MakerHub/LINX/LINX - PmodMIC3.vi b/LabVIEW/examples/MakerHub/LINX/LINX - PmodMIC3.vi index ffea23a1..4e4642ae 100644 Binary files a/LabVIEW/examples/MakerHub/LINX/LINX - PmodMIC3.vi and b/LabVIEW/examples/MakerHub/LINX/LINX - PmodMIC3.vi differ diff --git a/LabVIEW/examples/MakerHub/LINX/LINX - PmodSONOR.vi b/LabVIEW/examples/MakerHub/LINX/LINX - PmodSONOR.vi index 991243f0..1e1de02e 100644 Binary files a/LabVIEW/examples/MakerHub/LINX/LINX - PmodSONOR.vi and b/LabVIEW/examples/MakerHub/LINX/LINX - PmodSONOR.vi differ diff --git a/LabVIEW/examples/MakerHub/LINX/LINX - PmodTC1.vi b/LabVIEW/examples/MakerHub/LINX/LINX - PmodTC1.vi index f6d7fafa..97e3b918 100644 Binary files a/LabVIEW/examples/MakerHub/LINX/LINX - PmodTC1.vi and b/LabVIEW/examples/MakerHub/LINX/LINX - PmodTC1.vi differ diff --git a/LabVIEW/examples/MakerHub/LINX/LINX - PmodTMP3.vi b/LabVIEW/examples/MakerHub/LINX/LINX - PmodTMP3.vi index caa7990f..34929292 100644 Binary files a/LabVIEW/examples/MakerHub/LINX/LINX - PmodTMP3.vi and b/LabVIEW/examples/MakerHub/LINX/LINX - PmodTMP3.vi differ diff --git a/LabVIEW/examples/MakerHub/LINX/LINX - SPI Loopback.vi b/LabVIEW/examples/MakerHub/LINX/LINX - SPI Loopback.vi index b154bf30..29a29249 100644 Binary files a/LabVIEW/examples/MakerHub/LINX/LINX - SPI Loopback.vi and b/LabVIEW/examples/MakerHub/LINX/LINX - SPI Loopback.vi differ diff --git a/LabVIEW/examples/MakerHub/LINX/LINX - SSD1306 OLED.vi b/LabVIEW/examples/MakerHub/LINX/LINX - SSD1306 OLED.vi index 434da5f1..73f6df9c 100644 Binary files a/LabVIEW/examples/MakerHub/LINX/LINX - SSD1306 OLED.vi and b/LabVIEW/examples/MakerHub/LINX/LINX - SSD1306 OLED.vi differ diff --git a/LabVIEW/examples/MakerHub/LINX/LINX - Servo 1 Channel.vi b/LabVIEW/examples/MakerHub/LINX/LINX - Servo 1 Channel.vi index c89d8fd9..657f75ec 100644 Binary files a/LabVIEW/examples/MakerHub/LINX/LINX - Servo 1 Channel.vi and b/LabVIEW/examples/MakerHub/LINX/LINX - Servo 1 Channel.vi differ diff --git a/LabVIEW/examples/MakerHub/LINX/LINX - Set RGB LED Color.vi b/LabVIEW/examples/MakerHub/LINX/LINX - Set RGB LED Color.vi index c9c8122a..4c272b4e 100644 Binary files a/LabVIEW/examples/MakerHub/LINX/LINX - Set RGB LED Color.vi and b/LabVIEW/examples/MakerHub/LINX/LINX - Set RGB LED Color.vi differ diff --git a/LabVIEW/examples/MakerHub/LINX/LINX - Seven Segment Display.vi b/LabVIEW/examples/MakerHub/LINX/LINX - Seven Segment Display.vi index 05ce2934..6e39d932 100644 Binary files a/LabVIEW/examples/MakerHub/LINX/LINX - Seven Segment Display.vi and b/LabVIEW/examples/MakerHub/LINX/LINX - Seven Segment Display.vi differ diff --git a/LabVIEW/examples/MakerHub/LINX/LINX - TMP3x.vi b/LabVIEW/examples/MakerHub/LINX/LINX - TMP3x.vi index addeee04..3d1e6050 100644 Binary files a/LabVIEW/examples/MakerHub/LINX/LINX - TMP3x.vi and b/LabVIEW/examples/MakerHub/LINX/LINX - TMP3x.vi differ diff --git a/LabVIEW/examples/MakerHub/LINX/LINX - Thermistor Read.vi b/LabVIEW/examples/MakerHub/LINX/LINX - Thermistor Read.vi index 410a9901..2d33c4c3 100644 Binary files a/LabVIEW/examples/MakerHub/LINX/LINX - Thermistor Read.vi and b/LabVIEW/examples/MakerHub/LINX/LINX - Thermistor Read.vi differ diff --git a/LabVIEW/examples/MakerHub/LINX/LINX - Thumbstick Read.vi b/LabVIEW/examples/MakerHub/LINX/LINX - Thumbstick Read.vi index 9e294efd..58be2648 100644 Binary files a/LabVIEW/examples/MakerHub/LINX/LINX - Thumbstick Read.vi and b/LabVIEW/examples/MakerHub/LINX/LINX - Thumbstick Read.vi differ diff --git a/LabVIEW/examples/MakerHub/LINX/LINX - Ultrasonic.vi b/LabVIEW/examples/MakerHub/LINX/LINX - Ultrasonic.vi index 9355d033..55ac8fef 100644 Binary files a/LabVIEW/examples/MakerHub/LINX/LINX - Ultrasonic.vi and b/LabVIEW/examples/MakerHub/LINX/LINX - Ultrasonic.vi differ diff --git a/LabVIEW/examples/MakerHub/LINX/LINX - WS2812 Strip Controller.vi b/LabVIEW/examples/MakerHub/LINX/LINX - WS2812 Strip Controller.vi index ffc6c8fb..8e1a92fe 100644 Binary files a/LabVIEW/examples/MakerHub/LINX/LINX - WS2812 Strip Controller.vi and b/LabVIEW/examples/MakerHub/LINX/LINX - WS2812 Strip Controller.vi differ diff --git a/LabVIEW/examples/MakerHub/LINX/LINX - WS2812 Write N LEDs.vi b/LabVIEW/examples/MakerHub/LINX/LINX - WS2812 Write N LEDs.vi index bbcb411d..b00cccf8 100644 Binary files a/LabVIEW/examples/MakerHub/LINX/LINX - WS2812 Write N LEDs.vi and b/LabVIEW/examples/MakerHub/LINX/LINX - WS2812 Write N LEDs.vi differ diff --git a/LabVIEW/examples/MakerHub/LINX/LINX - WS2812 Write One LED.vi b/LabVIEW/examples/MakerHub/LINX/LINX - WS2812 Write One LED.vi index 678ed5d1..313f087a 100644 Binary files a/LabVIEW/examples/MakerHub/LINX/LINX - WS2812 Write One LED.vi and b/LabVIEW/examples/MakerHub/LINX/LINX - WS2812 Write One LED.vi differ diff --git a/LabVIEW/examples/MakerHub/LINX/LINX - chipKIT Basic IO Shield.vi b/LabVIEW/examples/MakerHub/LINX/LINX - chipKIT Basic IO Shield.vi index aa453c9d..15d74853 100644 Binary files a/LabVIEW/examples/MakerHub/LINX/LINX - chipKIT Basic IO Shield.vi and b/LabVIEW/examples/MakerHub/LINX/LINX - chipKIT Basic IO Shield.vi differ diff --git a/LabVIEW/examples/MakerHub/LINX/Local IO Benchmarks/LINX - Analog Read Benchmark.vi b/LabVIEW/examples/MakerHub/LINX/Local IO Benchmarks/LINX - Analog Read Benchmark.vi index e3055f30..4c6021e9 100644 Binary files a/LabVIEW/examples/MakerHub/LINX/Local IO Benchmarks/LINX - Analog Read Benchmark.vi and b/LabVIEW/examples/MakerHub/LINX/Local IO Benchmarks/LINX - Analog Read Benchmark.vi differ diff --git a/LabVIEW/examples/MakerHub/LINX/Local IO Benchmarks/LINX - Digital Read Benchmark.vi b/LabVIEW/examples/MakerHub/LINX/Local IO Benchmarks/LINX - Digital Read Benchmark.vi index 9a4c18f2..50df1f71 100644 Binary files a/LabVIEW/examples/MakerHub/LINX/Local IO Benchmarks/LINX - Digital Read Benchmark.vi and b/LabVIEW/examples/MakerHub/LINX/Local IO Benchmarks/LINX - Digital Read Benchmark.vi differ diff --git a/LabVIEW/examples/MakerHub/LINX/Local IO Benchmarks/LINX - Digital Write Benchmark.vi b/LabVIEW/examples/MakerHub/LINX/Local IO Benchmarks/LINX - Digital Write Benchmark.vi index 40b4032b..dc66b45d 100644 Binary files a/LabVIEW/examples/MakerHub/LINX/Local IO Benchmarks/LINX - Digital Write Benchmark.vi and b/LabVIEW/examples/MakerHub/LINX/Local IO Benchmarks/LINX - Digital Write Benchmark.vi differ diff --git a/LabVIEW/examples/MakerHub/LINX/Local IO Benchmarks/LINX - I2C Write Benchmark.vi b/LabVIEW/examples/MakerHub/LINX/Local IO Benchmarks/LINX - I2C Write Benchmark.vi index d5e8ba0c..6126cbf1 100644 Binary files a/LabVIEW/examples/MakerHub/LINX/Local IO Benchmarks/LINX - I2C Write Benchmark.vi and b/LabVIEW/examples/MakerHub/LINX/Local IO Benchmarks/LINX - I2C Write Benchmark.vi differ diff --git a/LabVIEW/examples/MakerHub/LINX/Local IO Benchmarks/LINX - PWM Set Duty Cycle Benchmark.vi b/LabVIEW/examples/MakerHub/LINX/Local IO Benchmarks/LINX - PWM Set Duty Cycle Benchmark.vi index 1967eead..f503c8b5 100644 Binary files a/LabVIEW/examples/MakerHub/LINX/Local IO Benchmarks/LINX - PWM Set Duty Cycle Benchmark.vi and b/LabVIEW/examples/MakerHub/LINX/Local IO Benchmarks/LINX - PWM Set Duty Cycle Benchmark.vi differ diff --git a/LabVIEW/examples/MakerHub/LINX/Local IO Benchmarks/LINX - SPI Loopback Benchmark.vi b/LabVIEW/examples/MakerHub/LINX/Local IO Benchmarks/LINX - SPI Loopback Benchmark.vi index c2337448..f2184349 100644 Binary files a/LabVIEW/examples/MakerHub/LINX/Local IO Benchmarks/LINX - SPI Loopback Benchmark.vi and b/LabVIEW/examples/MakerHub/LINX/Local IO Benchmarks/LINX - SPI Loopback Benchmark.vi differ diff --git a/LabVIEW/examples/MakerHub/LINX/Local IO Benchmarks/LINX - UART Loopback Benchmark.vi b/LabVIEW/examples/MakerHub/LINX/Local IO Benchmarks/LINX - UART Loopback Benchmark.vi index 79f6a3fb..ef40ac00 100644 Binary files a/LabVIEW/examples/MakerHub/LINX/Local IO Benchmarks/LINX - UART Loopback Benchmark.vi and b/LabVIEW/examples/MakerHub/LINX/Local IO Benchmarks/LINX - UART Loopback Benchmark.vi differ diff --git a/LabVIEW/help/Hobbyist/Forums.vi b/LabVIEW/help/Hobbyist/Forums.vi index aa84333f..2b0578d3 100644 Binary files a/LabVIEW/help/Hobbyist/Forums.vi and b/LabVIEW/help/Hobbyist/Forums.vi differ diff --git a/LabVIEW/help/Hobbyist/Pinout - BeagleBone Black.vi b/LabVIEW/help/Hobbyist/Pinout - BeagleBone Black.vi index a5fdb715..13a22c6f 100644 Binary files a/LabVIEW/help/Hobbyist/Pinout - BeagleBone Black.vi and b/LabVIEW/help/Hobbyist/Pinout - BeagleBone Black.vi differ diff --git a/LabVIEW/help/Hobbyist/Pinout - Raspberry Pi 2 B.vi b/LabVIEW/help/Hobbyist/Pinout - Raspberry Pi 2 B.vi index 4178bf49..3ad203cc 100644 Binary files a/LabVIEW/help/Hobbyist/Pinout - Raspberry Pi 2 B.vi and b/LabVIEW/help/Hobbyist/Pinout - Raspberry Pi 2 B.vi differ diff --git a/LabVIEW/project/Hobbyist/Firmware Wizard.vi b/LabVIEW/project/Hobbyist/Firmware Wizard.vi index 5fb7e65e..7c317940 100644 Binary files a/LabVIEW/project/Hobbyist/Firmware Wizard.vi and b/LabVIEW/project/Hobbyist/Firmware Wizard.vi differ diff --git a/LabVIEW/project/Hobbyist/Target Configuration.vi b/LabVIEW/project/Hobbyist/Target Configuration.vi index 78c32950..beae80fa 100644 Binary files a/LabVIEW/project/Hobbyist/Target Configuration.vi and b/LabVIEW/project/Hobbyist/Target Configuration.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/API/Base/Error Handler.vi b/LabVIEW/vi.lib/MakerHub/LINX/API/Base/Error Handler.vi new file mode 100644 index 00000000..99c61f3a Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/LINX/API/Base/Error Handler.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/API/Base/Format Error.vi b/LabVIEW/vi.lib/MakerHub/LINX/API/Base/Format Error.vi new file mode 100644 index 00000000..7cedea32 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/LINX/API/Base/Format Error.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/API/Base/Get Name.vi b/LabVIEW/vi.lib/MakerHub/LINX/API/Base/Get Name.vi new file mode 100644 index 00000000..19563bd2 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/LINX/API/Base/Get Name.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/API/Base/GetSet Handle.vi b/LabVIEW/vi.lib/MakerHub/LINX/API/Base/GetSet Handle.vi new file mode 100644 index 00000000..249a6699 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/LINX/API/Base/GetSet Handle.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/API/Base/Shared Library Path.vi b/LabVIEW/vi.lib/MakerHub/LINX/API/Base/Shared Library Path.vi new file mode 100644 index 00000000..43d8c7cf Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/LINX/API/Base/Shared Library Path.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/API/Client/Open Local.vi b/LabVIEW/vi.lib/MakerHub/LINX/API/Client/Open Local.vi new file mode 100644 index 00000000..07ed4b92 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/LINX/API/Client/Open Local.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/API/Client/Open Serial.vi b/LabVIEW/vi.lib/MakerHub/LINX/API/Client/Open Serial.vi new file mode 100644 index 00000000..75a54d2d Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/LINX/API/Client/Open Serial.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/API/Client/Open TCP.vi b/LabVIEW/vi.lib/MakerHub/LINX/API/Client/Open TCP.vi new file mode 100644 index 00000000..d473e05b Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/LINX/API/Client/Open TCP.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/API/Close.vi b/LabVIEW/vi.lib/MakerHub/LINX/API/Close.vi new file mode 100644 index 00000000..f3d6f868 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/LINX/API/Close.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/API/Create.vi b/LabVIEW/vi.lib/MakerHub/LINX/API/Create.vi new file mode 100644 index 00000000..b7514bd5 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/LINX/API/Create.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/API/LINX API.lvlps b/LabVIEW/vi.lib/MakerHub/LINX/API/LINX API.lvlps new file mode 100644 index 00000000..87d627bb --- /dev/null +++ b/LabVIEW/vi.lib/MakerHub/LINX/API/LINX API.lvlps @@ -0,0 +1,2 @@ +[ProjectWindow_Data] +ProjectExplorer.ClassicPosition[String] = "297,206,942,1226" diff --git a/LabVIEW/vi.lib/MakerHub/LINX/API/LINX API.lvproj b/LabVIEW/vi.lib/MakerHub/LINX/API/LINX API.lvproj new file mode 100644 index 00000000..14f83b9e --- /dev/null +++ b/LabVIEW/vi.lib/MakerHub/LINX/API/LINX API.lvproj @@ -0,0 +1,24 @@ + + + + 3 + true + true + false + 0 + My Computer/VI Server + My Computer/VI Server + true + true + false + + + + + + + + + + + diff --git a/LabVIEW/vi.lib/MakerHub/LINX/API/LINX Base.lvclass b/LabVIEW/vi.lib/MakerHub/LINX/API/LINX Base.lvclass new file mode 100644 index 00000000..27f84059 --- /dev/null +++ b/LabVIEW/vi.lib/MakerHub/LINX/API/LINX Base.lvclass @@ -0,0 +1,105 @@ + + + + )!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!*)!!!*Q(C=\>5^<NN!%)<BDU9+![Q-Z!#"LD"85/F7L=OZ!FP$>K(#6<KZAK[A+]Q66,P4&:BXFR-BAGWIM9-A-+GFK'``(CUJ3OL<N@2.][6N('`?WM:FKXL;^7/>^G[H?BL-SWNZ7Q\H^68VO^&]6D]O6@-S3TM\#6\V8]YYH0H?YY]8P\[_NK`N`^\O,`Y)0PVX-+A^C#B*#9J44'X;/=G40-G40-G40-C$0-C$0-C$X-G>X-G>X-G>X-C.X-C.X-C.P/`E)B?ZS#%FES=4*9-G!S3.I3AZ**\%EXA3$R_6?"*0YEE]C9=G3DS**`%EHM2$.S7?R*.Y%E`C9;AOS<[4YUE]$+`!%XA#4_!*0%SJQ"-!AMG#A9."9#CI$%Y#4_!*0*QK]!3?Q".Y!A`6#DS"*`!%HM"$F\YKU46N*]@$-()]DM@R/"\(Q^"S0)\(]4A?R].U=DS/RU%Y%TK$1Z$4S7HA@(!]DI=X/2\(YXA=D_/BKF]B\SP4.'UHRW.Y$)`B-4S'BS&E?!S0Y4%]BI>B:8A-D_%R0);(K72Y$)`B-3$'J%QP9T#DI^()#!Q0LX[X7,^+U387>[FO8N6.K<L:6$?2[O:18846R62>*.8CKR:6N6CK26"^/26;B6&.IOL='OL)]5$:5X;5,77C<#BLSIJSU\J_=-0D];D$Y;$^@K`><K@N>KNJGL4:<,2?L\6;L=3@]?ER])0^^%"9HEPXH$]_4]0$\>0Q_./(B\PPP,]-,@],`]``Q,.26`JT$N<I&XH!1<Y!!!!! + 536903680 + 1.0.0.1 + true + )!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!";W5F.31QU+!!.-6E.$4%*76Q!!%C1!!!33!!!!)!!!%A1!!!!7!!!!!2&-35Z9)%*B=W5O<(:D<'&T=Q!!!!!!I#!!A!!!-!!!+!!!!!!!!!1!!Q!]!,Q!(U#!!A!!!!!"!!%!"P````]!!!!!!!!!!!!!!!!9XO'[^J2I4;+1,PL+^[V^!!!!$!!!!"!!!!!"9DZO2,.'(E#PVT6IW,F><>1>D.G0!,)%[9!*G/TY1HY!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"!!!!`````^1>D.G0!,)%[9!*G/TY1HY!!!!1!!!!!!!!!!!!!!!!!!!!!!!!!!1!!!!!!!!!*Q!"4&:$1Q!!!!%!!F:*4%)!!!!!5&2)-!!!!!5!!1!"!!!!!!)!!Q!!!!!#!!%!!!!!!#1!!!!=?*RD9'>A;G#YQ!$%D!Z-$6R!&F-'E0?"A9%"!&Q/"K%!!!!5!!!!#HC=9W"GY'4A!%)'!!#E!"U!!!"*!!!"'(C=9W$!"0_"!%AR-D!Q01(3L'DC9"L'JC<!:3YOO[$CT%$-AO2/I"D4(C$.""+(KO'"3$(>!/)4[/<Q1_E,3')!IGEJ*Q!!!!!!!!Q!!6:*2&-!!!!!!!-!!!&Y!!!$+(C=+W"E9-AUND!\!+3:A6C"I9%B/4]FF:="S'?!A$>-$"3$!+BZ7GDCBA=/JQ'"(L^]#ZD@\;,#UFSDQM.5SP?`2)5DY!6)M0E)R_&ODZTDDD:A*2R:$&E-!@]$-ZK0])"V)_H09A"K%Q&BK%Y?.0.^6&A-$T25+D/5#B^P.''%O#)1KJDF-%(^10="T?!Y_*#F>S*9I".%>I9Q3BRX9>12!\*\?2A$%?Z'=V^9.^"879RB-0FONO-/'C$W=1=2#*5"I3IA6!')WA%CYAZD#^?VL_`N9A83<%BC$F$=!-3A?)6B01:'"J#(G9#Q!UD`_@``PQV1B!EKJAA6!\&P1NG-$0:Q0</B9BJ)ZPS%[U'ICY;+/3#Z"W1(S+;^1&I$SDY-:4>!X1]39Q5;-A(+ZA'S#["M93"\!Z1N"71,1.G+109(+&M.SDY!D66UWNH@R25Z\%$J'J<'?9!Y/<@!Q%#POD21*\C7']1P3#[$=BE!0A?,B!!!!,9!!!%=?*RT9'"AS$3W-$M!J*E:'2A5'"I9EP.45BG1Q"='X#!YL0E.2X?)CE3XDYJ)JY]+3[?)3H=BC_%"[S)7`CG(3YW[$9&M)R"4P>?2I^.&B;88C;/42?6`%=@`1IY8)$/;DX!9HGT_Q=A`Z7$HC>>-(4?!!H(2B`(9CA"L8^`<"81W!S/3G!-1+T&)A-79I0Q`````>Y$+/`O\O+,\$[37"YC4=QM-$03K3Q.VAGM"<8!V(A!!!!!!FA!!!.RYH(.A9'$).,9Q;Q$3T)Q-$!I-$1T*_3GJ$%BA#Q.OU0S'I^N&2;$<2Y7HUU?&J:.&Z2/`!/-H@E%'I$",LQ=(3,3<2[8Z)%=HDULA`Q+/&W"N2Q1/A`7P@8VP&^";"E9E-RW!/!MI!B*D!G*D)0\T``^`"[C]M\_,+\L\1'KZA4CZ),F-L\IU5#?YFA%!#*!EKA!!!!!!$C!"A!=!!!9S-#YQ,D%!!!!!!!!-)!#!!!!!"$)Q,D!!!!!!$C!"A!=!!!9S-#YQ,D%!!!!!!!!-)!#!!!!!"$)Q,D!!!!!!$C!"A!=!!!9S-#YQ,D%!!!!!!!!5!1!!!068.9*Z*K+-,H.34A:*/:U!!!!.!!!!!!!!!!!!!!!!!!!!!!!!!)$`````A!!!!9!!!!'!!!!"A!!!!9!!!!'!!!!"A!!!!9!!!!'!!!!"A!!!!9!!!!'!9!!"A:A!!99'!!'9!9!"I!"!!<!!Q!'M!U!"IQ\!!;$V1!'A+M!"I$6!!;!KQ!'A.5!"I#L!!;!V1!'9+Y!"BD9!!9'Y!!'!9!!"`````Q!!"!$```````````````````````````````````````````],#R%2%2%2%2%2%2%2%2%2%2%2%2%2%1M,#QM,#QP``QM,%2%2````%2%2``]2%2(```]2````#QM,#QM,#```#QM,%2(`%2(`%2(``R%2`R%2%2(`%2%2#QM,#QM,``],#QM2%@```R%2`R%2`R%2``]2%@``%2%,#QM,#QP``QM,#QM2`R%2`R(`````%2%2%@]2`R%2%2%,#QM,#```#QM,%2(```]2%@]2%@]2````%2(```]2#QM,#QM,``],#R%2%2%2%2%2%2%2%2%2%2%2%2%2#QM,#QM,#QP`````````````````````````````````````````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!``]!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$``Q!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!0``!!!!!!!!!!"Y?!!!!!!!!!!!!!!!!!!!!!!!!!!!``]!!!!!!!"YL+KLL(A!!!!!!!!!!!!!!!!!!!!!!!$``Q!!!!"YL+I+#AI+K[RY!!!!!!!!!!!!!!!!!!!!!0``!!"YL+I+#AI+#AI+#KOM?!!!!!!!!!!!!!!!!!!!``]!K[I+#AI+#AI+#AI+#AKLL!!!!!!!!!!!!!!!!!$``Q#KKAI+#AI+#AI+#AI+#P[L!!!!!!!!!!!!!!!!!0``!+I\/[I+#AI+#AI+#P\_`KI!!!!!!!!!!!!!!!!!``]!KDM\/TOK#AI+#P\_`P\_KA!!!!!!!!!!!!!!!!$``Q#K/TM\/TM\KKT_`P\_`P[K!!!!!!!!!!!!!!!!!0``!+I\/TM\/TM\`P\_`P\_`KI!!!!!!!!!!!!!!!!!``]!KDM\/TM\/TP_`P\_`P\_KA!!!!!!!!!!!!!!!!$``Q#K/TM\/TM\/`\_`P\_`P[K!!!!!!!!!!!!!!!!!0``!+I\/TM\/TM\`P\_`P\_`KI!!!!!!!!!!!!!!!!!``]!KDM\/TM\/TP_`P\_`P\_KA!!!!!!!!!!!!!!!!$``Q!\/TM\/TM\/`\_`P\_`KOL!!!!!!!!!!!!!!!!!0``!!#EKDM\/TM\`P\_`KOMJ!!!!!!!!!!!!!!!!!!!``]!!!!!J$M\/TP_`KOLJ!!!!!!!!!!!!!!!!!!!!!$``Q!!!!!!!+1\/TM\IQ!!!!!!!!!!!!!!!!!!!!!!!0``!!!!!!!!!!#EIQ!!!!!!!!!!!!!!!!!!!!!!!!!!````````````````````````````````````````````!!!!$!!"2F")5!!!!!!!!Q!!!!1!!!!!!!!%&Q!!#;:YH+V74WA56RD`XOQEPNW.Z%UU42;3\B^GJU%4OSB6'\1V/CH9JGFC6+LWDWMG'D';EG2$I;!5BN!=0!6S+!BN$\HWE%.\S#'5V2<G9E'%KL$V\%%P9EC>(<`X:G>H>K)<+=\B]2C_X`>^\`@\@@-')0I,;Z@+=.5'QJ\C:M#'G'%2A')0B=KDT1%\1@Y$MDV"<$B%4\$\5JFUW."E7"L.[@0Q"+/>HZVOO%0'W5--<71*4";TI>GQWJ30V2*4@_V1ZRO]L!JUMOOE,(WO*J`2[_9E&A3TC[^+$SE$U>/S<';']F@'4*7`D@<1B%A:N9(JVN9JN@1/:M43@YC5UE[3E1ZY+1&4>M(S]L)05FS1*NL9DRC3!3"\J*VV-#W[V4GNFLI&*C9Q7'?06U>0FB>Y\RQ5BG\4,9:1R(V</4,(?DD\U%NRYT:M6UO(;9)_./YV<"UW@Q-#J0AV>8ZX:DF?'?1KC.A7&#,<3^A)\E>MW'&;UFG108IH95())(MS(%!:S%>#BKA_T]$897%4(83ZG/E]-F'9HBG<3EW?4YV/Z+?H5^^-8:T.TYSFD0R-@K.#"X5LOI_@HB=4ZI"7E/%3D!@:HI3FJ35E!&=@_A&#W^23&;?)UUR5'4>]ZHB6H\E0E4F^\@A&TF[W6`)]+QH0^IPVF/`=X?B=B97<KX(O?W`?O8P25&>$TA5$4E+BDAPXO3$@O2A0=!'-/JD^C,E7>#ZC$-15.H@O_RO=S\%BZSYO,I;>WVNVLES)[VTTNP0=?=\^_^BZB#J_,`QL#=1QSM(T*T"`0_;PI@\-+^W;XN3N:O:+`H+9_\A.RX1LA4UWOSEJ4^G/MKM1Q`0]=_]"HK=Q^Z/3>+@'0?WTPTC_MP]TM,]6W._EC7D3L^0HVJFV[[R[^OI3><$#'[G$((W"A\*<,=5$-^9G[JTVN()5I>8[_DL7R.8FS%T$$_B1F<]*?P0,U/"N1`[[@?&@08B@I@$:5Z!^$4B_.\0@3?Y%2L3Z3#6I#!@1M"LB-,]F(C-Y!8V#]#X?94ZZK?"R&$R88`#5"/YHKN%9G\UY'N<^8RM'$%PG2-6K0E<.I-("VS!+0+,-G?SOX0F+WC9<0E7[^KIF374.C99:6O[!*MSUML+#G8!6-EN=QECKG(2.X)1B+2'3ZCP,6!A?J2F8\8!I(\9U8WN$KW<!<A:>-U1#X<S._"X`PZNTL^`.O:JO=!1_KRGV6:`RVAWDVO$:?SXH7XXNX="_6W$@%RC(PQ-VU<Z$'_[./"[`<X0\$A@M?STO?F@7ZC1N"6L;U4)9'BU-@'LJ`6O&[J]2(6&VJVY![]=KVWRIV9_UL,+D`0KG2WE`OY(8%.Z)<^%<^'HR<P8@K4B12:KXQ9S=6H^-UP98C4+V"!!!!!!%!!!!-Q!!!!1!!!!!!!!!$!!"1E2)5!!!!!!!!Q!!!!1!!!!!!!!!:1!!!(6YH'.A9#A5E'$[RV$XFY&*Y#O1)@W8A6H1D`%X!Q/HH]"B)-UI)!E5FPX,Q#[I$2<70K,,Q1!&KGS-(*)=BQ5ZQ$)=,2I-````6SFCZ0B[Z"J=U2%@/&.FFDS("!"F#"G;!!!!!!!!"!!!!!=!!!(D!!!!"A!!!"J-6E.M98.T5(*J>G&U:52B>'&597*0=G2F=A!!!#UA!)!!!!!!!A!&!!=!!!Q!1!!"`````Q!!!!%!!1!!!!)!!!!!!!!!!1!!!!!!!!!<4&:$<'&T=V"S;8:B>'6%982B6'FN:8.U97VQ!!!!'3!!A!!!!!!"!!5!"Q!!!1!!Y>3<"A!!!!!!!!!G4&:$<'&T=V"S;8:B>'6%982B4'&T>%&Q='RJ:725;7VF=X2B<8!!!!!:)!#!!!!!!!%!"1!(!!!"!!$BV*M'!!!!!!!!!"J-6E.M98.T5(*J>G&U:52B>'&5?8"F2'6T9Q!!!%EA!)!!!!!!!1!)!$$`````!!%!!!!!!#U!!!!$!!V!#!!':'6W;7.F!!!/1$$`````"'ZB<75!!!I!5!!#!!!!!1!"!!)!!!!!!!!!(ER71WRB=X.1=GFW982F2'&U952G<(2%982B5WF[:1!!!"EA!)!!!!!!!1!&!!-!!!%!!!!!!!Q!!!!!!!!!'ER71WRB=X.1=GFW982F2'&U952G<(2%982B!!!!13!!A!!!!!!$!!V!#!!':'6W;7.F!!!/1$$`````"'ZB<75!!!I!5!!#!!!!!1!"!!)!!!!!!!!!!!!!!!!!!!!!!!!!!!1!"!!-!!!!"!!!!&Y!!!!I!!!!!A!!"!!!!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1E!!!'>?*S.4]V+!T%9H'WWWWVV[^;`?B&S^#!C^!7#AC#)C(DQ;.D.3C'[UEU8D\[(L_5,_!<["$L*&HLQ9C9*G?]<:LY!/%#G5C3F;??&!=<K^)=L@N:0:(@Y`PRY4Q$U*F?8V`@S4$@GR,;&V5W4L3O&MTB7._B2'2W?WW8DT%,7F1R#_<+9N^I:77KHU3=Q1EHF&Q3*7&(-3):K!&(:2[4K4>3XLCO9OE*/@Y%"5AT&MKSI4=%>RO890HQ$G]+^FL4T<)3-J["RD!B(`R[0KDY3@U5_Y#%98."39I*NTO#R%`\21;TQN\,O\!:U`YSQ2U>ACV%RE]:]Z>D(.03G@/=__B=9FE)@!!!!!!!!:1!"!!)!!Q!%!!!!3!!0"!!!!!!0!.E!V!!!!&%!$Q1!!!!!$Q$:!.1!!!";!!]%!!!!!!]!W1$5!!!!9Y!!B!#!!!!0!.E!V!B4:7>P:3"631B4:7>P:3"631B4:7>P:3"631%Q!!!!5F.31QU+!!.-6E.$4%*76Q!!%C1!!!33!!!!)!!!%A1!!!!!!!!!!!!!!#!!!!!U!!!%B!!!!"V-35*/!!!!!!!!!7R-6F.3!!!!!!!!!9"36&.(!!!!!!!!!:2$1V.5!!!!!!!!!;B-38:J!!!!!!!!!<R$4UZ1!!!!!!!!!>"544AQ!!!!!1!!!?2%2E24!!!!!!!!!AR-372T!!!!!!!!!C"735.%!!!!!A!!!D2W:8*T!!!!"!!!!H"41V.3!!!!!!!!!N2(1V"3!!!!!!!!!OB*1U^/!!!!!!!!!PRJ9WQY!!!!!!!!!R"-37:Q!!!!!!!!!S2'5%6Y!!!!!!!!!TB'5%BC!!!!!!!!!UR'5&.&!!!!!!!!!W"75%21!!!!!!!!!X2-37*E!!!!!!!!!YB#2%6Y!!!!!!!!!ZR#2%BC!!!!!!!!!\"#2&.&!!!!!!!!!]273624!!!!!!!!!^B%6%B1!!!!!!!!!_R.65F%!!!!!!!!"!")36.5!!!!!!!!""271V21!!!!!!!!"#B'6%&#!!!!!!!!"$Q!!!!!`````Q!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"Q!!!!!!!!!!0````]!!!!!!!!!Q!!!!!!!!!!!`````Q!!!!!!!!$5!!!!!!!!!!$`````!!!!!!!!!.Q!!!!!!!!!!0````]!!!!!!!!"#!!!!!!!!!!!`````Q!!!!!!!!%1!!!!!!!!!!,`````!!!!!!!!!4A!!!!!!!!!!0````]!!!!!!!!"5!!!!!!!!!!!`````Q!!!!!!!!'A!!!!!!!!!!$`````!!!!!!!!!<!!!!!!!!!!!@````]!!!!!!!!$,!!!!!!!!!!#`````Q!!!!!!!!0I!!!!!!!!!!4`````!!!!!!!!")1!!!!!!!!!"`````]!!!!!!!!%G!!!!!!!!!!)`````Q!!!!!!!!3I!!!!!!!!!!H`````!!!!!!!!",Q!!!!!!!!!#P````]!!!!!!!!%T!!!!!!!!!!!`````Q!!!!!!!!4A!!!!!!!!!!$`````!!!!!!!!"0A!!!!!!!!!!0````]!!!!!!!!&$!!!!!!!!!!!`````Q!!!!!!!!71!!!!!!!!!!$`````!!!!!!!!#:1!!!!!!!!!!0````]!!!!!!!!*J!!!!!!!!!!!`````Q!!!!!!!!GM!!!!!!!!!!$`````!!!!!!!!$=A!!!!!!!!!!0````]!!!!!!!!.U!!!!!!!!!!!`````Q!!!!!!!!X9!!!!!!!!!!$`````!!!!!!!!$?A!!!!!!!!!!0````]!!!!!!!!.]!!!!!!!!!!!`````Q!!!!!!!!Z=!!!!!!!!!!$`````!!!!!!!!$G1!!!!!!!!!!0````]!!!!!!!!14!!!!!!!!!!!`````Q!!!!!!!""5!!!!!!!!!!$`````!!!!!!!!%&Q!!!!!!!!!!0````]!!!!!!!!1C!!!!!!!!!#!`````Q!!!!!!!"'9!!!!!!V-35Z9)%*B=W5O9X2M!!!!!! + + + + +!!!!!2&-35Z9)%*B=W5O<(:D<'&T=V"53$!!!!!!!!!!!!!!!!!!!A!"!!!!!!!!!!!!!!%!"A"1!!!!!1!!!!!!!!!!!!!"$ERB9F:*26=A4W*K:7.U!&"53$!!!!!!!!!!!!!)9)!"!!!!!!!!!!!!!!!!!1!!!!!!!1!!!!!$!!V!#!!':'6W;7.F!!!/1$$`````"'ZB<75!!&1!]?(5GQ9!!!!#%5R*4FAA1G&T:3ZM>G.M98.T$5R*4FAA1G&T:3ZD>'Q!,%"1!!)!!!!"(5.M>8.U:8)A<W9A9WRB=X-A=(*J>G&U:3"E982B!!%!!A!!!!,``````````Q!!!!!!!!!!!!!!!!!!!!%/4'&C6EF&6S"09GJF9X1!5&2)-!!!!!!!!!!!!!BAA!%!!!!!!!!!!!!! + + + + + false + 1.0.0.1 + 3 + + 2 + + + 2 + + )!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!(.!!!!#1!-1#%'=X2B>(6T!!!,1!-!"'.P:'5!!""!-0````]'=W^V=G.F!!!71&!!!Q!!!!%!!AFF=H*P=C"P>81!"!!!!#"!5!!$!!!!!1!#%W6S=G^S)'FO)#BO<S"F=H*P=CE!%%!Q`````Q>.:8.T97>F!1!!]?(5AJ9!!!!#%5R*4FAA1G&T:3ZM>G.M98.T$E6S=G^S)&2Z='5O9X2M!.>!&A!,"V6O;WZP>WY(6'FN:7^V>"6$<X*S>8"U)&*F>(6S<C"197.L:81267ZB9GRF)&2P)%.P<GZF9X161W^N<7&O:#"/<X1A5X6Q='^S>'6E#U.I97ZO:7QA2%Z&%EFO>G&M;71A1U^.)%.P<G:J:RF';8*N>W&S:3"7:8*T;7^O)%VJ=WVB>'.I$7VZ5EF0)&.V=("P=H131UV%)&.Q:7.J:GFD)%6S=G^S&ERP9W&M)%F0)%ZP>#"4>8"Q<X*U:71!!!J&=H*P=C"5?8"F!!"5!0!!$!!$!!1!"!!%!!1!"!!%!!1!"1!%!!9!"Q-!!(A!!!U)!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#A!!!!!!!!!)!!!!%!!!!!!"!!A!!!!! + -1 + 0 + true + 2 + 1 + 1082139152 + + + + + )!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!"B!!!!!1":!0%!!!!!!!!!!B&-35Z9)%*B=W5O<(:D<'&T=QF$<WZU=G^M)$%!.5!6!!9(37ZW97RJ:!2/<WZF!U^E:!2&>G6O"%VB=GM&5X"B9W5!!!:198*J>(E!!!%!!!!!!!! + -1 + 1048576 + true + 1 + 1 + 1074266624 + + + )!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!%)!!!!!1%!!0(BV)+7!!!!!B&-35Z9)%*B=W5O<(:D<'&T=QZ&=H*P=C"5?8"F,G.U<!$81"9!#Q>6<GNO<X>O"V2J<76P>8161W^S=H6Q>#"3:82V=GYA5'&D;W6U%66O97*M:3"5<S"$<WZO:7.U&5.P<7VB<G1A4G^U)&.V=("P=H2F:!N$;'&O<G6M)%2/22**<H:B<'FE)%.043"$<WZG;7=:2GFS<8>B=G5A6G6S=WFP<C".;8.N982D;!VN?6**4S"4>8"Q<X*U%E..2#"4='6D;7:J9S"&=H*P=B:-<W.B<#"*4S"/<X1A5X6Q='^S>'6E!!!+28*S<X)A6(FQ:1!!!1!!!!!!!! + -1 + 3145728 + true + 2 + 1 + 1082130944 + 2 + + + + 3 + + )!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!%M!!!!#A!-1#%'=X2B>(6T!!!,1!-!"'.P:'5!!""!-0````]'=W^V=G.F!!!71&!!!Q!!!!%!!AFF=H*P=C"P>81!"!!!!!Z!-0````]%<G&N:1!!+E"Q!"Y!!"-24%F/7#"#98.F,GRW9WRB=X-!$5R*4FAA1G&T:3"P>81!)%"1!!-!!!!"!!)4:8*S<X)A;7YA+'ZP)'6S=G^S+1!K1(!!(A!!%R&-35Z9)%*B=W5O<(:D<'&T=Q!-4%F/7#"#98.F)'FO!!"B!0!!$!!$!!1!"1!'!!1!"!!%!!1!"Q!%!!1!#!-!!(A!!!U)!!!!!!!!#1!!!!U,!!!!!!!!!!!!!!!!!!!!!!!!#A!!!!!!!!!!!!!!#A!!$1!!!!Q!!!!!!!!!!!!!!1!*!!!!!! + -1 + 0 + true + 3 + 1 + 1074266640 + + + )!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!&8!!!!$A!-1#%'=X2B>(6T!!!,1!-!"'.P:'5!!""!-0````]'=W^V=G.F!!!71&!!!Q!!!!%!!AFF=H*P=C"P>81!%5!)!!JI97ZE<'5A<X6U!!!/1$$`````"'ZB<75!!#J!=!!?!!!4%5R*4FAA1G&T:3ZM>G.M98.T!!V-35Z9)%*B=W5A<X6U!!1!!!!/1#%*=X2P=G5A+%9J!":!5!!$!!!!!1!##'6S=G^S)'FO!!!01!A!#7BB<G2M:3"J<A!51$$`````#G.P<GZF9X2J<WY!!#J!=!!?!!!4%5R*4FAA1G&T:3ZM>G.M98.T!!R-35Z9)%*B=W5A;7Y!!&1!]!!-!!-!"!!&!!9!"Q!(!!=!#!!*!!I!#Q!-!Q!!?!!!$1A!!!U*!!!*!!!!D1M!!!!!!!!!!!!!!!!!!!A!!!!+!!!!#A!!!!I!!!#3!!!!!!%!$1!!!!! + -1 + 0 + false + 3 + 1 + 1107821072 + + + )!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!&*!!!!#Q!-1#%'=X2B>(6T!!!,1!-!"'.P:'5!!""!-0````]'=W^V=G.F!!!71&!!!Q!!!!%!!AFF=H*P=C"P>81!"!!!!#J!=!!?!!!4%5R*4FAA1G&T:3ZM>G.M98.T!!V-35Z9)%*B=W5A<X6U!#"!5!!$!!!!!1!#%W6S=G^S)'FO)#BO<S"F=H*P=CE!&E!Q`````QV'>7ZD>'FP<C"/97VF!"6!!Q!04%F/7#"F=H*P=C"D<W2F!#J!=!!?!!!4%5R*4FAA1G&T:3ZM>G.M98.T!!R-35Z9)%*B=W5A;7Y!!'%!]!!-!!-!"!!%!!5!"!!%!!1!"!!'!!=!#!!*!Q!!?!!!$1A!!!!!!!!!!!!!$1M!!!!!!!!!!!!!!!!!!!!!!!!+!!!"#A!!!!A!!!!1!!!.!!!!$!!!!!!!!!!!!!!"!!I!!!!! + -1 + 0 + true + 3 + 1 + 1107821072 + + + )!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!$,!!!!#!!-1#%'=X2B>(6T!!!,1!-!"'.P:'5!!""!-0````]'=W^V=G.F!!!71&!!!Q!!!!%!!AFF=H*P=C"P>81!"!!!!!Z!-P````]%5'&U;!!!)%"1!!-!!!!"!!)4:8*S<X)A;7YA+'ZP)'6S=G^S+1"5!0!!$!!$!!1!"!!&!!1!"!!%!!1!"A!%!!1!"!-!!(A!!!U)!!!!!!!!!!!!!!E!!!!!!!!!!!!!!!!!!!!!!!!!#A!!!!!!!!!!!!!!!!!!!!!"!!=!!!!! + -1 + 0 + true + 3 + 1 + 1082130960 + + + + )!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!%2!!!!#1!-1#%'=X2B>(6T!!!,1!-!"'.P:'5!!""!-0````]'=W^V=G.F!!!71&!!!Q!!!!%!!AFF=H*P=C"P>81!"!!!!#J!=!!?!!!4%5R*4FAA1G&T:3ZM>G.M98.T!!V-35Z9)%*B=W5A<X6U!#"!5!!$!!!!!1!#%W6S=G^S)'FO)#BO<S"F=H*P=CE!+E"Q!"Y!!"-24%F/7#"#98.F,GRW9WRB=X-!$%R*4FAA1G&T:3"J<A!!6!$Q!!Q!!Q!%!!1!"1!%!!1!"!!%!!9!"!!%!!=$!!"Y!!!.#!!!!!!!!!!!!!#*!!!!!!!!!!!!!!!!!!!!!!!!!!I!!!!!!!!!!!!!!*!!!!!!!1!)!!!!!! + -1 + 0 + false + 1 + 1 + 1109918224 + + diff --git a/LabVIEW/vi.lib/MakerHub/LINX/API/LINX Client.lvclass b/LabVIEW/vi.lib/MakerHub/LINX/API/LINX Client.lvclass new file mode 100644 index 00000000..6e0a3e46 --- /dev/null +++ b/LabVIEW/vi.lib/MakerHub/LINX/API/LINX Client.lvclass @@ -0,0 +1,174 @@ + + + + )!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!*1!!!*Q(C=\>8.D2."%)<B$]1"K5`$E2.S#B7"*4M%JV!:)&`XN*J.!+F3=!J/I5Z\^Y%%H-,Q>LPQ'AHB#S#%NM@N(8`^^WT0?#S.]FZ[J_6?;7X[37F6,OX,1JV[:5!`7^I9?7FPI\8;J^&\G>L3<NN@RF`@<^L<D_-PLZ@W.PK0;<_P@^P_;`_>IN@S7P\P]H$X3`$(PQ>PV"^%V+1'V;GGPOS3Z%G?Z%G?Z%E?Z%%?Z%%?Z%(OZ%\OZ%\OZ%ZOZ%:OZ%:OZ%9_$H+2CVTEE*,&EY733:-*EMZ1F,QFHM34?")0(Z6Y%E`C34S*BSZ+0)EH]33?R--Q*:\%EXA34_*BKC(*=:$D34R-L]!4?!*0Y!E],+H!%Q##R9+*AUFA+'A-4A*0Y!E]H#LQ"*\!%XA#$]U+0)%H]!3?Q-/1M3MR.0UAR]-U=DS/R`%Y(M@$V()]DM@R/"\(QX*S0)\(14A,/J.$E$0)[?"]=$S/BT^S0)\(]4A?RU04O%)_>K:L_E'/R`!9(M.D?!Q05]DQ'"\$9XA-$^0+]"A?QW.Y$!^,S@!9(M.D1)R&76\':-:!IZ-2'"Z?YW[R=:6C3'Q=5NW]KJN3></J<C,6T;'[[+K,K<J)KMV8<;JKMV3<I0LH6'A62L7);H$PK$0P*_K2?K$/V$VV2^V16^3J$`X.(=`HMU[HEY\(IQ[(A_:ZVH[`VW[XUW;TU7KV%D`'V]@!*Y\L!_(S8(LA`((\`06J_X%^<\_MH\9@VI_@H^=^`QO`T``!MV&P><M'?`1.V>.(IA!!!!! + 536903680 + 1.0.0.3 + false + true + true + )!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!#%Y5F.31QU+!!.-6E.$4%*76Q!!(-!!!!2Y!!!!)!!!(+!!!!!9!!!!!2.-35Z9)%.M;76O>#ZM>G.M98.T!!!!I#!!A!!!-!!!+!!!!!!!!!1!!Q!]!,Q!(U#!!A!!!!!"!!%!"P````]!!!!!!!!!!!!!!!#G+VPG6RK+1YY7TS0OM#OD!!!!$!!!!"!!!!!!5G+B%>*Z_E+E571EOU2]Q.1>D.G0!,)%[9!*G/TY1HY!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"!!!!`````^1>D.G0!,)%[9!*G/TY1HY!!!!1!!!!!!!!!!!!!!!!!!!!!!!!!!1!!!!!!!!!*Q!"4&:$1Q!!!!%!!F:*4%)!!!!!5&2)-!!!!!5!!1!"!!!!!!)!!Q!!!!!#!!%!!!!!!#)!!!!=?*RD9'.A;G#YQ!$%D%$-V-$U!]D_!/)T!!"I!1AW!!!!!!"&!!!"'(C=9W$!"0_"!%AR-D!QH1$3,'DC9"L'JC<!:3YOO[$CT&!XME*%'9&C4(O!$#;1(+J?E(`!@E)"<&D-"A"W^3A6!!!!!!!!$!!"6EF%5Q!!!!!!!Q!!!5-!!!+=?*RT9'2AS$3W-'M!UMR!L-$1Q*#=HZ,+R1$E-U"!#R-$R3!!;JY7GLDBA=.J1+$(,^]#ZH?\K,!UV[DQ-*8S`3^2Y1BY!2*M0M*RO.MDZ\CD$6A*2R:$&E0!`]#-ZC-]9.X)_HV57!Q0.&1K-Z1+(W]U9949%AAVBO8Q$J$)964\A(IY$DZE[:U)&OA%E:UBD",(82BVR)$M8B\'1)1\U/Q,[Q;[-IMR$#<@T8<=110%0OYA!K%S)&1&B#I!54N!2.RB%,HW^<V>I("B1QI4"SBO!'&'".:D9'1!/:]*#%'G`PH``\].5)1*+K9)&1/R6U,:'EB[4E,&(*$M!?E&G>!,J$7A\-F1>A0583#RKU#[!-K_!YV0%0MR6"W)`1J)#U$:(Y(U!3D\'Z4>!)U.>.L:X]56/5X!UBM!`Z2KE!!!!!!/)!'!"Q!!"D)Q,D!O-1!!!!!!!!QA!)!!!!!%-D!O-!!!!!!/)!'!"Q!!"D)Q,D!O-1!!!!!!!!QA!)!!!!!%-D!O-!!!!!!/)!'!"Q!!"D)Q,D!O-1!!!!!!!"1"!!!!^6=VAHEGIIQO=V*/"EEZH1!!!!U!!!!!!!!!!!!!!!!!!!!!!!!!A0````_!!!!"A!!!!9!!!!'!!!!"A!!!!9!!!!'!!!!"A!!!!9!!!!'!!!!"A!!!!9!!!!'!]!!"AQQ!!9Q$!!'Q!-!"M!$!!;1$Q!'B$]!"I(`!!;!`Q!'A0]!"I$`!!;!`Q!'A0]!"A$`!!:A`A!'%0A!"A1A!!9"A!!(`````!!!%!0```````````````````````````````````````````Q!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!0``!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!``]!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$``Q!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!0``!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!``]!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$``Q!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!0``!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!``]!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$``Q!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!0``!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!``]!!!!!!!!!!(BY!!!!!!!!!!!!!!!!!!!!!!!!!!$``Q!!!!!!!(CMKKOM?!!!!!!!!!!!!!!!!!!!!!!!!0``!!!!!(CMKAI+#AKLL(A!!!!!!!!!!!!!!!!!!!!!``]!!(CMKAI+#AI+#AI+K[RY!!!!!!!!!!!!!!!!!!$``Q#LKAI+#AI+#AI+#AI+#KOM!!!!!!!!!!!!!!!!!0``!+KK#AI+#AI+#AI+#AI+`KM!!!!!!!!!!!!!!!!!``]!KDM\KAI+#AI+#AI+`P\_KA!!!!!!!!!!!!!!!!$``Q#K/TM\/[I+#AI+`P\_`P[K!!!!!!!!!!!!!!!!!0``!+I\/TM\/TOKL0\_`P\_`KI!!!!!!!!!!!!!!!!!``]!KDM\/TM\/TP_`P\_`P\_KA!!!!!!!!!!!!!!!!$``Q#K/TM\/TM\/`\_`P\_`P[K!!!!!!!!!!!!!!!!!0``!+I\/TM\/TM\`P\_`P\_`KI!!!!!!!!!!!!!!!!!``]!KDM\/TM\/TP_`P\_`P\_KA!!!!!!!!!!!!!!!!$``Q#K/TM\/TM\/`\_`P\_`P[K!!!!!!!!!!!!!!!!!0``!$M\/TM\/TM\`P\_`P\_K[M!!!!!!!!!!!!!!!!!``]!!+3K/TM\/TP_`P\_K[SE!!!!!!!!!!!!!!!!!!$``Q!!!!#E/TM\/`\_K[OE!!!!!!!!!!!!!!!!!!!!!0``!!!!!!!!J$M\/TOD!!!!!!!!!!!!!!!!!!!!!!!!``]!!!!!!!!!!+3D!!!!!!!!!!!!!!!!!!!!!!!!!!$```````````````````````````````````````````]!!!!-!!&'5%B1!!!!!!!$!!!!"!!!!!!!!!*Y!!!%[8C=L:1`;".2(->`\TDF*<4Y,L;WA9<%=IV6%CC#NA;DU<Y)F6)M;='J'LRIB'!E@]3J81YB1R?$'92O)?$E%)K\"*=<\+2AB^D"X;5IN*@T>R@P,EUV,NZQ(-@\@,`P`<Z@(I$YD9U,(6D8A<"^`&D5Q;NI"+!6J@$\#<]!NEI/A)TYC1Y*OMJWB1[:U'&)U=*UBF@A/[YWPBIPY25B<!_8HG2_&00K=%L2RK4<=JP*<S@ESAF<69)!WS1>Y;Y=`%%XV4Q;ADJNPK5I[1$B:U62H<S4@J*2:@/P*UL^FK2("];VY9,=0I?+;0X?EC2L5#>Z7R*1=BK;T;9,36UI<'VDTG4K+,N.VA9Q0KY&CH)\9D&?CU'@<>O("TN6=_]GV)_?ZBJ$&,HH^J(LNB=0[IE`=FE>2O4W4?KH?]I8-LSMPA-#J(70'J_..S9P,:EJ7'N^'-25D,!5@K>UO+"KQHU1<;]E6+U92$O'KRA$O78&Y/%6"GY/V8`EQ-87:'!_6S[7-I61`G(I13Z>,);?&BY`3Z=S)36>3B^0+-YVT[RZ?N0-+A?-AAAX).M\\4QU'AU=!,Z>^"KC9X,<Y34L.$FHYII\/>06H>RVH"T`O@,)H.Z54,!\#WZ<,W*<*>;`I3.NP@4`WXI:3\4?VV:1)!,F!=W<\5)^<9UA&1>F!$/(T-;2NE<1*W\\$'LLF?.ND>B?4FNLN6J`7W./7U6#OGV6>YR$YR!\C_-691;S6G@"M^3T=\L\I?R=,D1F=Y0[`\[!*>&M1Y>20O`\S":1<9AOU#4<QF4R/DJ$N_B_[Z.T`<17(6,>)??&B0Q[3->`!6_]9]A!!!!%!!!!)!!!!!1!!!!!!!!!$!!"1E2)5!!!!!!!!Q!!!!1!!!!!!!!!:1!!!(6YH'.A9#A5E'$[RV$XFY&*Y#O1)@W8A6H1D`%X!Q/HH]"B)-UI)!E5FPX,Q#[I$2<70K,,Q1!&KGS-(*)=BQ5ZQ$)=,2I-````6SFCZ0B[Z"J=U2%@/&.FFDS("!"F#"G;!!!!!!!!"!!!!!=!!!^J!!!!"Q!!!#&@<GF@4'&T>%NO<X>O4X>O;7ZH4&:$<'&T=U.M>8.U:8)!!!"4)!#!!!!!!!%!#!!Q`````Q!"!!!!!!!X!!!!!Q!.1!A!"G2F>GFD:1!!$E!Q`````Q2O97VF!!!51&!!!A!!!!%)4%F/7#""5%E!!!%!!A!!!!!!!!!.4EF@37.P<E6E;82P=A!!$8]A!)!!!!!!!1!/1$$`````"%2B>'%!!!%!!!!!$6US-$!R/$!Q.QU!!!!!!2=64'^B:#!G)&6O<'^B:#ZM>G.M98.T!!!"!!!!!!!*!!!.+Q&E!7216%AQ!!!!"!!!!!!!!!!!!!!!!1!!!!%0$5RB?76S,GRW9WRB=X-!!!%!!!!!!!=!!!S`!!!!!!!!!!!!!!S?!#A!!!S9!!!-!!!!!!!!)!!A!"A!!!!!!0```Q!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^!!!!!!!!```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^!!!!!!!!```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^!!!!!!!!```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^!!!!!!!!```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^!!!!!!!!```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^!!!!!!!!```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^!!!!!!!!```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^!!!!!!!!```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^!!!!!!!!```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^!!!!!!!!```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^!!!!!!!!```^```^```^```^```^```^```^```^:JH`:JH````^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^!!!!!!!!```^```^```^```^```^```^:JH`-T-T-T/:-T.G-T-T:JH````^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^!!!!!!!!```^```^```^```^:JH`-T-T-T/:`]Z#`]Z#`]Z#`]Z#-T.G-T-T:JH````^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^!!!!!!!!```^```^:JH`-T-T-T/:`]Z#`]Z#`]Z#`]Z#`]Z#`]Z#`]Z#`]Z#-T.G-T-T:JH````^```^```^```^```^```^```^```^```^```^```^```^```^```^!!!!!!!!```^-T.G-T/:`]Z#`]Z#`]Z#`]Z#`]Z#`]Z#`]Z#`]Z#`]Z#`]Z#`]Z#`]Z#-T.G-T-T```^```^```^```^```^```^```^```^```^```^```^```^```^!!!!!!!!```^-T/:-T/:`]Z#`]Z#`]Z#`]Z#`]Z#`]Z#`]Z#`]Z#`]Z#`]Z#`]Z#`]Z#%2%2-T.G```^```^```^```^```^```^```^```^```^```^```^```^```^!!!!!!!!```^-T/:X'Y!X'Y!-T/:`]Z#`]Z#`]Z#`]Z#`]Z#`]Z#`]Z#`]Z#%2%2%2%2%2%2-T/:```^```^```^```^```^```^```^```^```^```^```^```^```^!!!!!!!!```^-T/:X'Y!X'Y!X'Y!X'Y!-T/:`]Z#`]Z#`]Z#`]Z#%2%2%2%2%2%2%2%2%2%2-T/:```^```^```^```^```^```^```^```^```^```^```^```^```^!!!!!!!!```^-T/:X'Y!X'Y!X'Y!X'Y!X'Y!X'Y!-T/:-T-T%2%2%2%2%2%2%2%2%2%2%2%2-T/:```^```^```^```^```^```^```^```^```^```^```^```^```^!!!!!!!!```^-T/:X'Y!X'Y!X'Y!X'Y!X'Y!X'Y!X'Y!%2%2%2%2%2%2%2%2%2%2%2%2%2%2-T/:```^```^```^```^```^```^```^```^```^```^```^```^```^!!!!!!!!```^-T/:X'Y!X'Y!X'Y!X'Y!X'Y!X'Y!X'Y!%2%2%2%2%2%2%2%2%2%2%2%2%2%2-T/:```^```^```^```^```^```^```^```^```^```^```^```^```^!!!!!!!!```^-T/:X'Y!X'Y!X'Y!X'Y!X'Y!X'Y!X'Y!%2%2%2%2%2%2%2%2%2%2%2%2%2%2-T/:```^```^```^```^```^```^```^```^```^```^```^```^```^!!!!!!!!```^-T/:X'Y!X'Y!X'Y!X'Y!X'Y!X'Y!X'Y!%2%2%2%2%2%2%2%2%2%2%2%2%2%2-T/:```^```^```^```^```^```^```^```^```^```^```^```^```^!!!!!!!!```^-T/:X'Y!X'Y!X'Y!X'Y!X'Y!X'Y!X'Y!%2%2%2%2%2%2%2%2%2%2%2%2%2%2-T/:```^```^```^```^```^```^```^```^```^```^```^```^```^!!!!!!!!```^X'Y!X'Y!X'Y!X'Y!X'Y!X'Y!X'Y!X'Y!%2%2%2%2%2%2%2%2%2%2%2%2-T.G-T.G```^```^```^```^```^```^```^```^```^```^```^```^```^!!!!!!!!```^```^-W;:-T/:X'Y!X'Y!X'Y!X'Y!X'Y!%2%2%2%2%2%2%2%2-T.G-T-T-W;:```^```^```^```^```^```^```^```^```^```^```^```^```^```^!!!!!!!!```^```^```^```^-W;:X'Y!X'Y!X'Y!X'Y!%2%2%2%2-T.G-T.G-W;:```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^!!!!!!!!```^```^```^```^```^```^-W;:X'Y!X'Y!X'Y!X'Y!-W<-```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^!!!!!!!!```^```^```^```^```^```^```^```^-W;:-W<-```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^```^!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!``````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````]!!!!.476S:W6E)%RB?76S=W1"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!N4<7&M<#"'<WZU=Q!"#!%"!!!!!!!!!"J-6E.M98.T5(*J>G&U:52B>'&597*0=G2F=A!!!#5A!)!!!!!!!A!&!!=!!!Q!1!!"`````Q!!!!%!!1!!!!!!!!!!!!!!'UR71WRB=X.1=GFW982F2'&U962J<76T>'&N=!!!!"EA!)!!!!!!!1!&!!=!!!%!!/(5H`)!!!!!!!!!*ER71WRB=X.1=GFW982F2'&U95RB=X2"=("M;76E6'FN:8.U97VQ!!!!'3!!A!!!!!!"!!5!"Q!!!1!!Y>3@]A!!!!!!!!!;4&:$<'&T=V"S;8:B>'6%982B6(FQ:52F=W-!!!!K)!#!!!!!!!%!#!!Q`````Q!"!!!!!!!/!!!!!1!'!&!!!!!"!!!!!!!!!!!!(ER71WRB=X.1=GFW982F2'&U952G<(2%982B5WF[:1!!!"EA!)!!!!!!!1!&!!-!!!%!!!!!!!!!!!!!!!!!!!!!"!!#!!A!!!!%!!!!1!!!!#A!!!!#!!!%!!!!!!U!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!A!!!!!!"!!!!!!!!!!!!!!!!!!!!!"EE%Q!!!!!!!UQ#665&11"/!!E!!!!#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!K[IK0KOK+D[LKCI_K[IK0A!!!!!!!UQ#!!!!0Q!!!!!!!!!!!!!!Z!!!!6>YH)W115I$12"&8U_L33:K9L)7?O(#F2MP-"!1!C*"8,BUS-S%1/.)JB/ST%W]F"@Q"JI4Z'=3C?"'0B26P[P_LWKATR0@HR`P;S$KXQ]@HNX!4`08=/-89Z^76?=X.Q[?[W1%FQ-`LU)_=W8B[D<X.JMOUJ#\,!UJRQ)R':APD!K\,\F6WEI;W-*0;#9L7T['(:'8"6VJ7\7@U,$TL#$??NGQT$1^)K**C[N`_5@5-AI'D<X)_IA\C4B//2/ZR<H-@G$W_-M=8DIV>I=9OF*%#_HDF-7UO;#HW.Y!I"MW6A!!!'5!!1!#!!-!"!!!!%A!$Q1!!!!!$Q$:!.1!!!"2!!]%!!!!!!]!W1$5!!!!7A!0"!!!!!!0!.E!V!!!!'/!!)1!A!!!$Q$:!.1)5W6H<W5A65E)5W6H<W5A65E)5W6H<W5A65E"-!!!!&*45E-.#A!$4&:$1UR#6F=!!"T!!!!%?!!!!#!!!"SA!!!!!!!!!!!!!!!A!!!!.!!!"'A!!!!?4%F#4A!!!!!!!!&Y4&:45A!!!!!!!!'-5F242Q!!!!!!!!'A1U.46!!!!!!!!!'U4%FW;1!!!!!!!!()1U^/5!!!!!!!!!(=6%UY-!!!!!!!!!(Q2%:%5Q!!!!!!!!)%4%FE=Q!!!!!!!!)96EF$2!!!!!!!!!)M>G6S=Q!!!!1!!!*!5U.45A!!!!!!!!+E2U.15A!!!!!!!!+Y35.04A!!!!!!!!,-;7.M/!!!!!!!!!,A4%FG=!!!!!!!!!,U2F"&?!!!!!!!!!-)2F")9A!!!!!!!!-=2F"421!!!!!!!!-Q6F"%5!!!!!!!!!.%4%FC:!!!!!!!!!.91E2&?!!!!!!!!!.M1E2)9A!!!!!!!!/!1E2421!!!!!!!!/56EF55Q!!!!!!!!/I2&2)5!!!!!!!!!/]466*2!!!!!!!!!013%F46!!!!!!!!!0E5&*5)!!!!!!!!!0Y6E.55!!!!!!!!!1-2F2"1A!!!!!!!!1A!!!!!0````]!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!=!!!!!!!!!!$`````!!!!!!!!!-!!!!!!!!!!!0````]!!!!!!!!!V!!!!!!!!!!!`````Q!!!!!!!!$=!!!!!!!!!!$`````!!!!!!!!!1A!!!!!!!!!!0````]!!!!!!!!"%!!!!!!!!!!!`````Q!!!!!!!!%Y!!!!!!!!!!$`````!!!!!!!!!91!!!!!!!!!!0````]!!!!!!!!"F!!!!!!!!!!%`````Q!!!!!!!!,=!!!!!!!!!!@`````!!!!!!!!!P!!!!!!!!!!#0````]!!!!!!!!$!!!!!!!!!!!*`````Q!!!!!!!!-5!!!!!!!!!!L`````!!!!!!!!!S1!!!!!!!!!!0````]!!!!!!!!$/!!!!!!!!!!!`````Q!!!!!!!!.1!!!!!!!!!!$`````!!!!!!!!!W1!!!!!!!!!!0````]!!!!!!!!$[!!!!!!!!!!!`````Q!!!!!!!!@M!!!!!!!!!!$`````!!!!!!!!"`Q!!!!!!!!!!0````]!!!!!!!!)"!!!!!!!!!!!`````Q!!!!!!!!K!!!!!!!!!!!$`````!!!!!!!!#IA!!!!!!!!!!0````]!!!!!!!!+E!!!!!!!!!!!`````Q!!!!!!!!KA!!!!!!!!!!$`````!!!!!!!!#KA!!!!!!!!!!0````]!!!!!!!!,&!!!!!!!!!!!`````Q!!!!!!!!M=!!!!!!!!!!$`````!!!!!!!!'IQ!!!!!!!!!!0````]!!!!!!!!;F!!!!!!!!!!!`````Q!!!!!!!"K=!!!!!!!!!!$`````!!!!!!!!'MA!!!!!!!!!!0````]!!!!!!!!<4!!!!!!!!!#!`````Q!!!!!!!"QU!!!!!!^-35Z9)%.M;76O>#ZD>'Q!!!!! + + + + +!!!!!2.-35Z9)%.M;76O>#ZM>G.M98.T5&2)-!!!!!!!!!!!!!!!#!!"!!!!!!!!!1!!!!%!%%"1!!!)4%V)8UR*4FA!!!%!!!!!!!!!!!!!!!!"$ERB9F:*26=A4W*K:7.U!&"53$!!!!!!!!!!!!!A!)!!!!!!!!!!!@``!!!!!1!!!!!!!1%!!!!#!!V!#!!':'6W;7.F!!"1!0(BU&,X!!!!!B"-45B@4%F/7#ZM>G.M98.T$%R.3&^-35Z9,G.U<!!K1&!!!1!!(5.M>8.U:8)A<W9A9WRB=X-A=(*J>G&U:3"E982B!!%!!1!!!!(`````!!!!!!!!!!!!!!!!!!%/4'&C6EF&6S"09GJF9X1!5&2)-!!!!!!!!!!!!#!!A!!!!!!!!!!"``]!!!!"!!!!!!!#!1!!!!-!$5!)!!:E:8:J9W5!!!Z!-0````]%<G&N:1!!5A$RY>0:UA!!!!)14%V)8UR*4FAO<(:D<'&T=QR-45B@4%F/7#ZD>'Q!,%"1!!)!!!!"(5.M>8.U:8)A<W9A9WRB=X-A=(*J>G&U:3"E982B!!%!!A!!!!)!!!!!`````Q!!!!!!!!!!!!!!!!!!!!!!!1Z-97*73568)%^C;G6D>!"16%AQ!!!!!!!!!!!!)!#!!!!!!!!!!!(``Q!!!!%!!!!!!!!#!!!!!Q!.1!A!"G2F>GFD:1!!$E!Q`````Q2O97VF!!"3!0(BU^H3!!!!!B"-45B@4%F/7#ZM>G.M98.T$%R.3&^-35Z9,G.U<!!M1&!!!A!!!!%>1WRV=X2F=C"P:C"D<'&T=S"Q=GFW982F)'2B>'%!!1!#!!!!!@````Y!!!!!!!!!!!!!!!!!!!!!!!%/4'&C6EF&6S"09GJF9X1!5&2)-!!!!!!!!!!!!#!!A!!!!!!!!!!"``]!!!!"!!!!!!!!!!!!!!-!$5!)!!:E:8:J9W5!!!Z!-0````]%<G&N:1!!5A$RY>0:UA!!!!)14%V)8UR*4FAO<(:D<'&T=QR-45B@4%F/7#ZD>'Q!,%"1!!)!!!!"(5.M>8.U:8)A<W9A9WRB=X-A=(*J>G&U:3"E982B!!%!!A!!!!(````_!!!!!!!!!!!!!!!!!!!!!!!"$ERB9F:*26=A4W*K:7.U!&"53$!!!!!!!!!!!!!)9)!"!!!!!!!!!@``!!!!!1!!!!!!!1!!!!!$!!V!#!!':'6W;7.F!!!/1$$`````"'ZB<75!!&A!]?(5GQM!!!!#%UR*4FAA1WRJ:7ZU,GRW9WRB=X-04%F/7#"$<'FF<H1O9X2M!#R!5!!#!!!!!2V$<(6T>'6S)'^G)'.M98.T)("S;8:B>'5A:'&U91!"!!)!!!!#``````````]!!!!!!!!!!!!!!!!!!!!"$ERB9F:*26=A4W*K:7.U!&"53$!!!!!!!!!!!!!)9)!"!!!!!!!!!@``!!!!!1!!!!!!!A!!!!!$!!V!#!!':'6W;7.F!!!/1$$`````"'ZB<75!!&A!]?(5GQM!!!!#%UR*4FAA1WRJ:7ZU,GRW9WRB=X-04%F/7#"$<'FF<H1O9X2M!#R!5!!#!!!!!2V$<(6T>'6S)'^G)'.M98.T)("S;8:B>'5A:'&U91!"!!)!!!!"`````A!!!!!!!!!!!!!!!!!!!!%24%F/7#"#98.F,GRW9WRB=X.16%AQ!!!!!!!!!!!!#'#!!1!!!!!!!!!!!!!"!!!!!!!$!!!!!!%!6!$RY>3@]A!!!!)44%F/7#"$<'FF<H1O<(:D<'&T=Q^-35Z9)%.M;76O>#ZD>'Q!+%"1!!!>1WRV=X2F=C"P:C"D<'&T=S"Q=GFW982F)'2B>'%!!1!!!!!!!!!!!!!!!!%24%F/7#"#98.F,GRW9WRB=X.16%AQ!!!!!!!!!!!!#'#!!1!!!!!!!!!!!!)!!!!14%V)8UR*4FAO<(:D<'&T=Q!!!""-35Z9)%&133ZM>G.M98.T + + + + + false + 1.0.0.3 + 3 + 50 48 48 49 56 48 48 55 13 0 0 0 0 1 23 21 76 111 97 100 32 38 32 85 110 108 111 97 100 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 9 0 0 13 45 1 100 0 0 80 84 72 48 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 15 13 76 97 121 101 114 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 7 0 0 12 187 0 0 0 0 0 0 0 0 0 0 12 158 0 40 0 0 12 152 0 0 12 0 0 0 0 0 0 32 0 32 0 24 0 0 0 0 0 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 204 0 255 204 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 0 0 0 0 0 0 255 204 0 255 204 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 0 0 0 0 0 0 255 204 0 255 204 0 255 204 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 0 0 0 0 0 0 255 204 0 255 204 0 255 204 0 255 204 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 0 0 0 0 0 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 0 0 0 0 0 0 255 204 0 255 204 0 255 204 0 255 204 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 0 0 0 0 0 0 255 204 0 255 204 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 67 108 105 112 98 111 97 114 100 100 1 0 0 0 0 0 6 67 108 105 101 110 116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 83 109 97 108 108 32 70 111 110 116 115 0 1 8 1 1 + + + + + + 2 + + + + + + + )!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!&D!!!!$1!-1#%'=X2B>(6T!!!,1!-!"'.P:'5!!""!-0````]'=W^V=G.F!!!71&!!!Q!!!!%!!AFF=H*P=C"P>81!%%!Q`````Q:T>(*J<G=!!"*!1!!"`````Q!%"5ZB<76T!!5!"1!!&E"!!!(`````!!9)1WBB<GZF<(-!!#Z!=!!?!!!6%UR*4FAA1WRJ:7ZU,GRW9WRB=X-!$UR*4FAA1WRJ:7ZU)'^V>!!%!!!!)%"1!!-!!!!"!!)4:8*S<X)A;7YA+'ZP)'6S=G^S+1!O1(!!(A!!&2.-35Z9)%.M;76O>#ZM>G.M98.T!!Z-35Z9)%.M;76O>#"J<A!!91$Q!!Q!!Q!&!!=!#!!*!!E!#1!*!!I!#1!*!!M$!!"Y!!!.#!!!#1!!!!E!!!!.#Q!!!!!!!!!!!!!!!!!!!!!!!!I!!!!!!!!!!!!!!!I!!!U!!!!-!!!!!!!!!!!!!!%!$!!!!!! + -1 + 0 + true + 1 + 1 + 1107821072 + + + )!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!&(!!!!#Q!-1#%'=X2B>(6T!!!,1!-!"'.P:'5!!""!-0````]'=W^V=G.F!!!71&!!!Q!!!!%!!AFF=H*P=C"P>81!"!!!!!V!"1!(1WBB<GZF<!!O1(!!(A!!&2.-35Z9)%.M;76O>#ZM>G.M98.T!!^-35Z9)%.M;76O>#"P>81!)%"1!!-!!!!"!!)4:8*S<X)A;7YA+'ZP)'6S=G^S+1!51$$`````#V.F=GFB<#"1<X*U!#Z!=!!?!!!6%UR*4FAA1WRJ:7ZU,GRW9WRB=X-!$ER*4FAA1WRJ:7ZU)'FO!!"B!0!!$!!$!!1!"1!'!!1!"!!%!!1!"Q!%!!A!#1-!!(A!!!U)!!!!!!!!#1!!!!U,!!!!!!!!!!!!!!!!!!!!!!!!#A!!!!!!!!!)!!!!#A!!$1!!!!Q!!!!!!!!!!!!!!1!+!!!!!! + -1 + 0 + true + 1 + 1 + 1109918224 + + + )!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!&8!!!!$!!-1#%'=X2B>(6T!!!,1!-!"'.P:'5!!""!-0````]'=W^V=G.F!!!71&!!!Q!!!!%!!AFF=H*P=C"P>81!&5!(!!^"9X2V97QA1G&V:(*B>'5!"!!!!#Z!=!!?!!!6%UR*4FAA1WRJ:7ZU,GRW9WRB=X-!$UR*4FAA1WRJ:7ZU)'^V>!!A1&!!!Q!!!!%!!B.F=H*P=C"J<C!I<G]A:8*S<X)J!!^!"Q!)1G&V:(*B>'5!!!V!"1!(1WBB<GZF<!!O1(!!(A!!&2.-35Z9)%.M;76O>#ZM>G.M98.T!!Z-35Z9)%.M;76O>#"J<A!!91$Q!!Q!!Q!%!!5!"A!&!!5!"1!&!!=!#!!*!!I$!!"Y!!!.#!!!#1!!!!!!!!!.#Q!!!!!!!!!!!!!!!!!!!!!!!!I!!!!+!!!!#!!!!!I!!!U!!!!-!!!!!!!!!!!!!!%!#Q!!!!! + -1 + 0 + true + 1 + 1 + 1107821072 + + + )!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!(0!!!!$Q!-1#%'=X2B>(6T!!!,1!-!"'.P:'5!!""!-0````]'=W^V=G.F!!!71&!!!Q!!!!%!!AFF=H*P=C"P>81!&5!(!!^"9X2V97QA1G&V:(*B>'5!"!!!!#Z!=!!?!!!6%UR*4FAA1WRJ:7ZU,GRW9WRB=X-!$UR*4FAA1WRJ:7ZU)'^V>!!01!5!#6.U<X!A1GFU=Q";!0%!!!!!!!!!!B&-35Z9)%*B=W5O<(:D<'&T=QJ198*J>(EO9X2M!$6!&1!'"UFO>G&M;71%4G^O:1.0:'1%28:F<A2.98*L"6.Q97.F!!!'5'&S;82Z!!!01!5!#52B>'%A1GFU=Q!A1&!!!Q!!!!%!!B.F=H*P=C"J<C!I<G]A:8*S<X)J!!^!"Q!)1G&V:(*B>'5!!!V!"1!(1WBB<GZF<!!O1(!!(A!!&2.-35Z9)%.M;76O>#ZM>G.M98.T!!Z-35Z9)%.M;76O>#"J<A!!91$Q!!Q!!Q!%!!5!"A!&!!=!#!!*!!I!#Q!-!!U$!!"Y!!!.#!!!#1!!!!!!!!!.#Q!!!!!!!!A!!!!)!!!!#!!!!!I!!!!+!!!!#!!!!!I!!!U!!!!-!!!!!!!!!!!!!!%!$A!!!!! + -1 + 0 + true + 1 + 1 + 1109918224 + + + )!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!&#!!!!#Q!-1#%'=X2B>(6T!!!,1!-!"'.P:'5!!""!-0````]'=W^V=G.F!!!71&!!!Q!!!!%!!AFF=H*P=C"P>81!$U!$!!F/>7UA1HFU:8-!"!!!!#Z!=!!?!!!6%UR*4FAA1WRJ:7ZU,GRW9WRB=X-!$UR*4FAA1WRJ:7ZU)'^V>!!A1&!!!Q!!!!%!!B.F=H*P=C"J<C!I<G]A:8*S<X)J!!V!"1!(1WBB<GZF<!!O1(!!(A!!&2.-35Z9)%.M;76O>#ZM>G.M98.T!!Z-35Z9)%.M;76O>#"J<A!!91$Q!!Q!!Q!%!!5!"A!&!!5!"1!&!!=!"1!)!!E$!!"Y!!!.#!!!#1!!!!!!!!!.#Q!!!!!!!!!!!!!!!!!!!!!!!!I!!!!!!!!!#!!!!!I!!!U!!!!-!!!!!!!!!!!!!!%!#A!!!!! + -1 + 0 + true + 1 + 1 + 1109918224 + + + )!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!&J!!!!$1!-1#%'=X2B>(6T!!!,1!-!"'.P:'5!!""!-0````]'=W^V=G.F!!!71&!!!Q!!!!%!!AFF=H*P=C"P>81!"!!!!#Z!=!!?!!!6%UR*4FAA1WRJ:7ZU,GRW9WRB=X-!$UR*4FAA1WRJ:7ZU)'^V>!!81!-!%&2J<76P>81A+$-Q-$"N=SE!!#"!5!!$!!!!!1!#%W6S=G^S)'FO)#BO<S"F=H*P=CE!$5!&!!>/>7VF=GFD!"*!1!!"`````Q!)"5*Z>'6T!!V!"1!(1WBB<GZF<!!O1(!!(A!!&2.-35Z9)%.M;76O>#ZM>G.M98.T!!Z-35Z9)%.M;76O>#"J<A!!91$Q!!Q!!Q!%!!1!"1!%!!1!"A!%!!=!#1!+!!M$!!"Y!!!.#!!!!!!!!!!!!!!.#Q!!!!!!!!!!!!!)!!!!!!!!!!I!!!)+!!!!#!!!!!I!!!U!!!!-!!!!!!!!!!!!!!%!$!!!!!! + -1 + 0 + true + 1 + 1 + 1342710288 + + + )!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!&9!!!!$!!-1#%'=X2B>(6T!!!,1!-!"'.P:'5!!""!-0````]'=W^V=G.F!!!71&!!!Q!!!!%!!AFF=H*P=C"P>81!"!!!!#Z!=!!?!!!6%UR*4FAA1WRJ:7ZU,GRW9WRB=X-!$UR*4FAA1WRJ:7ZU)'^V>!!81!-!%&2J<76P>81A+$-Q-$"N=SE!!#"!5!!$!!!!!1!#%W6S=G^S)'FO)#BO<S"F=H*P=CE!$E!Q`````Q2%982B!!!.1!5!"U.I97ZO:7Q!,E"Q!"Y!!"544%F/7#"$<'FF<H1O<(:D<'&T=Q!/4%F/7#"$<'FF<H1A;7Y!!'%!]!!-!!-!"!!%!!5!"!!%!!9!"!!(!!A!#1!+!Q!!?!!!$1A!!!!!!!!!!!!!$1M!!!!!!!!!!!!!#!!!!!!!!!!+!!!##A!!!!A!!!!+!!!.!!!!$!!!!!!!!!!!!!!"!!M!!!!! + -1 + 0 + true + 1 + 1 + 1342710288 + + + )!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!&]!!!!$A!-1#%'=X2B>(6T!!!,1!-!"'.P:'5!!""!-0````]'=W^V=G.F!!!71&!!!Q!!!!%!!AFF=H*P=C"P>81!$5!&!!>/>7VF=GFD!"*!1!!"`````Q!%"5*Z>'6T!!1!!!!O1(!!(A!!&2.-35Z9)%.M;76O>#ZM>G.M98.T!!^-35Z9)%.M;76O>#"P>81!&U!$!""5;7VF<X6U)#AT-$!Q<8-J!!!A1&!!!Q!!!!%!!B.F=H*P=C"J<C!I<G]A:8*S<X)J!".!!Q!.1HFU:8-A6']A5G6B:!!.1!5!"U.I97ZO:7Q!,E"Q!"Y!!"544%F/7#"$<'FF<H1O<(:D<'&T=Q!/4%F/7#"$<'FF<H1A;7Y!!'%!]!!-!!-!"1!'!!=!"A!'!!A!"A!*!!I!#Q!-!Q!!?!!!$1A!!!E!!!!!!!!!$1M!!!!!!!!!!!!!#!!!!!!!!!!+!!!!#!!!!!A!!!!+!!!.!!!!$!!!!!!!!!!!!!!"!!U!!!!! + -1 + 0 + true + 1 + 1 + 1107821072 + + + )!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!&L!!!!$1!-1#%'=X2B>(6T!!!,1!-!"'.P:'5!!""!-0````]'=W^V=G.F!!!71&!!!Q!!!!%!!AFF=H*P=C"P>81!$E!Q`````Q6#?82F=Q!%!!!!,E"Q!"Y!!"544%F/7#"$<'FF<H1O<(:D<'&T=Q!04%F/7#"$<'FF<H1A<X6U!">!!Q!16'FN:7^V>#!I-T!Q-'VT+1!!)%"1!!-!!!!"!!)4:8*S<X)A;7YA+'ZP)'6S=G^S+1!41!-!$5*Z>'6T)&2P)&*F971!$5!&!!>$;'&O<G6M!#Z!=!!?!!!6%UR*4FAA1WRJ:7ZU,GRW9WRB=X-!$ER*4FAA1WRJ:7ZU)'FO!!"B!0!!$!!$!!1!"1!'!!5!"1!(!!5!#!!*!!I!#Q-!!(A!!!U)!!!*!!!!!!!!!!U,!!!!!!!!!!!!!!A!!!!!!!!!#A!!!!A!!!!)!!!!#A!!$1!!!!Q!!!!!!!!!!!!!!1!-!!!!!! + -1 + 0 + true + 1 + 1 + 1115685392 + + + )!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!%T!!!!#A!-1#%'=X2B>(6T!!!,1!-!"'.P:'5!!""!-0````]'=W^V=G.F!!!71&!!!Q!!!!%!!AFF=H*P=C"P>81!"!!!!#Z!=!!?!!!6%UR*4FAA1WRJ:7ZU,GRW9WRB=X-!$UR*4FAA1WRJ:7ZU)'^V>!!A1&!!!Q!!!!%!!B.F=H*P=C"J<C!I<G]A:8*S<X)J!!V!"1!(1WBB<GZF<!!O1(!!(A!!&2.-35Z9)%.M;76O>#ZM>G.M98.T!!Z-35Z9)%.M;76O>#"J<A!!91$Q!!Q!!Q!%!!1!"1!%!!1!"!!%!!9!"!!(!!A$!!"Y!!!.#!!!!!!!!!!!!!!.#Q!!!!!!!!!!!!!!!!!!!!!!!!I!!!!!!!!!#!!!!!I!!!U!!!!-!!!!!!!!!!!!!!%!#1!!!!! + -1 + 0 + true + 1 + 1 + 1109918224 + + + + + + )!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!$`!!!!#1!-1#%'=X2B>(6T!!!,1!-!"'.P:'5!!""!-0````]'=W^V=G.F!!!71&!!!Q!!!!%!!AFF=H*P=C"P>81!"!!!!"2!-0````],2'6W;7.F)%ZB<75!,E"Q!"Y!!"544%F/7#"$<'FF<H1O<(:D<'&T=Q!04%F/7#"$<'FF<H1A<X6U!#"!5!!$!!!!!1!#%W6S=G^S)'FO)#BO<S"F=H*P=CE!6!$Q!!Q!!Q!%!!5!"A!%!!1!"!!%!!=!"!!%!!1$!!"Y!!!.#!!!!!!!!!E!!!!*!!!!!!!!!!!!!!!!!!!!!!!!!!I!!!!!!!!!!!!!!!!!!!!!!1!)!!!!!! + -1 + 0 + true + 1 + 1 + 1342710288 + + + )!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!(!!!!!%!!-1#%'=X2B>(6T!!!,1!-!"'.P:'5!!""!-0````]'=W^V=G.F!!!71&!!!Q!!!!%!!AFF=H*P=C"P>81!$U!(!!BC986E=G&U:1!!&%!Q`````QN%:8:J9W5A4G&N:1!O1(!!(A!!&2.-35Z9)%.M;76O>#ZM>G.M98.T!!^-35Z9)%.M;76O>#"P>81!&U!(!""5;7VF<X6U)#AT-$!Q<8-J!!!01!5!#6.U<X!A1GFU=Q";!0%!!!!!!!!!!B&-35Z9)%*B=W5O<(:D<'&T=QJ198*J>(EO9X2M!$6!&1!'"UFO>G&M;71%4G^O:1.0:'1%28:F<A2.98*L"6.Q97.F!!!'5'&S;82Z!!!01!5!#52B>'%A1GFU=Q!A1&!!!Q!!!!%!!B.F=H*P=C"J<C!I<G]A:8*S<X)J!!^!"Q!)1G&V:(*B>'5!!"2!-0````],5W6S;7&M)&"P=H1!"!!!!&1!]!!-!!-!"!!&!!9!"Q!)!!E!#A!,!!Q!$1!/!Q!!?!!!$1A!!!U*!!!*!!!!#1!!!!A!!!!)!!!!#!!!!!A!!!!+!!!!#A!!!1I!!!!!!!!!!!%!$Q!!!!! + -1 + 0 + true + 1 + 1 + 1342710288 + + + )!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!%Z!!!!$!!-1#%'=X2B>(6T!!!,1!-!"'.P:'5!!""!-0````]'=W^V=G.F!!!71&!!!Q!!!!%!!AFF=H*P=C"P>81!"!!!!"2!-0````],2'6W;7.F)%ZB<75!,E"Q!"Y!!"544%F/7#"$<'FF<H1O<(:D<'&T=Q!04%F/7#"$<'FF<H1A<X6U!">!"Q!16'FN:7^V>#!I-T!Q-'VT+1!!)%"1!!-!!!!"!!)4:8*S<X)A;7YA+'ZP)'6S=G^S+1!,1!9!"&"P=H1!!"B!-0````]04G6U>W^S;S"":'2S:8.T!&1!]!!-!!-!"!!&!!9!"Q!%!!1!"!!)!!E!#A!%!Q!!?!!!$1A!!!!!!!!*!!!!#1!!!!A!!!!!!!!!!!!!!!!!!!!+!!!!#!!!!1I!!!!!!!!!!!%!#Q!!!!! + -1 + 0 + true + 1 + 1 + 1342710288 + + + + )!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!!1!!!!!1!)!0*U*B;9!!%!!!!!!!! + -1 + 0 + true + 1 + 1 + 1082143248 + + + )!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!%G!!!!#1!-1#%'=X2B>(6T!!!,1!-!"'.P:'5!!""!-0````]'=W^V=G.F!!!71&!!!Q!!!!%!!AFF=H*P=C"P>81!"!!!!#Z!=!!?!!!6%UR*4FAA1WRJ:7ZU,GRW9WRB=X-!$UR*4FAA1WRJ:7ZU)'^V>!!A1&!!!Q!!!!%!!B.F=H*P=C"J<C!I<G]A:8*S<X)J!#Z!=!!?!!!6%UR*4FAA1WRJ:7ZU,GRW9WRB=X-!$ER*4FAA1WRJ:7ZU)'FO!!"B!0!!$!!$!!1!"!!&!!1!"!!%!!1!"A!%!!1!"Q-!!(A!!!U)!!!!!!!!!!!!!!U,!!!!!!!!!!!!!!!!!!!!!!!!#A!!!!!!!!!!!!!!#A!!$1!!!!Q!!!!!!!!!!!!!!1!)!!!!!! + -1 + 0 + true + 1 + 1 + 1115685392 + + diff --git a/LabVIEW/vi.lib/MakerHub/LINX/API/LINX Server.lvclass b/LabVIEW/vi.lib/MakerHub/LINX/API/LINX Server.lvclass new file mode 100644 index 00000000..e2f3fe6b --- /dev/null +++ b/LabVIEW/vi.lib/MakerHub/LINX/API/LINX Server.lvclass @@ -0,0 +1,68 @@ + + + + )!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!*7!!!*Q(C=\:5^DB."%%;`211L441X1"93"[AL/('/Y1;6<_2U2?36%#)NC20Y#LZ#;7`A!Z$-&9<8\7+]Q1IHA"$;<N@]@.66^>T><EO^X5KP.6^LQT!_UY:KX=_IR=:Z\!^$$_X_O18-:ZOLDU.TH0V$$_OWR0?8CG_X3XR^REP]`$0WYG]PC``8`&?;8NJ,_\`<`>5@Q2``(>SI(5299I%Z:GJFZU20^%20^%20^%!0^%!0^%!0>%>X>%>X>%>X>%-X>%-X>%-X^.\2B3ZUI9/5&%]+*5G4"-FA5*2=%J[%*_&*?(B6QJ0Q*$Q*4],$%#5]#5`#E`!E0)1JY5FY%J[%*_%B63@*XN(B38B)LY!HY!FY!J[!BZ)+?!+!I&C1/%A#BA*H]"$Q"$Q"$Y]+?!+?A#@A#8BQ+_!*?!+?A#@A);403H3;VN(B)9U=(I@(Y8&Y("Z3S_&R?"Q?B]@BI:Q=(I@(A8!+/MF"E"0E$("?("[(BZM=(I@(Y8&Y("Z=@97]TUSD;2U>(I0(Y$&Y$"[$BR1S?!Q?A]@A-8B)+Y0(Y$&Y$"[$BV)S?!Q?A]=!-9J38E9S)^!9:!A'$Z__7[SP5H13[VWKT;P;F+L.JNJ%KMWB7H469KI7348ZKEF64::K%F2@4A7NAF%6517XA:KYHL!D>M$WW!\<9GNMB9UN^$=0H+:*J^.*R_.2B]."_`V?O^V/W_V7[`6;K^6+`"EPR]!<_H)AH-_F?Z[`4"`PPD[]XXR_`($X[?(NZNPX>ZOG`Y8`ZX`A<.1L0;X"(0U!1H65#!!!!!! + 536903680 + 1.0.0.1 + false + true + )!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!"-I5F.31QU+!!.-6E.$4%*76Q!!$L!!!!2Y!!!!)!!!$J!!!!!9!!!!!2.-35Z9)&.F=H:F=CZM>G.M98.T!!!!I#!!A!!!-!!!+!!!!!!!!!1!!Q!]!,Q!(U#!!A!!!!!"!!%!"P````]!!!!!!!!!!!!!!!"*(P!MP3B:2J(NGA-<N69%!!!!$!!!!"!!!!!"+0>Y4VX_55O5B7*)N"<%5.1>D.G0!,)%[9!*G/TY1HY!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"!!!!`````^1>D.G0!,)%[9!*G/TY1HY!!!!1!!!!!!!!!!!!!!!!!!!!!!!!!!1!!!!!!!!!*Q!"4&:$1Q!!!!%!!F:*4%)!!!!!5&2)-!!!!!5!!1!"!!!!!!)!!Q!!!!!#!!%!!!!!!#)!!!!=?*RD9'.A;G#YQ!$%D%$-V-$U!]D_!/)T!!"I!1AW!!!!!!"&!!!"'(C=9W$!"0_"!%AR-D!QH1$3,'DC9"L'JC<!:3YOO[$CT&!XME*%'9&C4(O!$#;1(+J?E(`!@E)"<&D-"A"W^3A6!!!!!!!!$!!"6EF%5Q!!!!!!!Q!!!5-!!!+=?*RT9'2AS$3W-'M!UMR!L-$1Q*#=HZ,+R1$E-U"!#R-$R3!!;JY7GLDBA=.J1+$(,^]#ZH?\K,!UV[DQ-*8S`3^2Y1BY!2*M0M*RO.MDZ\CD$6A*2R:$&E0!`]#-ZC-]9.X)_HV57!Q0.&1K-Z1+(W]U9949%AAVBO8Q$J$)964\A(IY$DZE[:U)&OA%E:UBD",(82BVR)$M8B\'1)1\U/Q,[Q;[-IMR$#<@T8<=110%0OYA!K%S)&1&B#I!54N!2.RB%,HW^<V>I("B1QI4"SBO!'&'".:D9'1!/:]*#%'G`PH``\].5)1*+K9)&1/R6U,:'EB[4E,&(*$M!?E&G>!,J$7A\-F1>A0583#RKU#[!-K_!YV0%0MR6"W)`1J)#U$:(Y(U!3D\'Z4>!)U.>.L:X]56/5X!UBM!`Z2KE!!!!!!/)!'!"Q!!"D)Q,D!O-1!!!!!!!!QA!)!!!!!%-D!O-!!!!!!/)!'!"Q!!"D)Q,D!O-1!!!!!!!!QA!)!!!!!%-D!O-!!!!!!/)!'!"Q!!"D)Q,D!O-1!!!!!!!"1"!!!!^6=VAHEGIIQO=V*/"EEZH1!!!!U!!!!!!!!!!!!!!!!!!!!!!!!!A0````_!!!!"A!!!!9!!!!'!!!!"A!!!!9!!!!'!!!!"A!!!!9!!!!'!!!!"A!!!!9"A!!'"G!!"BA9!!:A"A!'A!%!"M!$!!;Q$1!'D$M!"I06!!;!KQ!'A.5!"I#L!!;!V1!'A+M!"I$6!!:ALA!''.A!"A<A!!9"A!!(`````!!!%!0```````````````````````````````````````````Q!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!0``!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!``]!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$``Q!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!0``!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!``]!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$``Q!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!0``!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!``]!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$``Q!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!0``!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!``]!!!!!!!!!!(BY!!!!!!!!!!!!!!!!!!!!!!!!!!$``Q!!!!!!!(CMKKOM?!!!!!!!!!!!!!!!!!!!!!!!!0``!!!!!(CMKAI+#AKLL(A!!!!!!!!!!!!!!!!!!!!!``]!!(CMKAI+#AI+#AI+K[RY!!!!!!!!!!!!!!!!!!$``Q#LKAI+#AI+#AI+#AI+#KOM!!!!!!!!!!!!!!!!!0``!+KK#AI+#AI+#AI+#AI+`KM!!!!!!!!!!!!!!!!!``]!KDM\KAI+#AI+#AI+`P\_KA!!!!!!!!!!!!!!!!$``Q#K/TM\/[I+#AI+`P\_`P[K!!!!!!!!!!!!!!!!!0``!+I\/TM\/TOKL0\_`P\_`KI!!!!!!!!!!!!!!!!!``]!KDM\/TM\/TP_`P\_`P\_KA!!!!!!!!!!!!!!!!$``Q#K/TM\/TM\/`\_`P\_`P[K!!!!!!!!!!!!!!!!!0``!+I\/TM\/TM\`P\_`P\_`KI!!!!!!!!!!!!!!!!!``]!KDM\/TM\/TP_`P\_`P\_KA!!!!!!!!!!!!!!!!$``Q#K/TM\/TM\/`\_`P\_`P[K!!!!!!!!!!!!!!!!!0``!$M\/TM\/TM\`P\_`P\_K[M!!!!!!!!!!!!!!!!!``]!!+3K/TM\/TP_`P\_K[SE!!!!!!!!!!!!!!!!!!$``Q!!!!#E/TM\/`\_K[OE!!!!!!!!!!!!!!!!!!!!!0``!!!!!!!!J$M\/TOD!!!!!!!!!!!!!!!!!!!!!!!!``]!!!!!!!!!!+3D!!!!!!!!!!!!!!!!!!!!!!!!!!$```````````````````````````````````````````]!!!!-!!&'5%B1!!!!!!!$!!!!"!!!!!!!!!*X!!!%[8C=L:1`;".2(->`\\D+3\$Y,L;W"QW*Y2K,<5!-;AV6CXU6+K5IN?"1--',6GC.ZE^R;J>$S.!JE%(I)%B7BQQ[/)A%FVM[C)->1A>XF[*A,_@P88JX->7YG-"RB0@Z`>\\@4^Z!0*8.CSV9--#QP<R:>[#I'Y3A%;#QO%H`BT9%PE*:%!F&ET4*<9LN=C)"=>V-U\0]4*]Q^8W3XM#0J%6NI>,DT%6CQ5N/+'<1]J.L=GUVS.;O=_NKE#9<:'7>&?,@+><2AY<AD%GHEK#N)$QU\*MR'ZF(G=.4@Q;3&$6+2GQA('T0[]VTW"&<0X"+3G.EZAUZ:9%,$E'^8L>BZ1W&(?W-9E-C1'1J$4?AQFR-VT1GB-/%X19\*.U_`")KS,W,K"O^#1X';,)04M]MG">TJL_)\>CQ9$7P%Z6OK>`[?O`<<Q"!K2RD^JP\88"+QMC"7>N#)-942'WC/_,&JQV4#H.:(?]*;AY-=BO$&-CBBN/$!&?:O$H50F($FROR-)TK[6#-:O0ZBZ%\[^G#I8IE`SD^5QR'^5TR=T2B+ZQ5UW+UYNGDBQQ#$)]B84HN(.1K^6Q!0DUU;O)$GF.DV/=U_D?R(6`=K+L0\FL/$H_Y]Z$-<X2F/1[#\[NZ^&7B86P[$><,`R`7S_C2"N>NM)S@N>[G(?J$@GWYHK!.6DOQ5QCM^FJ;\O,W[?8L:?0W#L9,FOLV7KXL3H06JG1NKX'DHVA([#T/&Y:UJ"WH)8!1M@/[?\(EH?ZU%7.WV4^_Q)WC]UW,2DE-[(X<%\]!_A=H78<G#J?2[@I.NVP@0;OH];]2RI\])[]UFZ%[0!PA1:B<A!!!!!%!!!!)!!!!!1!!!!!!!!!$!!"1E2)5!!!!!!!!Q!!!!1!!!!!!!!!:1!!!(6YH'.A9#A5E'$[RV$XFY&*Y#O1)@W8A6H1D`%X!Q/HH]"B)-UI)!E5FPX,Q#[I$2<70K,,Q1!&KGS-(*)=BQ5ZQ$)=,2I-````6SFCZ0B[Z"J=U2%@/&.FFDS("!"F#"G;!!!!!!!!"!!!!!=!!!&:!!!!"1!!!"J-6E.M98.T5(*J>G&U:52B>'&597*0=G2F=A!!!#5A!)!!!!!!!A!&!!=!!!Q!1!!"`````Q!!!!%!!1!!!!!!!!!!!!!!'UR71WRB=X.1=GFW982F2'&U962J<76T>'&N=!!!!"EA!)!!!!!!!1!&!!=!!!%!!/(5@%Q!!!!!!!!!*ER71WRB=X.1=GFW982F2'&U95RB=X2"=("M;76E6'FN:8.U97VQ!!!!'3!!A!!!!!!"!!5!"Q!!!1!!Y>2]4!!!!!!!!!!;4&:$<'&T=V"S;8:B>'6%982B6(FQ:52F=W-!!!!K)!#!!!!!!!%!#!!Q`````Q!"!!!!!!!/!!!!!1!'!&!!!!!"!!!!!!!!!!!!(ER71WRB=X.1=GFW982F2'&U952G<(2%982B5WF[:1!!!"EA!)!!!!!!!1!&!!-!!!%!!!!!!!!!!!!!!!!!!!!!"!!#!!A!!!!%!!!!1!!!!#A!!!!#!!!%!!!!!!%!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!A!!!!!!"!!!!!!!!!!!!!!!!!!!!!"EE%Q!!!!!!!UQ#665&11"/!!E!!!!#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!K[IK0KOK+D[LKCI_K[IK0A!!!!!!!UQ#!!!!0Q!!!!!!!!!!!!!!YA!!!6>YH)W115I$12"&8U_L33:KIFE,P8$BSIU8'"!%)5AQ,FQ[:(J%;"C:[1QO8(B),_!.^!<_4#)+<M+(IOJXV@^6$5SYY_PD`85+**0J^=W^G`O[^@6Z;"=B<ZL28WY2!W@:$%YOQ\+*PH:6[<IW^VQ`N8HULMBDTKZ!3A(G%[0#<EIOF![S(L9-D`3T.VP>RD8BKZ+RN+X;^_D::6'3LLRM@#EU03/BTY$4L@Q4/BE&A]9?:,X$F51=_RS)8/&1:D]Q'`RH@F^'(>;('-:32!PJYZ3F$$HC7((Y$>6N.<U!!!!!!'5!!1!#!!-!"!!!!%A!$Q1!!!!!$Q$:!.1!!!"2!!]%!!!!!!]!W1$5!!!!7A!0"!!!!!!0!.E!V!!!!'/!!)1!A!!!$Q$:!.1)5W6H<W5A65E)5W6H<W5A65E)5W6H<W5A65E"-!!!!&*45E-.#A!$4&:$1UR#6F=!!![Q!!!%?!!!!#!!!![1!!!!!!!!!!!!!!!A!!!!.!!!"'A!!!!?4%F#4A!!!!!!!!&Y4&:45A!!!!!!!!'-5F242Q!!!!!!!!'A1U.46!!!!!!!!!'U4%FW;1!!!!!!!!()1U^/5!!!!!!!!!(=6%UY-!!!!!!!!!(Q2%:%5Q!!!!!!!!)%4%FE=Q!!!!!!!!)96EF$2!!!!!!!!!)M>G6S=Q!!!!1!!!*!5U.45A!!!!!!!!+E2U.15A!!!!!!!!+Y35.04A!!!!!!!!,-;7.M/!!!!!!!!!,A4%FG=!!!!!!!!!,U2F"&?!!!!!!!!!-)2F")9A!!!!!!!!-=2F"421!!!!!!!!-Q6F"%5!!!!!!!!!.%4%FC:!!!!!!!!!.91E2&?!!!!!!!!!.M1E2)9A!!!!!!!!/!1E2421!!!!!!!!/56EF55Q!!!!!!!!/I2&2)5!!!!!!!!!/]466*2!!!!!!!!!013%F46!!!!!!!!!0E5&*5)!!!!!!!!!0Y6E.55!!!!!!!!!1-2F2"1A!!!!!!!!1A!!!!!0````]!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!=!!!!!!!!!!$`````!!!!!!!!!-!!!!!!!!!!!0````]!!!!!!!!!V!!!!!!!!!!!`````Q!!!!!!!!$=!!!!!!!!!!$`````!!!!!!!!!1A!!!!!!!!!!0````]!!!!!!!!"%!!!!!!!!!!!`````Q!!!!!!!!%Y!!!!!!!!!!$`````!!!!!!!!!91!!!!!!!!!!0````]!!!!!!!!"F!!!!!!!!!!%`````Q!!!!!!!!,=!!!!!!!!!!@`````!!!!!!!!!P!!!!!!!!!!#0````]!!!!!!!!$!!!!!!!!!!!*`````Q!!!!!!!!-5!!!!!!!!!!L`````!!!!!!!!!S1!!!!!!!!!!0````]!!!!!!!!$/!!!!!!!!!!!`````Q!!!!!!!!.1!!!!!!!!!!$`````!!!!!!!!!W1!!!!!!!!!!0````]!!!!!!!!$[!!!!!!!!!!!`````Q!!!!!!!!@M!!!!!!!!!!$`````!!!!!!!!"`Q!!!!!!!!!!0````]!!!!!!!!)"!!!!!!!!!!!`````Q!!!!!!!!K!!!!!!!!!!!$`````!!!!!!!!#IA!!!!!!!!!!0````]!!!!!!!!+E!!!!!!!!!!!`````Q!!!!!!!!KA!!!!!!!!!!$`````!!!!!!!!#KA!!!!!!!!!!0````]!!!!!!!!,&!!!!!!!!!!!`````Q!!!!!!!!M=!!!!!!!!!!$`````!!!!!!!!$(Q!!!!!!!!!!0````]!!!!!!!!-B!!!!!!!!!!!`````Q!!!!!!!!S-!!!!!!!!!!$`````!!!!!!!!$,A!!!!!!!!!!0````]!!!!!!!!.0!!!!!!!!!#!`````Q!!!!!!!!YE!!!!!!^-35Z9)&.F=H:F=CZD>'Q!!!!! + + + + +!!!!!2.-35Z9)&.F=H:F=CZM>G.M98.T5&2)-!!!!!!!!!!!!!!!!A!"!!!!!!!!!!!!!!%!"A"1!!!!!1!!!!!!!!!!!!!"$ERB9F:*26=A4W*K:7.U!&"53$!!!!!!!!!!!!!)9)!"!!!!!!!!!@``!!!!!1!!!!!!!1!!!!!"!!9!5!!!!!%!!!!!!!(````_!!!!!!%24%F/7#"#98.F,GRW9WRB=X.16%AQ!!!!!!!!!!!!#'#!!1!!!!!!!!!!!!! + + + + + false + 1.0.0.1 + 3 + 50 48 48 49 56 48 48 55 13 0 0 0 0 1 23 21 76 111 97 100 32 38 32 85 110 108 111 97 100 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 9 0 0 13 37 1 100 1 100 80 84 72 48 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 15 13 76 97 121 101 114 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 7 0 0 12 185 0 0 0 0 0 0 0 0 0 0 12 158 0 40 0 0 12 152 0 0 12 0 0 0 0 0 0 32 0 32 0 24 0 0 0 0 0 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 204 0 255 204 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 0 0 0 0 0 0 255 204 0 255 204 0 255 153 0 0 0 0 0 0 0 0 0 0 255 153 0 0 0 0 0 0 0 0 0 0 255 153 0 0 0 0 0 0 0 0 0 0 255 153 0 255 153 0 0 0 0 255 153 0 0 0 0 255 153 0 0 0 0 0 0 0 0 0 0 255 204 0 0 0 0 0 0 0 0 0 0 255 204 0 255 204 0 255 204 0 0 0 0 0 0 0 255 204 0 255 204 0 0 0 0 255 153 0 255 153 0 255 153 0 255 153 0 0 0 0 255 153 0 255 153 0 255 153 0 0 0 0 255 153 0 255 153 0 0 0 0 255 153 0 0 0 0 255 153 0 0 0 0 255 153 0 0 0 0 255 153 0 255 153 0 255 204 0 0 0 0 255 204 0 255 204 0 0 0 0 255 204 0 255 204 0 0 0 0 0 0 0 255 204 0 255 204 0 255 204 0 0 0 0 0 0 0 255 153 0 255 153 0 0 0 0 0 0 0 255 153 0 255 153 0 0 0 0 0 0 0 0 0 0 255 153 0 255 153 0 0 0 0 255 153 0 0 0 0 255 153 0 0 0 0 0 0 0 255 153 0 255 153 0 0 0 0 0 0 0 0 0 0 255 204 0 255 204 0 255 204 0 0 0 0 0 0 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 0 0 0 255 153 0 0 0 0 255 153 0 255 153 0 255 153 0 0 0 0 255 153 0 255 153 0 0 0 0 255 153 0 255 153 0 0 0 0 255 153 0 255 153 0 0 0 0 255 153 0 255 153 0 255 153 0 0 0 0 255 204 0 255 204 0 0 0 0 255 204 0 255 204 0 0 0 0 0 0 0 255 204 0 255 204 0 0 0 0 0 0 0 0 0 0 255 153 0 255 153 0 0 0 0 0 0 0 0 0 0 255 153 0 0 0 0 255 153 0 255 153 0 0 0 0 255 153 0 255 153 0 0 0 0 255 153 0 255 153 0 0 0 0 0 0 0 0 0 0 255 153 0 0 0 0 255 204 0 255 204 0 0 0 0 255 204 0 255 204 0 0 0 0 0 0 0 255 204 0 255 204 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 153 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7 86 73 32 73 99 111 110 100 1 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 83 109 97 108 108 32 70 111 110 116 115 0 1 8 1 1 + + + + + + 2 + + + + )!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!'4!!!!$A!-1#%'=X2B>(6T!!!,1!-!"'.P:'5!!""!-0````]'=W^V=G.F!!!71&!!!Q!!!!%!!AFF=H*P=C"P>81!"!!!!#Z!=!!?!!!6%UR*4FAA5W6S>G6S,GRW9WRB=X-!$UR*4FAA5W6S>G6S)'^V>!!.1!=!"V2J<76P>81!$U!&!!F4>'^Q)%*J>(-!7A$R!!!!!!!!!!)24%F/7#"#98.F,GRW9WRB=X-+5'&S;82Z,G.U<!!V1"5!"A>*<H:B<'FE"%ZP<G5$4W2E"%6W:7Y%47&S;Q64='&D:1!!"F"B=GFU?1!!$U!&!!F%982B)%*J>(-!)%"1!!-!!!!"!!)4:8*S<X)A;7YA+'ZP)'6S=G^S+1!01!=!#%*B>72S982F!!!51$$`````#V.F=GFB<#"1<X*U!&1!]!!-!!-!"!!%!!5!"A!(!!A!#1!+!!M!$!!%!Q!!?!!!$1A!!!!!!!!!!!!!#1!!!!A!!!!)!!!!#!!!!!A!!!!+!!!!#A!!!1I!!!!!!!!!!!%!$1!!!!! + -1 + 0 + true + 1 + 1 + 1342710288 + + + )!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!%1!!!!#A!-1#%'=X2B>(6T!!!,1!-!"'.P:'5!!""!-0````]'=W^V=G.F!!!71&!!!Q!!!!%!!AFF=H*P=C"P>81!"!!!!#Z!=!!?!!!6%UR*4FAA5W6S>G6S,GRW9WRB=X-!$UR*4FAA5W6S>G6S)'^V>!!A1&!!!Q!!!!%!!B.F=H*P=C"J<C!I<G]A:8*S<X)J!!N!"A!%5'^S>!!!'E!Q`````R&*<H2F=G:B9W5A172E=G6T=Q"5!0!!$!!$!!1!"!!&!!1!"!!%!!1!"A!(!!A!"!-!!(A!!!U)!!!!!!!!!!!!!!E!!!!!!!!!!!!!!!!!!!!!!!!!#A!!!!I!!!%+!!!!!!!!!!!"!!E!!!!! + -1 + 0 + true + 1 + 1 + 1342972432 + + + + )!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!!1!!!!!1!)!0*V=;GY!!%!!!!!!!! + -1 + 0 + true + 1 + 1 + 1082401296 + + + )!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!%Y!!!!#A!-1#%'=X2B>(6T!!!,1!-!"'.P:'5!!""!-0````]'=W^V=G.F!!!71&!!!Q!!!!%!!AFF=H*P=C"P>81!"!!!!#Z!=!!?!!!6%UR*4FAA5W6S>G6S,GRW9WRB=X-!$UR*4FAA5W6S>G6S)'^V>!!A1&!!!Q!!!!%!!B.F=H*P=C"J<C!I<G]A:8*S<X)J!"*!)1RL:76Q)(*V<GZJ<G=!!#Z!=!!?!!!6%UR*4FAA5W6S>G6S,GRW9WRB=X-!$ER*4FAA5W6S>G6S)'FO!!"B!0!!$!!$!!1!"!!&!!1!"!!%!!1!"A!%!!=!#!-!!(A!!!U)!!!!!!!!!!!!!!U,!!!!!!!!!!!!!!!!!!!!!!!!#A!!!!!!!!!)!!!!%A!!$1!!!!Q!!!!!!!!!!!!!!1!*!!!!!! + -1 + 0 + true + 1 + 1 + 1342710288 + + diff --git a/LabVIEW/vi.lib/MakerHub/LINX/API/Open.vi b/LabVIEW/vi.lib/MakerHub/LINX/API/Open.vi new file mode 100644 index 00000000..59082126 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/LINX/API/Open.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/API/Peripherals/Serial/Uart Close.vi b/LabVIEW/vi.lib/MakerHub/LINX/API/Peripherals/Serial/Uart Close.vi new file mode 100644 index 00000000..e397e552 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/LINX/API/Peripherals/Serial/Uart Close.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/API/Peripherals/Serial/Uart Get Available Bytes.vi b/LabVIEW/vi.lib/MakerHub/LINX/API/Peripherals/Serial/Uart Get Available Bytes.vi new file mode 100644 index 00000000..83d4d850 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/LINX/API/Peripherals/Serial/Uart Get Available Bytes.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/API/Peripherals/Serial/Uart Get Channels.vi b/LabVIEW/vi.lib/MakerHub/LINX/API/Peripherals/Serial/Uart Get Channels.vi new file mode 100644 index 00000000..05c507d1 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/LINX/API/Peripherals/Serial/Uart Get Channels.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/API/Peripherals/Serial/Uart Open.vi b/LabVIEW/vi.lib/MakerHub/LINX/API/Peripherals/Serial/Uart Open.vi new file mode 100644 index 00000000..2cbb0b6e Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/LINX/API/Peripherals/Serial/Uart Open.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/API/Peripherals/Serial/Uart Read Bytes.vi b/LabVIEW/vi.lib/MakerHub/LINX/API/Peripherals/Serial/Uart Read Bytes.vi new file mode 100644 index 00000000..e8fa88bc Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/LINX/API/Peripherals/Serial/Uart Read Bytes.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/API/Peripherals/Serial/Uart Read String.vi b/LabVIEW/vi.lib/MakerHub/LINX/API/Peripherals/Serial/Uart Read String.vi new file mode 100644 index 00000000..dd8c59da Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/LINX/API/Peripherals/Serial/Uart Read String.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/API/Peripherals/Serial/Uart Set Baudrate.vi b/LabVIEW/vi.lib/MakerHub/LINX/API/Peripherals/Serial/Uart Set Baudrate.vi new file mode 100644 index 00000000..7e86bb79 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/LINX/API/Peripherals/Serial/Uart Set Baudrate.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/API/Peripherals/Serial/Uart Set Parameters.vi b/LabVIEW/vi.lib/MakerHub/LINX/API/Peripherals/Serial/Uart Set Parameters.vi new file mode 100644 index 00000000..1ab377d3 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/LINX/API/Peripherals/Serial/Uart Set Parameters.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/API/Peripherals/Serial/Uart Write Bytes.vi b/LabVIEW/vi.lib/MakerHub/LINX/API/Peripherals/Serial/Uart Write Bytes.vi new file mode 100644 index 00000000..048c3ecc Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/LINX/API/Peripherals/Serial/Uart Write Bytes.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/API/Peripherals/Serial/Uart Write String.vi b/LabVIEW/vi.lib/MakerHub/LINX/API/Peripherals/Serial/Uart Write String.vi new file mode 100644 index 00000000..81fc3396 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/LINX/API/Peripherals/Serial/Uart Write String.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/API/Server/Create Serial.vi b/LabVIEW/vi.lib/MakerHub/LINX/API/Server/Create Serial.vi new file mode 100644 index 00000000..f70f05b7 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/LINX/API/Server/Create Serial.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/API/Server/Create TCP.vi b/LabVIEW/vi.lib/MakerHub/LINX/API/Server/Create TCP.vi new file mode 100644 index 00000000..c94e94ff Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/LINX/API/Server/Create TCP.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/API/Server/Process.vi b/LabVIEW/vi.lib/MakerHub/LINX/API/Server/Process.vi new file mode 100644 index 00000000..3f746bbf Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/LINX/API/Server/Process.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/API/Template.vi b/LabVIEW/vi.lib/MakerHub/LINX/API/Template.vi new file mode 100644 index 00000000..9d7afe7b Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/LINX/API/Template.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/API/Test Local.vi b/LabVIEW/vi.lib/MakerHub/LINX/API/Test Local.vi new file mode 100644 index 00000000..9864f8bd Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/LINX/API/Test Local.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/API/Typedef/Error Type.ctl b/LabVIEW/vi.lib/MakerHub/LINX/API/Typedef/Error Type.ctl new file mode 100644 index 00000000..98377798 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/LINX/API/Typedef/Error Type.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/API/Typedef/Parity.ctl b/LabVIEW/vi.lib/MakerHub/LINX/API/Typedef/Parity.ctl new file mode 100644 index 00000000..2934924e Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/LINX/API/Typedef/Parity.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/client/LinxClient.cpp b/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/client/LinxClient.cpp new file mode 100644 index 00000000..3dea66ad --- /dev/null +++ b/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/client/LinxClient.cpp @@ -0,0 +1,1325 @@ +/**************************************************************************************** +** Generic LINX Client code. This file contains the parent class for LINX client communicators. +** +** For more information see: www.labviewmakerhub.com/linx +** For support visit the forums at: www.labviewmakerhub.com/forums/linx +** +** Written By Rolf Kalbermatter +** +** BSD2 License. +****************************************************************************************/ + +/**************************************************************************************** +** Includes +****************************************************************************************/ +#include +#include +#include + +#include "LinxDefines.h" +#include "LinxDevice.h" +#if Unix +#include "LinxLinuxChannel.h" +#include "LinxLinuxDevice.h" +#elif Win32 +#include "LinxWindowsChannel.h" +#include "LinxWindowsDevice.h" +#endif +#include "LinxCommand.h" +#include "LinxUtilities.h" +#include "LinxClient.h" +static uint8_t m_Unknown[] = "Uninitialized Device Client"; + +/**************************************************************************************** +** Constructors/Destructor +****************************************************************************************/ +LinxClient::LinxClient(const uint8_t *uartDevice, uint32_t *baudrate, uint8_t dataBits, uint8_t stopBits, LinxUartParity parity, int32_t timeout) : LinxDevice(NULL) +{ + m_DeviceName = m_Unknown; + m_CommChannel = NULL; + + LinxUartChannel *channelObj = NULL; +#if Unix + channelObj = new LinxUnixUartChannel(m_Debug, uartDevice); +#elif Win32 + channelObj = new LinxWindowsUartChannel(m_Debug, uartDevice); +#endif + if (channelObj) + { + int32_t status = channelObj->SetSpeed(*baudrate, baudrate); + if (!status) + status = channelObj->SetParameters(dataBits, stopBits, parity); + if (!status) + { + Initialize(channelObj, timeout); + } + } +} + +LinxClient::LinxClient(const uint8_t *netAddress, uint16_t port, int32_t timeout) : LinxDevice(NULL) +{ + m_DeviceName = m_Unknown; + m_CommChannel = NULL; + + LinxCommChannel *channelObj = NULL; +#if Unix + channelObj = new LinxUnixCommChannel(m_Debug, netAddress, port); +#elif Win32 + channelObj = new LinxWindowsCommChannel(m_Debug, netAddress, port); +#endif + if (channelObj) + { + Initialize(channelObj, timeout); + } +} + +LinxClient::~LinxClient(void) +{ + if (m_CommChannel) + m_CommChannel->Release(); + if (m_DeviceName != m_Unknown) + free(m_DeviceName); +} + +/**************************************************************************************** +** Public Functions +****************************************************************************************/ +int32_t LinxClient::IsInitialized(void) +{ + return (m_CommChannel != NULL); +} + +uint8_t LinxClient::GetDeviceName(uint8_t *buffer, uint8_t length) +{ + size_t len = strlen((char*)m_DeviceName); + if (buffer) + { + if (len > length) + len = length; + memcpy(buffer, m_DeviceName, len); + if (length > len) + buffer[len] = 0; + } + return (uint8_t)len; +} + +// ANALOG +int32_t LinxClient::AnalogRead(uint8_t numChans, uint8_t* channels, uint8_t* values) +{ + int32_t status = VerifyChannels(IID_LinxAiChannel, numChans, channels); + if (!status) + { + // Command parameters + // uint8[length] : channels + // Response parameters + // uint8 : analog input resolution + // uint8[] : analog values, bit-packed with resolution bits per channel + uint32_t offset, length = ((numChans * this->AiResolution + 7) / 8) + 1; + uint8_t *buffer = (uint8_t *)malloc(10 + numChans); + if (buffer) + { + status = PrepareHeader(buffer, LCMD_ANALOG_READ, numChans, length, &offset); + if (!status) + { + memcpy(buffer + offset, channels, numChans); + + // send data and read response + status = WriteAndRead(buffer, 10 + length, &offset, numChans, values, 0, &length, getMsTicks(), m_Timeout); + if (!status && buffer[offset] != this->AiResolution) + { + status = LANALOG_REF_VAL_ERROR; + } + } + free(buffer); + } + } + return status; +} + +int32_t LinxClient::AnalogReadNoPacking(uint8_t numChans, uint8_t* channels, uint32_t* values) +{ + int32_t status = LERR_MEMORY; + uint32_t length = ((numChans * this->AiResolution + 7) / 8) + 1; + uint8_t *buffer = (uint8_t *)malloc(length); + if (buffer) + { + status = AnalogRead(numChans, channels, buffer); + if (!status) + { + uint32_t offset = 0, remaining = 8; + uint32_t resolution = buffer[offset++]; + + for (int32_t i = 0; i < numChans; i++) + { + values[i] = UnpackData(resolution, &remaining, buffer, &offset); + } + } + free(buffer); + } + return status; +} + +int32_t LinxClient::AnalogReadValues(uint8_t numChans, uint8_t* channels, double* values) +{ + int32_t status = LERR_MEMORY; + uint32_t length = ((numChans * this->AiResolution + 7) / 8) + 1; + uint8_t *buffer = (uint8_t *)malloc(length); + if (buffer) + { + status = AnalogRead(numChans, channels, buffer); + if (!status) + { + uint32_t offset = 0, remaining = 8; + uint32_t resolution = buffer[offset++]; + double scale = ((double)this->AiRefSet / 1000000.0) / (1 << resolution); + + for (int32_t i = 0; i < numChans; i++) + { + values[i] = scale * UnpackData(resolution, &remaining, buffer, &offset); + } + } + free(buffer); + } + return status; +} + +int32_t LinxClient::AnalogWrite(uint8_t numChans, uint8_t* channels, uint8_t* values) +{ + int32_t status = VerifyChannels(IID_LinxAoChannel, numChans, channels); + if (!status) + { + // Command parameters + // uint8 : number of channels + // uint8 : analog output resolution + // uint8[numChans] : channels + // uint8[] : analog values, bit-packed with resolution bits per channel + // Response parameters + // None + uint32_t offset, readLen = 0, length = (numChans * this->AoResolution + 7) / 8; + uint8_t *buffer = (uint8_t *)malloc(12 + numChans); + if (buffer) + { + status = PrepareHeader(buffer, LCMD_ANALOG_WRITE, length, 0, &offset); + if (!status) + { + buffer[offset + 0] = numChans; + buffer[offset + 1] = this->AoResolution; + memcpy(buffer + offset + 2, channels, numChans); + status = WriteAndRead(buffer, 12 + numChans, &offset, 2 + numChans, values, length, &readLen, getMsTicks(), m_Timeout); + } + free(buffer); + } + } + return status; +} + +int32_t LinxClient::AnalogWriteValues(uint8_t numChans, uint8_t* channels, double* values) +{ + int32_t status = LERR_MEMORY; + uint32_t length = ((numChans * this->AoResolution + 7) / 8) + 1; + uint8_t *buffer = (uint8_t *)malloc(length); + if (buffer) + { + uint32_t aoVal, offset = 0, remaining = 8; + double scale = (1 << this->AoResolution) / ((double)this->AoRefSet / 1000000.0); + + for (int32_t i = 0; i < numChans; i++) + { + aoVal = (uint32_t)(values[i] * scale); + offset = PackData(aoVal, this->AoResolution, &remaining, buffer, offset); + } + status = AnalogWrite(numChans, channels, buffer); + free(buffer); + } + return status; +} + +// DIGITAL +int32_t LinxClient::DigitalSetState(uint8_t numChans, uint8_t* channels, uint8_t* states) +{ + int32_t status = VerifyChannels(IID_LinxDioChannel, numChans, channels); + if (!status) + { + // Command parameters + // uint8 : num channels + // uint8[numChans] : channels + // uint8[numChans] : states + // Response parameters + // None + uint32_t offset, length = 1 + 2 * numChans; + uint8_t *buffer = (uint8_t *)malloc(10 + length); + if (buffer) + { + status = PrepareHeader(buffer, LCMD_SET_PIN_MODE, length, 0, &offset); + if (!status) + { + buffer[offset] = numChans; + memcpy(buffer + offset + 1, channels, numChans); + memcpy(buffer + offset + 1 + numChans, states, numChans); + + // send data and read response + status = WriteAndRead(buffer, 10 + length, &offset, length, &length); + } + free(buffer); + } + } + return status; +} + +int32_t LinxClient::DigitalWrite(uint8_t numChans, uint8_t* channels, uint8_t* values) +{ + int32_t status = VerifyChannels(IID_LinxDioChannel, numChans, channels); + if (!status) + { + // Command parameters + // uint8 : num channels + // uint8[numChans] : channels + // uint8[numChans + 7 / 8] : packed values + // Response parameters + // None + uint32_t offset, length = 1 + numChans + ((numChans + 7) >> 3); + uint8_t *buffer = (uint8_t *)malloc(10 + length); + if (buffer) + { + status = PrepareHeader(buffer, LCMD_DIGITAL_WRITE, length, 0, &offset); + if (!status) + { + buffer[offset] = numChans; + memcpy(buffer + offset + 1, channels, numChans); + memcpy(buffer + offset + 1 + numChans, values, (numChans + 7) >> 3); + + // send data and read response + status = WriteAndRead(buffer, 10 + length, &offset, length, &length); + } + free(buffer); + } + } + return status; +} + +int32_t LinxClient::DigitalWriteNoPacking(uint8_t numChans, uint8_t* channels, uint8_t* values) +{ + int32_t status = VerifyChannels(IID_LinxDioChannel, numChans, channels); + if (!status) + { + // Command parameters + // uint8 : num channels + // uint8[numChans] : channels + // uint8[numChans] : values + // Response parameters + // None + uint32_t offset, length = 1 + numChans + ((numChans + 7) >> 3); + uint8_t *buffer = (uint8_t *)malloc(10 + length); + if (buffer) + { + status = PrepareHeader(buffer, LCMD_DIGITAL_WRITE, length, 0, &offset); + if (!status) + { + uint8_t bitOffset = 0; + uint8_t byteOffset = 0; + uint8_t diVal = 0; + + buffer[offset] = numChans; + memcpy(buffer + offset + 1, channels, numChans); + + for (int32_t i = 0; i < numChans; i++) + { + if (bitOffset == 8) + { + buffer[offset + 1 + numChans + byteOffset] = diVal; + bitOffset = 0; + byteOffset++; + diVal = 0; + } + diVal |= (values[i] ? 0x1 : 0x0) << bitOffset++; + } + buffer[offset + 1 + numChans + byteOffset] = diVal; + // send data and read response + status = WriteAndRead(buffer, 10 + length, &offset, length, &length); + } + free(buffer); + } + } + return status; +} + +int32_t LinxClient::DigitalRead(uint8_t numChans, uint8_t* channels, uint8_t* values) +{ + int32_t status = VerifyChannels(IID_LinxDioChannel, numChans, channels); + if (!status) + { + // Command parameters + // uint8 : num channels + // uint8[numChans] : channels + // Response parameters + // uint8[numChans + 7 / 8] : packed values + uint32_t offset, length = 1 + numChans; + uint8_t *buffer = (uint8_t *)malloc(10 + length); + if (buffer) + { + status = PrepareHeader(buffer, LCMD_DIGITAL_READ, length, (numChans + 7) / 8, &offset); + if (!status) + { + buffer[offset] = numChans; + memcpy(buffer + offset + 1, channels, numChans); + + // send data and read response + status = WriteAndRead(buffer, 10 + length, &offset, length, &length); + if (!status && length >= (uint32_t)((numChans + 7) >> 3)) + { + memcpy(values, buffer + offset, ((numChans + 7) >> 3)); + } + } + free(buffer); + } + } + return status; +} + +int32_t LinxClient::DigitalReadNoPacking(uint8_t numChans, uint8_t* channels, uint8_t* values) +{ + int32_t status = VerifyChannels(IID_LinxDioChannel, numChans, channels); + if (!status) + { + // Command parameters + // uint8 : num channels + // uint8[numChans] : channels + // Response parameters + // uint8[numChans] : values + uint32_t offset, length = 1 + numChans; + uint8_t *buffer = (uint8_t *)malloc(10 + length); + if (buffer) + { + status = PrepareHeader(buffer, LCMD_DIGITAL_READ, length, (numChans + 7) / 8, &offset); + if (!status) + { + buffer[offset] = numChans; + memcpy(buffer + offset + 1, channels, numChans); + + // send data and read response + status = WriteAndRead(buffer, 10 + length, &offset, length, &length); + if (!status && length >= (uint32_t)((numChans + 7) >> 3)) + { + for (int32_t i = 0; i < numChans; i++) + { + values[i] = buffer[offset + i / 8] << (7 - i % 8); + } + } + } + free(buffer); + } + } + return status; +} + +int32_t LinxClient::DigitalWriteSquareWave(uint8_t channel, uint32_t freq, uint32_t duration) +{ + int32_t status = VerifyChannels(IID_LinxDioChannel, 1, &channel); + if (!status) + { + // Command parameters + // uint8 : channel + // uint32 : frequency + // uint32 : duration + // Response parameters + // None + uint32_t offset, length = 9; + uint8_t buffer[20]; + status = PrepareHeader(buffer, LCMD_SET_SQUARE_WAVE, length, 0, &offset); + if (!status) + { + length = WriteU8ToBuff(buffer, offset, channel); + length = WriteU32ToBuff(buffer, length, freq); + length = WriteU32ToBuff(buffer, length, duration); + + // send data and read response + status = WriteAndRead(buffer, 20, &offset, length, &length); + } + } + return status; +} + +int32_t LinxClient::DigitalReadPulseWidth(uint8_t stimChan, uint8_t stimType, uint8_t respChan, uint8_t respType, uint32_t timeout, uint32_t* width) +{ + uint8_t channels[2] = {stimChan, respChan}; + int32_t status = VerifyChannels(IID_LinxDioChannel, 2, channels); + if (!status) + { + // Command parameters + // uint8 : response channel + // uint8 : stimulation channel + // uint8 : stimulation type + // uint8 : response type + // uint32 : timeout + // Response parameters + // uint32 : pulse width + uint32_t offset, length = 8; + uint8_t buffer[20]; + status = PrepareHeader(buffer, LCMD_SET_SQUARE_WAVE, length, 4, &offset); + if (!status) + { + length = WriteU8ToBuff(buffer, offset, respChan); + length = WriteU8ToBuff(buffer, length, stimChan); + length = WriteU8ToBuff(buffer, length, stimType); + length = WriteU8ToBuff(buffer, length, respType); + length = WriteU32ToBuff(buffer, length, timeout); + + // send data and read response + status = WriteAndRead(buffer, 20, &offset, length, &length); + if (!status && length >= sizeof(uint32_t)) + { + ReadU32FromBuff(buffer, offset, width); + } + } + } + return status; +} + +//PWM +int32_t LinxClient::PwmSetDutyCycle(uint8_t numChans, uint8_t* channels, uint8_t* values) +{ + int32_t status = VerifyChannels(IID_LinxPwmChannel, numChans, channels); + if (!status) + { + return L_FUNCTION_NOT_SUPPORTED; + } + return status; +} + +//SPI +int32_t LinxClient::SpiOpenMaster(uint8_t channel) +{ + int32_t status = VerifyChannels(IID_LinxSpiChannel, 1, &channel); + if (!status) + { + return L_FUNCTION_NOT_SUPPORTED; + } + return status; +} + +int32_t LinxClient::SpiSetBitOrder(uint8_t channel, uint8_t bitOrder) +{ + int32_t status = VerifyChannels(IID_LinxSpiChannel, 1, &channel); + if (!status) + { + return L_FUNCTION_NOT_SUPPORTED; + } + return status; +} + +int32_t LinxClient::SpiSetMode(uint8_t channel, uint8_t mode) +{ + int32_t status = VerifyChannels(IID_LinxSpiChannel, 1, &channel); + if (!status) + { + return L_FUNCTION_NOT_SUPPORTED; + } + return status; +} + +int32_t LinxClient::SpiSetSpeed(uint8_t channel, uint32_t speed, uint32_t* actualSpeed) +{ + int32_t status = VerifyChannels(IID_LinxSpiChannel, 1, &channel); + if (!status) + { + return L_FUNCTION_NOT_SUPPORTED; + } + return status; +} + +int32_t LinxClient::SpiWriteRead(uint8_t channel, uint8_t frameSize, uint8_t numFrames, uint8_t csChan, uint8_t csLL, uint8_t* sendBuffer, uint8_t* recBuffer) +{ + int32_t status = VerifyChannels(IID_LinxSpiChannel, 1, &channel); + if (!status) + { + return L_FUNCTION_NOT_SUPPORTED; + } + return status; +} + +int32_t LinxClient::SpiCloseMaster(uint8_t channel) +{ + int32_t status = VerifyChannels(IID_LinxSpiChannel, 1, &channel); + if (!status) + { + return L_FUNCTION_NOT_SUPPORTED; + } + return status; +} + +//I2C +int32_t LinxClient::I2cOpenMaster(uint8_t channel) +{ + int32_t status = VerifyChannels(IID_LinxI2cChannel, 1, &channel); + if (!status) + { + return L_FUNCTION_NOT_SUPPORTED; + } + return status; +} + +int32_t LinxClient::I2cSetSpeed(uint8_t channel, uint32_t speed, uint32_t* actualSpeed) +{ + int32_t status = VerifyChannels(IID_LinxI2cChannel, 1, &channel); + if (!status) + { + return L_FUNCTION_NOT_SUPPORTED; + } + return status; +} + +int32_t LinxClient::I2cWrite(uint8_t channel, uint8_t slaveAddress, uint8_t eofConfig, uint8_t numBytes, uint8_t* sendBuffer) +{ + int32_t status = VerifyChannels(IID_LinxI2cChannel, 1, &channel); + if (!status) + { + return L_FUNCTION_NOT_SUPPORTED; + } + return status; +} + +int32_t LinxClient::I2cRead(uint8_t channel, uint8_t slaveAddress, uint8_t eofConfig, uint8_t numBytes, uint32_t timeout, uint8_t* recBuffer) +{ + int32_t status = VerifyChannels(IID_LinxI2cChannel, 1, &channel); + if (!status) + { + return L_FUNCTION_NOT_SUPPORTED; + } + return status; +} + +int32_t LinxClient::I2cClose(uint8_t channel) +{ + int32_t status = VerifyChannels(IID_LinxI2cChannel, 1, &channel); + if (!status) + { + return L_FUNCTION_NOT_SUPPORTED; + } + return status; +} + +//UART +int32_t LinxClient::UartOpen(uint8_t channel, LinxUartChannel **channelObj) +{ + int32_t status = VerifyChannels(IID_LinxUartChannel, 1, &channel); + if (!status) + { + // Command parameters + // uint8 : channel + // uint32 : baudrate + // Response parameters + // uint32 : actual baudrate + uint8_t buffer[20]; + uint32_t offset, length = 1 + sizeof(uint32_t); + + status = PrepareHeader(buffer, LCMD_UART_OPEN, length, sizeof(uint32_t), &offset); + if (!status) + { + buffer[offset] = channel; + WriteU32ToBuff(buffer, offset, 9600); + + // send data and read response + status = WriteAndRead(buffer, 20, &offset, length, &length); + if (!status && length >= sizeof(uint32_t)) + { + + } + } + } + return status; +} + +int32_t LinxClient::UartOpen(const unsigned char *deviceName, uint8_t *channel, LinxUartChannel **channelObj) +{ + // Command parameters + // uint8[] : device name + // Response parameters + // uint8 : assigned channel + int32_t status = LERR_MEMORY; + uint32_t offset, length = (uint32_t)strlen((const char*)deviceName); + uint8_t *buffer = (uint8_t *)malloc(10 + length); + if (buffer) + { + status = PrepareHeader(buffer, LCMD_UART_OPEN_BY_NAME, length, 1, &offset); + if (!status) + { + memcpy(buffer + offset, deviceName, length); + // send data and read response + status = WriteAndRead(buffer, 10 + length, &offset, length, &length); + if (!status && length >= 1) + { + LinxUartChannel *channelObj = new LinxClientUartChannel(m_Debug, this, buffer[offset], m_ProtocolVersion, deviceName); + RegisterChannel(IID_LinxUartChannel, buffer[offset], channelObj); + *channel = buffer[offset]; + } + } + } + return status; +} + +//Servo +int32_t LinxClient::ServoOpen(uint8_t numChans, uint8_t* channels) +{ + int32_t status = VerifyChannels(IID_LinxServoChannel, numChans, channels); + if (!status) + { + return L_FUNCTION_NOT_SUPPORTED; + } + return status; +} + +int32_t LinxClient::ServoSetPulseWidth(uint8_t numChans, uint8_t* channels, uint16_t* pulseWidths) +{ + int32_t status = VerifyChannels(IID_LinxServoChannel, numChans, channels); + if (!status) + { + return L_FUNCTION_NOT_SUPPORTED; + } + return status; +} + +int32_t LinxClient::ServoClose(uint8_t numChans, uint8_t* channels) +{ + int32_t status = VerifyChannels(IID_LinxServoChannel, numChans, channels); + if (!status) + { + return L_FUNCTION_NOT_SUPPORTED; + } + return status; +} + +// General +void LinxClient::NonVolatileWrite(int32_t address, uint8_t data) +{ + return; +} + +uint8_t LinxClient::NonVolatileRead(int32_t address) +{ + return L_FUNCTION_NOT_SUPPORTED; +} + +/**************************************************************************************** +** Protected Functions +****************************************************************************************/ +int32_t LinxClient::Initialize(LinxCommChannel *channel, int32_t timeout) +{ + uint8_t buffer[1024]; + uint32_t dataRead, offset; + + m_Timeout = timeout; + if (m_CommChannel) + m_CommChannel->Release(); + m_CommChannel = channel; + if (!channel) + return L_DISCONNECT; + + m_PacketNum = (uint32_t)((double)rand() / RAND_MAX * 0xFFFF); + + int32_t status = GetSyncCommand(true); + if (!status) + { + status = GetU8ArrParameter(LCMD_GET_API_VER, buffer, 1024, m_ProtocolVersion, &offset, &dataRead); + } + if (!status) + { + if (dataRead >= 3) + { + LinxApiMajor = buffer[offset++]; + LinxApiMinor = buffer[offset++]; + LinxApiSubminor = buffer[offset++]; + } + status = GetU8ArrParameter(LCMD_GET_DEV_ID, buffer, 1024, m_ProtocolVersion, &offset, &dataRead); + } + if (!status) + { + if (dataRead >= 2) + { + DeviceFamily = buffer[offset++]; + DeviceId = buffer[offset++]; + } + status = GetU8ArrParameter(LCMD_GET_DEV_NAME, buffer, 1024, m_ProtocolVersion, &offset, &dataRead); + } + if (!status) + { + if (dataRead > 0) + { + if (m_DeviceName == m_Unknown) + m_DeviceName = (unsigned char*)malloc(dataRead + 1); + else + m_DeviceName = (unsigned char*)realloc(m_DeviceName, dataRead + 1); + + if (m_DeviceName) + { + memcpy(m_DeviceName, buffer + offset, dataRead); + m_DeviceName[dataRead] = 0; + } + } + } + + if (!status) + { + status = GetU8ArrParameter(LCMD_GET_MAX_PACK_SIZE, buffer, 1024, m_ProtocolVersion, &offset, &dataRead); + if (!status && dataRead >= 4) + { + ReadU32FromBuff(buffer, offset, &m_ListenerBufferSize); + } + //ignore error + + status = GetU8ArrParameter(LCMD_GET_AI_CHANS, buffer, 1024, m_ProtocolVersion, &offset, &dataRead); + if (!status) + CopyArrayToSet(IID_LinxAiChannel, buffer, dataRead); + + status = GetU8ArrParameter(LCMD_GET_AO_CHANS, buffer, 1024, m_ProtocolVersion, &offset, &dataRead); + if (!status) + CopyArrayToSet(IID_LinxAoChannel, buffer, dataRead); + + status = GetU8ArrParameter(LCMD_GET_DIO_CHANS, buffer, 1024, m_ProtocolVersion, &offset, &dataRead); + if (!status) + CopyArrayToSet(IID_LinxDioChannel, buffer, dataRead); + + status = GetU8ArrParameter(LCMD_GET_PWM_CHANS, buffer, 1024, m_ProtocolVersion, &offset, &dataRead); + if (!status) + CopyArrayToSet(IID_LinxPwmChannel, buffer, dataRead); + + status = GetU8ArrParameter(LCMD_GET_QE_CHANS, buffer, 1024, m_ProtocolVersion, &offset, &dataRead); + if (!status) + CopyArrayToSet(IID_LinxQeChannel, buffer, dataRead); + + status = GetU8ArrParameter(LCMD_GET_UART_CHANS, buffer, 1024, m_ProtocolVersion, &offset, &dataRead); + if (!status) + CopyArrayToSet(IID_LinxUartChannel, buffer, dataRead); + + status = GetU8ArrParameter(LCMD_GET_I2C_CHANS, buffer, 1024, m_ProtocolVersion, &offset, &dataRead); + if (!status) + CopyArrayToSet(IID_LinxI2cChannel, buffer, dataRead); + + status = GetU8ArrParameter(LCMD_GET_SPI_CHANS, buffer, 1024, m_ProtocolVersion, &offset, &dataRead); + if (!status) + CopyArrayToSet(IID_LinxSpiChannel, buffer, dataRead); + + status = GetU8ArrParameter(LCMD_GET_CAN_CHANS, buffer, 1024, m_ProtocolVersion, &offset, &dataRead); + if (!status) + CopyArrayToSet(IID_LinxCanChannel, buffer, dataRead); + + status = GetU8ArrParameter(LCMD_GET_SERVO_CHANS, buffer, 1024, m_ProtocolVersion, &offset, &dataRead); + if (!status) + CopyArrayToSet(IID_LinxServoChannel, buffer, dataRead); + } + //----Peripherals---- + // Uart + // UartMaxBaud = 0; + if (!status) + { + status = GetU32Parameter(LCMD_GET_UART_MAX_BAUD, &UartMaxBaud); + } + + // AI + // uint8_t AiResolution; + // uint32_t AiRefDefault; + // uint32_t AiRefSet; + if (!status) + { + status = GetU32Parameter(LCMD_GET_AI_REF_VOLT, &AiRefSet); + } + if (!status) + { + status = GetU8Parameter(LCMD_GET_AI_RESOLUTION, &AiResolution); + } + // AO + // AoResolution; + // AoRefDefault; + // AoRefSet; + if (!status) + { + status = GetU8Parameter(LCMD_GET_AO_RESOLUTION, &AoResolution); + } +/* + // User Configured Values + userId = 0; + + uint32_t ethernetIp; + uint16_t ethernetPort; + + uint32_t WifiIp; + uint16_t WifiPort; + uint8_t WifiSsidSize; + char WifiSsid[32]; + uint8_t WifiSecurity; + uint8_t WifiPwSize; + char WifiPw[64]; +*/ + if (status && m_CommChannel) + { + m_CommChannel->Release(); + m_CommChannel = NULL; + } + return status; +} + +/**************************************************************************************** +** Private Functions +****************************************************************************************/ +uint16_t LinxClient::GetNextPacketNum(void) +{ + return m_PacketNum++; +} + +/* + packet format + uint8_t : header marker, 0xFF or 0xFE + if header marker == 0xFF + uint8_t[1] : packet length + if header marker == 0xFE + uint8_t[3] : MSB first packet length + uint16_t : packet number + uint16_t : command + uint8_t[n - header - 1] : data + uint8_t : checksum +*/ +int32_t LinxClient::PrepareHeader(uint8_t* buffer, uint16_t command, uint32_t dataLength, uint32_t expLength, uint32_t *headerLength) +{ + uint32_t overhead = 7; + if (!m_ProtocolVersion) + { + if (dataLength > 0xF8 || (dataLength + overhead) >= (uint32_t)m_ListenerBufferSize) + return LERR_MSG_TO_LONG; + } + else + { + if (dataLength > 248 || expLength > 249) + overhead = 9; + if (dataLength > 0xFFFFF6 || (dataLength + overhead) >= (uint32_t)m_ListenerBufferSize) + return LERR_MSG_TO_LONG; + } + + if (overhead == 7) + { + *headerLength = WriteU16ToBuff(buffer, 0, 0xFF00 + (uint16_t)dataLength + overhead); + } + else + { + *headerLength = WriteU32ToBuff(buffer, 0, 0xFE000000 + dataLength + overhead); + } + *headerLength += WriteU16ToBuff(buffer, *headerLength, GetNextPacketNum()); + *headerLength += WriteU16ToBuff(buffer, *headerLength, command); + return L_OK; +} + +int32_t LinxClient::WriteAndRead(uint8_t *buffer, uint32_t bufLength, uint32_t *headerOffset, uint32_t dataLength, uint32_t *dataRead) +{ + return WriteAndRead(buffer, bufLength, headerOffset, dataLength, NULL, 0, dataRead, getMsTicks(), m_Timeout); +} + +int32_t LinxClient::WriteAndRead(uint8_t *header, uint32_t headerLength, uint32_t *headerOffset, uint32_t headerData, uint8_t *dataBuffer, uint32_t dataLength, uint32_t *dataRead, uint32_t start, int32_t timeout) +{ + int32_t status; + uint8_t checksum = ComputeChecksum(0, header, *headerOffset + headerData); + uint16_t packetNum = GetU16FromBuff(header, *headerOffset - 4); + + if (!dataLength) + { + header[*headerOffset + headerData] = checksum; + status = m_CommChannel->Write(header, *headerOffset + headerData + 1, start, timeout); + } + else + { + checksum = ComputeChecksum(checksum, dataBuffer, dataLength); + status = m_CommChannel->Write(header, *headerOffset, start, timeout); + if (!status) + { + status = m_CommChannel->Write(dataBuffer, dataLength, start, timeout); + if (!status) + { + status = m_CommChannel->Write(&checksum, 1, start, timeout); + } + } + } + if (!status) + { + status = m_CommChannel->Read(header, 5, start, timeout, dataRead); + if (!status && *dataRead == 5) + { + uint32_t extraData = 0; + if ((header[0] & 0xFE) != 0xFE) + { + return LERR_INVALID_FRAME; + } + + if (header[0] == 0xFF) + { + *headerOffset = 2; + dataLength = header[1]; + } + else + { + *headerOffset = 4; + dataLength = GetU32FromBuff(header, 0) & 0x00FFFFFF; + extraData = 2; + } + + if (!dataBuffer || !(*dataRead)) + { + extraData = dataLength - 5; + } + + if (extraData) + { + status = m_CommChannel->Read(header + 5, extraData, start, timeout, dataRead); + if (status || *dataRead != extraData) + { + return status ? status : LERR_IO; + } + } + if (packetNum != GetU16FromBuff(header, *headerOffset)) + { + *headerOffset += 3; + return LERR_PACKET_NUM; + } + *headerOffset += 2; + + status = GetU8FromBuff(header, *headerOffset); + *headerOffset += 1; + if (status) + { + return status; + } + + if (!dataBuffer || !(*dataRead)) + { + checksum = ComputeChecksum(0, header, extraData + 4); + if (checksum != header[extraData + 4]) + { + return LERR_CHECKSUM; + } + *dataRead = dataLength - (*headerOffset + 1); + } + else + { + checksum = ComputeChecksum(0, header, extraData + 5); + dataLength -= *headerOffset + 1; + status = m_CommChannel->Read(dataBuffer, dataLength, start, timeout, dataRead); + if (!status && *dataRead == dataLength) + { + checksum = ComputeChecksum(checksum, dataBuffer, *dataRead); + status = m_CommChannel->Read(header + *headerOffset, 1, start, timeout, dataRead); + if (!status && *dataRead == 1) + { + if (GetU8FromBuff(header, *headerOffset) != checksum) + return LERR_CHECKSUM; + } + *dataRead = dataLength; + } + } + } + } + return status; +} + +int32_t LinxClient::GetSyncCommand(bool negotiate) +{ + uint8_t buffer[20]; + uint32_t headerLength; + int32_t status = PrepareHeader(buffer, LCMD_SYNC, negotiate, negotiate, &headerLength); + if (!status) + { + uint32_t dataRead = 0; + buffer[headerLength] = PROTOCOL_VERSION; + // send data and read response + status = WriteAndRead(buffer, 20, &headerLength, 1, &dataRead); + if (!status && dataRead >= sizeof(uint8_t)) + m_ProtocolVersion = buffer[headerLength]; + } + return status; +} + +int32_t LinxClient::GetU8Parameter(uint16_t command, uint8_t *val) +{ + uint8_t buffer[20]; + uint32_t headerLength; + int32_t status = PrepareHeader(buffer, command, 0, 1, &headerLength); + if (!status) + { + uint32_t dataRead; + // send data and read response + status = WriteAndRead(buffer, 20, &headerLength, 0, &dataRead); + if (!status && dataRead >= sizeof(uint8_t)) + { + ReadU8FromBuff(buffer, headerLength, val); + } + } + return status; +} + +int32_t LinxClient::GetU16Parameter(uint16_t command, uint16_t *val) +{ + uint8_t buffer[20]; + uint32_t headerLength; + int32_t status = PrepareHeader(buffer, command, 0, 2, &headerLength); + if (!status) + { + uint32_t dataRead; + // send data and read response + status = WriteAndRead(buffer, 20, &headerLength, 0, &dataRead); + if (!status && dataRead >= sizeof(uint16_t)) + { + ReadU16FromBuff(buffer, headerLength, val); + } + } + return status; +} + +int32_t LinxClient::GetU32Parameter(uint16_t command, uint32_t *val) +{ + uint8_t buffer[20]; + uint32_t headerLength; + int32_t status = PrepareHeader(buffer, command, 0, 4, &headerLength); + if (!status) + { + uint32_t dataRead; + // send data and read response + status = WriteAndRead(buffer, 20, &headerLength, 0, &dataRead); + if (!status && dataRead >= sizeof(uint32_t)) + { + ReadU32FromBuff(buffer, headerLength, val); + } + } + return status; +} + +int32_t LinxClient::GetU8ArrParameter(uint16_t command, uint8_t *buffer, uint32_t bufLength, uint8_t param, uint32_t *headerLength, uint32_t *dataRead) +{ + int32_t status = PrepareHeader(buffer, command, param ? 1 : 0, bufLength - 7, headerLength); + if (!status) + { + buffer[*headerLength] = param; + // send data and read response + status = WriteAndRead(buffer, bufLength, headerLength, param ? 1 : 0, dataRead); + } + return status; +} + +void LinxClient::CopyArrayToSet(int32_t type, uint8_t *arr, uint32_t length, LinxChannel *chan) +{ + ClearChannels(type); + for (uint32_t i = 0; i < length; i++) + { + RegisterChannel(type, arr[i], chan); + } +} + +/**************************************************************************************** +** Constructors +****************************************************************************************/ +LinxClientUartChannel::LinxClientUartChannel(LinxFmtChannel *debug, LinxClient *client, uint8_t channel, uint8_t protVersion, const unsigned char *deviceName) : LinxUartChannel(debug, deviceName) +{ + m_Client = client; + m_Client->AddRef(); + m_Channel = channel; + m_ProtocolVersion = protVersion; +} + +LinxClientUartChannel::~LinxClientUartChannel(void) +{ + m_Client->Release(); +} + +int32_t LinxClientUartChannel::SetSpeed(uint32_t speed, uint32_t* actualSpeed) +{ + // Command parameters + // uint8 : channel + // uint32 : baudrate + // Response parameters + // uint32 : actual baudrate + uint8_t buffer[20]; + uint32_t offset, length = 1 + sizeof(uint32_t); + int32_t status = m_Client->PrepareHeader(buffer, LCMD_UART_SET_BAUD, length, sizeof(uint32_t), &offset); + if (!status) + { + buffer[offset] = m_Channel; + WriteU32ToBuff(buffer, offset, speed); + + // send data and read response + status = m_Client->WriteAndRead(buffer, 20, &offset, length, &length); + if (!status && length >= sizeof(uint32_t) && actualSpeed) + { + *actualSpeed = GetU32FromBuff(buffer, offset); + } + } + return status; +} + +int32_t LinxClientUartChannel::SetParameters(uint8_t dataBits, uint8_t stopBits, LinxUartParity parity) +{ + // Command parameters + // uint8 : channel + // uint8 : data bits + // uint8 : stop bits + // uint8 : parity + // Response parameters + // None + uint8_t buffer[20]; + uint32_t offset, length = 4; + int32_t status = m_Client->PrepareHeader(buffer, LCMD_UART_SET_ATTRIBUTE, length, 0, &offset); + if (!status) + { + buffer[offset + 0] = m_Channel; + buffer[offset + 1] = dataBits; + buffer[offset + 2] = stopBits; + buffer[offset + 3] = parity; + + // send data and read response + status = m_Client->WriteAndRead(buffer, 20, &offset, length, &length); + } + return status; +} + +int32_t LinxClientUartChannel::Read(uint8_t* dataBuffer, uint32_t numBytes, uint32_t start, int32_t timeout, uint32_t* numBytesRead) +{ + int32_t status; + uint8_t header[20]; + uint32_t offset = 0, length = 1; + if (!dataBuffer || !numBytes) + { + // Command parameters + // uint8 : channel + // Response parameters + // uint8 : available bytes + // or + // uint32 : available bytes + status = m_Client->PrepareHeader(header, LCMD_UART_GET_BYTES, length, sizeof(uint32_t), &offset); + if (!status) + { + header[offset] = m_Channel; + + // send data and read response + status = m_Client->WriteAndRead(header, 20, &offset, length, NULL, 0, &numBytes, start, timeout); + if (!status) + { + if (numBytes >= sizeof(uint32_t)) + { + *numBytesRead = GetU32FromBuff(header, offset); + } + else if (numBytes >= sizeof(uint8_t)) + { + *numBytesRead = header[offset]; + } + else + { + *numBytesRead = 0; + } + } + + } + } + else + { + // Command parameters + // Either: + // uint8 : channel + // uint8 : bytes to read + // or + // uint8 : 0 + // uint8 : channel + // int32 : timeout + // uint32 : bytes to read + // end + // Response parameters + // uint8[] : read bytes + if (m_ProtocolVersion && (numBytes > 249 || timeout >= 0)) + { + length = 10; + } + else + { + length = 2; + } + status = m_Client->PrepareHeader(header, LCMD_UART_READ, length, numBytes, &offset); + if (!status) + { + if (length == 10) + { + WriteU8ToBuff(header, offset + 0, 0); + WriteU8ToBuff(header, offset + 1, m_Channel); + WriteU32ToBuff(header, offset + 2, timeout); + WriteU32ToBuff(header, offset + 6, numBytes); + } + else + { + WriteU8ToBuff(header, offset + 0, m_Channel); + WriteU8ToBuff(header, offset + 1, numBytes); + } + *numBytesRead = numBytes; + + // send data and read response + status = m_Client->WriteAndRead(header, 20, &offset, length, dataBuffer, 0, numBytesRead, start, timeout); + } + } + return status; +} + +int32_t LinxClientUartChannel::Write(const uint8_t* dataBuffer, uint32_t numBytes, uint32_t start, int32_t timeout) +{ + // Command parameters + // Either: + // uint8 : channel + // or + // uint8 : 0 + // uint8 : channel + // int32 : timeout + // int32 : number of bytes + // end + // uint8[] : bytes to write + // Response parameters + // None + int32_t status; + uint8_t header[20]; + uint32_t offset, length, dataRead = 0; + if (m_ProtocolVersion && (numBytes > 248 || timeout >= 0)) + { + length = 10; + } + else + { + length = 2; + } + status = m_Client->PrepareHeader(header, LCMD_UART_WRITE, length, sizeof(uint32_t), &offset); + if (!status) + { + if (length == 10) + { + WriteU8ToBuff(header, offset + 0, 0); + WriteU8ToBuff(header, offset + 1, m_Channel); + WriteU32ToBuff(header, offset + 2, timeout); + WriteU32ToBuff(header, offset + 6, numBytes); + } + else + { + WriteU8ToBuff(header, offset + 0, m_Channel); + WriteU8ToBuff(header, offset + 1, numBytes); + } + + // send data and read response + status = m_Client->WriteAndRead(header, 20, &offset, length, (uint8_t*)dataBuffer, numBytes, &dataRead, start, timeout); + } + return status; +} + +int32_t LinxClientUartChannel::Close(void) +{ + // Command parameters + // uint8 : channel + // Response parameters + // None + uint8_t buffer[20]; + uint32_t offset, length = 1; + int32_t status = m_Client->PrepareHeader(buffer, LCMD_UART_CLOSE, length, sizeof(uint32_t), &offset); + if (!status) + { + buffer[offset] = m_Channel; + + // send data and read response + status = m_Client->WriteAndRead(buffer, 20, &offset, length, &length); + } + return status; +} diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/client/LinxClient.h b/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/client/LinxClient.h new file mode 100644 index 00000000..8b314c9a --- /dev/null +++ b/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/client/LinxClient.h @@ -0,0 +1,167 @@ +/**************************************************************************************** +** LINX header for generic LINX Client interface. +** +** For more information see: www.labviewmakerhub.com/linx +** For support visit the forums at: www.labviewmakerhub.com/forums/linx +** +** Written By Rolf Kalbermatter +** +** BSD2 License. +****************************************************************************************/ + +#ifndef LINX_CLIENT_H +#define LINX_CLIENT_H + +/**************************************************************************************** +** Defines +****************************************************************************************/ + +/**************************************************************************************** +** Includes +****************************************************************************************/ +#include +#include "LinxDevice.h" + +/**************************************************************************************** +** Typedefs +****************************************************************************************/ + +class LinxClient : public LinxDevice +{ + public: + /**************************************************************************************** + ** Variables + ****************************************************************************************/ + + /**************************************************************************************** + ** Constructors + ****************************************************************************************/ + LinxClient(const unsigned char *uartDevice, uint32_t *baudrate, uint8_t dataBits, uint8_t stopBits, LinxUartParity parity, int32_t timeout); + LinxClient(const unsigned char *netAddress, uint16_t port, int32_t timeout); + virtual ~LinxClient(void); + + /**************************************************************************************** + ** Functions + ****************************************************************************************/ + virtual unsigned char GetDeviceName(unsigned char *buffer, uint8_t length); + int32_t IsInitialized(void); + + //Analog + virtual int32_t AnalogRead(uint8_t numChans, uint8_t* channels, uint8_t* values); + virtual int32_t AnalogReadNoPacking(uint8_t numChans, uint8_t* channels, uint32_t* values); //Values Are ADC Ticks And Not Bit Packed + virtual int32_t AnalogReadValues(uint8_t numChans, uint8_t* channels, double* values); + virtual int32_t AnalogWrite(uint8_t numChans, uint8_t* channels, uint8_t* values); + virtual int32_t AnalogWriteValues(uint8_t numChans, uint8_t* channels, double* values); + + //DIGITAL + virtual int32_t DigitalSetState(uint8_t numChans, uint8_t* channels, uint8_t* values); + virtual int32_t DigitalWrite(uint8_t numChans, uint8_t* channels, uint8_t* values); + virtual int32_t DigitalWriteNoPacking(uint8_t numChans, uint8_t* channels, uint8_t* values); //Values Not Bit Packed + virtual int32_t DigitalRead(uint8_t numChans, uint8_t* channels, uint8_t* values); + virtual int32_t DigitalReadNoPacking(uint8_t numChans, uint8_t* channels, uint8_t* values); //Response Not Bit Packed + virtual int32_t DigitalWriteSquareWave(uint8_t channel, uint32_t freq, uint32_t duration); + virtual int32_t DigitalReadPulseWidth(uint8_t stimChan, uint8_t stimType, uint8_t respChan, uint8_t respType, uint32_t timeout, uint32_t* width); + + //PWM + virtual int32_t PwmSetDutyCycle(uint8_t numChans, uint8_t* channels, uint8_t* values); + + //SPI + virtual int32_t SpiOpenMaster(uint8_t channel); + virtual int32_t SpiSetBitOrder(uint8_t channel, uint8_t bitOrder); + virtual int32_t SpiSetMode(uint8_t channel, uint8_t mode); + virtual int32_t SpiSetSpeed(uint8_t channel, uint32_t speed, uint32_t* actualSpeed); + virtual int32_t SpiWriteRead(uint8_t channel, uint8_t frameSize, uint8_t numFrames, uint8_t csChan, uint8_t csLL, uint8_t* sendBuffer, uint8_t* recBuffer); + virtual int32_t SpiCloseMaster(uint8_t channel); + + //I2C + virtual int32_t I2cOpenMaster(uint8_t channel); + virtual int32_t I2cSetSpeed(uint8_t channel, uint32_t speed, uint32_t* actualSpeed); + virtual int32_t I2cWrite(uint8_t channel, uint8_t slaveAddress, uint8_t eofConfig, uint8_t numBytes, uint8_t* sendBuffer); + virtual int32_t I2cRead(uint8_t channel, uint8_t slaveAddress, uint8_t eofConfig, uint8_t numBytes, uint32_t timeout, uint8_t* recBuffer); + virtual int32_t I2cClose(uint8_t channel); + + //UART + virtual int32_t UartOpen(uint8_t channel, LinxUartChannel **channelObj = NULL); + virtual int32_t UartOpen(const unsigned char *deviceName, uint8_t *channel, LinxUartChannel **channelObj = NULL); + + //Servo + virtual int32_t ServoOpen(uint8_t numChans, uint8_t* chans); + virtual int32_t ServoSetPulseWidth(uint8_t numChans, uint8_t* chans, uint16_t* pulseWidths); + virtual int32_t ServoClose(uint8_t numChans, uint8_t* chans); + + // General + virtual void NonVolatileWrite(int32_t address, uint8_t data); + virtual uint8_t NonVolatileRead(int32_t address); + + int32_t PrepareHeader(uint8_t *buffer, uint16_t command, uint32_t dataLength, uint32_t expLength, uint32_t *headerLength); + int32_t WriteAndRead(uint8_t *buffer, uint32_t buffLength, uint32_t *headerOffset, uint32_t dataLength, uint32_t *dataRead); + int32_t WriteAndRead(uint8_t *header, uint32_t headerLength, uint32_t *headerOffset, uint32_t headerData, uint8_t *dataBuffer, uint32_t dataLength, uint32_t *dataRead, uint32_t start, int32_t timeout); + + protected: + /**************************************************************************************** + ** Variables + ****************************************************************************************/ + + /**************************************************************************************** + ** Functions + ****************************************************************************************/ + virtual int32_t Initialize(LinxCommChannel *channel, int32_t timeout); + + private: + /**************************************************************************************** + ** Variables + ****************************************************************************************/ + unsigned char *m_DeviceName; + LinxCommChannel *m_CommChannel; + + uint32_t m_ListenerBufferSize; + uint16_t m_PacketNum; + uint8_t m_ProtocolVersion; + + int32_t m_Timeout; + + /**************************************************************************************** + ** Functions + ****************************************************************************************/ + uint16_t GetNextPacketNum(void); + void CopyArrayToSet(int32_t type, uint8_t *arr, uint32_t length, LinxChannel *chan = NULL); + + int32_t GetSyncCommand(bool negotiate); + int32_t GetU8Parameter(uint16_t command, uint8_t *val); + int32_t GetU16Parameter(uint16_t command, uint16_t *val); + int32_t GetU32Parameter(uint16_t command, uint32_t *val); + int32_t GetU8ArrParameter(uint16_t command, uint8_t *val, uint32_t buffLength, uint8_t param, uint32_t *headerLength, uint32_t *dataRead); +}; + +class LinxClientUartChannel : public LinxUartChannel +{ + public: + /**************************************************************************************** + ** Constructors + ****************************************************************************************/ + LinxClientUartChannel(LinxFmtChannel *debug, LinxClient *client, uint8_t channel, uint8_t protVersion, const unsigned char *deviceName); + virtual ~LinxClientUartChannel(void); + + /**************************************************************************************** + ** Functions + ****************************************************************************************/ + virtual int32_t SetSpeed(uint32_t speed, uint32_t* actualSpeed); + virtual int32_t SetParameters(uint8_t dataBits, uint8_t stopBits, LinxUartParity parity); + virtual int32_t Read(unsigned char* recBuffer, uint32_t numBytes, uint32_t start, int32_t timeout, uint32_t* numBytesRead); + virtual int32_t Write(const unsigned char* sendBuffer, uint32_t numBytes, uint32_t start, int32_t timeout); + virtual int32_t Close(void); + + protected: + + + private: + /**************************************************************************************** + ** Variables + ****************************************************************************************/ + LinxClient *m_Client; + uint8_t m_Channel; + uint8_t m_ProtocolVersion; + +}; + +#endif //LINX_CLIENT_H \ No newline at end of file diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/Class hierarchy.txt b/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/Class hierarchy.txt new file mode 100644 index 00000000..4fef2fde --- /dev/null +++ b/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/Class hierarchy.txt @@ -0,0 +1,47 @@ +Class Name Declaration Implemented Description + +LinxChannel LinxChannel.h A Generic Channel + LinxAiChannel LinxChannel.h A R Analog Input channel + LinxSysfsAiChannel LinxLinuxChannel.h Y For Linux like systems + LinxWiringAiChannel LinxWiringChannel.h For Arduino + LinxAoChannel LinxChannel.h A R Analog Output channel + LinxSysfsAoChannel LinxLinuxChannel.h Y For Linux like systems + LinxWiringAoChannel LinxWiringChannel.h For Arduino + LinxDioChannel LinxChannel.h A R Digital IO channel + LinxSysfsDioChannel LinxLinuxChannel.h Y For Linux like systems + LinxRaspiDioChannel LinxRaspberryPi.h Y For Raspberry Pi, using direct memory mapped register access + LinxWiringDioChannel LinxWiringChannel.h For Arduino + LinxPwmChannel LinxChannel.h A R Generic Puls Witch Modulation channel + LinxSysfsPwmChannel LinxLinuxChannel.h For Linux like systems + LinxBBBPwmChannel LinxBeagleboneBlack.h For Beaglebone Black, special DTO handling + LinxWiringPwmChannel LinxWiringChannel.h For Arduino + LinxQeChannel LinxChannel.h A R Generic Quadrature Encoder channel + LinxCommChannel LinxChannel.h A Generic communication channel with read and write + LinxUartChannel LinxChannel.h A R Generic serial port channel with baudrate etc. + LinxUnixUartChannel LinxLinuxChannel.h Y For Unix termio based systems + LinxBBBUartChannel LinxBeagleboneBlack.h Y For Beaglebone Black, special DTO handling + LinxWindowsUartChannel LinxWindowsDevice.h For Windows, using Windows COMM API + LinxWiringUartChannel LinxWiringChannel.h For Arduino + LinxUnixTcpChannel LinxLinuxChannel.h For Unix BSD sockets + LinxWindowsTcpChannel LinxWindowsDevice.h For Windows sockets + LinxWiringTcpChannel LinxWiringChannel.h For Arduino TCP connections + LinxFmtChannel LinxChannel.h Y Output channel with formatting, pass through to composited LinxCommChannel or /dev/nul + LinxI2cChannel LinxChannel.h A R Generic I2C channel + LinxSysfsI2cChannel LinxLinuxChannel.h For Linux like systems + LinxBBBI2cChannel LinxBeagleboneBlack.h For Beaglebone Black, special DTO handling + LinxWiringI2cChannel LinxWiringChannel.h For Arduino + LinxSpiChannel LinxChannel.h A R Generic SPI channel + LinxSysfsSpiChannel LinxLinuxChannel.h For Linux like systems + LinxBBBSpiChannel LinxBeagleboneBlack.h For Beaglebone Black, special DTO handling + LinxWiringSpiChannel LinxWiringChannel.h For Arduino + LinxCanChannel LinxChannel.h A R Generic CAN channel + LinxServoChannel LinxChannel.h A R Generic Servo channel + + +LinxDevice LinxDevice.h A Generic Device + LinxLinuxDevice LinxLinuxDevice.h A Linux based devices + LinxBeagleboneBlack LinxBeagleboneBlack.h Y BeagleBone Black + LinxRaspberryPi LinxRaspberryPi.h Y Raspberry Pi + LinxWindowsDevice LinxWindowsDevice.h Y Windows based device + LinxWiringDevice LinxWiringDevice.h Y Arduino based device + \ No newline at end of file diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/LinxBeagleBoneBlack.cpp b/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/LinxBeagleBoneBlack.cpp index 0a853afb..616ffe30 100644 --- a/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/LinxBeagleBoneBlack.cpp +++ b/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/LinxBeagleBoneBlack.cpp @@ -4,7 +4,8 @@ ** For more information see: www.labviewmakerhub.com/linx ** For support visit the forums at: www.labviewmakerhub.com/forums/linx ** -** Written By Sam Kristoff +** Written by Sam Kristoff +** Modifications by Rolf Kalbermatter ** ** BSD2 License. ****************************************************************************************/ @@ -13,301 +14,351 @@ ** Includes ****************************************************************************************/ #include -#include #include #include #include -#include #include #include -#include - -#include "utility/LinxDevice.h" -#include "utility/LinxBeagleBone.h" +#include "LinxDefines.h" +#include +#include +#include "LinxDevice.h" +#include "LinxUtilities.h" #include "LinxBeagleBoneBlack.h" -using namespace std; +//using namespace std; /**************************************************************************************** -** Member Variables +** Channel implementations ****************************************************************************************/ //System -const unsigned char LinxBeagleBoneBlack::m_DeviceName[DEVICE_NAME_LEN] = "BeagleBone Black"; +static const char *m_DeviceName = "BeagleBone Black"; -//AI -const unsigned char LinxBeagleBoneBlack::m_AiChans[NUM_AI_CHANS] = {0, 1, 2, 3, 4, 5, 6}; -const string LinxBeagleBoneBlack::m_AiValuePaths[NUM_AI_CHANS] = {"/sys/bus/iio/devices/iio:device0/in_voltage0_raw", "/sys/bus/iio/devices/iio:device0/in_voltage1_raw", "/sys/bus/iio/devices/iio:device0/in_voltage2_raw", "/sys/bus/iio/devices/iio:device0/in_voltage3_raw", "/sys/bus/iio/devices/iio:device0/in_voltage4_raw", "/sys/bus/iio/devices/iio:device0/in_voltage5_raw", "/sys/bus/iio/devices/iio:device0/in_voltage6_raw"}; -//int LinxBeagleBoneBlack::m_AiHandles[NUM_AI_CHANS]; -const unsigned long LinxBeagleBoneBlack::m_AiRefIntVals[NUM_AI_INT_REFS] = {}; -const int LinxBeagleBoneBlack::m_AiRefCodes[NUM_AI_INT_REFS] = {}; +//-------------------------------------- AI ------------------------------------- +static const unsigned char g_AiChans[NUM_AI_CHANS] = {0, 1, 2, 3, 4, 5, 6}; +static const char *g_AiPaths[NUM_AI_CHANS] = {"/sys/bus/iio/devices/iio:device0/in_voltage0_raw", + "/sys/bus/iio/devices/iio:device0/in_voltage1_raw", + "/sys/bus/iio/devices/iio:device0/in_voltage2_raw", + "/sys/bus/iio/devices/iio:device0/in_voltage3_raw", + "/sys/bus/iio/devices/iio:device0/in_voltage4_raw", + "/sys/bus/iio/devices/iio:device0/in_voltage5_raw", + "/sys/bus/iio/devices/iio:device0/in_voltage6_raw"}; +//static const uint32_t m_AiRefIntVals[NUM_AI_INT_REFS] = {}; +//static const int32_t m_AiRefCodes[NUM_AI_INT_REFS] = {}; -//AO +//-------------------------------------- AO ------------------------------------- //None -//DIGITAL -const unsigned char LinxBeagleBoneBlack::m_DigitalChans[NUM_DIGITAL_CHANS] = { 7, 8, 9, 10, 11, 12, 15, 16, 17, 18, 26, 58, 61, 69, 73, 76}; -const unsigned char LinxBeagleBoneBlack::m_gpioChan[NUM_DIGITAL_CHANS] = {66, 67, 69, 68, 45, 44, 47, 46, 27, 65, 61, 60, 48, 49, 115, 112}; +//-------------------------------------- DIO ------------------------------------ +static const uint8_t g_DigitalChans[NUM_DIGITAL_CHANS] = { 7, 8, 9, 10, 11, 12, 15, 16, 17, 18, 26, 58, 61, 69, 73, 76}; +static const uint8_t g_gpioChan[NUM_DIGITAL_CHANS] = {66, 67, 69, 68, 45, 44, 47, 46, 27, 65, 61, 60, 48, 49, 115, 112}; -//PWM - Default to 7.x Layout, Updated B -unsigned char LinxBeagleBoneBlack::m_PwmChans[NUM_PWM_CHANS] = {13, 19, 60, 62}; -//unsigned char LinxBeagleBoneBlack::m_PwmChips[NUM_PWM_CHANS] = {6, 5, 3, 4}; -//unsigned long m_PwmDefaultPeriod = 500000; -//string LinxBeagleBoneBlack::m_PwmExportPaths = "/sys/class/pwm/export"; -//string LinxBeagleBoneBlack::m_PwmDirPaths[NUM_PWM_CHANS] = {"/sys/class/pwm/pwm6/", "/sys/class/pwm/pwm5/", "/sys/class/pwm/pwm3/", "/sys/class/pwm/pwm4/"}; -//string LinxBeagleBoneBlack::m_PwmDtoNames[NUM_PWM_CHANS] = {"bone_pwm_P8_13", "bone_pwm_P8_19", "bone_pwm_P9_14", "bone_pwm_P9_16"}; +//-------------------------------------- PWM ------------------------------------ +// Default to 7.x Layout, Updated in Constructor if newer +static const uint8_t g_PwmChans[NUM_PWM_CHANS] = {13, 19, 60, 62}; +static string g_PwmDirPaths[NUM_PWM_CHANS] = {"/sys/class/pwm/pwm6", "/sys/class/pwm/pwm5", "/sys/class/pwm/pwm3", "/sys/class/pwm/pwm4"}; +//static const string m_PwmDtoNames[NUM_PWM_CHANS] = {"bone_pwm_P8_13", "bone_pwm_P8_19", "bone_pwm_P9_14", "bone_pwm_P9_16"}; +static const char *g_DutyCycleFileName = "duty_ns"; +static const char *g_PeriodFileName = "period_ns"; +static const char *g_EnableFileName = "run"; -//QE -//None -//SPI -string m_SpiPaths[NUM_SPI_CHANS] = { "/dev/spidev1.1"}; -string m_SpiDtoNames[NUM_SPI_CHANS] = { "BB-SPIDEV0"}; -unsigned char LinxBeagleBoneBlack::m_SpiChans[NUM_SPI_CHANS] = {0}; -unsigned long LinxBeagleBoneBlack::m_SpiSupportedSpeeds[NUM_SPI_SPEEDS] = {7629, 15200, 30500, 61000, 122000, 244000, 488000, 976000, 1953000, 3900000, 7800000, 15600000, 31200000}; -int LinxBeagleBoneBlack::m_SpiSpeedCodes[NUM_SPI_SPEEDS] = {7629, 15200, 30500, 61000, 122000, 244000, 488000, 976000, 1953000, 3900000, 7800000, 15600000, 31200000}; - -//I2C -unsigned char LinxBeagleBoneBlack::m_I2cChans[NUM_I2C_CHANS] = {2}; -unsigned char LinxBeagleBoneBlack::m_I2cRefCount[NUM_I2C_CHANS]; -string m_I2cPaths[NUM_I2C_CHANS] = {"/dev/i2c-1" }; //Out of order numbering is correct for BBB 7.x!! -string m_I2cDtoNames[NUM_I2C_CHANS] = {"BB-I2C2"}; - -//UART -string m_UartDtoNames[NUM_UART_CHANS] = {"BB-UART0", "BB-UART1", "BB-UART4"}; -unsigned char LinxBeagleBoneBlack::m_UartChans[NUM_UART_CHANS] = {0, 1, 4}; -string LinxBeagleBoneBlack::m_UartPaths[NUM_UART_CHANS] = { "/dev/ttyO0", "/dev/ttyO1", "/dev/ttyO4"}; -unsigned long LinxBeagleBoneBlack::m_UartSupportedSpeeds[NUM_UART_SPEEDS] = {0, 50, 75, 110, 134, 150, 200, 300, 600, 1200, 1800, 2400, 4800, 9600, 19200, 38400, 57600, 115200}; -unsigned long LinxBeagleBoneBlack::m_UartSupportedSpeedsCodes[NUM_UART_SPEEDS] = {B0, B50, B75, B110, B134, B150, B200, B300, B600, B1200, B1800, B2400, B4800, B9600, B19200, B38400, B57600, B115200}; - -//SERVO -//None +//------------------------------------- Uart ------------------------------------ +static uint8_t g_UartChans[NUM_UART_CHANS] = {0, 1, 4}; +static const char *g_UartPaths[NUM_UART_CHANS] = { "/dev/ttyO0", "/dev/ttyO1", "/dev/ttyO4"}; +static const char *g_UartDtoNames[NUM_UART_CHANS] = { "BB-UART0", "BB-UART1", "BB-UART4"}; + +LinxBBBUartChannel::LinxBBBUartChannel(LinxFmtChannel *debug, const char *deviceName, const char *dtoName, const char *dtoSlotsPath) : + LinxUnixUartChannel(debug, deviceName) +{ + m_DtoName = dtoName; + m_DtoSlotsPath = dtoSlotsPath; +} + +int32_t LinxBBBUartChannel::SmartOpen(void) +{ + //Load DTO If Needed + if (!fileExists(m_DeviceName) && m_DtoName) + { + if (!LinxBeagleBoneBlack::loadDto(m_DtoSlotsPath, m_DtoName)) + { + LinxUartChannel::m_Debug->Write("UART Fail - Failed To Load Device Tree Overlay "); + LinxUartChannel::m_Debug->Write(m_DtoName); + return LUART_OPEN_FAIL; + } + } + return LinxUnixSocketChannel::SmartOpen(); +} + +//------------------------------------- I2c ------------------------------------- +static const uint8_t g_I2cChans[NUM_I2C_CHANS] = {2}; +static const char *g_I2cPaths[NUM_I2C_CHANS] = {"/dev/i2c-1" }; //Out of order numbering is correct for BBB 7.x!! +static const char *g_I2cDtoNames[NUM_I2C_CHANS] = {"BB-I2C2"}; + +LinxBBBI2cChannel::LinxBBBI2cChannel(LinxFmtChannel *debug, const char *channelName, const char *dtoName, const char *dtoSlotsPath) : LinxSysfsI2cChannel(debug, channelName) +{ + m_DtoName = dtoName; + m_DtoSlotsPath = dtoSlotsPath; +} + +int32_t LinxBBBI2cChannel::Open(void) +{ + //Export Dev Tree Overlay If Device does not exist + if (!fileExists(m_ChannelName) && m_DtoName && m_DtoName[0]) + { + m_Debug->Write("I2C - Loading DTO "); + m_Debug->Writeln(m_DtoName); + if (!LinxBeagleBoneBlack::loadDto(m_DtoSlotsPath, m_DtoName)) + { + m_Debug->Writeln("I2C Fail - Failed To Load I2C DTO"); + return LI2C_OPEN_FAIL; + } + } + return LinxSysfsI2cChannel::Open(); +} + + +//------------------------------------- SPI ------------------------------------- +static const uint8_t g_SpiChans[NUM_SPI_CHANS] = {0}; +static const char *g_SpiPaths[NUM_SPI_CHANS] = { "/dev/spidev1.1"}; +static const char *g_SpiDtoNames[NUM_SPI_CHANS] = { "BB-SPIDEV0"}; +static uint32_t g_SpiSupportedSpeeds[NUM_SPI_SPEEDS] = {7629, 15200, 30500, 61000, 122000, 244000, 488000, 976000, 1953000, 3900000, 7800000, 15600000, 31200000}; +static int32_t g_SpiSpeedCodes[NUM_SPI_SPEEDS] = {7629, 15200, 30500, 61000, 122000, 244000, 488000, 976000, 1953000, 3900000, 7800000, 15600000, 31200000}; +static int32_t g_SpiDefaultSpeed = 3900000; + +LinxBBBSpiChannel::LinxBBBSpiChannel(LinxFmtChannel *debug, const char *channelName, LinxDevice *device, uint32_t speed, const char *dtoName, const char *dtoSlotsPath) : LinxSysfsSpiChannel(debug, channelName, device, speed) +{ + m_DtoName = dtoName; + m_DtoSlotsPath = dtoSlotsPath; + m_NumSpiSpeeds = NUM_SPI_SPEEDS; + m_SpiSupportedSpeeds = g_SpiSupportedSpeeds; + m_SpiSpeedCodes = g_SpiSpeedCodes; +} + +int32_t LinxBBBSpiChannel::Open(void) +{ + //Load SPI DTO if necessary + if (!fileExists(m_ChannelName)) + { + if (!LinxBeagleBoneBlack::loadDto(m_DtoSlotsPath, m_DtoName)) + { + m_Debug->Write("SPI Fail - Failed To Load SPI DTO"); + return LSPI_OPEN_FAIL; + } + } + return LinxSysfsSpiChannel::Open(); +} + +//----------------------------------- Device ------------------------------------ /**************************************************************************************** ** Constructors / Destructor ****************************************************************************************/ -LinxBeagleBoneBlack::LinxBeagleBoneBlack() +LinxBeagleBoneBlack::LinxBeagleBoneBlack(LinxFmtChannel *debug) : LinxDevice(debug) { - DeviceFamily = 0x06; //TI Family Code - DeviceId = 0x01; //BeagleBone Black - DeviceNameLen = DEVICE_NAME_LEN; - DeviceName = m_DeviceName; - + //LINX Device Information + DeviceFamily = LINX_FAMILY_TI; // TI Family Code + DeviceId = 0x01; // BeagleBone Black + //LINX API Version LinxApiMajor = 2; LinxApiMinor = 2; LinxApiSubminor = 0; + + //Check file system layout + if (fileExists("/sys/devices/bone_capemgr.9/slots")) + { + //7.x Layout + m_FilePathLayout = 7; + m_DtoSlotsPath = "/sys/devices/bone_capemgr.9/slots"; + } + else if (fileExists("/sys/devices/platform/bone_capemgr/slots")) + { + //8.x Layout + m_FilePathLayout = 8; + m_DtoSlotsPath = "/sys/devices/platform/bone_capemgr/slots"; + } + else + { + //Assume 9.x Layout + m_DtoSlotsPath = ""; + m_FilePathLayout = 9; + } - //DIGITAL - NumDigitalChans = NUM_DIGITAL_CHANS; - DigitalChans = m_DigitalChans; //AI - NumAiChans = NUM_AI_CHANS; - - AiChans = m_AiChans; AiResolution = AI_RES_BITS; AiRefDefault = AI_REFV; AiRefSet = AI_REFV; - AiRefCodes = m_AiRefCodes; +// AiRefCodes = NULL; - NumAiRefIntVals = NUM_AI_INT_REFS; - AiRefIntVals = m_AiRefIntVals; +// NumAiRefIntVals = NUM_AI_INT_REFS; +// AiRefIntVals = NULL; - AiRefExtMin = 0; - AiRefExtMax = 0; +// AiRefExtMin = 0; +// AiRefExtMax = 0; //AO - NumAoChans = 0; - AoChans = 0; - AoResolution = 0; - AoRefDefault = 0; - AoRefSet = 0; +// AoResolution = 0; +// AoRefDefault = 0; +// AoRefSet = 0; //PWM //Shared Non Varying Components - unsigned long m_PwmDefaultPeriod = 500000; - string m_PolarityFileName = "polarity"; + uint32_t g_PwmDefaultPeriod = 500000; + const char *g_PolarityFileName = "polarity"; //7.x Only - string m_PwmDtoNames[NUM_PWM_CHANS] = {"bone_pwm_P8_13", "bone_pwm_P8_19", "bone_pwm_P9_14", "bone_pwm_P9_16"}; + const char *g_PwmDtoNames[NUM_PWM_CHANS] = {"bone_pwm_P8_13", "bone_pwm_P8_19", "bone_pwm_P9_14", "bone_pwm_P9_16"}; //8.x Only - string m_PwmMuxPaths[NUM_PWM_CHANS] = {"/sys/devices/platform/ocp/ocp:P8_13_pinmux/state", "/sys/devices/platform/ocp/ocp:P8_19_pinmux/state", "/sys/devices/platform/ocp/ocp:P9_14_pinmux/state", "/sys/devices/platform/ocp/ocp:P9_16_pinmux/state"}; - string m_SpiMuxPaths[3] = {"/sys/devices/platform/ocp/ocp:P9_18_pinmux/state", "/sys/devices/platform/ocp/ocp:P9_21_pinmux/state", "/sys/devices/platform/ocp/ocp:P9_22_pinmux/state"}; - string m_UartMuxPaths[4] = {"/sys/devices/platform/ocp/ocp:P9_24_pinmux/state", "/sys/devices/platform/ocp/ocp:P9_26_pinmux/state", "/sys/devices/platform/ocp/ocp:P9_11_pinmux/state", "/sys/devices/platform/ocp/ocp:P9_13_pinmux/state"}; + const char *g_PwmMuxPaths[NUM_PWM_CHANS] = {"/sys/devices/platform/ocp/ocp:P8_13_pinmux/state", "/sys/devices/platform/ocp/ocp:P8_19_pinmux/state", "/sys/devices/platform/ocp/ocp:P9_14_pinmux/state", "/sys/devices/platform/ocp/ocp:P9_16_pinmux/state"}; + const char *g_SpiMuxPaths[3] = {"/sys/devices/platform/ocp/ocp:P9_18_pinmux/state", "/sys/devices/platform/ocp/ocp:P9_21_pinmux/state", "/sys/devices/platform/ocp/ocp:P9_22_pinmux/state"}; + const char *g_UartMuxPaths[4] = {"/sys/devices/platform/ocp/ocp:P9_24_pinmux/state", "/sys/devices/platform/ocp/ocp:P9_26_pinmux/state", "/sys/devices/platform/ocp/ocp:P9_11_pinmux/state", "/sys/devices/platform/ocp/ocp:P9_13_pinmux/state"}; //Shared, Varying Components - Default To 7.x - string m_PwmExportPaths[NUM_PWM_CHANS] = {"/sys/class/pwm/export", "/sys/class/pwm/export", "/sys/class/pwm/export", "/sys/class/pwm/export"}; - unsigned char m_PwmExportVal[NUM_PWM_CHANS] = {6, 5, 3, 4}; - string m_PwmDirPaths[NUM_PWM_CHANS] = {"/sys/class/pwm/pwm6/", "/sys/class/pwm/pwm5/", "/sys/class/pwm/pwm3/", "/sys/class/pwm/pwm4/"}; - string m_DutyCycleFileName = "duty_ns"; - string m_PeriodFileName = "period_ns"; - m_EnableFileName = "run"; + std::string g_PwmExportPaths[NUM_PWM_CHANS] = {"/sys/class/pwm/export", "/sys/class/pwm/export", "/sys/class/pwm/export", "/sys/class/pwm/export"}; + unsigned char g_PwmExportVal[NUM_PWM_CHANS] = {6, 5, 3, 4}; //Update to 8.x layout if necessary - if(FilePathLayout >= 8) + if (m_FilePathLayout >= 8) { - string pwmBasePath = "/sys/class/pwm/"; + const char *pwmBasePath = "/sys/class/pwm/"; - string PwmP8ChipDir = "", PwmP9ChipDir = ""; + const char *PwmP8ChipDir = "", *PwmP9ChipDir = ""; bool sawPwmChanLinks = false; - - DIR* pwmDirHandle = opendir(pwmBasePath.c_str()); - dirent* dp; + std::list dirList; - //Loop Over All Dirs In PWM Base Dir - while(pwmDirHandle) + if (listDirectory(pwmBasePath, dirList)) { - if ((dp = readdir(pwmDirHandle)) != NULL) + for (std::list::iterator it = dirList.begin(); it != dirList.end(); it++) { - //Make Sure Dir Is Not . or .. - if((strcmp(dp->d_name, ".") != 0) && (strcmp(dp->d_name, "..") != 0)) - { - //PWM Chip Dir, Check Where Symlink Points - char pwmChipSymlink[256]; - char pwmChipSymlinkTarget[256]; - bool isPwmChanLink = (strchr(dp->d_name, ':') != NULL); - // Debian 9/stretch has direct links to PWM chans (e.g. "pwm7:0"); the chip dir does not have pwm0/pwm1 subdirs - if (isPwmChanLink) - sawPwmChanLinks = true; + //PWM Chip Dir, Check Where Symlink Points + char pwmChipSymlink[256]; + char pwmChipSymlinkTarget[256]; + bool isPwmChanLink = (strchr(it->c_str(), ':') != NULL); + + // Debian 9/stretch has direct links to PWM chans (e.g. "pwm7:0"); the chip dir does not have pwm0/pwm1 subdirs + if (isPwmChanLink) + sawPwmChanLinks = true; - sprintf(pwmChipSymlink, "%s%s", pwmBasePath.c_str(), dp->d_name); - readlink(pwmChipSymlink, pwmChipSymlinkTarget, 128); + sprintf(pwmChipSymlink, "%s%s", pwmBasePath, it->c_str()); + readlink(pwmChipSymlink, pwmChipSymlinkTarget, 128); - //Parse DTO Address - //fprintf(stdout, pwmChipSymlinkTarget); //Debug - //fprintf(stdout, "\n"); //Debug - char* token = strtok(pwmChipSymlinkTarget, "\\/"); - while(token != NULL) + //Parse DTO Address + //fprintf(stdout, pwmChipSymlinkTarget); //Debug + //fprintf(stdout, "\n"); //Debug + char* token = strtok(pwmChipSymlinkTarget, "\\/"); + while(token != NULL) + { + uint32_t val = 0; + sscanf(token, "%u", &val); + //printf("%u\n", val); + if (val == 48304200) + { + if (isPwmChanLink) + { + string pwmLink = pwmChipSymlink; + pwmLink += "/"; + if (strchr(it->c_str(), '1') != NULL) + g_PwmDirPaths[0] = pwmLink; + else + g_PwmDirPaths[1] = pwmLink; + } + else + { + PwmP8ChipDir = pwmChipSymlink; + } + } + else if (val == 48302200) { - unsigned int val = 0; - sscanf(token, "%u", &val); - //printf("%u\n", val); - if(val == 48304200) + if (isPwmChanLink) { - if (isPwmChanLink) { - string pwmLink = pwmChipSymlink; - pwmLink += "/"; - if (strchr(dp->d_name, '1') != NULL) - m_PwmDirPaths[0] = pwmLink; - else - m_PwmDirPaths[1] = pwmLink; - } else { - PwmP8ChipDir = pwmChipSymlink; - } + string pwmLink = pwmChipSymlink; + pwmLink += "/"; + if (strchr(it->c_str(), '0') != NULL) + g_PwmDirPaths[2] = pwmLink; + else + g_PwmDirPaths[3] = pwmLink; } - else if(val == 48302200) + else { - if (isPwmChanLink) { - string pwmLink = pwmChipSymlink; - pwmLink += "/"; - if (strchr(dp->d_name, '0') != NULL) - m_PwmDirPaths[2] = pwmLink; - else - m_PwmDirPaths[3] = pwmLink; - } else { - PwmP9ChipDir = pwmChipSymlink; - } + PwmP9ChipDir = pwmChipSymlink; } - token = strtok(NULL, "\\/"); } + token = strtok(NULL, "\\/"); } } - else - { - closedir(pwmDirHandle); - break; - } } //Build PWM Paths - m_PwmExportVal[0] = 1; - m_PwmExportVal[1] = 0; - m_PwmExportVal[2] = 0; - m_PwmExportVal[3] = 1; + g_PwmExportVal[0] = 1; + g_PwmExportVal[1] = 0; + g_PwmExportVal[2] = 0; + g_PwmExportVal[3] = 1; - if (!sawPwmChanLinks) { - m_PwmDirPaths[0] = PwmP8ChipDir + "/pwm1/"; - m_PwmDirPaths[1] = PwmP8ChipDir + "/pwm0/"; - m_PwmDirPaths[2] = PwmP9ChipDir + "/pwm0/"; - m_PwmDirPaths[3] = PwmP9ChipDir + "/pwm1/"; + if (!sawPwmChanLinks) + { + g_PwmDirPaths[0] = std::string(PwmP8ChipDir, "/pwm1/"); + g_PwmDirPaths[1] = std::string(PwmP8ChipDir, "/pwm0/"); + g_PwmDirPaths[2] = std::string(PwmP9ChipDir, "/pwm0/"); + g_PwmDirPaths[3] = std::string(PwmP9ChipDir, "/pwm1/"); } - m_PwmExportPaths[0] = PwmP8ChipDir + "/export"; - m_PwmExportPaths[1] = PwmP8ChipDir + "/export"; - m_PwmExportPaths[2] = PwmP9ChipDir + "/export"; - m_PwmExportPaths[3] = PwmP9ChipDir + "/export"; + g_PwmExportPaths[0] = std::string(PwmP8ChipDir, "/export"); + g_PwmExportPaths[1] = std::string(PwmP8ChipDir, "/export"); + g_PwmExportPaths[2] = std::string(PwmP9ChipDir, "/export"); + g_PwmExportPaths[3] = std::string(PwmP9ChipDir, "/export"); - m_DutyCycleFileName = "duty_cycle"; - m_PeriodFileName = "period"; - m_EnableFileName = "enable"; + g_DutyCycleFileName = "duty_cycle"; + g_PeriodFileName = "period"; + g_EnableFileName = "enable"; //Update I2C Path - m_I2cPaths[0] = "/dev/i2c-2"; + g_I2cPaths[0] = "/dev/i2c-2"; } // Updates to 9.x layout - if (FilePathLayout >= 9) { - m_SpiPaths[0] = "/dev/spidev0.0"; + if (m_FilePathLayout >= 9) { + g_SpiPaths[0] = "/dev/spidev0.0"; } - PwmDutyCycleFileName = m_DutyCycleFileName; - PwmPeriodFileName = m_PeriodFileName; - PwmEnableFileName = m_EnableFileName; +// PwmDutyCycleFileName = g_DutyCycleFileName; +// PwmPeriodFileName = g_PeriodFileName; +// PwmEnableFileName = g_EnableFileName; - NumPwmChans = NUM_PWM_CHANS; - PwmChans = m_PwmChans; - PwmDefaultPeriod = m_PwmDefaultPeriod; +// PwmDefaultPeriod = g_PwmDefaultPeriod; //QE - NumQeChans = 0; - QeChans = 0; //UART - NumUartChans = NUM_UART_CHANS; - UartChans = m_UartChans; - UartMaxBaud = m_UartSupportedSpeeds[NUM_UART_SPEEDS - 1]; - NumUartSpeeds = NUM_UART_SPEEDS; - UartSupportedSpeeds = m_UartSupportedSpeeds; - UartSupportedSpeedsCodes = m_UartSupportedSpeedsCodes; //I2C - NumI2cChans = NUM_I2C_CHANS; - I2cChans = m_I2cChans; - I2cRefCount = m_I2cRefCount; //SPI - NumSpiChans = NUM_SPI_CHANS; - SpiChans = m_SpiChans; - NumSpiSpeeds = NUM_SPI_SPEEDS; - SpiSupportedSpeeds = m_SpiSupportedSpeeds; - SpiSpeedCodes = m_SpiSpeedCodes; //CAN - NumCanChans = 0; - CanChans = 0; //SERVO - NumServoChans = 0; //------------------------------------- ANALOG ------------------------------------- //Export Dev Tree Overlay For AI If It DNE And Open AI Handles bool dtoLoaded = false; - if(!fileExists("/sys/bus/iio/devices/iio:device0")) + if (!fileExists("/sys/bus/iio/devices/iio:device0")) { - if(loadDto("BB-ADC")) + if (loadDto(m_DtoSlotsPath, "BB-ADC")) { dtoLoaded = true; } else { - DebugPrintln("AI Fail - Failed To Load BB-ADC DTO"); + m_Debug->Writeln("AI Fail - Failed To Load BB-ADC DTO"); } } else @@ -316,69 +367,52 @@ LinxBeagleBoneBlack::LinxBeagleBoneBlack() dtoLoaded = true; } - if(dtoLoaded) + if (dtoLoaded) { //Open AI Handles - for(int i=0; iWrite("AI Fail - Failed to open AI channel handle: "); + m_Debug->Writeln(g_AiPaths[i]); } } //------------------------------------- DIGITAL ------------------------------------- - //Export GPIO - Set All Digital Handles To NULL - for(int i=0; iWriteln("PWM Fail - Failed To Load am33xx_pwm DTO"); } //Export PWM Channels Before Loading Channel Specific DTOs Below /* - for(int i=0; i< NUM_PWM_CHANS; i++) + for(int32_t i=0; i< NUM_PWM_CHANS; i++) { } */ } } - else if(FilePathLayout >= 8) + else if (m_FilePathLayout >= 8) { - //Set Mux to PWM - for(int i=0; iWriteln("PWM Fail - Unable to open pwmExportHandle"); } } //7.x Per Pin Init - if(FilePathLayout == 7) + if (m_FilePathLayout == 7) { //Load Chip Specific PWM DTO If Not Already Loaded - if(!loadDto(m_PwmDtoNames[i].c_str())) + if (!loadDto(m_DtoSlotsPath, g_PwmDtoNames[i])) { - DebugPrint("PWM Fail - Failed To Load PWM DTO "); - DebugPrintln(m_PwmDtoNames[i].c_str()); + m_Debug->Write("PWM Fail - Failed To Load PWM DTO "); + m_Debug->Writeln(g_PwmDtoNames[i]); } //Make Sure DTO Has Time To Load Before Opening Handles - else if(!fileExists(m_PwmDirPaths[i].c_str(), "period_ns", 3000)) + else if (!fileExists(g_PwmDirPaths[i].c_str(), "period_ns", 3000)) { - DebugPrint("PWM Fail - PWM DTO Did Not Load Correctly: "); - DebugPrintln(m_PwmDirPaths[i].c_str()); + m_Debug->Write("PWM Fail - PWM DTO Did Not Load Correctly: "); + m_Debug->Writeln(g_PwmDirPaths[i].c_str()); } } //Export PWM Chans. If 7.x layout this is done above. This should probably be moved. - if(FilePathLayout >= 8) + if (m_FilePathLayout >= 8) { //Nothing 8.x Specific For Now } //Set Polarity To 0 So PWM Value Corresponds To 'Percent On' Rather Than 'Percent Off' char polarityPath[64]; - sprintf(polarityPath, "%s%s", PwmDirPaths[m_PwmChans[i]].c_str(), m_PolarityFileName.c_str()); + sprintf(polarityPath, "%s%s", g_PwmDirPaths[i].c_str(), g_PolarityFileName); FILE* pwmPolarityHandle = fopen(polarityPath, "w"); - if(pwmPolarityHandle != NULL) + if (pwmPolarityHandle != NULL) { fprintf(pwmPolarityHandle, "0"); fclose(pwmPolarityHandle); } else { - DebugPrint("PWM Fail - Unable to open pwmPolarityHandle"); - } - - //Set Default Duty Cycle To 0 - char dutyCyclePath[64]; - sprintf(dutyCyclePath, "%s%s", PwmDirPaths[m_PwmChans[i]].c_str(), m_DutyCycleFileName.c_str()); - - FILE* pwmDutyCycleHandle = fopen(dutyCyclePath, "r+w+"); - if(pwmDutyCycleHandle != NULL) - { - fprintf(pwmDutyCycleHandle, "0"); - fclose(pwmDutyCycleHandle); - } - else - { - DebugPrint("PWM Fail - Unable to open pwmDutyCycleHandle"); - } - - //Turn On PWM - char enablePath[64]; - sprintf(enablePath, "%s%s", PwmDirPaths[m_PwmChans[i]].c_str(), m_EnableFileName.c_str()); - FILE* pwmEnableHandle = fopen(enablePath, "r+w+"); - if(pwmEnableHandle != NULL) - { - fprintf(pwmEnableHandle, "1"); - fclose(pwmEnableHandle); + m_Debug->Write("PWM Fail - Unable to open pwmPolarityHandle"); } - else - { - DebugPrint("PWM Fail - Unable to open pwmEnableHandle"); - } } //------------------------------------- I2C ------------------------------------- - //Store I2C Master Paths In Map - for(int i=0; i= 8) + if (m_FilePathLayout >= 8) { - //Set Mux to UART - for(int i=0; i<4; i++) + // Set Mux to UART + for (int32_t i = 0; i < 4; i++) { - FILE* uartMuxHandle = fopen(m_UartMuxPaths[i].c_str(), "r+w+"); - if(uartMuxHandle != NULL) + FILE* uartMuxHandle = fopen(g_UartMuxPaths[i], "r+w+"); + if (uartMuxHandle != NULL) { fprintf(uartMuxHandle, "uart"); fclose(uartMuxHandle); @@ -514,142 +505,80 @@ LinxBeagleBoneBlack::LinxBeagleBoneBlack() } } - for(int i=0; i= 8) + if (m_FilePathLayout >= 8) { //Set Mux to SPI - for(int i=0; i<3; i++) + for (int32_t i = 0; i < 3; i++) { - FILE* spiMuxHandle = fopen(m_SpiMuxPaths[i].c_str(), "r+w+"); - if(spiMuxHandle != NULL) + FILE* spiMuxHandle = fopen(g_SpiMuxPaths[i], "r+w+"); + if (spiMuxHandle != NULL) { // in later debian versions the state value for the clk line changed - if (FilePathLayout == 8) + if (m_FilePathLayout == 8) fprintf(spiMuxHandle, "spi"); - else if (FilePathLayout >= 9 && (i%3) < 2) + else if (m_FilePathLayout >= 9 && (i%3) < 2) fprintf(spiMuxHandle, "spi"); - else if (FilePathLayout >= 9 && (i%3) == 2) + else if (m_FilePathLayout >= 9 && (i%3) == 2) fprintf(spiMuxHandle, "spi_sclk"); // assume last mux path is the sclk else - DebugPrint("SPI Fail - Unexpected SpiMuxPath"); + m_Debug->Write("SPI Fail - Unexpected SpiMuxPath"); fclose(spiMuxHandle); } } } - - //Load SPI Paths and DTO Names, Configure SPI Master Default Values - SpiDefaultSpeed = 3900000; - for(int i=0; i= 0 - EnableDebug(DEBUG_ENABLED); - #endif } //Destructor -LinxBeagleBoneBlack::~LinxBeagleBoneBlack() +LinxBeagleBoneBlack::~LinxBeagleBoneBlack(void) { - //Close AI Handles - for(int i=0; i #include +class LinxBBBUartChannel : public LinxUnixUartChannel +{ + public: + /**************************************************************************************** + ** Constructor + ****************************************************************************************/ + LinxBBBUartChannel(LinxFmtChannel *debug, const char *channelName, const char *dtoName, const char *dtoSlotsPath); + virtual ~LinxBBBUartChannel(void) {}; + + /**************************************************************************************** + ** Functions + ****************************************************************************************/ + + protected: + /**************************************************************************************** + ** Functions + ****************************************************************************************/ + virtual int32_t SmartOpen(void); + + private: + /**************************************************************************************** + ** Variables + ****************************************************************************************/ + const char *m_DtoName; + const char *m_DtoSlotsPath; +}; + +class LinxBBBI2cChannel : public LinxSysfsI2cChannel +{ + public: + /**************************************************************************************** + ** Constructor + ****************************************************************************************/ + LinxBBBI2cChannel(LinxFmtChannel *debug, const char *channelName, const char *dtoName, const char *dtoSlotsPath); + virtual ~LinxBBBI2cChannel(void) {}; + + /**************************************************************************************** + ** Functions + ****************************************************************************************/ + virtual int32_t Open(void); + + protected: + /**************************************************************************************** + ** Functions + ****************************************************************************************/ + + private: + /**************************************************************************************** + ** Variables + ****************************************************************************************/ + const char *m_DtoName; + const char *m_DtoSlotsPath; +}; + +class LinxBBBSpiChannel : public LinxSysfsSpiChannel +{ + public: + /**************************************************************************************** + ** Constructor + ****************************************************************************************/ + LinxBBBSpiChannel(LinxFmtChannel *debug, const char *channelName, LinxDevice *device, uint32_t speed, const char *dtoName, const char *dtoSlotsPath); + virtual ~LinxBBBSpiChannel(void) {}; + + /**************************************************************************************** + ** Functions + ****************************************************************************************/ + virtual int32_t Open(void); + + protected: + /**************************************************************************************** + ** Functions + ****************************************************************************************/ + + private: + /**************************************************************************************** + ** Variables + ****************************************************************************************/ + const char *m_DtoName; + const char *m_DtoSlotsPath; +}; + using namespace std; -class LinxBeagleBoneBlack : public LinxBeagleBone +class LinxBeagleBoneBlack : public LinxDevice { public: /**************************************************************************************** ** Variables ****************************************************************************************/ - //System - static const unsigned char m_DeviceName[DEVICE_NAME_LEN]; - - //AI - static const unsigned char m_AiChans[NUM_AI_CHANS]; - static const unsigned long m_AiRefIntVals[NUM_AI_INT_REFS]; - static const int m_AiRefCodes[NUM_AI_INT_REFS]; - static FILE* m_AiValueHandles[NUM_AI_CHANS]; - static const string m_AiValuePaths[NUM_AI_CHANS]; - - //AO - //None - - //DIGITAL - static const unsigned char m_DigitalChans[NUM_DIGITAL_CHANS]; - static const unsigned char m_gpioChan[NUM_DIGITAL_CHANS]; - - //PWM - static unsigned char m_PwmChans[NUM_PWM_CHANS]; - string m_PwmDirPaths[NUM_PWM_CHANS]; - static string m_PwmDtoNames[NUM_PWM_CHANS]; - static string m_PwmMuxPaths[NUM_PWM_CHANS]; - string m_EnableFileName; - unsigned char m_PwmPeriods[NUM_PWM_CHANS]; - - //SPI - static unsigned char m_SpiChans[NUM_SPI_CHANS]; - static int m_SpiHandles[NUM_SPI_CHANS]; - static unsigned long m_SpiSupportedSpeeds[NUM_SPI_SPEEDS]; - static int m_SpiSpeedCodes[NUM_SPI_SPEEDS]; - - //I2C - static unsigned char m_I2cChans[NUM_I2C_CHANS]; - static unsigned char m_I2cRefCount[NUM_I2C_CHANS]; - - //UART - static unsigned char m_UartChans[NUM_UART_CHANS]; - static unsigned long m_UartSupportedSpeeds[NUM_UART_SPEEDS]; - static unsigned long m_UartSupportedSpeedsCodes[NUM_UART_SPEEDS]; - static int m_UartHandles[NUM_UART_CHANS]; - static string m_UartPaths[NUM_UART_CHANS]; - - //Servo - //none /**************************************************************************************** ** Constructors / Destructor ****************************************************************************************/ - LinxBeagleBoneBlack(); - ~LinxBeagleBoneBlack(); + LinxBeagleBoneBlack(LinxFmtChannel *debug = NULL); + virtual ~LinxBeagleBoneBlack(void); /**************************************************************************************** ** Functions ****************************************************************************************/ - - private: + virtual uint8_t GetDeviceName(unsigned char *buffer, uint8_t length); + + static bool loadDto(const char *slotsPath, const char* dtoName); + + protected: /**************************************************************************************** ** Variables ****************************************************************************************/ - const char* overlaySlotsPath; //The overlay slot export path - + LinxFmtChannel *m_Debug; + + private: /**************************************************************************************** - ** Functions - ****************************************************************************************/ - + ** Variables + ****************************************************************************************/ + const char *m_OverlaySlotsPath; // The overlay slot export path + const char *m_DtoSlotsPath; // Path to device tree overlay slots file. Varies by OS version. + int32_t m_FilePathLayout; // Used to indicate the file path layout 7 for 7.x and 8 for 8.x }; #endif //LINX_BEAGLEBONEBLACK_H diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/LinxESP8266.cpp b/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/LinxESP8266.cpp index 723b74ce..80c078c3 100644 --- a/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/LinxESP8266.cpp +++ b/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/LinxESP8266.cpp @@ -62,7 +62,7 @@ Servo* LinxESP8266::m_Servos[NUM_SERVO_CHANS] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ****************************************************************************************/ LinxESP8266::LinxESP8266() { - DeviceFamily = 0x07; + DeviceFamily = LINX_FAMILY_ESP; DeviceId = 0x00; //?? DeviceNameLen = DEVICE_NAME_LEN; DeviceName = m_DeviceName; diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/LinxRaspberryPi.cpp b/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/LinxRaspberryPi.cpp new file mode 100644 index 00000000..6baa2fce --- /dev/null +++ b/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/LinxRaspberryPi.cpp @@ -0,0 +1,437 @@ +/**************************************************************************************** +** LINX Raspberry Pi 2 Model B Code +** +** For more information see: www.labviewmakerhub.com/linx +** For support visit the forums at: www.labviewmakerhub.com/forums/linx +** +** Written by Sam Kristoff +** Modifications by Rolf Kalbermatter +** +** BSD2 License. +****************************************************************************************/ + +/**************************************************************************************** +** Includes +****************************************************************************************/ +#include +#include +#include +#include +#include +#include "LinxDefines.h" +#include +#include +#include +#include "LinxUtilities.h" +#include "LinxDevice.h" +#include "LinxRaspberryPi.h" + +/**************************************************************************************** +** Defines +****************************************************************************************/ +#define FSEL_OFFSET 0 // 0x0000 +#define SET_OFFSET 7 // 0x001c / 4 +#define CLR_OFFSET 10 // 0x0028 / 4 +#define PINLEVEL_OFFSET 13 // 0x0034 / 4 +#define EVENT_DETECT_OFFSET 16 // 0x0040 / 4 +#define RISING_ED_OFFSET 19 // 0x004c / 4 +#define FALLING_ED_OFFSET 22 // 0x0058 / 4 +#define HIGH_DETECT_OFFSET 25 // 0x0064 / 4 +#define LOW_DETECT_OFFSET 28 // 0x0070 / 4 +#define ASYNC_RISING_EDGE_OFFSET 31 // 0x007c / 4 +#define ASYNC_FALING_EDGE_OFFSET 34 // 0x0088 / 4 + +#define PULLUPDN_OFFSET 37 // 0x0094 / 4 +#define PULLUPDNCLK_OFFSET 38 // 0x0098 / 4 + +#define PULLUPDN_OFFSET_2711_0 57 // 0x00e4 / 4 +#define PULLUPDN_OFFSET_2711_1 58 // 0x00e8 / 4 +#define PULLUPDN_OFFSET_2711_2 59 // 0x00ec / 4 +#define PULLUPDN_OFFSET_2711_3 60 // 0x00f0 / 4 + +#define BLOCK_SIZE (4 * 1024) + +#define CPU_MODEL_BCM2835 0 +#define CPU_MODEL_BCM2836 1 +#define CPU_MODEL_BCM2837 2 +#define CPU_MODEL_BCM2711 3 +#define CPU_MODEL_BCM2712 4 + +#define __nop() asm volatile("nop"); + +/**************************************************************************************** +** Channel implementations +****************************************************************************************/ +static void ShortWait(void) +{ + for (int32_t i = 0; i < 150; i++) + { + // wait 150 cycles + __nop(); + } +} + +/**************************************************************************************** +** Digital Channels +****************************************************************************************/ +// Raspberry Pi GPIO memory map pointer +static volatile uint32_t *gpio_map = (volatile uint32_t*)MAP_FAILED; + +// Raspberry Pi GPIO pins +static const uint8_t g_LinxDioChans[NUM_DIGITAL_CHANS] = {3, 5, 7, 8, 10, 11, 12, 13, 15, 16, 18, 19, 21, 22, 23, 24, 26, 29, 31, 32, 33, 35, 36, 37, 38, 40}; +static const uint8_t g_GpioDioChans[NUM_DIGITAL_CHANS] = {2, 3, 4, 14, 15, 17, 18, 27, 22, 23, 24, 10, 9, 25, 11, 8, 7, 5, 6, 12, 13, 19, 16, 26, 20, 21}; +static const uint8_t g_EnabDioChans[NUM_DIGITAL_CHANS] = {2, 2, 0, 1, 1, 0, 8, 0, 0, 0, 0, 4, 4, 0, 4, 4, 4, 0, 0, 16, 16, 8, 0, 0, 8, 8}; +/* Enab values: 1: uart pins, 2: I2C pins, 4: SPI pins, 8, PCM pins, 16: PWM pins */ + + +int32_t LinxRaspiDioChannel::LinxRaspiDioChannel(LinxFmtChannel *debug, uint16_t linxPin, uint16_t gpioPin, uint8_t cpuModel) : LinxSysfsDioChannel(debug, linxPin, gpioPin) +{ + m_CpuModel = cpuModel; +} + +int32_t LinxRaspiDioChannel::setDirection(uint8_t dir) +{ + int32_t status = LinxDIOChannel::setDirection(dir); + if (!status) + { + dir &= GPIO_DIRMASK; + if (m_CpuModel >= CPU_MODEL_BCM2712) + { + + } + else + { + int32_t offset = FSEL_OFFSET + (m_GpioChan / 10); + uint32_t shift = (m_GpioChan % 10) * 3; + uint32_t value = *(gpio_map + offset); + + // if the according pin is set as alternate function, abort + if (value & (GPIO_ALTMASK << shift)) + return LDIGITAL_PIN_NOT_AVAIL; + + if (direction == GPIO_OUTPUT) + { + *(gpio_map + offset) = value | (1 << shift); + } + else + { + *(gpio_map + offset) = value & ~(1 << shift); + } + } + } + else if (status == LDIGITAL_PIN_NOCHANGE) + { + return L_OK; + } + return status; +} + +int32_t LinxRaspiDioChannel::setPull(uint8_t pud) +{ + int32_t status = LinxDIOChannel::setPull(pud); + if (!status) + { + pud &= GPIO_PULLMASK; + + // Check GPIO register + switch (m_CpuModel) + { + case CPU_MODEL_BCM2712: + { + // Pi 5 Pull-up/down method + + break; + } + case CPU_MODEL_BCM2711: + { + // Pi 4 Pull-up/down method + int32_t pullreg = PULLUPDN_OFFSET_2711_0 + (m_GpioChan >> 4); + int32_t pullshift = (m_GpioChan & 0xf) << 1; + uint32_t pullbits = *(gpio_map + pullreg), pull = 0; + + switch (pud) + { + case GPIO_PULLUP: + pull = 1; + break; + case GPIO_PULLDOWN: + pull = 2; + break; + default: + pull = 0; + break; + } + + pullbits &= ~(3 << pullshift); + pullbits |= (pull << pullshift); + + *(gpio_map + pullreg) = pullbits; + break; + } + default: + { + // Legacy Pull-up/down method + int32_t clk_offset = PULLUPDNCLK_OFFSET + (m_GpioChan / 32); + uint32_t bitval = (1 << (m_GpioChan % 32)); + + switch (pud) + { + case GPIO_PULLUP: + *(gpio_map + PULLUPDN_OFFSET) = 0x02; + break; + case GPIO_PULLDOWN: + *(gpio_map + PULLUPDN_OFFSET) = 0x01; + break; + default: + *(gpio_map + PULLUPDN_OFFSET) = 0x00; + break; + } + + ShortWait(); + *(gpio_map + clk_offset) = bitval; + ShortWait(); + *(gpio_map + PULLUPDN_OFFSET) = 0; + *(gpio_map + clk_offset) = 0; + break; + } + } + } + else if (status == LDIGITAL_PIN_NOCHANGE) + { + return L_OK; + } + return status; +} + +int32_t LinxRaspiDioChannel::setValue(uint8_t value) +{ + if (m_CpuModel >= CPU_MODEL_BCM2712) + { + + } + else + { + int32_t offset = (m_GpioChan / 32) + (value ? SET_OFFSET : CLR_OFFSET); + uint32_t mask = (1 << (m_GpioChan % 32)); + + *(gpio_map + offset) = mask; + } + return L_OK; +} + +int32_t LinxRaspiDioChannel::getValue(uint8_t *value) +{ + if (m_CpuModel >= CPU_MODEL_BCM2712) + { + } + else + { + int32_t offset = PINLEVEL_OFFSET + (m_GpioChan / 32); + uint32_t mask = 1 << (m_GpioChan % 32); + + *value = *(gpio_map + offset) & mask; + } + return L_OK; +} + +//SPI +static uint8_t g_SpiChans[NUM_SPI_CHANS] = {0, 1, 2, 3, 4}; +static const char * g_SpiPaths[NUM_SPI_CHANS] = {"/dev/spidev0.0", "/dev/spidev0.1", "/dev/spidev1.0", "/dev/spidev1.1", "/dev/spidev1.2"}; +static int32_t g_SpiDefaultSpeed = 3900000; + +//I2C +static uint8_t g_I2cChans[NUM_I2C_CHANS] = {1}; +static const char * g_I2cPaths[NUM_I2C_CHANS] = {"/dev/i2c-1"}; + +//UART +static uint8_t g_UartChans[NUM_UART_CHANS] = {0}; +static const char * g_UartPaths[NUM_UART_CHANS] = {"/dev/serial0"}; + + +/**************************************************************************************** +** Constructors / Destructor +****************************************************************************************/ +LinxRaspberryPi::LinxRaspberryPi(LinxFmtChannel *debug) : LinxDevice(debug) +{ + //LINX API Version + LinxApiMajor = 2; + LinxApiMinor = 2; + LinxApiSubminor = 0; + + //-------------------------------- Device Detection ------------------------------ + DeviceFamily = LINX_FAMILY_RASPBERRY; // Raspberry Pi Family Code + DeviceId = 0xFF; // Raspberry Pi Unknown + + m_DeviceCode = 0; + m_SerialNum = 0; + + uint8_t CpuModel; + char buffer[256]; + int32_t model; + + FILE *fp = fopen("/proc/device-tree/serial-number", "r"); + if (fp) + { + if (fscanf(fp, "%" SCNu64, &m_SerialNum)) + { + } + fclose(fp); + } + + if (fp = fopen("/proc/device-tree/system/linux,revision", "r")) + { + if (fread(&m_DeviceCode, sizeof(m_DeviceCode), 1, fp)) + { + m_DeviceCode = ntohl(m_DeviceCode); + } + fclose(fp); + } + else if ((fp = fopen("/proc/cpuinfo", "r"))) + { + while (!feof(fp) && fgets(buffer, sizeof(buffer), fp)) + { + if (sscanf(buffer, "Hardware : BCM%d", &model) != 1) + { + model = 0; + } + else if (sscanf(buffer, "Revision : %x", m_DeviceCode) == 1) + { + if (model == 2708 || model == 2709 || model == 2835 || model == 2836 || model == 2837) + { + break; + } + } + m_DeviceCode = 0; + } + fclose(fp); + } + if (m_DeviceCode)) + { + DeviceId = (m_DeviceCode & 0x8000000) ? (uint8_t)((m_DeviceCode & 0xFF0) >> 4) : 0; + CpuModel = (m_DeviceCode & 0x8000000) ? (uint8_t)((m_DeviceCode & 0xF000) >> 12) : 0; + } + + int32_t fd = open("/proc/device-tree/model", O_RDONLY); + if (fd >= 0) + { + struct stat buf; + if (fstat(fd, &buf) == 0) + { + int32_t len = read(fd, m_DeviceName, Min(buf.st_size, (off_t)(DEVICE_NAME_MAX - 1))); + if (len > 0) + { + m_DeviceName[len] = 0; + } + } + close(fd); + } + + if (DeviceId == 0xFF) + { + // If detection failed, fall back to some basic value + DeviceId = 0x04; // Raspberry Pi 2 Model B + strcpy(m_DeviceName, "Raspberry Pi"); + } + + //------------------------------------- AI --------------------------------------- + AiResolution = 0; + AiRefDefault = AI_REFV; + AiRefSet = AI_REFV; + + //------------------------------------- AO --------------------------------------- + AoResolution = 0; + AoRefDefault = 0; + AoRefSet = 0; + + //------------------------------------- DIO -------------------------------------- + // try /dev/gpiomem first - this does not require root privilegs + if (gpio_map == MAP_FAILED) + { + int32_t mem_fd = open("/dev/gpiomem", O_RDWR | O_SYNC); + if (mem_fd > 0) + gpio_map = (int32_t*)mmap(NULL, BLOCK_SIZE, PROT_READ | PROT_WRITE, MAP_SHARED, mem_fd, 0); + close(mem_fd); + } + + // Initialize the digital lookup map + for (int32_t i = 0; i < NUM_DIGITAL_CHANS; i++) + { + LinxChannel *channel; + if (gpio_map == MAP_FAILED) + channel = new LinxSysfsDioChannel(m_Debug, g_LinxDioChans[i], g_GpioDioChans[i]); + else + channel = new LinxRaspiDioChannel(m_Debug, g_LinxDioChans[i], g_GpioDioChans[i], CpuModel); + if (channel) + RegisterChannel(IID_LinxDioChannel, g_LinxDioChans[i], channel); + } + + //------------------------------------- PWM -------------------------------------- + + //------------------------------------- QE --------------------------------------- + + //------------------------------------- UART ------------------------------------- + // Store Uart channels in the registry map + for (int32_t i = 0; i < NUM_UART_CHANS; i++) + { + LinxChannel *channel = new LinxUnixUartChannel(m_Debug, g_UartPaths[i]); + if (channel) + RegisterChannel(IID_LinxUartChannel, g_UartChans[i], channel); + } + + //------------------------------------- I2C ------------------------------------- + // Store I2C master channels in the registry map + for (int32_t i = 0; i < NUM_I2C_CHANS; i++) + { + LinxChannel *channel = new LinxSysfsI2cChannel(g_I2cPaths[i], m_Debug); + if (channel) + RegisterChannel(IID_LinxI2cChannel, g_I2cChans[i], channel); + } + + //------------------------------------- SPI ------------------------------------- + // Store SPI channels in the registry map + for (int32_t i = 0; i < NUM_SPI_CHANS; i++) + { + if (fileExists(g_SpiPaths[i])) + { + LinxChannel *channel = new LinxSysfsSpiChannel(g_SpiPaths[i], m_Debug, this, g_SpiDefaultSpeed); + if (channel) + RegisterChannel(IID_LinxSpiChannel, g_SpiChans[i], channel); + } + } + + //------------------------------------- CAN ------------------------------------- + + //------------------------------------ SERVO ------------------------------------ + + // TODO Load User Config Data From Non Volatile Storage + //userId = NonVolatileRead(NVS_USERID) << 8 | NonVolatileRead(NVS_USERID + 1); +} + +//Destructor +LinxRaspberryPi::~LinxRaspberryPi(void) +{ + //------------------------------------- Digital ------------------------------------- + // close gpio memory map if opened + if (gpio_map != MAP_FAILED) + { + munmap((void *)gpio_map, BLOCK_SIZE); + gpio_map = (volatile int32_t*)MAP_FAILED; + } +} + +/**************************************************************************************** +** Protected Functions +****************************************************************************************/ + +/**************************************************************************************** +** Private Functions +****************************************************************************************/ + +/**************************************************************************************** +** Public Functions +****************************************************************************************/ +uint8_t LinxRaspberryPi::GetDeviceName(unsigned char *buffer, uint8_t length) +{ + strncpy((char*)buffer, m_DeviceName, length); + return (uint8_t)strlen(m_DeviceName); +} \ No newline at end of file diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/LinxRaspberryPi2B.h b/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/LinxRaspberryPi.h old mode 100755 new mode 100644 similarity index 57% rename from LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/LinxRaspberryPi2B.h rename to LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/LinxRaspberryPi.h index 41029cea..26346cd1 --- a/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/LinxRaspberryPi2B.h +++ b/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/LinxRaspberryPi.h @@ -3,116 +3,99 @@ ** ** For more information see: www.labviewmakerhub.com/linx ** For support visit the forums at: www.labviewmakerhub.com/forums/linx -** +** ** Written By Sam Kristoff ** ** BSD2 License. -****************************************************************************************/ +****************************************************************************************/ -#ifndef LINX_RASPBERRYPI2B_H -#define LINX_RASPBERRYPI2B_H +#ifndef LINX_RASPBERRYPI_H +#define LINX_RASPBERRYPI_H /**************************************************************************************** ** Defines -****************************************************************************************/ -#define DEVICE_NAME_LEN 23 +****************************************************************************************/ +#define DEVICE_NAME_MAX 128 #define NUM_AI_CHANS 0 #define AI_RES_BITS 0 #define AI_REFV 0 #define NUM_AI_INT_REFS 0 +#define NUM_AO_CHANS 0 + #define NUM_CAN_CHANS 0 -#define NUM_DIGITAL_CHANS 17 +#define NUM_DIGITAL_CHANS 26 #define NUM_PWM_CHANS 0 -#define NUM_SPI_CHANS 1 +#define NUM_SPI_CHANS 5 #define NUM_SPI_SPEEDS 13 #define NUM_I2C_CHANS 1 #define NUM_UART_CHANS 1 -#define NUM_UART_SPEEDS 18 #define NUM_SERVO_CHANS 0 /**************************************************************************************** ** Includes -****************************************************************************************/ -#include "utility/LinxDevice.h" -#include "utility/LinxRaspberryPi.h" -#include -#include +****************************************************************************************/ +#include "LinxDevice.h" +#include "LinxLinuxChannel.h" -using namespace std; - -class LinxRaspberryPi2B : public LinxRaspberryPi +class LinxRaspiDioChannel : public LinxDioChannel { - public: + public: + /**************************************************************************************** + ** Constructors + ****************************************************************************************/ + LinxRaspiDioChannel(LinxFmtChannel *debug, uint16_t linxPin, uint16_t gpioPin, uint8_t cpuModell); + virtual ~LinxRaspiDioChannel(void) {}; + + protected: + /**************************************************************************************** + ** Functions + ****************************************************************************************/ + virtual int32_t setDirection(uint8_t dir); + virtual int32_t setPull(uint8_t pud); + virtual int32_t setValue(uint8_t value); + virtual int32_t getValue(uint8_t *value); + + private: /**************************************************************************************** ** Variables - ****************************************************************************************/ - //System - static const unsigned char m_DeviceName[DEVICE_NAME_LEN]; - - //AI - //None - - //AO - //None - - //CAN - //None - - //DIGITAL - static const unsigned char m_DigitalChans[NUM_DIGITAL_CHANS]; - static const unsigned char m_gpioChan[NUM_DIGITAL_CHANS]; - - //PWM - //None - - //SPI - static const unsigned char m_SpiChans[NUM_SPI_CHANS]; - static int m_SpiHandles[NUM_SPI_CHANS]; - static unsigned long m_SpiSupportedSpeeds[NUM_SPI_SPEEDS]; - static int m_SpiSpeedCodes[NUM_SPI_SPEEDS]; - - //I2C - static unsigned char m_I2cChans[NUM_I2C_CHANS]; - static unsigned char m_I2cRefCount[NUM_I2C_CHANS]; - - //UART - static unsigned char m_UartChans[NUM_UART_CHANS]; - static unsigned long m_UartSupportedSpeeds[NUM_UART_SPEEDS]; - static unsigned long m_UartSupportedSpeedsCodes[NUM_UART_SPEEDS]; - static int m_UartHandles[NUM_UART_CHANS]; - static string m_UartPaths[NUM_UART_CHANS]; + ****************************************************************************************/ + static uint8_t m_CpuModel; +}; - - //Servo - //None - +using namespace std; + +class LinxRaspberryPi : public LinxDevice +{ + public: /**************************************************************************************** ** Constructors / Destructor ****************************************************************************************/ - LinxRaspberryPi2B(); - virtual ~LinxRaspberryPi2B(); - + LinxRaspberryPi(LinxFmtChannel *debug = NULL); + virtual ~LinxRaspberryPi(void); + /**************************************************************************************** ** Functions ****************************************************************************************/ - + virtual uint8_t GetDeviceName(unsigned char *buffer, uint8_t length); + + protected: + private: /**************************************************************************************** ** Variables - ****************************************************************************************/ - - /**************************************************************************************** - ** Functions ****************************************************************************************/ - + //System + static char m_DeviceName[DEVICE_NAME_MAX]; + static uint32_t m_DeviceCode; + static uint64 m_SerialNum; + }; - #endif //LINX_RASPBERRYPI2B diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/LinxRaspberryPi2B.cpp b/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/LinxRaspberryPi2B.cpp deleted file mode 100755 index a8b4c247..00000000 --- a/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/LinxRaspberryPi2B.cpp +++ /dev/null @@ -1,234 +0,0 @@ -/**************************************************************************************** -** LINX Raspberry Pi 2 Model B Code -** -** For more information see: www.labviewmakerhub.com/linx -** For support visit the forums at: www.labviewmakerhub.com/forums/linx -** -** Written By Sam Kristoff -** -** BSD2 License. -****************************************************************************************/ - -/**************************************************************************************** -** Includes -****************************************************************************************/ -#include -#include - -#include "utility/LinxDevice.h" -#include "utility/LinxRaspberryPi.h" -#include "LinxRaspberryPi2B.h" - -/**************************************************************************************** -** Member Variables -****************************************************************************************/ -//System -const unsigned char LinxRaspberryPi2B::m_DeviceName[DEVICE_NAME_LEN] = "Raspberry Pi 2 Model B"; - -//AI -//None - -//AO -//None - -//DIGITAL -const unsigned char LinxRaspberryPi2B::m_DigitalChans[NUM_DIGITAL_CHANS] = {7, 11, 12, 13, 15, 16, 18, 22, 29, 31, 32, 33, 35, 36, 37, 38, 40}; -const unsigned char LinxRaspberryPi2B::m_gpioChan[NUM_DIGITAL_CHANS] = {4, 17, 18, 27, 22, 23, 24, 25, 5, 6, 12, 13, 19, 16, 26, 20, 21}; - -//PWM -//None - -//QE -//None - -//SPI -const unsigned char LinxRaspberryPi2B::m_SpiChans[NUM_SPI_CHANS] = {0}; -string m_SpiPaths[NUM_SPI_CHANS] = { "/dev/spidev0.1"}; -unsigned long LinxRaspberryPi2B::m_SpiSupportedSpeeds[NUM_SPI_SPEEDS] = {7629, 15200, 30500, 61000, 122000, 244000, 488000, 976000, 1953000, 3900000, 7800000, 15600000, 31200000}; -int LinxRaspberryPi2B::m_SpiSpeedCodes[NUM_SPI_SPEEDS] = {7629, 15200, 30500, 61000, 122000, 244000, 488000, 976000, 1953000, 3900000, 7800000, 15600000, 31200000}; - -//I2C -unsigned char LinxRaspberryPi2B::m_I2cChans[NUM_I2C_CHANS] = {1}; -string m_I2cPaths[NUM_I2C_CHANS] = {"/dev/i2c-1"}; -unsigned char LinxRaspberryPi2B::m_I2cRefCount[NUM_I2C_CHANS]; - -//UART -unsigned char LinxRaspberryPi2B::m_UartChans[NUM_UART_CHANS] = {0}; -int LinxRaspberryPi2B::m_UartHandles[NUM_UART_CHANS]; -string LinxRaspberryPi2B::m_UartPaths[NUM_UART_CHANS] = {"/dev/serial0"}; -unsigned long LinxRaspberryPi2B::m_UartSupportedSpeeds[NUM_UART_SPEEDS] = {0, 50, 75, 110, 134, 150, 200, 300, 600, 1200, 1800, 2400, 4800, 9600, 19200, 38400, 57600, 115200}; -unsigned long LinxRaspberryPi2B::m_UartSupportedSpeedsCodes[NUM_UART_SPEEDS] = {B0, B50, B75, B110, B134, B150, B200, B300, B600, B1200, B1800, B2400, B4800, B9600, B19200, B38400, B57600, B115200}; - -//SERVO -//None - -/**************************************************************************************** -** Constructors / Destructor -****************************************************************************************/ -LinxRaspberryPi2B::LinxRaspberryPi2B() -{ - DeviceFamily = 0x04; //Raspberry Pi Family Code - DeviceId = 0x03; //Raspberry Pi 2 Model B - DeviceNameLen = DEVICE_NAME_LEN; - DeviceName = m_DeviceName; - - //LINX API Version - LinxApiMajor = 2; - LinxApiMinor = 2; - LinxApiSubminor = 0; - - //DIGITAL - NumDigitalChans = NUM_DIGITAL_CHANS; - DigitalChans = m_DigitalChans; - - //AI - NumAiChans = NUM_AI_CHANS; - AiChans = 0; - AiResolution = 0; - AiRefSet = 0; - - AiRefDefault = AI_REFV; - AiRefSet = AI_REFV; - AiRefCodes = NULL; - - NumAiRefIntVals = NUM_AI_INT_REFS; - AiRefIntVals = NULL; - - AiRefExtMin = 0; - AiRefExtMax = 0; - - //AO - NumAoChans = 0; - AoChans = 0; - AoResolution = 0; - AoRefDefault = 0; - AoRefSet = 0; - - //PWM - NumPwmChans = NUM_PWM_CHANS; - PwmChans = 0; - - //QE - NumQeChans = 0; - QeChans = 0; - - //UART - NumUartChans = NUM_UART_CHANS; - UartChans = m_UartChans; - UartMaxBaud = m_UartSupportedSpeeds[NUM_UART_SPEEDS - 1]; - NumUartSpeeds = NUM_UART_SPEEDS; - UartSupportedSpeeds = m_UartSupportedSpeeds; - UartSupportedSpeedsCodes = m_UartSupportedSpeedsCodes; - - //I2C - NumI2cChans = NUM_I2C_CHANS; - I2cChans = m_I2cChans; - I2cRefCount = m_I2cRefCount; - - //SPI - NumSpiChans = NUM_SPI_CHANS; - SpiChans = m_SpiChans; - NumSpiSpeeds = NUM_SPI_SPEEDS; - SpiSupportedSpeeds = m_SpiSupportedSpeeds; - SpiSpeedCodes = m_SpiSpeedCodes; - - //CAN - NumCanChans = NUM_CAN_CHANS; - CanChans = 0; - - //Servo - NumServoChans = NUM_SERVO_CHANS; - ServoChans = 0; - - //------------------------------------- Digital ------------------------------------- - //Export GPIO - Set All Digital Handles To NULL - for(int i=0; i -1 - EnableDebug(DEBUG_ENABLED); - #endif -} - -//Destructor -LinxRaspberryPi2B::~LinxRaspberryPi2B() -{ - //Close GPIO Handles If They Are Open - for(int i=0; i -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -using namespace std; - - -/**************************************************************************************** -** Constructors / Destructors -****************************************************************************************/ -LinxBeagleBone::LinxBeagleBone() -{ - //LINX API Version - LinxApiMajor = 2; - LinxApiMinor = 0; - LinxApiSubminor = 0; - - //Check file system layout - if(fileExists("/sys/devices/bone_capemgr.9/slots")) - { - //7.x Layout - FilePathLayout = 7; - DtoSlotsPath = "/sys/devices/bone_capemgr.9/slots"; - } - else if(fileExists("/sys/devices/platform/bone_capemgr/slots")) - { - //8.x Layout - FilePathLayout = 8; - DtoSlotsPath = "/sys/devices/platform/bone_capemgr/slots"; - } - else - { - //Assume 9.x Layout - DtoSlotsPath = ""; - FilePathLayout = 9; - } - - // TODO Load User Config Data From Non Volatile Storage - //userId = NonVolatileRead(NVS_USERID) << 8 | NonVolatileRead(NVS_USERID + 1); -} - -LinxBeagleBone::~LinxBeagleBone() -{ - -} -/**************************************************************************************** -** Private Functions -****************************************************************************************/ - -//Open Direction And Value Handles If They Are Not Already Open And Set Direction -int LinxBeagleBone::digitalSmartOpen(unsigned char numChans, unsigned char* channels) -{ - for(int i=0; i> analogValue; - fs.close(); - */ - - dataBitsRemaining = AiResolution; - - //Byte Packet AI Values In Response Packet - while(dataBitsRemaining > 0) - { - *(values+responseByteOffset) |= ( ((unsigned int)aiVal>>(AiResolution - dataBitsRemaining)) << (8 - responseBitsRemaining) ); - //*(values+responseByteOffset) = 69; - - if(responseBitsRemaining > dataBitsRemaining) - { - //Current Byte Still Has Empty Bits - responseBitsRemaining -= dataBitsRemaining; - dataBitsRemaining = 0; - } - else - { - //Current Byte Full - dataBitsRemaining = dataBitsRemaining - responseBitsRemaining; - responseByteOffset++; - responseBitsRemaining = 8; - values[responseByteOffset] = 0x00; //Clear Next Response Byte - } - } - } - - return L_OK; -} - -int LinxBeagleBone::AnalogReadNoPacking(unsigned char numChans, unsigned char* channels, unsigned long* values) -{ - //Loop Over All AI channels In Command Packet - for(int i=0; i> i%8) & 0x01) == LOW) - { - fprintf(DigitalValueHandles[channels[i]], "0"); - fflush(DigitalValueHandles[channels[i]]); - } - else - { - fprintf(DigitalValueHandles[channels[i]], "1"); - fflush(DigitalValueHandles[channels[i]]); - } - } - } - - return L_OK; -} - -int LinxBeagleBone::DigitalWrite(unsigned char channel, unsigned char value) -{ - return DigitalWrite(1, &channel, &value); -} - -int LinxBeagleBone::DigitalWriteNoPacking(unsigned char numChans, unsigned char* channels, unsigned char* values) -{ - //Generate Directions Array (waste some memory, save some CPU) - unsigned char directions[numChans]; - - for(int i=0; i< numChans; i++) - { - directions[i] = 0xFF; - } - - if(DigitalSetDirection(numChans, channels, directions) != L_OK) - { - DebugPrintln("Digital Write Fail - Set Direction Failed"); - } - - for(int i=0; i= NumSpiSpeeds) - index = NumSpiSpeeds-1; - SpiSetSpeeds[channel] = *(SpiSupportedSpeeds+index); - *actualSpeed = *(SpiSupportedSpeeds+index); - - return L_OK; -} - -int LinxBeagleBone::SpiWriteRead(unsigned char channel, unsigned char frameSize, unsigned char numFrames, unsigned char csChan, unsigned char csLL, unsigned char* sendBuffer, unsigned char* recBuffer) -{ - unsigned char nextByte = 0; //First Byte Of Next SPI Frame - - //SPI Hardware Only Supports MSb First Transfer. If Configured for LSb First Reverse Bits In Software - if( SpiBitOrders[channel] == LSBFIRST ) - { - for(int i=0; i< frameSize*numFrames; i++) - { - sendBuffer[i] = ReverseBits(sendBuffer[i]); - } - } - - struct spi_ioc_transfer transfer = {}; - - //Set CS As Output And Make Sure CS Starts Idle - DigitalWrite(csChan, (~csLL & 0x01) ); - - for(int i=0; i< numFrames; i++) - { - //Setup Transfer - transfer.tx_buf = (unsigned long)(sendBuffer+nextByte); - transfer.rx_buf = (unsigned long)(recBuffer+nextByte); - transfer.len = frameSize; - transfer.delay_usecs = 0; - transfer.speed_hz = SpiSetSpeeds[channel]; - //transfer.speed_hz = 25000; - transfer.bits_per_word = 8; - - //CS Active - DigitalWrite(csChan, csLL); - - //Transfer Data - int retVal = ioctl(SpiHandles[channel], SPI_IOC_MESSAGE(1), &transfer); - - //CS Idle - DigitalWrite(csChan, (~csLL & 0x01) ); - - if (retVal < 0) - { - DebugPrintln("SPI Fail - Failed To Transfer Data"); - return LSPI_TRANSFER_FAIL; - } - - nextByte += frameSize; - } - - return L_OK; -} - - -//--------------------------------------------------------I2C------------------------------------------------------- -int LinxBeagleBone::I2cOpenMaster(unsigned char channel) -{ - //Export Dev Tree Overlay If Device DNE - if(!fileExists(I2cPaths[channel].c_str())) - { - DebugPrint("I2C - Loading DTO "); - DebugPrintln(I2cDtoNames[channel].c_str()); - if(FilePathLayout == 7) - { - if(!loadDto(I2cDtoNames[channel].c_str())) - { - DebugPrintln("I2C Fail - Failed To Load BB-I2C DTO"); - return LI2C_OPEN_FAIL; - } - } - } - - int handle = open(I2cPaths[channel].c_str(), O_RDWR); - if (handle < 0) - { - DebugPrintln("I2C Fail - Failed To Open I2C Channel"); - return LI2C_OPEN_FAIL; - } - else - { - I2cHandles[channel] = handle; - } - return L_OK; -} - -int LinxBeagleBone::I2cSetSpeed(unsigned char channel, unsigned long speed, unsigned long* actualSpeed) -{ - return L_FUNCTION_NOT_SUPPORTED; -} - -int LinxBeagleBone::I2cWrite(unsigned char channel, unsigned char slaveAddress, unsigned char eofConfig, unsigned char numBytes, unsigned char* sendBuffer) -{ - //Check EOF - Currently Only Support 0x00 - if(eofConfig != EOF_STOP) - { - DebugPrintln("I2C Fail - EOF Not Supported"); - return LI2C_EOF; - } - - //Set Slave Address - if (ioctl(I2cHandles[channel], I2C_SLAVE, slaveAddress) < 0) - { - //Failed To Set Slave Address - DebugPrintln("I2C Fail - Failed To Set Slave Address"); - return LI2C_SADDR; - } - - //Write Data - int retVal = write(I2cHandles[channel], sendBuffer, numBytes); - if(retVal != numBytes) - { - DebugPrintln("I2C Fail - Failed To Write All Data"); - //return LI2C_WRITE_FAIL; - return errno; - } - - return L_OK; -} - -int LinxBeagleBone::I2cRead(unsigned char channel, unsigned char slaveAddress, unsigned char eofConfig, unsigned char numBytes, unsigned int timeout, unsigned char* recBuffer) -{ - //Check EOF - Currently Only Support 0x00 - if(eofConfig != EOF_STOP) - { - return LI2C_EOF; - } - - //Set Slave Address - if (ioctl(I2cHandles[channel], I2C_SLAVE, slaveAddress) < 0) - { - //Failed To Set Slave Address - return LI2C_SADDR; - } - - if(read(I2cHandles[channel], recBuffer, numBytes) < numBytes) - { - return LI2C_READ_FAIL; - } - - return L_OK; -} - -int LinxBeagleBone::I2cClose(unsigned char channel) -{ - //Close I2C Channel - if(close(I2cHandles[channel]) < 0) - { - return LI2C_CLOSE_FAIL; - } - - return L_OK; -} - - -//--------------------------------------------------------UART------------------------------------------------------- -int LinxBeagleBone::UartOpen(unsigned char channel, unsigned long baudRate, unsigned long* actualBaud) -{ - - DebugPrintln("UART Open"); - - //Load DTO If Needed - if(!fileExists(UartPaths[channel].c_str())) - { - if(!loadDto(UartDtoNames[channel].c_str())) - { - DebugPrint("UART Fail - Failed To Load "); - DebugPrint(UartDtoNames[channel].c_str()); - DebugPrintln(" DTO"); - return LUART_OPEN_FAIL; - } - } - - //Open UART Handle If Not Already Open - -if(UartHandles[channel] <= 0) - { - int handle = open(UartPaths[channel].c_str(), O_RDWR); - - if (handle <= 0) - { - DebugPrint("UART Fail - Failed To Open UART Handle - "); - DebugPrintln(UartPaths[channel].c_str()); - return LUART_OPEN_FAIL; - } - else - { - UartHandles[channel] = handle; - } - } - /*else - { - DebugPrint("UART "); - DebugPrint(channel, DEC); - DebugPrintln(" already Open."); - }*/ - - if(UartSetBaudRate(channel, baudRate, actualBaud) != L_OK) - { - DebugPrintln("Failed to set baud rate"); - } - - return L_OK; -} - -int LinxBeagleBone::UartSetBaudRate(unsigned char channel, unsigned long baudRate, unsigned long* actualBaud) -{ - //Get Closest Support Baud Rate Without Going Over - - //Loop Over All Supported SPI Speeds - int index = 0; - for(index=0; index < NumUartSpeeds; index++) - { - if(baudRate < *(UartSupportedSpeeds+index)) - { - //Previous Index Was Closest Supported Baud Without Going Over, Index Will Be Decremented Accordingly Below. - break; - } - } - - //Once Loop Completes Index Is One Higher Than The Correct Baud, But Could Be Zero So Check And Decrement Accordingly - //If The Entire Loop Runs Then index == NumUartSpeeds So Decrement It To Get Max Baud - if(index != 0) - { - index = index -1; - } - - //Store Actual Baud Used - *actualBaud = (unsigned long) *(UartSupportedSpeeds+index); - - //Set Baud Rate - struct termios options; - tcgetattr(UartHandles[channel], &options); - - options.c_cflag = *(UartSupportedSpeedsCodes+index) | CS8 | CLOCAL | CREAD; - options.c_iflag = IGNPAR; - options.c_oflag = 0; - options.c_lflag = 0; - - tcflush(UartHandles[channel], TCIFLUSH); - tcsetattr(UartHandles[channel], TCSANOW, &options); - - return L_OK; -} - -int LinxBeagleBone::UartGetBytesAvailable(unsigned char channel, unsigned char *numBytes) -{ - int bytesAtPort = -1; - ioctl(UartHandles[channel], FIONREAD, &bytesAtPort); - - if(bytesAtPort < 0) - { - return LUART_AVAILABLE_FAIL; - } - else - { - *numBytes = (unsigned char) bytesAtPort; - } - return L_OK; -} - -int LinxBeagleBone::UartRead(unsigned char channel, unsigned char numBytes, unsigned char* recBuffer, unsigned char* numBytesRead) -{ - //Check If Enough Bytes Are Available - unsigned char bytesAvailable = -1; - UartGetBytesAvailable(channel, &bytesAvailable); - - if(bytesAvailable >= numBytes) - { - //Read Bytes From Input Buffer - int bytesRead = read(UartHandles[channel], recBuffer, numBytes); - *numBytesRead = (unsigned char) bytesRead; - - if(bytesRead != numBytes) - { - return LUART_READ_FAIL; - } - } - return L_OK; -} - -int LinxBeagleBone::UartWrite(unsigned char channel, unsigned char numBytes, unsigned char* sendBuffer) -{ - int bytesSent = write(UartHandles[channel], sendBuffer, numBytes); - if(bytesSent != numBytes) - { - return LUART_WRITE_FAIL; - } - return L_OK; -} - -int LinxBeagleBone::UartClose(unsigned char channel) -{ - //Close UART Channel, Return OK or Error - if (close(UartHandles[channel]) < 0) - { - return LUART_CLOSE_FAIL; - } - UartHandles[channel] = 0; - return L_OK; -} - - -//--------------------------------------------------------SERVO------------------------------------------------------- -int LinxBeagleBone::ServoOpen(unsigned char numChans, unsigned char* chans) -{ - return L_FUNCTION_NOT_SUPPORTED; -} - -int LinxBeagleBone::ServoSetPulseWidth(unsigned char numChans, unsigned char* chans, unsigned short* pulseWidths) -{ - return L_FUNCTION_NOT_SUPPORTED; -} - -int LinxBeagleBone::ServoClose(unsigned char numChans, unsigned char* chans) -{ - return L_FUNCTION_NOT_SUPPORTED; -} - - -//--------------------------------------------------------GENERAL------------------------------------------------------- -unsigned long LinxBeagleBone::GetMilliSeconds() -{ - timespec mTime; - clock_gettime(CLOCK_MONOTONIC, &mTime); - //return (mTime.tv_nsec / 1000000); - return ( ((unsigned long) mTime.tv_sec * 1000) + mTime.tv_nsec / 1000000); -} - -unsigned long LinxBeagleBone::GetSeconds() -{ - timespec mTime; - clock_gettime(CLOCK_MONOTONIC, &mTime); - return mTime.tv_sec; -} - -void LinxBeagleBone::DelayMs(unsigned long ms) -{ - usleep(ms * 1000); -} - -void LinxBeagleBone::NonVolatileWrite(int address, unsigned char data) -{ - -} - -unsigned char LinxBeagleBone::NonVolatileRead(int address) -{ - return L_FUNCTION_NOT_SUPPORTED; -} - diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/utility/LinxBeagleBone.h b/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/utility/LinxBeagleBone.h deleted file mode 100644 index 0a742c18..00000000 --- a/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/utility/LinxBeagleBone.h +++ /dev/null @@ -1,184 +0,0 @@ -/**************************************************************************************** -** LINX header for BeagleBone family -** -** For more information see: www.labviewmakerhub.com/linx -** For support visit the forums at: www.labviewmakerhub.com/forums/linx -** -** Written By Sam Kristoff -** -** BSD2 License. -****************************************************************************************/ - -#ifndef LINX_BEAGLEBONE_H -#define LINX_BEAGLEBONE_H - -/**************************************************************************************** -** Defines -****************************************************************************************/ -/* -#define DIGITAL_PIN_LEN 3 -#define PWM_PATH_LEN 64 -#define PWM_DTO_NAME_LEN 32 - -#define SPI_PATH_LEN 64 -#define I2C_PATH_LEN 64 -#define UART_PATH_LEN 64 -*/ -#define AI_PATH_LEN 64 - -/**************************************************************************************** -** Includes -****************************************************************************************/ -#include "LinxDevice.h" -#include -#include -#include - -using namespace std; - -/**************************************************************************************** -** Variables -****************************************************************************************/ - -class LinxBeagleBone : public LinxDevice -{ - public: - /**************************************************************************************** - ** Variables - ****************************************************************************************/ - //System - string DtoSlotsPath; //Path to device tree overlay slots file. Varies by OS version. - int FilePathLayout; //Used to indicate the file path layout 7 for 7.x and 8 for 8.x - - //DIO - map DigitalChannels; //Maps LINX DIO Channel Numbers To BB GPIO Channels - map DigitalDirs; //Current DIO Direction Values - map DigitalDirHandles; //File Handles For Digital Pin Directions - map DigitalValueHandles; //File Handles For Digital Pin Values - - //PWM - map PwmDirPaths; //PWM Device Tree Overlay Names - map PwmPeriodHandles; //File Handles For PWM Period Values - map PwmDutyCycleHandles; //File Handles For PWM Duty Cycle Values - map PwmPeriods; //Current PWM Values - unsigned long PwmDefaultPeriod; //Default Period For PWM Channels (nS) - string PwmDutyCycleFileName; - string PwmPeriodFileName; - string PwmEnableFileName; - - //AI - map AiValueHandles; //AI Value Handles - map AiValuePaths; //AI Value Paths - unsigned char NumAiRefIntVals; //Number Of Internal AI Reference Voltages - const unsigned long* AiRefIntVals; //Supported AI Reference Voltages (uV) - const int* AiRefCodes; //AI Ref Values (AI Ref Macros In Wiring Case) - unsigned long AiRefExtMin; //Min External AI Ref Value (uV) - unsigned long AiRefExtMax; //Max External AI Ref Value (uV) - //int* AiHandles; //AI File Handles - //const char (*AiPaths)[AI_PATH_LEN]; //AI Channel File Paths - - //UART - map UartPaths; //UART Channel File Paths - map UartHandles; //File Handles For UARTs - Must Be Int For Termios Functions - map UartDtoNames; //UART Device Tree Overlay Names - unsigned char NumUartSpeeds; //Number Of Support UART Buads - unsigned long* UartSupportedSpeeds; //Supported UART Bauds Frequencies - unsigned long* UartSupportedSpeedsCodes; //Supported UART Baud Divider Codes - - //SPI - map SpiDtoNames; //Device Tree Overlay Names For SPI Master(s) - map SpiPaths; //File Paths For SPI Master(s) - map SpiHandles; //File Handles For SPI Master(s) - unsigned char NumSpiSpeeds; //Number Of Supported SPI Speeds - unsigned long* SpiSupportedSpeeds; //Supported SPI Clock Frequencies - int* SpiSpeedCodes; //SPI Speed Values (Clock Divider Macros In Wiring Case) - map SpiBitOrders; //Stores Bit Orders For SPI Channels (LSBFIRST / MSBFIRST) - map SpiSetSpeeds; //Stores The Set Clock Rate Of Each SPI Channel - unsigned long SpiDefaultSpeed; - - //I2C - map I2cPaths; //File Paths For I2C Master(s) - map I2cHandles; //File Handles For I2C Master(s) - map I2cDtoNames; //Device Tree Overlay Names For I2C Master(s) - unsigned char* I2cRefCount; //Number Opens - Closes On I2C Channel - - - /**************************************************************************************** - ** Constructors - ****************************************************************************************/ - LinxBeagleBone(); - ~LinxBeagleBone(); - - - /**************************************************************************************** - ** Functions - ****************************************************************************************/ - //Analog - virtual int AnalogRead(unsigned char numChans, unsigned char* channels, unsigned char* values); - virtual int AnalogReadNoPacking(unsigned char numChans, unsigned char* channels, unsigned long* values); - virtual int AnalogSetRef(unsigned char mode, unsigned long voltage); - - //DIGITAL - virtual int DigitalSetDirection(unsigned char numChans, unsigned char* channels, unsigned char* values); - virtual int DigitalWrite(unsigned char numChans, unsigned char* channels, unsigned char* values); - virtual int DigitalWrite(unsigned char channel, unsigned char value); - virtual int DigitalWriteNoPacking(unsigned char numChans, unsigned char* channels, unsigned char* values); //Values Not Bit Packed - virtual int DigitalRead(unsigned char numChans, unsigned char* channels, unsigned char* values); - virtual int DigitalReadNoPacking(unsigned char numChans, unsigned char* channels, unsigned char* values); //Response Not Bit Packed - virtual int DigitalWriteSquareWave(unsigned char channel, unsigned long freq, unsigned long duration); - virtual int DigitalReadPulseWidth(unsigned char stimChan, unsigned char stimType, unsigned char respChan, unsigned char respType, unsigned long timeout, unsigned long* width); - - //PWM - virtual int PwmSetDutyCycle(unsigned char numChans, unsigned char* channels, unsigned char* values); - - //SPI - virtual int SpiOpenMaster(unsigned char channel); - virtual int SpiSetBitOrder(unsigned char channel, unsigned char bitOrder); - virtual int SpiSetMode(unsigned char channel, unsigned char mode); - virtual int SpiSetSpeed(unsigned char channel, unsigned long speed, unsigned long* actualSpeed); - virtual int SpiWriteRead(unsigned char channel, unsigned char frameSize, unsigned char numFrames, unsigned char csChan, unsigned char csLL, unsigned char* sendBuffer, unsigned char* recBuffer); - - //I2C - virtual int I2cOpenMaster(unsigned char channel); - virtual int I2cSetSpeed(unsigned char channel, unsigned long speed, unsigned long* actualSpeed); - virtual int I2cWrite(unsigned char channel, unsigned char slaveAddress, unsigned char eofConfig, unsigned char numBytes, unsigned char* sendBuffer); - virtual int I2cRead(unsigned char channel, unsigned char slaveAddress, unsigned char eofConfig, unsigned char numBytes, unsigned int timeout, unsigned char* recBuffer); - virtual int I2cClose(unsigned char channel); - - //UART - virtual int UartOpen(unsigned char channel, unsigned long baudRate, unsigned long* actualBaud); - virtual int UartSetBaudRate(unsigned char channel, unsigned long baudRate, unsigned long* actualBaud); - virtual int UartGetBytesAvailable(unsigned char channel, unsigned char *numBytes); - virtual int UartRead(unsigned char channel, unsigned char numBytes, unsigned char* recBuffer, unsigned char* numBytesRead); - virtual int UartWrite(unsigned char channel, unsigned char numBytes, unsigned char* sendBuffer); - virtual int UartClose(unsigned char channel); - - //Servo - virtual int ServoOpen(unsigned char numChans, unsigned char* chans); - virtual int ServoSetPulseWidth(unsigned char numChans, unsigned char* chans, unsigned short* pulseWidths); - virtual int ServoClose(unsigned char numChans, unsigned char* chans); - - //General - virtual unsigned long GetMilliSeconds(); - virtual unsigned long GetSeconds(); - virtual void DelayMs(unsigned long ms); - virtual void NonVolatileWrite(int address, unsigned char data); - virtual unsigned char NonVolatileRead(int address); - - protected: - /**************************************************************************************** - ** Variables - ****************************************************************************************/ - - /**************************************************************************************** - ** Functions - ****************************************************************************************/ - virtual int digitalSmartOpen(unsigned char numChans, unsigned char* channels); - virtual int pwmSmartOpen(unsigned char numChans, unsigned char* channels); - bool fileExists(const char* path); - bool fileExists(const char* directory, const char* fileName); - bool fileExists(const char* directory, const char* fileName, unsigned long timout); - bool loadDto(const char* dtoName); -}; - -#endif //LINX_BEAGLEBONE_H \ No newline at end of file diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/utility/LinxChannel.cpp b/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/utility/LinxChannel.cpp new file mode 100644 index 00000000..9035c8bd --- /dev/null +++ b/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/utility/LinxChannel.cpp @@ -0,0 +1,487 @@ +/**************************************************************************************** +** LINX - Generic LINX channel implementation. +** +** For more information see: www.labviewmakerhub.com/linx +** For support visit the forums at: www.labviewmakerhub.com/forums/linx +** +** Written By Rolf Kalbermatter +** +** BSD2 License. +****************************************************************************************/ + +/**************************************************************************************** +** Includes +****************************************************************************************/ +#include +#include +#include +#include "LinxDefines.h" +#include "LinxChannel.h" +#include "LinxUtilities.h" + +/************************************ Linx Channel *************************************/ +/**************************************************************************************** +** Constructor/Destructors +****************************************************************************************/ +LinxChannel::LinxChannel(const unsigned char *channelName) +{ + m_Debug = new LinxFmtChannel(); + m_ChannelName = NULL; + size_t len = channelName ? strlen((char*)channelName) : 0; + if (len) + { + m_ChannelName = (char*)malloc(len + 1); + strcpy(m_ChannelName, (char*)channelName); + } +} + +LinxChannel::LinxChannel(LinxFmtChannel *debug, const unsigned char *channelName) +{ + if (debug) + { + debug->AddRef(); + } + else + { + debug = new LinxFmtChannel(); + } + m_Debug = debug; + m_ChannelName = NULL; + size_t len = channelName ? strlen((char*)channelName) : 0; + if (len) + { + m_ChannelName = (char*)malloc(len + 1); + strcpy(m_ChannelName, (char*)channelName); + } +} + +LinxChannel::~LinxChannel(void) +{ + free(m_ChannelName); + m_Debug->Release(); +} + +/**************************************************************************************** +** Public Functions +****************************************************************************************/ +uint32_t LinxChannel::GetName(unsigned char* buffer, uint8_t numBytes) +{ + uint32_t len = m_ChannelName ? (uint32_t)strlen(m_ChannelName) : 0; + if (len && buffer) + { + strncpy((char*)buffer, m_ChannelName, numBytes); + } + return len; +} + +uint32_t LinxChannel::PrintName(void) +{ + if (m_ChannelName) + return m_Debug->Write(m_ChannelName); + return 0; +} + +int32_t LinxChannel::EnableDebug(LinxCommChannel *channel) +{ + return m_Debug->SetDebugChannel(channel); +} + +int32_t LinxChannel::DisableDebug(void) +{ + return m_Debug->SetDebugChannel(NULL); +} + +/**************************************************************************************** +** Private Functions +****************************************************************************************/ +/* +uint32_t LinxChannel::SetName(unsigned char* channelName) +{ + size_t len = channelName ? strlen((char*)channelName) : 0; + if (len) + { + m_ChannelName = (char*)realloc(m_ChannelName, len + 1); + strcpy(m_ChannelName, (char*)channelName); + } + return (uint32_t)len; +} +*/ +/************************************ Linx Analog Channels *****************************/ +/**************************************************************************************** +** Constructors +****************************************************************************************/ +LinxAnalogChannel::LinxAnalogChannel(LinxFmtChannel *debug, const unsigned char *channelName, uint8_t resolution) : LinxChannel(debug, channelName) +{ + m_Resolution = resolution; + m_ResOffset = (int8_t)resolution - 8; +} + +/**************************************************************************************** +** Functions +****************************************************************************************/ +int32_t LinxAnalogChannel::SetResolution(uint8_t resolution) +{ + m_Resolution = resolution; + m_ResOffset = (int8_t)resolution - 8; + return L_OK; +} + +static const uint8_t lookup[] = { 128, 140, 153, 165, 177, 188, 199, 209, 218, 226, 234, 240, 245, 250, 253, 254, 255, 254, 253, 250, 245, 240, 234, 226, 218, 209, 199, 188, 177, 165, 153, 140, 128, 116, 103, 91, 79, 68, 57, 47,38, 30, 22, 16, 11, 6, 3, 2, 1, 2, 3, 6, 11, 16, 22, 30, 38, 47, 57, 68, 79, 91, 103, 116 }; + +int32_t LinxAnalogChannel::GetResolution(uint8_t *resolution) +{ + *resolution = m_Resolution; + return L_OK; +} + +int32_t LinxAiChannel::Read(uint32_t *value) +{ + uint32_t tick = getMsTicks(); + uint32_t size = sizeof(lookup); + uint32_t sinVal = lookup[tick % size]; + *value = (m_ResOffset >= 0) ? sinVal << m_ResOffset : sinVal >> -m_ResOffset; + return L_OK; +} + +int32_t LinxAoChannel::Write(int32_t value) +{ + return L_OK; +} + +/************************************ Linx Digital IO Channel **************************/ +/**************************************************************************************** +** Constructors +****************************************************************************************/ +LinxDioChannel::LinxDioChannel(LinxFmtChannel *debug, uint16_t linxPin, uint16_t gpioPin) : LinxChannel(debug, (unsigned char*)"LinxDioPin") +{ + m_GpioChan = gpioPin; + m_LinxChan = linxPin; + m_State = GPIO_DIRDIRTY | GPIO_PULLDIRTY; + m_Value = 0; +} + +/**************************************************************************************** +** Public Functions +****************************************************************************************/ +int32_t LinxDioChannel::SetState(uint8_t state) +{ + int32_t status = setDirection(state); + if (!status || status == LDIGITAL_PIN_NOCHANGE) + { + status = setPull(state); + if (status == LDIGITAL_PIN_NOCHANGE) + return L_OK; + } + return status; +} + +int32_t LinxDioChannel::Read(uint8_t *value) +{ + int32_t status = setDirection(GPIO_INPUT); + if (!status || status == LDIGITAL_PIN_NOCHANGE) + { + return getValue(value); + } + return status; +} + +int32_t LinxDioChannel::Write(uint8_t value) +{ + int32_t status = setDirection(GPIO_OUTPUT); + if (!status || status == LDIGITAL_PIN_NOCHANGE) + { + return setValue(value); + } + return status; +} + +int32_t LinxDioChannel::WriteSquareWave(uint32_t freq, uint32_t duration) +{ + return L_FUNCTION_NOT_SUPPORTED; +} + +int32_t LinxDioChannel::ReadPulseWidth(uint8_t stimType, uint8_t respChan, uint8_t respType, uint32_t timeout, uint32_t* width) +{ + return L_FUNCTION_NOT_SUPPORTED; +} + +/**************************************************************************************** +** Protected Functions +****************************************************************************************/ +int32_t LinxDioChannel::setDirection(uint8_t state) // direction +{ + char direction = state & GPIO_DIRMASK; + if ((m_State & (GPIO_DIRMASK | GPIO_DIRDIRTY)) != direction) + { + m_State = (m_State & ~GPIO_DIRMASK) | direction; + return L_OK; + } + return LDIGITAL_PIN_NOCHANGE; +} + +int32_t LinxDioChannel::setPull(uint8_t state) // pull-up/down +{ + char pud = state & GPIO_PULLMASK; + if ((m_State & (GPIO_PULLDIRTY | GPIO_PULLMASK)) != pud) + { + m_State = (m_State & ~GPIO_PULLMASK) | pud; + return L_OK; + } + return LDIGITAL_PIN_NOCHANGE; +} + +int32_t LinxDioChannel::setValue(uint8_t value) +{ + m_Value = value; + return L_OK; +} + +int32_t LinxDioChannel::getValue(uint8_t *value) +{ + *value = (++m_Value & GPIO_DIRMASK); + return L_OK; +} + +/************************************ Linx Communication Channel ***********************/ +/**************************************************************************************** +** Public Functions +****************************************************************************************/ +int32_t LinxCommChannel::Read(unsigned char* recBuffer, uint32_t numBytes, int32_t timeout, uint32_t* numBytesRead) +{ + return Read(recBuffer, numBytes, timeout > 0 ? getMsTicks() : 0, timeout, numBytesRead); +} + +int32_t LinxCommChannel::Write(const unsigned char* sendBuffer, uint32_t numBytes, int32_t timeout) +{ + return Write(sendBuffer, numBytes, timeout > 0 ? getMsTicks() : 0, timeout); +} + +/************************************ Linx Format Channel ******************************/ +/**************************************************************************************** +** Constructor/Destructors +****************************************************************************************/ +LinxFmtChannel::LinxFmtChannel(int32_t timeout) +{ + m_Timeout = timeout; + m_Channel = NULL; +} + +LinxFmtChannel::LinxFmtChannel(LinxCommChannel *channel, int32_t timeout) +{ + m_Timeout = timeout; + if (channel) + channel->AddRef(); + m_Channel = channel; +} + +LinxFmtChannel::~LinxFmtChannel(void) +{ + if (m_Channel) + { + m_Channel->Close(); + m_Channel->Release(); + } +} + +/**************************************************************************************** +** Public Functions +****************************************************************************************/ +int32_t LinxFmtChannel::Write(const char s[], int32_t len) +{ + if (m_Channel) + return m_Channel->Write((const unsigned char*)s, len, m_Timeout); + return L_OK; +} + +int32_t LinxFmtChannel::Write(const char s[]) +{ + return Write(s, (int32_t)strlen(s)); +} + +int32_t LinxFmtChannel::Write(int8_t c) +{ + if (m_Channel) + return m_Channel->Write((const unsigned char*)&c, 1, m_Timeout); + return L_OK; +} + +int32_t LinxFmtChannel::Write(uint8_t c) +{ + if (m_Channel) + return m_Channel->Write((const unsigned char*)&c, 1, m_Timeout); + return L_OK; +} + +int32_t LinxFmtChannel::Write(int32_t n) +{ + return Write((int64_t)n); +} + +int32_t LinxFmtChannel::Write(uint32_t n) +{ + return WriteNumber((uint64_t)n, 10); +} + +int32_t LinxFmtChannel::Write(int64_t n) +{ + int32_t status = L_OK; + if (n < 0) + { + status = Write('-'); + n = -n; + } + if (!status) + status = WriteNumber(n, 10); + return status; +} + +int32_t LinxFmtChannel::Write(uint64_t n) +{ + return WriteNumber(n, 10); +} + +int32_t LinxFmtChannel::Write(int64_t n, int8_t base) +{ + if (base == 0) + { + return Write((char)n); + } + else if (base == 10) + { + return Write(n); + } + int32_t status = L_OK; + if (n < 0) + { + status = Write('-'); + n = -n; + } + if (!status) + return WriteNumber(n, base); + return status; +} + +int32_t LinxFmtChannel::Writeln(void) +{ + if (m_Channel) + return m_Channel->Write((const unsigned char*)"\r\n", 2, m_Timeout); + return L_OK; +} + +int32_t LinxFmtChannel::Writeln(const char s[]) +{ + int32_t status = Write(s); + if (!status) + status = Writeln(); + return status; +} + +int32_t LinxFmtChannel::Writeln(const char s[], int32_t len) +{ + int32_t status = Write(s, len); + if (!status) + status = Writeln(); + return status; +} + +int32_t LinxFmtChannel::Writeln(int8_t c) +{ + int32_t status = Write(c); + if (!status) + status = Writeln(); + return status; +} + +int32_t LinxFmtChannel::Writeln(uint8_t c) +{ + int32_t status = Write(c); + if (!status) + status = Writeln(); + return status; +} + +int32_t LinxFmtChannel::Writeln(int32_t n) +{ + int32_t status = Write(n); + if (!status) + status = Writeln(); + return status; +} + +int32_t LinxFmtChannel::Writeln(uint32_t n) +{ + int32_t status = Write(n); + if (!status) + status = Writeln(); + return status; +} + +int32_t LinxFmtChannel::Writeln(int64_t n) +{ + int32_t status = Write(n); + if (!status) + status = Writeln(); + return status; +} + +int32_t LinxFmtChannel::Writeln(uint64_t n) +{ + int32_t status = Write(n); + if (!status) + status = Writeln(); + return status; +} + +int32_t LinxFmtChannel::Writeln(int64_t n, int8_t base) +{ + int32_t status = Write(n, base); + if (!status) + status = Writeln(); + return status; +} + +int32_t LinxFmtChannel::Close(void) +{ + if (m_Channel) + return m_Channel->Close(); + return L_OK; +} + +int32_t LinxFmtChannel::SetTimeout(int32_t timeout) +{ + m_Timeout = timeout; + return L_OK; +} + +int32_t LinxFmtChannel::SetDebugChannel(LinxCommChannel *channel) +{ + if (m_Channel) + m_Channel->Release(); + if (channel) + channel->AddRef(); + m_Channel = channel; + return L_OK; +} + +/**************************************************************************************** +** Private Functions +****************************************************************************************/ +int32_t LinxFmtChannel::WriteNumber(uint64_t n, uint8_t base) +{ + uint32_t i, e = 8 * sizeof(uint64_t); + unsigned char *buf = (unsigned char*)alloca(e); // Assumes 8-bit chars. + + if (n == 0) + { + return Write('0'); + } + + i = e; + while (n > 0) + { + uint8_t tmp = (uint8_t)(n % base); + buf[--i] = tmp < 10 ? '0' + tmp : 'A' + tmp - 10; + n /= base; + } + return Write((const char*)buf + i, e - i); +} diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/utility/LinxChannel.h b/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/utility/LinxChannel.h new file mode 100644 index 00000000..7d014afd --- /dev/null +++ b/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/utility/LinxChannel.h @@ -0,0 +1,365 @@ +/**************************************************************************************** +** LINX header for generic LINX channel and their generic chanel types. +** +** For more information see: www.labviewmakerhub.com/linx +** For support visit the forums at: www.labviewmakerhub.com/forums/linx +** +** Written By Rolf Kalbermatter +** +** BSD2 License. +****************************************************************************************/ + +#ifndef LINX_CHANNEL_H +#define LINX_CHANNEL_H + +/**************************************************************************************** +** Includes +****************************************************************************************/ +//This Makes It Easy For IDE Users To Define Necessary Settings In One Place +//When Using Make Files Define LINXCONFIG To Ignore Config.h File +#ifndef LINXCONFIG + #include "../config/LinxConfig.h" +#endif +#include "LinxDefines.h" +#include "LinxBase.h" + +#define IID_LinxChannel 0 +#define IID_LinxAiChannel 1 +#define IID_LinxAoChannel 2 +#define IID_LinxDioChannel 3 +#define IID_LinxPwmChannel 4 +#define IID_LinxQeChannel 5 +#define IID_LinxUartChannel 6 +#define IID_LinxI2cChannel 7 +#define IID_LinxSpiChannel 8 +#define IID_LinxCanChannel 9 +#define IID_LinxServoChannel 10 +#define LinxNumChannelTypes IID_LinxServoChannel + +class LinxFmtChannel; +class LinxCommChannel; + +class LinxChannel : public LinxBase +{ + public: + /**************************************************************************************** + ** Constructors + ****************************************************************************************/ + LinxChannel(const unsigned char *channelName); + LinxChannel(LinxFmtChannel *debug, const unsigned char *channelName); + virtual ~LinxChannel(void); + + /**************************************************************************************** + ** Functions + ****************************************************************************************/ + virtual uint32_t GetName(unsigned char* buffer, uint8_t numBytes); + virtual uint32_t PrintName(void); + virtual int32_t EnableDebug(LinxCommChannel *channel); + virtual int32_t DisableDebug(void); + + protected: + /**************************************************************************************** + ** Functions + ****************************************************************************************/ + // virtual uint32_t SetName(unsigned char* buffer); + + /**************************************************************************************** + ** Variables + ****************************************************************************************/ + LinxFmtChannel *m_Debug; + + private: + /**************************************************************************************** + ** Variables + ****************************************************************************************/ + char *m_ChannelName; +}; + +class LinxAnalogChannel : public LinxChannel +{ + public: + /**************************************************************************************** + ** Constructors + ****************************************************************************************/ + LinxAnalogChannel(LinxFmtChannel *debug, const unsigned char *channelName, uint8_t resolution); + virtual ~LinxAnalogChannel(void) {}; + + /**************************************************************************************** + ** Functions + ****************************************************************************************/ + virtual int32_t SetResolution(uint8_t resolution); + virtual int32_t GetResolution(uint8_t *resolution); + protected: + int8_t m_ResOffset; + + private: + uint8_t m_Resolution; +}; + +class LinxAiChannel : public LinxAnalogChannel +{ + public: + /**************************************************************************************** + ** Constructors + ****************************************************************************************/ + LinxAiChannel(LinxFmtChannel *debug, const unsigned char *channelName, uint8_t resolution) : LinxAnalogChannel(debug, channelName, resolution) {}; + virtual ~LinxAiChannel(void) {}; + + /**************************************************************************************** + ** Functions + ****************************************************************************************/ + virtual int32_t Read(uint32_t *value); +}; + +class LinxAoChannel : public LinxAnalogChannel +{ + public: + /**************************************************************************************** + ** Constructors + ****************************************************************************************/ + LinxAoChannel(LinxFmtChannel *debug, const unsigned char *channelName, uint8_t resolution) : LinxAnalogChannel(debug, channelName, resolution) {}; + virtual ~LinxAoChannel(void) {}; + + /**************************************************************************************** + ** Functions + ****************************************************************************************/ + virtual int32_t Write(int32_t value); +}; + +class LinxDioChannel : public LinxChannel +{ + public: + /**************************************************************************************** + ** Constructors + ****************************************************************************************/ + LinxDioChannel(LinxFmtChannel *debug, uint16_t linxPin, uint16_t gpioPin); + virtual ~LinxDioChannel(void) {}; + + /**************************************************************************************** + ** Functions + ****************************************************************************************/ + virtual int32_t SetState(uint8_t state); // direction and pull-up/down + virtual int32_t Read(uint8_t *value); + virtual int32_t Write(uint8_t value); + virtual int32_t WriteSquareWave(uint32_t freq, uint32_t duration); + virtual int32_t ReadPulseWidth(uint8_t stimType, uint8_t respChan, uint8_t respType, uint32_t timeout, uint32_t* width); + + protected: + /**************************************************************************************** + ** Variables + ****************************************************************************************/ + uint16_t m_GpioChan; // Maps LINX DIO Channel Number To GPIO Channel + uint16_t m_LinxChan; // Maps LINX DIO Channel Number To GPIO Channel + + /**************************************************************************************** + ** Functions + ****************************************************************************************/ + virtual int32_t setDirection(uint8_t dir); // direction + virtual int32_t setPull(uint8_t pud); // pull-up/down + virtual int32_t setValue(uint8_t value); + virtual int32_t getValue(uint8_t *value); + + private: + /**************************************************************************************** + ** Variables + ****************************************************************************************/ + uint8_t m_State; + uint8_t m_Value; +}; + +class LinxPwmChannel : public LinxChannel +{ + public: + /**************************************************************************************** + ** Variables + ****************************************************************************************/ + + /**************************************************************************************** + ** Constructors + ****************************************************************************************/ + LinxPwmChannel(LinxFmtChannel *debug, const unsigned char *channelName) : LinxChannel(debug, channelName) {}; + virtual ~LinxPwmChannel(void) {}; + + /**************************************************************************************** + ** Functions + ****************************************************************************************/ + virtual int32_t SetDutyCycle(uint8_t value) = 0; + virtual int32_t SetFrequency(uint32_t value) = 0; +}; + +class LinxQeChannel : public LinxChannel +{ + public: + /**************************************************************************************** + ** Constructors + ****************************************************************************************/ + LinxQeChannel(LinxFmtChannel *debug, const unsigned char *channelName) : LinxChannel(debug, channelName) {}; + virtual ~LinxQeChannel(void) {}; + + /**************************************************************************************** + ** Functions + ****************************************************************************************/ + virtual int32_t Read(uint32_t *value) = 0; +}; + +class LinxCommChannel : public LinxChannel +{ + public: + /**************************************************************************************** + ** Constructors + ****************************************************************************************/ + LinxCommChannel(LinxFmtChannel *debug, const unsigned char *channelName) : LinxChannel(debug, channelName) {}; + virtual ~LinxCommChannel(void) {}; + + /**************************************************************************************** + ** Functions + ****************************************************************************************/ + virtual int32_t Read(unsigned char* recBuffer, uint32_t numBytes, int32_t timeout, uint32_t* numBytesRead); + virtual int32_t Read(unsigned char* recBuffer, uint32_t numBytes, uint32_t start, int32_t timeout, uint32_t* numBytesRead) = 0; + virtual int32_t Write(const unsigned char* sendBuffer, uint32_t numBytes, int32_t timeout); + virtual int32_t Write(const unsigned char* sendBuffer, uint32_t numBytes, uint32_t start, int32_t timeout) = 0; + virtual int32_t Close(void) = 0; +}; + +class LinxUartChannel : public LinxCommChannel +{ + public: + /**************************************************************************************** + ** Constructors + ****************************************************************************************/ + LinxUartChannel(LinxFmtChannel *debug, const unsigned char *deviceName) : LinxCommChannel(debug, deviceName) {}; + virtual ~LinxUartChannel(void) {}; + + /**************************************************************************************** + ** Functions + ****************************************************************************************/ + virtual int32_t SetSpeed(uint32_t speed, uint32_t* actualSpeed) = 0; + virtual int32_t SetParameters(uint8_t dataBits, uint8_t stopBits, LinxUartParity parity) = 0; +}; + +class LinxI2cChannel : public LinxChannel +{ + public: + /**************************************************************************************** + ** Constructors + ****************************************************************************************/ + LinxI2cChannel(LinxFmtChannel *debug, const unsigned char *channelName) : LinxChannel(debug, channelName) {}; + virtual ~LinxI2cChannel(void) {}; + + /**************************************************************************************** + ** Functions + ****************************************************************************************/ + virtual int32_t Open(void) = 0; + virtual int32_t SetSpeed(uint32_t speed, uint32_t* actualSpeed) = 0; + virtual int32_t Read(uint8_t slaveAddress, uint8_t eofConfig, int32_t numBytes, uint32_t timeout, unsigned char* recBuffer) = 0; + virtual int32_t Write(uint8_t slaveAddress, uint8_t eofConfig, int32_t numBytes, unsigned char* sendBuffer) = 0; + virtual int32_t Transfer(uint8_t slaveAddress, int32_t numFrames, int32_t *flags, int32_t *numBytes, uint32_t timeout, unsigned char* sendBuffer, unsigned char* recBuffer) = 0; + virtual int32_t Close(void) = 0; +}; + +class LinxSpiChannel : public LinxChannel +{ + public: + /**************************************************************************************** + ** Constructors + ****************************************************************************************/ + LinxSpiChannel(LinxFmtChannel *debug, const unsigned char *channelName) : LinxChannel(debug, channelName) {}; + virtual ~LinxSpiChannel(void) {}; + + /**************************************************************************************** + ** Functions + ****************************************************************************************/ + virtual int32_t Open(void) = 0; + virtual int32_t SetBitOrder(uint8_t bitOrder) = 0; + virtual int32_t SetMode(uint8_t mode) = 0; + virtual int32_t SetSpeed(uint32_t speed, uint32_t* actualSpeed) = 0; + virtual int32_t WriteRead(uint8_t frameSize, uint8_t numFrames, uint8_t csChan, uint8_t csLL, unsigned char* sendBuffer, unsigned char* recBuffer) = 0; + virtual int32_t Close(void)= 0; +}; + +class LinxCanChannel : public LinxChannel +{ + public: + /**************************************************************************************** + ** Constructors + ****************************************************************************************/ + LinxCanChannel(LinxFmtChannel *debug, const unsigned char *channelName) : LinxChannel(debug, channelName) {}; + virtual ~LinxCanChannel(void) {}; + + /**************************************************************************************** + ** Functions + ****************************************************************************************/ + /* Just a placeholder currently, actual methods will need to be determined later */ + virtual int32_t Read(double *value) = 0; + virtual int32_t Write(double *value) = 0; +}; + +class LinxServoChannel : public LinxChannel +{ + public: + /**************************************************************************************** + ** Constructors + ****************************************************************************************/ + LinxServoChannel(LinxFmtChannel *debug, const unsigned char *channelName) : LinxChannel(debug, channelName) {}; + virtual ~LinxServoChannel(void) {}; + + /**************************************************************************************** + ** Functions + ****************************************************************************************/ + virtual int32_t SetPulseWidth(uint16_t width) = 0; + virtual int32_t Close(void) = 0; +}; + +// A channel that can wrap a LinxCommChannel and provide formatting functions for simple debug output +class LinxFmtChannel : public LinxBase +{ + public: + /**************************************************************************************** + ** Constructors + ****************************************************************************************/ + LinxFmtChannel(int32_t timeout = TIMEOUT_INFINITE); + LinxFmtChannel(LinxCommChannel *channel, int32_t timeout = TIMEOUT_INFINITE); + virtual ~LinxFmtChannel(void); + + /**************************************************************************************** + ** Functions + ****************************************************************************************/ + virtual int32_t Write(const char s[]); + virtual int32_t Write(const char s[], int32_t len); + virtual int32_t Write(int8_t c); + virtual int32_t Write(uint8_t c); + virtual int32_t Write(int32_t n); + virtual int32_t Write(uint32_t n); + virtual int32_t Write(int64_t n); + virtual int32_t Write(uint64_t n); + virtual int32_t Write(int64_t n, int8_t base); + virtual int32_t Writeln(void); + virtual int32_t Writeln(const char s[]); + virtual int32_t Writeln(const char s[], int32_t len); + virtual int32_t Writeln(int8_t c); + virtual int32_t Writeln(uint8_t c); + virtual int32_t Writeln(int32_t n); + virtual int32_t Writeln(uint32_t n); + virtual int32_t Writeln(int64_t n); + virtual int32_t Writeln(uint64_t n); + virtual int32_t Writeln(int64_t n, int8_t base); + virtual int32_t Close(void); + + int32_t SetTimeout(int32_t timeout); + int32_t SetDebugChannel(LinxCommChannel *channel); + + protected: + + private: + /**************************************************************************************** + ** Variables + ****************************************************************************************/ + LinxCommChannel *m_Channel; + int32_t m_Timeout; + + /**************************************************************************************** + ** Functions + ****************************************************************************************/ + int32_t WriteNumber(uint64_t n, uint8_t base); +}; +#endif // LINX_CHANNEL_H \ No newline at end of file diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/utility/LinxCommand.h b/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/utility/LinxCommand.h new file mode 100644 index 00000000..6288b2a9 --- /dev/null +++ b/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/utility/LinxCommand.h @@ -0,0 +1,160 @@ +/**************************************************************************************** +** LINX header for remote commands. +** +** For more information see: www.labviewmakerhub.com/linx +** For support visit the forums at: www.labviewmakerhub.com/forums/linx +** +** Written By Rolf Kalbermatter +** +** BSD2 License. +****************************************************************************************/ + +#ifndef LINX_COMMAND_H +#define LINX_COMMAND_H + +#define PROTOCOL_VERSION 1 + +#define LCMD_EXTENDED_FLAG 0xFF00 +#define CUSTOM_CMD_PREFIX 0xFC00 + +#define LCMD_SYNC 0x0000 // Sync +//#define LCMD_FLUSH_BUF 0x0001 // Flush Linx Connection Buffer +//#define LCMD_RESET 0x0002 // Reset +#define LCMD_GET_DEV_ID 0x0003 // Get Device ID +#define LCMD_GET_API_VER 0x0004 // Get LINX API Version +#define LCMD_GET_UART_MAX_BAUD 0x0005 // Get UART Max Baud +#define LCMD_SET_UART_MAX_BAUD 0x0006 // Set UART Listener Interface Max Baud +#define LCMD_GET_MAX_PACK_SIZE 0x0007 // Get Max Packet Size +#define LCMD_GET_DIO_CHANS 0x0008 // Get DIO Channels +#define LCMD_GET_AI_CHANS 0x0009 // Get AI Channels +#define LCMD_GET_AO_CHANS 0x000A // Get AO Channels +#define LCMD_GET_PWM_CHANS 0x000B // Get PWM Channels +#define LCMD_GET_QE_CHANS 0x000C // Get QE Channels +#define LCMD_GET_UART_CHANS 0x000D // Get UART Channels +#define LCMD_GET_I2C_CHANS 0x000E // Get I2C Channels +#define LCMD_GET_SPI_CHANS 0x000F // Get SPI Channels +#define LCMD_GET_CAN_CHANS 0x0010 // Get CAN Channels +#define LCMD_DISCONNECT 0x0011 // Disconnect +#define LCMD_SET_DEVICE_USER_ID 0x0012 // Set Device User Id +#define LCMD_GET_DEVICE_USER_ID 0x0013 // Get Device User Id +#define LCMD_SET_ETH_ADDR 0x0014 // Set Device Ethernet IP +#define LCMD_GET_ETH_ADDR 0x0015 // Get Device Ethernet IP +#define LCMD_SET_ETH_PORT 0x0016 // Set Device Ethernet Port +#define LCMD_GET_ETH_PORT 0x0017 // Get Device Ethernet Port +#define LCMD_SET_WIFI_ADDR 0x0018 // Set Device WIFI IP +#define LCMD_GET_WIFI_ADDR 0x0019 // Get Device WIFI IP +#define LCMD_SET_WIFI_PORT 0x001A // Set Device WIFI Port +#define LCMD_GET_WIFI_PORT 0x001B // Get Device WIFI Port +#define LCMD_SET_WIFI_SSID 0x001C // Set Device WIFI SSID +#define LCMD_GET_WIFI_SSID 0x001D // Get Device WIFI SSID +#define LCMD_SET_WIFI_SEC 0x001E // Set Device WIFI Security Type +#define LCMD_GET_WIFI_SEC 0x001F // Get Device WIFI Security Type +#define LCMD_SET_WIFI_PASS 0x0020 // Set Device WIFI Password +//#define LCMD_GET_WIFI_PASS 0x0021 // Get Device WIFI Password - Intentionally Not Implemented For Security Reasons. +#define LCMD_SET_DEV_MAX_BAUD 0x0022 // Set Device Max Baud +#define LCMD_GET_DEV_MAX_BAUD 0x0023 // Get Device Max Baud +#define LCMD_GET_DEV_NAME 0x0024 // Get Device Name +#define LCMD_GET_SERVO_CHANS 0x0025 // Get Servo Channels +//---0x0026 to 0x003F Reserved--- + +/**************************************************************************************** +** Digital I/O +****************************************************************************************/ +#define LCMD_SET_PIN_MODE 0x0040 // Set Pin Mode +#define LCMD_DIGITAL_WRITE 0x0041 // Digital Write +#define LCMD_DIGITAL_READ 0x0042 // Digital Read +#define LCMD_SET_SQUARE_WAVE 0x0043 // Write Square Wave +#define LCMD_GET_PULSE_WIDTH 0x0044 // Read Pulse Width +//---0x0045 to 0x005F Reserved--- + +/**************************************************************************************** +** Analog I/O +****************************************************************************************/ +#define LCMD_SET_AI_REF_VOLT 0x0060 // Set AI Reference Voltage +#define LCMD_GET_AI_REF_VOLT 0x0061 // Get AI Reference Voltage +//#define LCMD_SET_AI_RESOLUTIOM 0x0062 // Set AI Resolution +#define LCMD_GET_AI_RESOLUTION 0x0063 // Get AI Resolution +#define LCMD_ANALOG_READ 0x0064 // Analog Read +//#define LCMD_SET_AO_RESOLUTION 0x0065 // Set AO Resolution +#define LCMD_GET_AO_RESOLUTION 0x0066 // Get AO Resolution +#define LCMD_ANALOG_WRITE 0x0067 // Analog Write +//---0x0068 to 0x007F Reserved--- + +/**************************************************************************************** +** PWM +****************************************************************************************/ +//#define LCMD_PWM_OPEN 0x0080 // PWM Open +//#define LCMD_SET_PWM_MODE 0x0081 // PWM Set Mode +//#define LCMD_SET_PWN_FREQ 0x0082 // PWM Set Frequency +#define LCMD_SET_PWM_DUTY_CYCLE 0x0083 // PWM Set Duty Cycle +//#define LCMD_PWM_CLOSE 0x0084 // PWM Close +//---0x0085 to 0x009F Reserved--- + +/**************************************************************************************** +** QE +****************************************************************************************/ +//---0x00A0 to 0x00BF Reserved--- + +/**************************************************************************************** +** UART +****************************************************************************************/ +#define LCMD_UART_OPEN 0x00C0 // UART Open +#define LCMD_UART_SET_BAUD 0x00C1 // UART Set Buad Rate +#define LCMD_UART_GET_BYTES 0x00C2 // UART Get Bytes Available +#define LCMD_UART_READ 0x00C3 // UART Read +#define LCMD_UART_WRITE 0x00C4 // UART Write +#define LCMD_UART_CLOSE 0x00C5 // UART Close +#define LCMD_UART_OPEN_BY_NAME 0x00C6 // UART Open by Name +#define LCMD_UART_SET_ATTRIBUTE 0x00C7 // UART SetAttribute (data bits, stop bits, parity) +//---0x00C8 to 0x00DF Reserved--- + +/**************************************************************************************** +** I2C +****************************************************************************************/ +#define LCMD_I2C_OPEN 0x00E0 // I2C Open Master +#define LCMD_I2C_SPEED 0x00E1 // I2C Set Speed +#define LCMD_I2C_WRITE 0x00E2 // I2C Write +#define LCMD_I2C_READ 0x00E3 // I2C Read +#define LCMD_I2C_CLOSE 0x00E4 // I2C Close +//#define LCMD_I2C_TRANSFER 0x00E5 // I2C Write Read +//#define LCMD_I2C_SET_MODE 0x00E7 // I2C Set Mode +//---0x00E5 to 0x00FF Reserved--- + +/**************************************************************************************** +** SPI +****************************************************************************************/ +#define LCMD_SPI_OPEN 0x0100 // SPI Open Master +#define LCMD_SPI_SET_ORDER 0x0101 // SPI Set Bit Order +#define LCMD_SPI_SET_FREQ 0x0102 // SPI Set Clock Frequency +#define LCMD_SPI_SET_MODE 0x0103 // SPI Set Mode +//#define LCMD_SPI_FRAME_SIZE 0x0104 //LEGACY - SPI Set Frame Size +//#define LCMD_SPI_SET_LOG 0x0105 //LEGACY - SPI Set CS Logic Level +//#define LCMD_SPI_SET_CS 0x0106 //LEGACY - SPI Set CS Channel +#define LCMD_SPI_TRANSFER 0x0107 // SPI Write Read +#define LCMD_SPI_CLOSE 0x0108 // SPI Close +//---0x0109 to 0x011F Reserved--- + +/**************************************************************************************** +** CAN +****************************************************************************************/ +//---0x0120 to 0x013F Reserved--- + +/**************************************************************************************** +** SERVO +****************************************************************************************/ +#define LCMD_SERVO_INIT 0x0140 // Servo Init +#define LCMD_SERVO_SET_PULSE 0x0141 // Servo Set Pulse Width +#define LCMD_SERVE_CLOSE 0x0142 // Servo Close +//---0x0143 to 0x015F Reserved--- + +/**************************************************************************************** +** WS2812 +****************************************************************************************/ +#define LCMD_WS2812_OPEN 0x0160 // WS2812 Open +#define LCMD_WS2812_WRITE_ONE 0x0161 // WS2812 Write One Pixel +#define LCMD_WS2812_WRITE_N 0x0162 // WS2812 Write N Pixels +#define LCMD_WS2812_REFRESH 0x0163 // WS2812 Refresh +#define LCMD_WS2812_CLOSE 0x0164 // WS2812 Close +//---0x0165 to 0x017F Reserved--- + +#endif // LINX_COMMAND_H \ No newline at end of file diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/utility/LinxDefines.h b/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/utility/LinxDefines.h new file mode 100644 index 00000000..20439bc1 --- /dev/null +++ b/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/utility/LinxDefines.h @@ -0,0 +1,253 @@ +/**************************************************************************************** +** LINX header for Linx Support. +** +** For more information see: www.labviewmakerhub.com/linx +** For support visit the forums at: www.labviewmakerhub.com/forums/linx +** +** Written By Rolf Kalbermatter +** +** BSD2 License. +****************************************************************************************/ + +#ifndef LINX_DEFINES_H +#define LINX_DEFINES_H + +#if defined(_WIN32) || defined(__WIN32__) || defined(__WINDOWS__) +# if defined (_DEBUG) +# define DEBUG 1 +# endif +# if defined(_WIN32) +# define Win32 1 +# endif +# if defined(_WIN64) +# define Win64 1 +# endif +# if _MSC_VER < 1500 + typedef signed char int8_t; + typedef unsigned char uint8_t; + typedef signed short int16_t; + typedef unsigned short uint16_t; + typedef signed int int32_t; + typedef unsigned int uint32_t; + typedef signed long long int64_t; + typedef unsigned long long uint64_t; + +# else +# include +# endif +# include +# include +# include +# define SockErr() WSAGetLastError() + typedef SOCKET NetObject; +# define IsANetObject(s) ((s) != INVALID_SOCKET) +# define kInvalNetObject INVALID_SOCKET +# define kSocketError SOCKET_ERROR +# define socklen_t int +#elif ARDUINO_VERSION +# define Arduino 1 +# if ARDUINO_VERSION >= 100 +# include +# else +# include +# endif +#elif defined(unix) || defined(__unix) || defined(__unix__) +# define Unix 1 +# include +# include +# define SockErr() errno + typedef int NetObject; +# define IsANetObject(s) ((s) >= 0) +# define kInvalNetObject (-1) +# define kSocketError (-1) +# define closesocket(fd) close(fd) +# define ioctlsocket(s, t, p) ioctl(s, t, p) +#elif defined(__APPLE__) && defined(__MACH__) +# define MacOSX 1 +# include +# include +# define SockErr() errno + typedef int NetObject; +# define IsANetObject(s) ((s) >= 0) +# define kInvalNetObject (-1) +# define kSocketError (-1) +# define closesocket(fd) close(fd) +# define ioctlsocket(s, t, p) ioctl(s, t, p) +#elif defined(__WXWORKS__) || defined(__vxworks__) +# define VxWorks 1 +# include +# include +# define SockErr() errnoGet() + typedef int NetObject; +# define IsANetObject(s) ((s) >= 0) +# define kInvalNetObject (-1) +# define kSocketError (-1) +# define closesocket(fd) close(fd) +# define ioctlsocket(s, t, p) ioctl(s, t, p) +#endif + +// Family codes +#define LINX_FAMILY_DIGILENT 0x01 +#define LINX_FAMILY_ARDUINO 0x02 +#define LINX_FAMILY_PJRC 0x03 +#define LINX_FAMILY_RASPBERRY 0x04 +#define LINX_FAMILY_SPARKFUN 0x05 +#define LINX_FAMILY_TI 0x06 +#define LINX_FAMILY_ESP 0x07 +#define LINX_FAMILY_WINDOWS 0x08 + +// GPIO Values +#define GPIO_LOW 0 +#define GPIO_HIGH 1 + +// GPIO Function Select +#define GPIO_INPUT 0x00 +#define GPIO_OUTPUT 0x01 +#define GPIO_ALT0 0x04 +#define GPIO_ALT1 0x05 +#define GPIO_ALT2 0x06 +#define GPIO_ALT3 0x07 +#define GPIO_ALT4 0x03 +#define GPIO_ALT5 0x02 +#define GPIO_ALTMASK 0x06 + +#define GPIO_DIRMASK 0x01 + +#define GPIO_DIRDIRTY 0x80 + +// GPIO pull-down/pull-up +#define GPIO_PULLNONE 0x00 +#define GPIO_PULLDOWN 0x10 +#define GPIO_PULLUP 0x20 +#define GPIO_PULLOFF 0x30 +#define GPIO_PULLMASK 0x30 + +#define GPIO_PULLDIRTY 0x40 + +// SPI +#ifndef LSBFIRST + #define LSBFIRST 0 +#endif + +#ifndef MSBFIRST + #define MSBFIRST 1 +#endif + +//I2C +#define EOF_STOP 0 +#define EOF_RESTART 1 +#define EOF_RESTART_NOSTOP 2 +#define EOF_NOSTOP 3 + +//UART +#ifndef BIN + #define BIN 2 +#endif +#ifndef OCT + #define OCT 8 +#endif +#ifndef DEC + #define DEC 10 +#endif +#ifndef HEX + #define HEX 16 +#endif + +#define TIMEOUT_INFINITE -1 + +//Non-Volatile Storage Addresses +#define NVS_USERID 0x00 +#define NVS_ETHERNET_IP 0x02 +#define NVS_ETHERNET_PORT 0x06 +#define NVS_WIFI_IP 0x08 +#define NVS_WIFI_PORT 0x0C +#define NVS_WIFI_SSID_SIZE 0x0E +#define NVS_WIFI_SSID 0x0F +#define NVS_WIFI_SECURITY_TYPE 0x30 +#define NVS_WIFI_PW_SIZE 0x31 +#define NVS_WIFI_PW 0x32 +#define NVS_SERIAL_INTERFACE_MAX_BAUD 0x72 + +#define UNDEFINED_CHANNEL 0xFF + +/**************************************************************************************** +** Typedefs +****************************************************************************************/ +typedef enum LinxStatus +{ + L_WAITING = -1, + L_OK = 0, + L_FUNCTION_NOT_SUPPORTED, + L_REQUEST_RESEND, + L_UNKNOWN_ERROR, + L_DISCONNECT, + LERR_RUNNING, + LERR_MEMORY, + LERR_BADPARAM, + LERR_BADCHAN, + LERR_IO, + LERR_PACKET_NUM, + LERR_CHECKSUM, + LERR_INVALID_FRAME, + LERR_LENGTH_NOT_SUPPORTED, + LERR_MSG_TO_LONG, + LERR_CLOSED_BY_PEER, + LERR_TIMEOUT +} LinxStatus; + +typedef enum AioStatus +{ + LANALOG_REF_MODE_ERROR = 128, + LANALOG_REF_VAL_ERROR = 129 +} AioStatus; + +typedef enum DioStatus +{ + LDIGITAL_PIN_NOCHANGE = 132, + LDIGITAL_PIN_NOT_AVAIL = 133, +} DioStatus; + + +typedef enum SPIStatus +{ + LSPI_OPEN_FAIL = 128, + LSPI_TRANSFER_FAIL, + LSPI_CLOSE_FAIL, + LSPI_DEVICE_NOT_OPEN, +} SPIStatus; + +typedef enum I2CStatus +{ + LI2C_SADDR = 128, + LI2C_EOF, + LI2C_WRITE_FAIL, + LI2C_READ_FAIL, + LI2C_CLOSE_FAIL, + LI2C_OPEN_FAIL, + LI2C_DEVICE_NOT_OPEN, +} I2CStatus; + +typedef enum UartStatus +{ + LUART_OPEN_FAIL = 128, + LUART_SET_PARAM_FAIL, + LUART_AVAILABLE_FAIL, + LUART_READ_FAIL, + LUART_WRITE_FAIL, + LUART_CLOSE_FAIL, +} UartStatus; + +typedef enum LinxUartParity +{ + Ignore, + None, + Odd, + Even, + Mark, + Space, +} LinxUartParity; + +#define Min(a, b) (((a) < (b)) ? (a) : (b)) +#define Max(a, b) (((a) > (b)) ? (a) : (b)) + +#endif \ No newline at end of file diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/utility/LinxDevice.cpp b/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/utility/LinxDevice.cpp index 9c2ffe35..0cf3a5df 100644 --- a/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/utility/LinxDevice.cpp +++ b/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/utility/LinxDevice.cpp @@ -4,7 +4,8 @@ ** For more information see: www.labviewmakerhub.com/linx ** For support visit the forums at: www.labviewmakerhub.com/forums/linx ** -** Written By Sam Kristoff +** Written by Sam Kristoff +** Modifications by Rolf Kalbermatter ** ** BSD2 License. ****************************************************************************************/ @@ -12,379 +13,961 @@ /**************************************************************************************** ** Includes ****************************************************************************************/ -#include +#include +#include +#include "LinxDefines.h" +#if Unix +#include "LinxLinuxChannel.h" +#elif Win32 +#include "LinxWindowsChannel.h" +#endif #include "LinxDevice.h" - +#include "LinxUtilities.h" /**************************************************************************************** ** Constructors/Destructor ****************************************************************************************/ -LinxDevice::LinxDevice() +LinxDevice::LinxDevice(LinxFmtChannel *debug) { + if (debug) + { + debug->AddRef(); + } + else + { + debug = new LinxFmtChannel(); + } + m_Debug = debug; + + //LINX API Version + LinxApiMajor = 0; + LinxApiMinor = 0; + LinxApiSubminor = 0; + DeviceFamily = 0xFE; DeviceId = 0x00; - ListenerBufferSize = 128; + + //----Peripherals---- + + // DIO + + // AI + AiResolution = 0; + AiRefDefault = 0; + AiRefSet = 0; + + // AO + AoResolution = 0; + AoRefDefault = 0; + AoRefSet = 0; + + // PWM + + // QE + + // UART + UartMaxBaud = 0; + + // I2C + + // SPI + + // CAN + + // Servo + + // Debug } -LinxDevice::~LinxDevice() +LinxDevice::~LinxDevice(void) { + if (m_Debug) + m_Debug->Release(); + + // Close Ai channels + ClearChannels(IID_LinxAiChannel); + + // Close Ao channels + ClearChannels(IID_LinxAoChannel); + + // Close Dio channels + ClearChannels(IID_LinxDioChannel); + // Close Pwm channels + ClearChannels(IID_LinxPwmChannel); + + // Close Uart channels + ClearChannels(IID_LinxUartChannel); + + // Close I2C channels + ClearChannels(IID_LinxI2cChannel); + + // Close Spi channels + ClearChannels(IID_LinxSpiChannel); + + // Close Can channels + ClearChannels(IID_LinxCanChannel); + + // Close Servo channels + ClearChannels(IID_LinxServoChannel); } /**************************************************************************************** ** Public Functions ****************************************************************************************/ - -//Reverse The Order Of Bits In A Byte. This Is Useful For SPI Hardware That Does Not Support Bit Order -unsigned char LinxDevice::ReverseBits(unsigned char b) +void LinxDevice::DebugPrintPacket(unsigned char direction, const unsigned char* packetBuffer) { - b = (b & 0xF0) >> 4 | (b & 0x0F) << 4; - b = (b & 0xCC) >> 2 | (b & 0x33) << 2; - b = (b & 0xAA) >> 1 | (b & 0x55) << 1; - return b; + if (direction == RX) + { + m_Debug->Write("Received :: "); + } + else if(direction == TX) + { + m_Debug->Write("Sending :: "); + } + + for (int32_t i = 0; i < packetBuffer[1]; i++) + { + m_Debug->Write("["); + m_Debug->Write(packetBuffer[i], HEX); + m_Debug->Write("]"); + } + m_Debug->Writeln(); + + if (direction == TX) + { + //Add Second New Line After TX + m_Debug->Writeln(); + } } - -void LinxDevice::EnableDebug(unsigned char channel) -{ - unsigned long actualBaud = 0; - - UartOpen(channel, 115200, &actualBaud); - DebugPrintln("Debugging Enabled"); +void LinxDevice::DebugEnable(LinxCommChannel *channel) +{ + m_Debug->SetDebugChannel(channel); } -void LinxDevice::DelayMs(unsigned long ms) +void LinxDevice::DebugDisable(void) { + m_Debug->SetDebugChannel(NULL); +} +LinxFmtChannel* LinxDevice::GetDebug(void) +{ + m_Debug->AddRef(); + return m_Debug; } -void LinxDevice::DebugPrintPacket(unsigned char direction, const unsigned char* packetBuffer) +//--------------------------------------------------------Analog------------------------------------------------------- +int32_t LinxDevice::AnalogRead(unsigned char numChans, unsigned char* channels, unsigned char* values) { - #if DEBUG_ENABLED >= 0 - if(direction == RX) - { - DebugPrint("Received :: "); - } - else if(direction == TX) + int32_t status = L_OK; + uint32_t aiVal, offset = 0, remaining = 8; + + values[offset] = 0x00; // Clear next response byte + for (int32_t i = 0; !status && i < numChans; i++) + { + LinxAiChannel *channelObj = (LinxAiChannel*)LookupChannel(IID_LinxAiChannel, channels[i]); + if (!channelObj) + return LERR_BADCHAN; + + // Acquire AI Sample + status = channelObj->Read(&aiVal); + if (!status) { - DebugPrint("Sending :: "); + offset = PackData(aiVal, this->AiResolution, &remaining, values, offset); } + channelObj->Release(); + } + return status; +} + +int32_t LinxDevice::AnalogReadNoPacking(unsigned char numChans, unsigned char* channels, uint32_t* values) +{ + int32_t status = L_OK; + for (int32_t i = 0; !status && i < numChans; i++) + { + LinxAiChannel *channelObj = (LinxAiChannel*)LookupChannel(IID_LinxAiChannel, channels[i]); + if (!channelObj) + return LERR_BADCHAN; - for(int i=0; iRead(values + i); + channelObj->Release(); + } + return status; +} + +int32_t LinxDevice::AnalogReadValues(uint8_t numChans, uint8_t* channels, double* values) +{ + int32_t status = L_OK; + uint32_t aiVal; + double scale = ((double)this->AiRefSet / 1000000.0) / (1 << this->AiResolution); + for (int32_t i = 0; !status && i < numChans; i++) + { + LinxAiChannel *channelObj = (LinxAiChannel*)LookupChannel(IID_LinxAiChannel, channels[i]); + if (!channelObj) + return LERR_BADCHAN; - if(direction == TX) + status = channelObj->Read(&aiVal); + if (!status) { - //Add Second New Line After TX - DebugPrintln(); + values[i] = scale * aiVal; } - #endif + channelObj->Release(); + } + return status; } +int32_t LinxDevice::AnalogSetRef(unsigned char mode, uint32_t voltage) +{ + uint32_t num = EnumerateChannels(IID_LinxAiChannel); + if (!num) + return LANALOG_REF_VAL_ERROR; -//--------------------------------------------------------Analog------------------------------------------------------- -int LinxDevice::AnalogReadNoPacking(unsigned char numChans, unsigned char* channels, unsigned long* values) + switch (mode) + { + case 0: //Default + this->AiRefSet = this->AiRefDefault; + break; + case 1: //Internal + case 2: //External + this->AiRefSet = voltage; + break; + default: + return LANALOG_REF_MODE_ERROR; + } + return L_OK; +} + +int32_t LinxDevice::AnalogWrite(unsigned char numChans, unsigned char* channels, unsigned char* values) { - return L_FUNCTION_NOT_SUPPORTED; + int32_t status = L_OK; + uint32_t aoVal = 0, offset = 0, remaining = 8; + + for (int32_t i = 0; !status && i < numChans; i++) + { + LinxAoChannel *channelObj = (LinxAoChannel*)LookupChannel(IID_LinxAoChannel, channels[i]); + if (!channelObj) + return LERR_BADCHAN; + + aoVal = UnpackData(this->AoResolution, &remaining, values, &offset); + status = channelObj->Write(aoVal); + channelObj->Release(); + } + return status; } +int32_t LinxDevice::AnalogWriteValues(uint8_t numChans, uint8_t* channels, double *values) +{ + int32_t status = L_OK; + uint32_t aoVal, resolution = (1 << this->AoResolution); + double scale = resolution / ((double)this->AoRefSet / 1000000.0); + for (int32_t i = 0; !status && i < numChans; i++) + { + LinxAoChannel *channelObj = (LinxAoChannel*)LookupChannel(IID_LinxAoChannel, channels[i]); + if (!channelObj) + return LERR_BADCHAN; + + aoVal = (uint32_t)(values[i] * scale); + status = channelObj->Write(aoVal); + channelObj->Release(); + } + return status; +} //--------------------------------------------------------Digital------------------------------------------------------- -int LinxDevice::DigitalWriteNoPacking(unsigned char numChans, unsigned char* channels, unsigned char* values) +int32_t LinxDevice::DigitalSetState(unsigned char numChans, unsigned char* channels, unsigned char* states) { - return L_FUNCTION_NOT_SUPPORTED; + int32_t status = L_OK; + for (int32_t i = 0; !status && i < numChans; i++) + { + LinxDioChannel *channelObj = (LinxDioChannel*)LookupChannel(IID_LinxDioChannel, channels[i]); + if (!channelObj) + return LERR_BADCHAN; + + status = channelObj->SetState(states[i]); + channelObj->Release(); + } + return status; } -int LinxDevice::DigitalReadNoPacking(unsigned char numChans, unsigned char* channels, unsigned char* values) +int32_t LinxDevice::DigitalWrite(unsigned char numChans, unsigned char* channels, unsigned char* values) { - return L_FUNCTION_NOT_SUPPORTED; + int32_t status = L_OK; + for (int32_t i = 0; !status && i < numChans; i++) + { + LinxDioChannel *channelObj = (LinxDioChannel*)LookupChannel(IID_LinxDioChannel, channels[i]); + if (!channelObj) + return LERR_BADCHAN; + + status = channelObj->Write((values[i / 8] >> (i % 8)) & 0x01); + channelObj->Release(); + } + return status; } -// ---------------- PWM Functions ------------------ -int LinxDevice::PwmSetFrequency(unsigned char numChans, unsigned char* channels, unsigned long* values) +int32_t LinxDevice::DigitalWriteNoPacking(unsigned char numChans, unsigned char* channels, unsigned char* values) { - return L_FUNCTION_NOT_SUPPORTED; + int32_t status = L_OK; + for (int32_t i = 0; !status && i < numChans; i++) + { + LinxDioChannel *channelObj = (LinxDioChannel*)LookupChannel(IID_LinxDioChannel, channels[i]); + if (!channelObj) + return LERR_BADCHAN; + + status = channelObj->Write(values[i]); + channelObj->Release(); + } + return status; } -// ---------------- UART Functions ------------------ +int32_t LinxDevice::DigitalRead(unsigned char numChans, unsigned char* channels, unsigned char* values) +{ + unsigned char bitOffset = 8; + unsigned char byteOffset = 0; + unsigned char retVal = 0; + unsigned char diVal = 0; + int32_t status = L_OK; + for (int32_t i = 0; !status && i < numChans; i++) + { + LinxDioChannel *channelObj = (LinxDioChannel*)LookupChannel(IID_LinxDioChannel, channels[i]); + if (!channelObj) + return LERR_BADCHAN; -void LinxDevice::UartWrite(unsigned char channel, unsigned char b) + //If bitOffset is 0 we have to start a new byte, store old byte and increment offset + if (bitOffset == 0) + { + //Insert retVal Into Response Buffer + values[byteOffset] = retVal; + retVal = 0x00; + byteOffset++; + bitOffset = 7; + } + else + { + bitOffset--; + } + status = channelObj->Read(&diVal); + if (!status) + retVal |= (diVal << bitOffset); //Read pin and insert value into retVal + channelObj->Release(); + } + //Store Last Byte + values[byteOffset] = retVal; + return status; +} + +int32_t LinxDevice::DigitalReadNoPacking(unsigned char numChans, unsigned char* channels, unsigned char* values) { - UartWrite(channel, 1, (unsigned char*)&b); + int32_t status = L_OK; + for (int32_t i = 0; !status && i < numChans; i++) + { + LinxDioChannel *channelObj = (LinxDioChannel*)LookupChannel(IID_LinxDioChannel, channels[i]); + if (!channelObj) + return LERR_BADCHAN; + + status = channelObj->Read(&values[i]); + channelObj->Release(); + } + return status; } -void LinxDevice::UartWrite(unsigned char channel, const char *s) +int32_t LinxDevice::DigitalWriteSquareWave(unsigned char channel, uint32_t freq, uint32_t duration) { - while (*s) + LinxDioChannel *channelObj = (LinxDioChannel*)LookupChannel(IID_LinxDioChannel, channel); + if (channelObj) { - UartWrite(channel, *s++); + int32_t status = channelObj->WriteSquareWave(freq, duration); + channelObj->Release(); + return status; } + return LERR_BADCHAN; } -void LinxDevice::UartWrite(unsigned char channel, char c) +int32_t LinxDevice::DigitalReadPulseWidth(unsigned char channel, unsigned char stimType, unsigned char respChan, unsigned char respType, uint32_t timeout, uint32_t* width) { - UartWrite(channel, (unsigned char) c); + LinxDioChannel *channelObj = (LinxDioChannel*)LookupChannel(IID_LinxDioChannel, channel); + if (channelObj) + { + int32_t status = channelObj->ReadPulseWidth(stimType, respChan, respType, timeout, width); + channelObj->Release(); + return status; + } + return LERR_BADCHAN; } -void LinxDevice::UartWrite(unsigned char channel, int n) +// ---------------- PWM Functions ------------------ +int32_t LinxDevice::PwmSetDutyCycle(uint8_t numChans, uint8_t* channels, uint8_t* values) { - UartWrite(channel, (long) n); + int32_t status = L_OK; + for (int32_t i = 0; !status && i < numChans; i++) + { + LinxPwmChannel *channelObj = (LinxPwmChannel*)LookupChannel(IID_LinxPwmChannel, channels[i]); + if (!channelObj) + return LERR_BADCHAN; + + status = channelObj->SetDutyCycle(values[i]); + channelObj->Release(); + } + return status; } -void LinxDevice::UartWrite(unsigned char channel, unsigned int n) +int32_t LinxDevice::PwmSetFrequency(uint8_t numChans, uint8_t* channels, uint32_t* values) { - UartWrite(channel, (unsigned long) n); + int32_t status = L_OK; + for (int32_t i = 0; !status && i < numChans; i++) + { + LinxPwmChannel *channelObj = (LinxPwmChannel*)LookupChannel(IID_LinxPwmChannel, channels[i]); + if (!channelObj) + return LERR_BADCHAN; + + status = channelObj->SetFrequency(values[i]); + channelObj->Release(); + } + return status; } -void LinxDevice::UartWrite(unsigned char channel, long n) +// ---------------- SPI Functions ------------------ +int32_t LinxDevice::SpiOpenMaster(uint8_t channel) { - if (n < 0) + LinxSpiChannel *channelObj = (LinxSpiChannel*)LookupChannel(IID_LinxSpiChannel, channel); + if (channelObj) { - UartWrite(channel, '-'); - n = -n; + int32_t status = channelObj->Open(); + channelObj->Release(); + return status; } - UartWriteNumber(channel, n, 10); + return LERR_BADPARAM; + } -void LinxDevice::UartWrite(unsigned char channel, unsigned long n) +int32_t LinxDevice::SpiSetBitOrder(uint8_t channel, uint8_t bitOrder) { - UartWriteNumber(channel , n, 10); + LinxSpiChannel *channelObj = (LinxSpiChannel*)LookupChannel(IID_LinxSpiChannel, channel); + if (channelObj) + { + int32_t status = channelObj->SetBitOrder(bitOrder); + channelObj->Release(); + return status; + } + return LERR_BADPARAM; } -void LinxDevice::UartWrite(unsigned char channel, long n, int base) +int32_t LinxDevice::SpiSetMode(uint8_t channel, uint8_t mode) { - if (base == 0) + LinxSpiChannel *channelObj = (LinxSpiChannel*)LookupChannel(IID_LinxSpiChannel, channel); + if (channelObj) { - UartWrite(channel, (char) n); + int32_t status = channelObj->SetMode(mode); + channelObj->Release(); + return status; } - else if (base == 10) + return LERR_BADPARAM; +} + +int32_t LinxDevice::SpiSetSpeed(uint8_t channel, uint32_t speed, uint32_t* actualSpeed) +{ + LinxSpiChannel *channelObj = (LinxSpiChannel*)LookupChannel(IID_LinxSpiChannel, channel); + if (channelObj) { - UartWrite(channel, n); + int32_t status = channelObj->SetSpeed(speed, actualSpeed); + channelObj->Release(); + return status; } - else + return LERR_BADPARAM; +} + +int32_t LinxDevice::SpiWriteRead(uint8_t channel, uint8_t frameSize, uint8_t numFrames, uint8_t csChan, uint8_t csLL, unsigned char* sendBuffer, unsigned char* recBuffer) +{ + LinxSpiChannel *channelObj = (LinxSpiChannel*)LookupChannel(IID_LinxSpiChannel, channel); + if (channelObj) { - UartWriteNumber(channel , n, base); + int32_t status = channelObj->WriteRead(frameSize, numFrames, csChan, csLL, sendBuffer, recBuffer); + channelObj->Release(); + return status; } + return LERR_BADPARAM; } -void LinxDevice::UartWriteln(unsigned char channel) +int32_t LinxDevice::SpiCloseMaster(uint8_t channel) { - UartWrite(channel, '\r'); - UartWrite(channel, '\n'); + LinxSpiChannel *channelObj = (LinxSpiChannel*)LookupChannel(IID_LinxSpiChannel, channel); + if (channelObj) + { + int32_t status = channelObj->Close(); + channelObj->Release(); + return status; + } + return LERR_BADPARAM; } -void LinxDevice::UartWriteln(unsigned char channel, char c) +// ---------------- I2C Functions ------------------ +int32_t LinxDevice::I2cOpenMaster(uint8_t channel) { - UartWrite(channel, c); - UartWriteln(channel); + LinxI2cChannel *channelObj = (LinxI2cChannel*)LookupChannel(IID_LinxI2cChannel, channel); + if (channelObj) + { + int32_t status = channelObj->Open(); + channelObj->Release(); + return status; + } + return LERR_BADPARAM; } -void LinxDevice::UartWriteln(unsigned char channel, const char c[]) +int32_t LinxDevice::I2cSetSpeed(uint8_t channel, uint32_t speed, uint32_t* actualSpeed) { - UartWrite(channel, c); - UartWriteln(channel); + LinxI2cChannel *channelObj = (LinxI2cChannel*)LookupChannel(IID_LinxI2cChannel, channel); + if (channelObj) + { + int32_t status = channelObj->SetSpeed(speed, actualSpeed); + channelObj->Release(); + return status; + } + return LERR_BADPARAM; } -void LinxDevice::UartWriteln(unsigned char channel, unsigned char b) +int32_t LinxDevice::I2cWrite(uint8_t channel, uint8_t slaveAddress, uint8_t eofConfig, uint8_t numBytes, unsigned char* sendBuffer) { - UartWrite(channel, b); - UartWriteln(channel); + LinxI2cChannel *channelObj = (LinxI2cChannel*)LookupChannel(IID_LinxI2cChannel, channel); + if (channelObj) + { + int32_t status = channelObj->Write(slaveAddress, eofConfig, numBytes, sendBuffer); + channelObj->Release(); + return status; + } + return LERR_BADPARAM; } -void LinxDevice::UartWriteln(unsigned char channel, int n) +int32_t LinxDevice::I2cRead(uint8_t channel, uint8_t slaveAddress, uint8_t eofConfig, uint8_t numBytes, uint32_t timeout, unsigned char* recBuffer) { - UartWrite(channel, n); - UartWriteln(channel); + LinxI2cChannel *channelObj = (LinxI2cChannel*)LookupChannel(IID_LinxI2cChannel, channel); + if (channelObj) + { + int32_t status = channelObj->Read(slaveAddress, eofConfig, numBytes, timeout, recBuffer); + channelObj->Release(); + return status; + } + return LERR_BADPARAM; } -void LinxDevice::UartWriteln(unsigned char channel, long n) +int32_t LinxDevice::I2cTransfer(uint8_t channel, uint8_t slaveAddress, int32_t numFrames, int32_t *flags, int32_t *numBytes, uint32_t timeout, unsigned char* sendBuffer, unsigned char* recBuffer) { - UartWrite(channel, n); - UartWriteln(channel); + LinxI2cChannel *channelObj = (LinxI2cChannel*)LookupChannel(IID_LinxI2cChannel, channel); + if (channelObj) + { + int32_t status = channelObj->Transfer(slaveAddress, numFrames, flags, numBytes, timeout, sendBuffer, recBuffer); + channelObj->Release(); + return status; + } + return LERR_BADPARAM; } -void LinxDevice::UartWriteln(unsigned char channel, unsigned long n) +int32_t LinxDevice::I2cClose(uint8_t channel) { - UartWrite(channel, n); - UartWriteln(channel); + LinxI2cChannel *channelObj = (LinxI2cChannel*)LookupChannel(IID_LinxI2cChannel, channel); + if (channelObj) + { + int32_t status = channelObj->Close(); + channelObj->Release(); + return status; + } + return LERR_BADPARAM; } -void LinxDevice::UartWriteln(unsigned char channel, long n, int base) +// ---------------- UART Functions ------------------ +int32_t LinxDevice::UartOpen(uint8_t channel, LinxUartChannel **comm) { - UartWrite(channel, n, base); - UartWriteln(channel); + LinxUartChannel *channelObj = (LinxUartChannel*)LookupChannel(IID_LinxUartChannel, channel); + if (channelObj) + { + if (comm) + *comm = channelObj; + else + channelObj->Release(); + return L_OK; + } + return LERR_BADPARAM; } -//----------------- WS2812 Functions ----------------------------- -int LinxDevice::Ws2812Open(unsigned short numLeds, unsigned char dataChan) +int32_t LinxDevice::UartOpen(const unsigned char *deviceName, uint8_t *channel, LinxUartChannel **comm) { - return L_FUNCTION_NOT_SUPPORTED; + LinxUartChannel *channelObj = (LinxUartChannel*)LookupChannel(IID_LinxUartChannel, deviceName, channel); + if (!channelObj) + { +#if Unix + channelObj = new LinxUnixUartChannel(m_Debug, deviceName); +#elif Win32 + channelObj = new LinxWindowsUartChannel(m_Debug, deviceName); +#endif + if (!channelObj) + return LERR_BADPARAM; + + *channel = RegisterChannel(IID_LinxUartChannel, channelObj); + } + if (comm) + *comm = channelObj; + else + channelObj->Release(); + return L_OK; } -int LinxDevice::Ws2812WriteOnePixel(unsigned short pixelIndex, unsigned char red, unsigned char green, unsigned char blue, unsigned char refresh) +int32_t LinxDevice::UartSetBaudRate(unsigned char channel, uint32_t baudRate, uint32_t* actualBaud) { - return L_FUNCTION_NOT_SUPPORTED; + LinxUartChannel *channelObj = (LinxUartChannel*)LookupChannel(IID_LinxUartChannel, channel); + if (channelObj) + { + int32_t status = channelObj->SetSpeed(baudRate, actualBaud); + channelObj->Release(); + return status; + } + return LERR_BADPARAM; } -int LinxDevice::Ws2812WriteNPixels(unsigned short startPixel, unsigned short numPixels, unsigned char* data, unsigned char refresh) +int32_t LinxDevice::UartSetParameters(unsigned char channel, unsigned char dataBits, unsigned char stopBits, LinxUartParity parity) { - return L_FUNCTION_NOT_SUPPORTED; + LinxUartChannel *channelObj = (LinxUartChannel*)LookupChannel(IID_LinxUartChannel, channel); + if (channelObj) + { + int32_t status = channelObj->SetParameters(dataBits, stopBits, parity); + channelObj->Release(); + return status; + } + return LERR_BADPARAM; } -int LinxDevice::Ws2812Refresh() +int32_t LinxDevice::UartGetBytesAvailable(unsigned char channel, uint32_t *numBytes) { - return L_FUNCTION_NOT_SUPPORTED; + LinxUartChannel *channelObj = (LinxUartChannel*)LookupChannel(IID_LinxUartChannel, channel); + if (channelObj) + { + int32_t status = channelObj->Read(NULL, 0, 0, numBytes); + channelObj->Release(); + return status; + } + return LERR_BADPARAM; } -int LinxDevice::Ws2812Close() +int32_t LinxDevice::UartRead(unsigned char channel, uint32_t numBytes, unsigned char* recBuffer, int32_t timeout, uint32_t* numBytesRead) { - return L_FUNCTION_NOT_SUPPORTED; + LinxUartChannel *channelObj = (LinxUartChannel*)LookupChannel(IID_LinxUartChannel, channel); + if (channelObj) + { + int32_t status = channelObj->Read(recBuffer, numBytes, timeout, numBytesRead); + channelObj->Release(); + return status; + } + return LERR_BADPARAM; } +int32_t LinxDevice::UartWrite(unsigned char channel, uint32_t numBytes, unsigned char* sendBuffer, int32_t timeout) +{ + LinxUartChannel *channelObj = (LinxUartChannel*)LookupChannel(IID_LinxUartChannel, channel); + if (channelObj) + { + int32_t status = channelObj->Write(sendBuffer, numBytes, timeout); + channelObj->Release(); + return status; + } + return LERR_BADPARAM; +} +int32_t LinxDevice::UartClose(unsigned char channel) +{ + LinxUartChannel *channelObj = (LinxUartChannel*)LookupChannel(IID_LinxUartChannel, channel); + if (channelObj) + { + int32_t status = channelObj->Close(); + channelObj->Release(); + return status; + } + return LERR_BADPARAM; +} -//----------------- DEBUG Functions ----------------------------- -void LinxDevice::DebugPrint(char c) +//------------------------------------- Servo ------------------------------------- +int32_t LinxDevice::ServoOpen(unsigned char numChans, unsigned char* channels) { - #if DEBUG_ENABLED >= 0 - UartWrite(DEBUG_ENABLED, c); - #endif + int32_t status = L_OK; + for (int32_t i = 0; !status && i < numChans; i++) + { + LinxServoChannel *channelObj = (LinxServoChannel*)LookupChannel(IID_LinxServoChannel, channels[i]); + if (!channelObj) + return LERR_BADPARAM; + channelObj->Release(); + } + return status; } -void LinxDevice::DebugPrint(const char s[]) +int32_t LinxDevice::ServoSetPulseWidth(unsigned char numChans, unsigned char* channels, uint16_t* pulseWidths) { - #if DEBUG_ENABLED >= 0 - UartWrite(DEBUG_ENABLED, s); - #endif + int32_t status = L_OK; + for (int32_t i = 0; !status && i < numChans; i++) + { + LinxServoChannel *channelObj = (LinxServoChannel*)LookupChannel(IID_LinxServoChannel, channels[i]); + if (!channelObj) + return LERR_BADPARAM; + + status = channelObj->SetPulseWidth(pulseWidths[i]); + channelObj->Release(); + } + return status; } -void LinxDevice::DebugPrint(unsigned char c) +int32_t LinxDevice::ServoClose(unsigned char numChans, unsigned char* channels) { - #if DEBUG_ENABLED >= 0 - UartWrite(DEBUG_ENABLED, c); - #endif + int32_t status = L_OK; + for (int32_t i = 0; i < numChans; i++) + { + LinxServoChannel *channelObj = (LinxServoChannel*)LookupChannel(IID_LinxServoChannel, channels[i]); + // don't abort loop on errors on close + if (channelObj) + { + status = channelObj->Close(); + channelObj->Release(); + } + } + return status; } -void LinxDevice::DebugPrint(int n) +//----------------- WS2812 Functions ----------------------------- +int32_t LinxDevice::Ws2812Open(uint16_t numLeds, unsigned char dataChan) { - #if DEBUG_ENABLED >= 0 - UartWrite(DEBUG_ENABLED, n); - #endif + return L_FUNCTION_NOT_SUPPORTED; } -void LinxDevice::DebugPrint(unsigned int n) +int32_t LinxDevice::Ws2812WriteOnePixel(uint16_t pixelIndex, unsigned char red, unsigned char green, unsigned char blue, unsigned char refresh) { - #if DEBUG_ENABLED >= 0 - UartWrite(DEBUG_ENABLED, n); - #endif + return L_FUNCTION_NOT_SUPPORTED; } -void LinxDevice::DebugPrint(long n) +int32_t LinxDevice::Ws2812WriteNPixels(uint16_t startPixel, uint16_t numPixels, unsigned char* data, unsigned char refresh) { - #if DEBUG_ENABLED >= 0 - UartWrite(DEBUG_ENABLED, n); - #endif + return L_FUNCTION_NOT_SUPPORTED; } -void LinxDevice::DebugPrint(unsigned long n) +int32_t LinxDevice::Ws2812Refresh(void) { - #if DEBUG_ENABLED >= 0 - UartWrite(DEBUG_ENABLED, n); - #endif + return L_FUNCTION_NOT_SUPPORTED; } -void LinxDevice::DebugPrint(long n, int base) +int32_t LinxDevice::Ws2812Close(void) { - #if DEBUG_ENABLED >= 0 - UartWrite(DEBUG_ENABLED, n, base); - #endif + return L_FUNCTION_NOT_SUPPORTED; } -void LinxDevice::DebugPrintln() +//----------------- Nonvolatile Functions ----------------------------- +void LinxDevice::NonVolatileWrite(int32_t address, unsigned char data) { - #if DEBUG_ENABLED >= 0 - UartWriteln(DEBUG_ENABLED); - #endif + } -void LinxDevice::DebugPrintln(char c) +unsigned char LinxDevice::NonVolatileRead(int32_t address) { - #if DEBUG_ENABLED >= 0 - UartWriteln(DEBUG_ENABLED, c); - #endif + return L_FUNCTION_NOT_SUPPORTED; } -void LinxDevice::DebugPrintln(const char s[]) + +//----------------- Support Functions ----------------------------- +uint32_t LinxDevice::GetMilliSeconds(void) { - #if DEBUG_ENABLED >= 0 - UartWriteln(DEBUG_ENABLED, s); - #endif + return getMsTicks(); } -void LinxDevice::DebugPrintln(unsigned char c) +uint32_t LinxDevice::GetSeconds(void) { - #if DEBUG_ENABLED >= 0 - UartWriteln(DEBUG_ENABLED, c); - #endif + return getSeconds(); } -void LinxDevice::DebugPrintln(int n) -{ - #if DEBUG_ENABLED >= 0 - UartWriteln(DEBUG_ENABLED, n); - #endif +void LinxDevice::DelayMs(uint32_t ms) +{ + delayMs(ms); } -void LinxDevice::DebugPrintln(long n) +/**************************************************************************************** +** Public Channel Registry Functions +****************************************************************************************/ +int32_t LinxDevice::EnumerateChannels(int32_t type, uint8_t *buffer, uint32_t length, uint32_t *reqLen) { - #if DEBUG_ENABLED >= 0 - UartWriteln(DEBUG_ENABLED, n); - #endif + std::map m = m_ChannelRegistry[type - 1]; + uint32_t i = 0, off = 0, num = (uint32_t)m.size(); + if (num) + { + off = num; + for (std::map::iterator it = m.begin(); it != m.end(); ++it, i++) + { + if (buffer) + { + if (i < length) + buffer[i] = it->first; + if (it->second && reqLen && off < length + 1) + { + buffer[off] = Min(it->second->GetName(buffer + off + 1, length - off - 1), length - off - 1); + off += buffer[off] + 1; + } + } + else if (it->second) + { + off += it->second->GetName(buffer, length) + 1; + } + } + } + if (reqLen) + *reqLen = off; + return num; } -void LinxDevice::DebugPrintln(unsigned long n) +/**************************************************************************************** +** Protected Channel Registry Functions +****************************************************************************************/ +unsigned char LinxDevice::RegisterChannel(int32_t type, LinxChannel *channelObj) { - #if DEBUG_ENABLED >= 0 - UartWriteln(DEBUG_ENABLED, n); - #endif + uint8_t channel = 0; + std::map m = m_ChannelRegistry[type - 1]; + for (std::map::iterator it = m.begin(); it != m.end(); it++) + { + if (it->first != channel) + break; + + channel = it->first + 1; + } + m.insert(std::pair(channel, channelObj)); + m_ChannelRegistry[type - 1] = m; + return channel; } -void LinxDevice::DebugPrintln(long n, int base) +void LinxDevice::RegisterChannel(int32_t type, uint8_t channel, LinxChannel *channelObj) { - #if DEBUG_ENABLED >= 0 - UartWriteln(DEBUG_ENABLED, n, base); - #endif + std::map m = m_ChannelRegistry[type - 1]; + std::pair::iterator, bool> result = m.insert(std::pair(channel, channelObj)); + if (!result.second) + { + result.first->second->Release(); + result.first->second = channelObj; + result.first->second->AddRef(); + } + m_ChannelRegistry[type - 1] = m; } +LinxChannel* LinxDevice::LookupChannel(int32_t type, uint8_t channel) +{ + std::map m = m_ChannelRegistry[type - 1]; + std::map::iterator it = m.find(channel); + if (it != m.end()) + { + if (it->second) + { + it->second->AddRef(); + return it->second; + } + } + return NULL; +} -/**************************************************************************************** -** Private Functions -****************************************************************************************/ +LinxChannel* LinxDevice::LookupChannel(int32_t type, const unsigned char *channelName, uint8_t *channel) +{ + std::map m = m_ChannelRegistry[type - 1]; + int32_t num = (int32_t)m.size(); + if (num) + { + unsigned char buffer[64]; + for (std::map::iterator it = m.begin(); it != m.end(); ++it) + { + if (it->second) + { + it->second->GetName(buffer, 64); + if (!strcmp((char*)channelName, (char*)buffer)) + { + if (channel) + *channel = it->first; + it->second->AddRef(); + return it->second; + } + } + } + } + return NULL; +} -void LinxDevice::UartWriteNumber(unsigned char channel, unsigned long n, unsigned char base) +int32_t LinxDevice::VerifyChannels(int32_t type, uint8_t numChans, uint8_t *channel) { - unsigned char buf[8 * sizeof(long)]; // Assumes 8-bit chars. - unsigned long i = 0; + std::map m = m_ChannelRegistry[type - 1]; + for (uint8_t i = 0; i < numChans; i++) + { + std::map::iterator it = m.find(channel[i]); + if (it == m.end()) + return LERR_BADCHAN; + } + return L_OK; +} - if (n == 0) +void LinxDevice::RemoveChannel(int32_t type, uint8_t channel) +{ + std::map m = m_ChannelRegistry[type - 1]; + std::map::iterator it = m.find(channel); + if (it != m.end()) { - UartWrite(channel, '0'); - return; - } + if (it->second) + it->second->Release(); + m.erase(it); + } +} - while (n > 0) +void LinxDevice::ClearChannels(int32_t type) +{ + std::map m = m_ChannelRegistry[type - 1]; + for (std::map::iterator it = m.begin(); it != m.end(); it++) { - buf[i++] = n % base; - n /= base; + int32_t count = it->second ? it->second->Release() : 0; + if (count) + { + m_Debug->Write("Channel not released! Bad refcount"); + } } + m.clear(); +} - for (; i > 0; i--) +uint32_t LinxDevice::PackData(uint32_t value, uint32_t resolution, uint32_t *remaining, uint8_t *values, uint32_t offset) +{ + uint32_t dataBits = resolution; + // Byte packed AI values in response data + while (dataBits > 0) { - UartWrite(channel, (char) (buf[i - 1] < 10 ? '0' + buf[i - 1] : 'A' + buf[i - 1] - 10)); + values[offset] |= (uint8_t)((value >> (resolution - dataBits)) << (8 - *remaining)); + + if (*remaining > dataBits) + { + // Current Byte Still Has Empty Bits + *remaining -= dataBits; + dataBits = 0; + } + else + { + // Current Byte Full + dataBits -= *remaining; + *remaining = 8; + values[++offset] = 0x00; // Clear next response byte + } } + return offset; } + +uint32_t LinxDevice::UnpackData(uint32_t resolution, uint32_t *remaining, uint8_t *values, uint32_t *offset) +{ + uint32_t value = 0, dataBits = resolution; + while (dataBits) + { + value |= ((uint32_t)values[*offset] << (resolution - dataBits)) >> (8 - *remaining); + if (*remaining > dataBits) + { + // Current byte still has unused bits + *remaining -= dataBits; + dataBits = 0; + } + else + { + // Current Byte Used up + dataBits -= *remaining; + (*offset)++; + *remaining = 8; + } + } + return value; +} \ No newline at end of file diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/utility/LinxDevice.h b/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/utility/LinxDevice.h index ace15333..7cf68ae6 100644 --- a/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/utility/LinxDevice.h +++ b/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/utility/LinxDevice.h @@ -3,341 +3,211 @@ ** ** For more information see: www.labviewmakerhub.com/linx ** For support visit the forums at: www.labviewmakerhub.com/forums/linx -** +** ** Written By Sam Kristoff ** ** BSD2 License. -****************************************************************************************/ +****************************************************************************************/ #ifndef LINX_DEVICE_H #define LINX_DEVICE_H /**************************************************************************************** ** Includes -****************************************************************************************/ +****************************************************************************************/ //This Makes It Easy For IDE Users To Define Necessary Settings In One Place //When Using Make Files Define LINXCONFIG To Ignore Config.h File #ifndef LINXCONFIG #include "../config/LinxConfig.h" #endif +#include +#include +#include "LinxBase.h" +#include "LinxChannel.h" /**************************************************************************************** ** Defines -****************************************************************************************/ -//GPIO -#ifndef INPUT - #define INPUT 0x00 -#endif - -#ifndef OUTPUT - #define OUTPUT 0x01 -#endif - -#ifndef HIGH - #define HIGH 0x01 -#endif - -#ifndef LOW - #define LOW 0x00 -#endif - -//SPI -#ifndef LSBFIRST - #define LSBFIRST 0 -#endif - -#ifndef MSBFIRST - #define MSBFIRST 1 -#endif - -//I2C -#define EOF_STOP 0 -#define EOF_RESTART 1 -#define EOF_RESTART_NOSTOP 2 -#define EOF_NOSTOP 3 - -//UART -#ifndef BIN - #define BIN 2 -#endif -#ifndef OCT - #define OCT 8 -#endif -#ifndef DEC - #define DEC 10 -#endif -#ifndef HEX - #define HEX 16 -#endif - -//Non-Volatile Storage Addresses -#define NVS_USERID 0x00 -#define NVS_ETHERNET_IP 0x02 -#define NVS_ETHERNET_PORT 0x06 -#define NVS_WIFI_IP 0x08 -#define NVS_WIFI_PORT 0x0C -#define NVS_WIFI_SSID_SIZE 0x0E -#define NVS_WIFI_SSID 0x0F -#define NVS_WIFI_SECURITY_TYPE 0x30 -#define NVS_WIFI_PW_SIZE 0x31 -#define NVS_WIFI_PW 0x32 -#define NVS_SERIAL_INTERFACE_MAX_BAUD 0x72 +****************************************************************************************/ //DEBUG #define TX 0 #define RX 1 -/**************************************************************************************** -** Typedefs -****************************************************************************************/ -typedef enum LinxStatus -{ - L_OK = 0, - L_FUNCTION_NOT_SUPPORTED, - L_REQUEST_RESEND, - L_UNKNOWN_ERROR, - L_DISCONNECT -}LinxStatus; - -typedef enum AioStatus -{ - LANALOG_REF_MODE_ERROR=129, - LANALOG_REF_VAL_ERROR=130 -}AioStatus; - -typedef enum DioStatus -{ - LDIGITAL_PIN_DNE=128, -}DioStatus; - - -typedef enum SPIStatus -{ - LSPI_OPEN_FAIL = 128, - LSPI_TRANSFER_FAIL -}SPIStatus; - -typedef enum I2CStatus +class LinxDevice : public LinxBase { - LI2C_SADDR=128, - LI2C_EOF, - LI2C_WRITE_FAIL, - LI2C_READ_FAIL, - LI2C_CLOSE_FAIL, - LI2C_OPEN_FAIL -}I2CStatus; - -typedef enum UartStatus -{ - LUART_OPEN_FAIL=128, - LUART_SET_BAUD_FAIL, - LUART_AVAILABLE_FAIL, - LUART_READ_FAIL, - LUART_WRITE_FAIL, - LUART_CLOSE_FAIL -}UartStatus; - -class LinxDevice -{ - public: + public: /**************************************************************************************** ** Member Variables - ****************************************************************************************/ - - //Device ID - unsigned char DeviceFamily; - unsigned char DeviceId; - unsigned char DeviceNameLen; - const unsigned char* DeviceName; - unsigned char ListenerBufferSize; - + ****************************************************************************************/ + //LINX API Version - unsigned char LinxApiMajor; - unsigned char LinxApiMinor; - unsigned char LinxApiSubminor; - + uint8_t LinxApiMajor; + uint8_t LinxApiMinor; + uint8_t LinxApiSubminor; + + //Device ID + uint8_t DeviceFamily; + uint8_t DeviceId; + //----Peripherals---- - - //DIO - unsigned char NumDigitalChans; - const unsigned char* DigitalChans; - + + //DIO + //AI - unsigned char NumAiChans; - const unsigned char* AiChans; - unsigned char AiResolution; - unsigned long AiRefDefault; - unsigned long AiRefSet; - + uint8_t AiResolution; + uint32_t AiRefDefault; + uint32_t AiRefSet; + //AO - unsigned char NumAoChans; - const unsigned char* AoChans; - unsigned char AoResolution; - unsigned long AoRefDefault; - unsigned long AoRefSet; - + uint8_t AoResolution; + uint32_t AoRefDefault; + uint32_t AoRefSet; + //PWM - unsigned char NumPwmChans; - const unsigned char* PwmChans; - + //QE - unsigned char NumQeChans; - const unsigned char* QeChans; - + //UART - unsigned char NumUartChans; - const unsigned char* UartChans; - unsigned long UartMaxBaud; - + uint32_t UartMaxBaud; + //I2C - unsigned char NumI2cChans; - const unsigned char* I2cChans; - + //SPI - unsigned char NumSpiChans; - const unsigned char* SpiChans; - + //CAN - unsigned char NumCanChans; - const unsigned char* CanChans; - + //Servo - unsigned char NumServoChans; - const unsigned char* ServoChans; - + //User Configured Values - unsigned short userId; - - unsigned long ethernetIp; - unsigned short ethernetPort; + uint16_t userId; + uint32_t ethernetIp; + uint16_t ethernetPort; - unsigned long WifiIp; - unsigned short WifiPort; - unsigned char WifiSsidSize; + uint32_t WifiIp; + uint16_t WifiPort; + uint8_t WifiSsidSize; char WifiSsid[32]; - unsigned char WifiSecurity; - unsigned char WifiPwSize; + uint8_t WifiSecurity; + uint8_t WifiPwSize; char WifiPw[64]; - - unsigned long serialInterfaceMaxBaud; - /**************************************************************************************** ** Constructors/Destructor ****************************************************************************************/ - LinxDevice(); - virtual ~LinxDevice(); - + LinxDevice(LinxFmtChannel *debug = NULL); + virtual ~LinxDevice(void); + + /**************************************************************************************** + ** Functions + ****************************************************************************************/ + // System Support + virtual uint8_t GetDeviceName(unsigned char *buffer, uint8_t length) = 0; + + // Analog + virtual int32_t AnalogRead(uint8_t numChans, uint8_t* channels, uint8_t* values); + virtual int32_t AnalogReadNoPacking(uint8_t numChans, uint8_t* channels, uint32_t* values); //Values Are ADC Ticks And Not Bit Packed + virtual int32_t AnalogReadValues(uint8_t numChans, uint8_t* channels, double* values); + virtual int32_t AnalogSetRef(uint8_t mode, uint32_t voltage); + virtual int32_t AnalogWrite(uint8_t numChans, uint8_t* channels, uint8_t* values); + virtual int32_t AnalogWriteValues(uint8_t numChans, uint8_t* channels, double *values); + + // DIGITAL + virtual int32_t DigitalSetState(uint8_t numChans, uint8_t* channels, uint8_t *states); // direction and pull-up/down + virtual int32_t DigitalWrite(uint8_t numChans, uint8_t* channels, uint8_t* values); // Values Are Bit Packed + virtual int32_t DigitalWriteNoPacking(uint8_t numChans, uint8_t* channels, uint8_t* values); // Values Are Not Bit Packed + virtual int32_t DigitalRead(uint8_t numChans, uint8_t* channels, uint8_t* values); + virtual int32_t DigitalReadNoPacking(uint8_t numChans, uint8_t* channels, uint8_t* values); // Response Not Bit Packed + virtual int32_t DigitalWriteSquareWave(uint8_t channel, uint32_t freq, uint32_t duration); + virtual int32_t DigitalReadPulseWidth(uint8_t stimChan, uint8_t stimType, uint8_t respChan, uint8_t respType, uint32_t timeout, uint32_t* width); + + // QE + + // PWM + virtual int32_t PwmSetDutyCycle(uint8_t numChans, uint8_t* channels, uint8_t* values); + virtual int32_t PwmSetFrequency(uint8_t numChans, uint8_t* channels, uint32_t* values); + + // SPI + virtual int32_t SpiOpenMaster(uint8_t channel); + virtual int32_t SpiSetBitOrder(uint8_t channel, uint8_t bitOrder); + virtual int32_t SpiSetMode(uint8_t channel, uint8_t mode); + virtual int32_t SpiSetSpeed(uint8_t channel, uint32_t speed, uint32_t* actualSpeed); + virtual int32_t SpiWriteRead(uint8_t channel, uint8_t frameSize, uint8_t numFrames, uint8_t csChan, uint8_t csLL, unsigned char* sendBuffer, unsigned char* recBuffer); + virtual int32_t SpiCloseMaster(uint8_t channel); + + // I2C + virtual int32_t I2cOpenMaster(uint8_t channel); + virtual int32_t I2cSetSpeed(uint8_t channel, uint32_t speed, uint32_t* actualSpeed); + virtual int32_t I2cWrite(uint8_t channel, uint8_t slaveAddress, uint8_t eofConfig, uint8_t numBytes, unsigned char* sendBuffer); + virtual int32_t I2cRead(uint8_t channel, uint8_t slaveAddress, uint8_t eofConfig, uint8_t numBytes, uint32_t timeout, unsigned char* recBuffer); + virtual int32_t I2cTransfer(uint8_t channel, uint8_t slaveAddress, int32_t numFrames, int32_t *flags, int32_t *numBytes, uint32_t timeout, unsigned char* sendBuffer, unsigned char* recBuffer); + virtual int32_t I2cClose(uint8_t channel); + + // UART + virtual int32_t UartOpen(uint8_t channel, LinxUartChannel **channelObj = NULL); + virtual int32_t UartOpen(const unsigned char *deviceName, uint8_t *channel, LinxUartChannel **channelObj = NULL); + virtual int32_t UartSetBaudRate(uint8_t channel, uint32_t baudRate, uint32_t* actualBaud); + virtual int32_t UartSetParameters(uint8_t channel, uint8_t dataBits, uint8_t stopBits, LinxUartParity parity); + virtual int32_t UartGetBytesAvailable(uint8_t channel, uint32_t *numBytes); + virtual int32_t UartRead(uint8_t channel, uint32_t numBytes, unsigned char* recBuffer, int32_t timeout, uint32_t* numBytesRead); + virtual int32_t UartWrite(uint8_t channel, uint32_t numBytes, unsigned char* sendBuffer, int32_t timeout); + virtual int32_t UartClose(uint8_t channel); + + // CAN + + // Servo + virtual int32_t ServoOpen(uint8_t numChans, uint8_t* channels); + virtual int32_t ServoSetPulseWidth(uint8_t numChans, uint8_t* channels, uint16_t* pulseWidths); + virtual int32_t ServoClose(uint8_t numChans, uint8_t* channels); + + // WS2812 + virtual int32_t Ws2812Open(uint16_t numLeds, uint8_t dataChan); + virtual int32_t Ws2812WriteOnePixel(uint16_t pixelIndex, uint8_t red, uint8_t green, uint8_t blue, uint8_t refresh); + virtual int32_t Ws2812WriteNPixels(uint16_t startPixel, uint16_t numPixels, unsigned char* data, uint8_t refresh); + virtual int32_t Ws2812Refresh(void); + virtual int32_t Ws2812Close(void); + + // General + virtual void NonVolatileWrite(int32_t address, uint8_t data); + virtual uint8_t NonVolatileRead(int32_t address); + + virtual uint32_t GetMilliSeconds(void); + virtual uint32_t GetSeconds(void); + virtual void DelayMs(uint32_t ms); + + virtual int32_t EnumerateChannels(int32_t type, unsigned char *buffer = NULL, uint32_t length = 0, uint32_t *reqLen = NULL); + + virtual void DebugPrintPacket(uint8_t direction, const unsigned char* packetBuffer); + virtual void DebugEnable(LinxCommChannel *channel); + virtual void DebugDisable(void); + virtual LinxFmtChannel* GetDebug(void); + + protected: + /**************************************************************************************** + ** Variables + ****************************************************************************************/ + LinxFmtChannel *m_Debug; + /**************************************************************************************** ** Functions ****************************************************************************************/ - - //Analog - virtual int AnalogRead(unsigned char numChans, unsigned char* channels, unsigned char* values) = 0; - virtual int AnalogReadNoPacking(unsigned char numChans, unsigned char* channels, unsigned long* values); //Values Are ADC Ticks And Not Bit Packed - virtual int AnalogSetRef(unsigned char mode, unsigned long voltage) = 0; - - //DIGITAL - virtual int DigitalWrite(unsigned char numChans, unsigned char* channels, unsigned char* values) = 0; //Values Are Bit Packed - virtual int DigitalWriteNoPacking(unsigned char numChans, unsigned char* channels, unsigned char* values); //Values Are Not Bit Packed - virtual int DigitalRead(unsigned char numChans, unsigned char* channels, unsigned char* values) = 0; - virtual int DigitalReadNoPacking(unsigned char numChans, unsigned char* channels, unsigned char* values); //Response Not Bit Packed - virtual int DigitalWriteSquareWave(unsigned char channel, unsigned long freq, unsigned long duration) = 0; - virtual int DigitalReadPulseWidth(unsigned char stimChan, unsigned char stimType, unsigned char respChan, unsigned char respType, unsigned long timeout, unsigned long* width) = 0; - - //PWM - virtual int PwmSetDutyCycle(unsigned char numChans, unsigned char* channels, unsigned char* values) = 0; - virtual int PwmSetFrequency(unsigned char numChans, unsigned char* channels, unsigned long* values); - - //SPI - virtual int SpiOpenMaster(unsigned char channel) = 0; - virtual int SpiSetBitOrder(unsigned char channel, unsigned char bitOrder) = 0; - virtual int SpiSetMode(unsigned char channel, unsigned char mode) = 0; - virtual int SpiSetSpeed(unsigned char channel, unsigned long speed, unsigned long* actualSpeed) = 0; - virtual int SpiWriteRead(unsigned char channel, unsigned char frameSize, unsigned char numFrames, unsigned char csChan, unsigned char csLL, unsigned char* sendBuffer, unsigned char* recBuffer) = 0; - - //I2C - virtual int I2cOpenMaster(unsigned char channel) = 0; - virtual int I2cSetSpeed(unsigned char channel, unsigned long speed, unsigned long* actualSpeed) = 0; - virtual int I2cWrite(unsigned char channel, unsigned char slaveAddress, unsigned char eofConfig, unsigned char numBytes, unsigned char* sendBuffer) = 0; - virtual int I2cRead(unsigned char channel, unsigned char slaveAddress, unsigned char eofConfig, unsigned char numBytes, unsigned int timeout, unsigned char* recBuffer) = 0; - virtual int I2cClose(unsigned char channel) = 0; - - //UART - virtual int UartOpen(unsigned char channel, unsigned long baudRate, unsigned long* actualBaud) = 0; - virtual int UartSetBaudRate(unsigned char channel, unsigned long baudRate, unsigned long* actualBaud) = 0; - virtual int UartGetBytesAvailable(unsigned char channel, unsigned char *numBytes) = 0; - virtual int UartRead(unsigned char channel, unsigned char numBytes, unsigned char* recBuffer, unsigned char* numBytesRead) = 0; - virtual int UartWrite(unsigned char channel, unsigned char numBytes, unsigned char* sendBuffer) = 0; - virtual void UartWrite(unsigned char channel, char c); - virtual void UartWrite(unsigned char channel, const char s[]); - virtual void UartWrite(unsigned char channel, unsigned char c); - virtual void UartWrite(unsigned char channel, int n); - virtual void UartWrite(unsigned char channel, unsigned int n); - virtual void UartWrite(unsigned char channel, long n); - virtual void UartWrite(unsigned char channel, unsigned long n); - virtual void UartWrite(unsigned char channel, long n, int base); - virtual void UartWriteln(unsigned char channel); - virtual void UartWriteln(unsigned char channel, char c); - virtual void UartWriteln(unsigned char channel, const char s[]); - virtual void UartWriteln(unsigned char channel, unsigned char c); - virtual void UartWriteln(unsigned char channel, int n); - virtual void UartWriteln(unsigned char channel, long n); - virtual void UartWriteln(unsigned char channel, unsigned long n); - virtual void UartWriteln(unsigned char channel, long n, int base); - virtual int UartClose(unsigned char channel) = 0; - - //Servo - virtual int ServoOpen(unsigned char numChans, unsigned char* channels) = 0; - virtual int ServoSetPulseWidth(unsigned char numChans, unsigned char* channels, unsigned short* pulseWidths) = 0; - virtual int ServoClose(unsigned char numChans, unsigned char* channels) = 0; - - //WS2812 - virtual int Ws2812Open(unsigned short numLeds, unsigned char dataChan); - virtual int Ws2812WriteOnePixel(unsigned short pixelIndex, unsigned char red, unsigned char green, unsigned char blue, unsigned char refresh); - virtual int Ws2812WriteNPixels(unsigned short startPixel, unsigned short numPixels, unsigned char* data, unsigned char refresh); - virtual int Ws2812Refresh(); - virtual int Ws2812Close(); - - //General - unsigned char ReverseBits(unsigned char b); - virtual unsigned long GetMilliSeconds() = 0; - virtual unsigned long GetSeconds() = 0; - virtual void DelayMs(unsigned long ms); - virtual void NonVolatileWrite(int address, unsigned char data) = 0; - virtual unsigned char NonVolatileRead(int address) = 0; - - //Debug - virtual void EnableDebug(unsigned char channel); - - virtual void DebugPrint(char c); - virtual void DebugPrint(const char s[]); - virtual void DebugPrint(unsigned char c); - virtual void DebugPrint(int n); - virtual void DebugPrint(unsigned int n); - virtual void DebugPrint(long n); - virtual void DebugPrint(unsigned long n); - virtual void DebugPrint(long n, int base); - - virtual void DebugPrintln(); - virtual void DebugPrintln(char c); - virtual void DebugPrintln(const char s[]); - virtual void DebugPrintln(unsigned char c); - virtual void DebugPrintln(int n); - virtual void DebugPrintln(long n); - virtual void DebugPrintln(unsigned long n); - virtual void DebugPrintln(long n, int base); - - - virtual void DebugPrintPacket(unsigned char direction, const unsigned char* packetBuffer); - + virtual uint32_t PackData(uint32_t value, uint32_t resolution, uint32_t *remaining, uint8_t *values, uint32_t offset); + virtual uint32_t UnpackData(uint32_t resolution, uint32_t *remaining, uint8_t *values, uint32_t *offset); + + virtual int32_t VerifyChannels(int32_t type, uint8_t numChans, uint8_t *channel); + virtual LinxChannel* LookupChannel(int32_t type, const unsigned char *channelName, uint8_t *channel); + virtual LinxChannel* LookupChannel(int32_t type, uint8_t channel); + virtual uint8_t RegisterChannel(int32_t type, LinxChannel *chan); + virtual void RegisterChannel(int32_t type, uint8_t channel, LinxChannel *chan = NULL); + virtual void RemoveChannel(int32_t type, uint8_t channel); + virtual void ClearChannels(int32_t type); + private: /**************************************************************************************** ** Variables - ****************************************************************************************/ - virtual void UartWriteNumber(unsigned char channel, unsigned long n, unsigned char bases); - + ****************************************************************************************/ + std::map m_ChannelRegistry[LinxNumChannelTypes]; + /**************************************************************************************** ** Functions ****************************************************************************************/ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/utility/LinxLinuxChannel.cpp b/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/utility/LinxLinuxChannel.cpp new file mode 100644 index 00000000..ae230da9 --- /dev/null +++ b/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/utility/LinxLinuxChannel.cpp @@ -0,0 +1,975 @@ +/**************************************************************************************** +** LINX - channel implementation for Lux based systems +** +** For more information see: www.labviewmakerhub.com/linx +** For support visit the forums at: www.labviewmakerhub.com/forums/linx +** +** Written By Rolf Kalbermatter based on code from Sam Kristoff +** +** BSD2 License. +****************************************************************************************/ + +/**************************************************************************************** +** Defines +****************************************************************************************/ +#define NUM_UART_SPEEDS 18 + +/**************************************************************************************** +** Includes +****************************************************************************************/ +#include +#include "LinxDefines.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "LinxUtilities.h" +#include "LinxLinuxChannel.h" + +/**************************************************************************************** +** Defines +****************************************************************************************/ + +/************************************ Analog Input SysFS Channel ***********************/ +/**************************************************************************************** +** Constructor/Destructors +****************************************************************************************/ +LinxSysfsAiChannel::LinxSysfsAiChannel(LinxFmtChannel *debug, const char *channelName, uint8_t resolution) : LinxAiChannel(debug, channelName, resolution) +{ + m_ValHandle = NULL; +} + +LinxSysfsAiChannel::~LinxSysfsAiChannel(void) +{ + if (m_ValHandle) + { + fclose(m_ValHandle); + } +} + +/**************************************************************************************** +** Private Functions +****************************************************************************************/ +// Open direction and value handles if it is not already open +int32_t LinxSysfsAiChannel::SmartOpen(void) +{ + // Open value handle if it is not already open + if (m_ValHandle == NULL) + { + m_Debug->Writeln("Opening AI Value Handle"); + m_ValHandle = fopen(m_ChannelName, "r+w+"); + if (m_ValHandle == NULL) + { + m_Debug->Writeln("AI Fail - Unable To Open Value File Handle"); + return L_UNKNOWN_ERROR; + } + } + return L_OK; +} + +/**************************************************************************************** +** Public Functions +****************************************************************************************/ +int32_t LinxSysfsAiChannel::Read(uint32_t *value) +{ + int32_t status = SmartOpen(); + if (status) + return status; + + m_ValHandle = freopen(m_ChannelName, "r+", m_ValHandle); + fscanf(m_ValHandle, "%u", value); + return L_OK; +} + +/************************************ Digtal Input SysFS Channel ***********************/ +/**************************************************************************************** +** Constructor/Destructors +****************************************************************************************/ +LinxSysfsDioChannel::LinxSysfsDioChannel(LinxFmtChannel *debug, uint16_t linxPin, uint16_t gpioPin) : LinxDioChannel(debug, linxPin, gpioPin) +{ + m_ValHandle = NULL; + m_DirHandle = NULL; + m_EdgeHandle = NULL; +} + +LinxSysfsDioChannel::~LinxSysfsDioChannel(void) +{ + if (m_EdgeHandle != NULL) + { + fclose(m_EdgeHandle); + } + + if (m_DirHandle != NULL) + { + // return to input + fprintf(m_DirHandle, "in"); + fclose(m_DirHandle); + } + + if (m_ValHandle != NULL) + { + fclose(m_ValHandle); + + FILE* digitalExportHandle = fopen("/sys/class/gpio/unexport", "r+w+"); + if (digitalExportHandle != NULL) + { + fprintf(digitalExportHandle, "%d", m_GpioChan); + fclose(digitalExportHandle); + } + } +} + +/**************************************************************************************** +** Private Functions +****************************************************************************************/ +// Open direction and value handles if it is not already open +int32_t LinxSysfsDioChannel::SmartOpen(void) +{ + char gpioPath[32]; + + // Open direction handle if it is not already open + if (m_DirHandle == NULL) + { + m_Debug->Write("Opening Digital Direction Handle For LINX DIO "); + m_Debug->Write(m_LinxChan, DEC); + m_Debug->Write("(GPIO "); + m_Debug->Write(m_GpioChan, DEC); + m_Debug->Writeln(")"); + + sprintf(gpioPath, "/sys/class/gpio/gpio%d/direction", m_GpioChan); + if (!fileExists(gpioPath)) + { + FILE* digitalExportHandle = fopen("/sys/class/gpio/export", "r+w+"); + if (digitalExportHandle != NULL) + { + fprintf(digitalExportHandle, "%d", m_GpioChan); + fclose(digitalExportHandle); + } + else + { + m_Debug->Writeln("Digital Fail - Unable To Open Direction File Handle"); + return LDIGITAL_PIN_NOT_AVAIL; + } + } + m_DirHandle = fopen(gpioPath, "r+w+"); + } + + // Open value handle if it is not already open + if (m_ValHandle == NULL) + { + m_Debug->Writeln("Opening Digital Value Handle"); + sprintf(gpioPath, "/sys/class/gpio/gpio%d/value", m_GpioChan); + m_ValHandle = fopen(gpioPath, "r+w+"); + if (m_ValHandle == NULL) + { + m_Debug->Writeln("Digital Fail - Unable To Open Value File Handle"); + return LDIGITAL_PIN_NOT_AVAIL; + } + } + return L_OK; +} + +/**************************************************************************************** +** Protected Functions +****************************************************************************************/ +int32_t LinxSysfsDioChannel::setDirection(uint8_t dir) +{ + int32_t status = SmartOpen(); + if (!status) + { + status = LinxDIOChannel::setDirection(dir); + if (!status) + { + //Set as input or output + fprintf(m_DirHandle, dir & GPIO_DIRMASK ? "out" : "in"); + fflush(m_DirHandle); + } + else if (status == LDIGITAL_PIN_NOCHANGE) + { + return L_OK; + } + } + return status; +} + +int32_t LinxSysfsDioChannel::setPull(uint8_t pud) +{ + int32_t status = SmartOpen(); + if (!status) + { + status = LinxDIOChannel::setPull(pud); + if (!status) + { + return L_FUNCTION_NOT_SUPPORTED; + } + else if (status == LDIGITAL_PIN_NOCHANGE) + { + return L_OK; + } + } + return status; +} + +int32_t LinxSysfsDioChannel::setValue(uint8_t value) +{ + int32_t status = SmartOpen(); + if (!status) + { + // Set value + status = fprintf(m_ValHandle, value ? "1" : "0"); + fflush(m_ValHandle); + return status == 1 ? L_OK : LDIGITAL_PIN_NOT_AVAIL; + } + return status; +} + +int32_t LinxSysfsDioChannel::getValue(uint8_t *value) +{ + int32_t status = SmartOpen(); + if (!status) + { + char gpioPath[32]; + + //Reopen value handle + sprintf(gpioPath, "/sys/class/gpio/gpio%d/value", m_GpioChan); + m_ValHandle = freopen(gpioPath, "r+w+", m_ValHandle); + + //Read from next pin + status = fscanf(m_ValHandle, "%hhu", value); + return status == 1 ? L_OK : LDIGITAL_PIN_NOT_AVAIL; + } + return status; +} + +/************************************ Digtal Input GPIO Channel ************************/ +/**************************************************************************************** +** Constructor/Destructors +****************************************************************************************/ +LinxGPIODioChannel::LinxGPIODioChannel(LinxFmtChannel *debug, uint16_t linxPin, uint16_t gpioPin) : LinxDioChannel(debug, linxPin, gpioPin) +{ +} + +LinxGPIODioChannel::~LinxGPIODioChannel(void) +{ +} + +/**************************************************************************************** +** Private Functions +****************************************************************************************/ +// Open direction and value handles if it is not already open +int32_t LinxGPIODioChannel::SmartOpen(void) +{ +} + +/**************************************************************************************** +** Protected Functions +****************************************************************************************/ +int32_t LinxGPIODioChannel::setDirection(uint8_t dir) +{ +} + +int32_t LinxGPIODioChannel::setPull(uint8_t pud) +{ +} + +int32_t LinxGPIODioChannel::setValue(uint8_t value) +{ +} + +int32_t LinxGPIODioChannel::getValue(uint8_t *value) +{ +} + +//------------------------------------- UART ------------------------------------- +LinxSysfsPwmChannel::LinxSysfsPwmChannel(LinxFmtChannel *debug, const char *deviceName, const char *enableName, const char *periodName, const char *dutyCycleName, uint32_t defaultPeriod) : LinxPwmChannel(debug, deviceName) +{ + m_PeriodHandle = NULL; + m_DutyCycleHandle = NULL; + m_EnableFileName = enableName; + m_PeriodFileName = periodName; + m_DutyCycleFileName = dutyCycleName; + m_DefaultPeriod = defaultPeriod; +} + +LinxSysfsPwmChannel::~LinxSysfsPwmChannel(void) +{ + if (m_DutyCycleHandle != NULL) + { + fclose(m_DutyCycleHandle); + m_DutyCycleHandle = NULL; + } + if (m_PeriodHandle != NULL) + { + char enablePath[64]; + sprintf(enablePath, "%s%s", m_ChannelName, m_EnableFileName); + FILE* pwmEnableHandle = fopen(enablePath, "r+w+"); + if (pwmEnableHandle != NULL) + { + fprintf(pwmEnableHandle, "0"); + fclose(pwmEnableHandle); + } + else + { + m_Debug->Write("PWM Fail - Unable to open pwmEnableHandle"); + } + fclose(m_PeriodHandle); + m_PeriodHandle = NULL; + } +} + +int32_t LinxSysfsPwmChannel::SmartOpen(void) +{ + char tempPath[64]; + //Open Period Handle If It Is Not Already + if (m_PeriodHandle == NULL) + { + //Turn On PWM + sprintf(tempPath, "%s%s", m_ChannelName, m_EnableFileName); + FILE* pwmEnableHandle = fopen(tempPath, "r+w+"); + if (pwmEnableHandle != NULL) + { + fprintf(pwmEnableHandle, "1"); + fclose(pwmEnableHandle); + } + else + { + m_Debug->Write("PWM Fail - Unable to open pwmEnableHandle"); + } + + sprintf(tempPath, "%s%s", m_ChannelName, m_PeriodFileName); + m_Debug->Write("Opening "); + m_Debug->Writeln(tempPath); + m_PeriodHandle = fopen(tempPath, "r+w+"); + + //Initialize PWM Period + fprintf(m_PeriodHandle, "%u", m_DefaultPeriod); + m_Period = m_DefaultPeriod; + fflush(m_PeriodHandle); + } + + //Open Duty Cycle Handle If It Is Not Already + if (m_DutyCycleHandle == NULL) + { + sprintf(tempPath, "%s%s", m_ChannelName, m_DutyCycleFileName); + m_Debug->Write("Opening "); + m_Debug->Writeln(tempPath); + m_DutyCycleHandle = fopen(tempPath, "r+w+"); + fprintf(m_DutyCycleHandle, "0"); + } + return L_OK; +} + +int32_t LinxSysfsPwmChannel::SetDutyCycle(uint8_t value) +{ + //uint32_t period = 500000; //Period Defaults To 500,000 nS. To Do Update This When Support For Changing Period / Frequency Is Added + uint32_t dutyCycle = 0; + + if (value == 0) + { + dutyCycle = 0; + } + else if (value == 255) + { + dutyCycle = m_Period; + } + else + { + dutyCycle = (uint32_t)(m_Period * (value / 255.0)); + } + + //Update Output + m_Debug->Write("Setting Duty Cycle = "); + m_Debug->Write(dutyCycle, DEC); + fprintf(m_DutyCycleHandle, "%u", dutyCycle); + m_Debug->Write(" ... Duty Cycle Set ... "); + fflush(m_DutyCycleHandle); + m_Debug->Writeln("Flushing."); + return L_OK; +} + + +//------------------------------------- Unix Comm ------------------------------------- +LinxUnixCommChannel::LinxUnixCommChannel(LinxFmtChannel *debug, const unsigned char *channelName, OSSocket socket) : LinxCommChannel(debug, channelName) +{ + m_Socket = socket; +} + +LinxUnixCommChannel::LinxUnixCommChannel(LinxFmtChannel *debug, const unsigned char *address, uint16_t port) : LinxCommChannel(debug, address) +{ + struct addrinfo hints, *result, *rp; + char servname[10]; + int32_t retval; + + memset(&hints, 0, sizeof(struct addrinfo)); + hints.ai_family = AF_UNSPEC; + hints.ai_socktype = SOCK_STREAM; + hints.ai_protocol = AF_UNSPEC; + hints.ai_flags = AI_NUMERICSERV; + + sprintf(servname, "%hu", port); + if (!getaddrinfo(address, servname, &hints, &result)) + { + for (rp = result; rp != NULL; rp = rp->ai_next) + { + m_Socket = socket(rp->ai_family, rp->ai_socktype, rp->ai_protocol); + if (!IsANetObject(m_Socket)) + continue; + + switch (rp->ai_addr->sa_family) + { + case AF_INET: + ((sockaddr_in*)rp->ai_addr)->sin_port = port; + break; + case AF_INET6: + ((sockaddr_in6*)rp->ai_addr)->sin6_port = port; + break; + default: + continue; + } + retval = connect(m_Socket, rp->ai_addr, (socklen_t)rp->ai_addrlen); + if (retval != -1) + { + u_long nonBlocking = 1; + retval = ioctl(m_Socket, FIONBIO, &nonBlocking); + if (retval >= 0) + break; + } + close(m_Socket); + m_Socket = kInvalNetObject; + } + freeaddrinfo(result); + if (rp == NULL) + { + m_Debug->Write("Could not connect to TCP/IP address: "); + m_Debug->Writeln(address); + } + } +} + +LinxUnixCommChannel::~LinxUnixCommChannel(void) +{ + if (m_Socket >= 0) + close(m_Socket); +} + +int32_t LinxUnixCommChannel::Read(unsigned char* recBuffer, int32_t numBytes, uint32_t start, int32_t timeout, int32_t* numBytesRead) +{ + *numBytesRead = 0; + + if (recBuffer && numBytes) + { + struct pollfd fds[1]; + int32_t retval, offset = 0; + + fds[0].fd = m_Socket; + fds[0].events = POLLIN ; + + while (*numBytesRead < numBytes) + { + retval = poll(fds, 1, timeout < 0 ? -1 : Min(timeout - (getMsTicks() - start), 0)); + if (!retval) + { + return LUART_TIMEOUT; + } + else if (retval < 0) + { + return LUART_READ_FAIL; + } + // Read bytes from input buffer + retval = read(m_Socket, recBuffer + offset, numBytes - offset); + if (!retval) + { + return L_DISCONNECT; + } + else + { + return LUART_READ_FAIL; + } + *numBytesRead += retval; + } + } + else + { + // Check how many bytes are available + if (ioctl(m_Socket, FIONREAD, numBytesRead) < 0) + { + if (errno == EBADF) + { + return L_DISCONNECT; + } + return LUART_READ_FAIL; + } + } + return L_OK; +} + +int32_t LinxUnixCommChannel::Write(const unsigned char* sendBuffer, int32_t numBytes, uint32_t start, nt timeout) +{ + int32_t bytesSent = write(m_Socket, sendBuffer, numBytes); + if (bytesSent != numBytes) + { + if (bytesSent < 0 && errno == EBADF) + { + return L_DISCONNECT; + } + return LUART_WRITE_FAIL; + } + return L_OK; +} + +int32_t LinxUnixCommChannel::Close(void) +{ + if (m_Socket >= 0) + close(m_Socket); + m_Socket = kInvalNetObject; + return L_OK; +} + +//------------------------------------- UART ------------------------------------- +LinxUnixUartChannel::LinxUnixUartChannel(LinxFmtChannel *debug, const char *deviceName) : LinxUartChannel(debug, deviceName) +{ + struct termios2 options; + + // Open device as read/write, no CTRL-C handling and non-blocking + m_Socket = open(m_ChannelName, O_RDWR | O_NOCTTY | O_NONBLOCK); + if (m_Socket < 0) + { + m_Debug->Write("Unix Socket Fail - Failed to open file handle - "); + m_Debug->Writeln(m_ChannelName); + return LUART_OPEN_FAIL; + } + if (ioctl(m_Socket, TCGETS, &options) < 0) + return LERR_IO; + + options.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG); // Use raw input mode + options.c_oflag &= ~OPOST; // Use raw output mode + + if (ioctl(m_Socket, TCSETS, &options) < 0) + return LERR_IO; + + return L_OK; +} + +static uint32_t g_UartSupportedSpeeds[NUM_UART_SPEEDS] = {0, 50, 75, 110, 134, 150, 200, 300, 600, 1200, 1800, 2400, 4800, 9600, 19200, 38400, 57600, 115200}; +static uint32_t g_UartSupportedSpeedsCodes[NUM_UART_SPEEDS] = {B0, B50, B75, B110, B134, B150, B200, B300, B600, B1200, B1800, B2400, B4800, B9600, B19200, B38400, B57600, B115200}; + +int32_t LinxUnixUartChannel::SetSpeed(uint32_t baudRate, uint32_t* actualBaud) +{ + struct termios2 options; + int32_t ioctlval = TCSETS2; + int32_t status = SmartOpen(); + if (status) + return status; + + // If driver supports newer TCGETS2 ioctl call, assume that we can set arbitrary baudrates + // Actual used baudrate may still be different due to discrete clock generation + if (ioctl(m_Socket, TCGETS2, &options) < 0) + { + int32_t temp; + + if (ioctl(m_Socket, TCGETS, &options) < 0) + return LERR_IO; + + // Get Closest Support Baud Rate Without Going Over + // Loop Over All Supported Uart Speeds + for (temp = 0; temp < NUM_UART_SPEEDS; temp++) + { + if (baudRate < *(g_UartSupportedSpeeds + temp)) + { + //Previous Index Was Closest Supported Baud Without Going Over, Index Will Be Decremented Accordingly Below. + break; + } + } + // Once Loop Completes Index Is One Higher Than The Correct Baud, But Could Be Zero So Check And Decrement Accordingly + // If The Entire Loop Runs Then index == NumUartSpeeds So Decrement It To Get Max Baud + if (temp != 0) + temp--; + + //Store Actual Baud Used + if (actualBaud) + *actualBaud = (uint32_t) *(g_UartSupportedSpeeds + temp); + options.c_cflag = (options.c_cflag & ~(CBAUD | CIBAUD)) | g_UartSupportedSpeedsCodes[temp] | g_UartSupportedSpeedsCodes[temp] << IBSHIFT; + ioctlval = TCSETS; + } + else + { + if (actualBaud) + *actualBaud = baudRate; + options.c_ispeed = baudRate; + options.c_ospeed = baudRate; + options.c_cflag = ((options.c_cflag & ~(CBAUD | CIBAUD)) | BOTHER | BOTHER << IBSHIFT); + } + + //Set Baud Rate + ioctl(m_Socket, TCFLSH, TCIFLUSH); + if (ioctl(m_Socket, ioctlval, &options) < 0) + return LERR_IO; + return L_OK; +} + +#define BIT_SIZE_OFFSET 5 +#define NUM_BIT_SIZES 4 +#define NUM_PARITY_SIZES 5 + +static const int32_t BitSizes[NUM_BIT_SIZES] = {CS5, CS6, CS7, CS8}; +static const int32_t Parity[NUM_PARITY_SIZES] = {0, PARENB, PARENB | PARODD, PARENB | PARODD | CMSPAR, PARENB | CMSPAR}; + +int32_t LinxUnixUartChannel::SetParameters(uint8_t dataBits, uint8_t stopBits, LinxUartParity parity) +{ + int32_t status = SmartOpen(); + if (status) + return status; + + if (dataBits > 0 && (dataBits < BIT_SIZE_OFFSET || dataBits >= BIT_SIZE_OFFSET + NUM_BIT_SIZES)) + return LERR_BADPARAM; + + if (stopBits > 2) + return LERR_BADPARAM; + + if (!dataBits && !stopBits) + return L_OK; + + struct termios options; + if (ioctl(m_Socket, TCGETS, &options) >= 0) + { + if (dataBits) + options.c_cflag = (options.c_cflag & ~CSIZE) | BitSizes[dataBits - BIT_SIZE_OFFSET]; + if (stopBits == 1) + options.c_cflag &= ~CSTOPB; + else if (stopBits == 2) + options.c_cflag |= CSTOPB; + + if (parity) + { + // Use selected parity + options.c_cflag = (options.c_cflag & ~(PARENB | PARODD | CMSPAR)) | Parity[parity - 1]; + options.c_iflag &= ~IGNPAR; // Don't ignore parity errors + } + else + { + // Ignore parity + options.c_cflag = (options.c_cflag & ~(PARENB | PARODD | CMSPAR)); + options.c_iflag |= IGNPAR; // Ignore parity errors + } + options.c_iflag |= (INPCK | ISTRIP); + if (ioctl(m_Socket, TCSETS, &options) >= 0) + return L_OK; + + if (ioctl(m_Socket, TCSETS, &options) >= 0) + return L_OK; + } + return LUART_SET_PARAM_FAIL; +} + +//------------------------------------- I2C ------------------------------------- +LinxSysfsI2cChannel::LinxSysfsI2cChannel(LinxFmtChannel *debug, const char *channelName) : LinxI2cChannel(debug, channelName) +{ + m_Fd = -1; + m_Funcs = 0; +} + +LinxSysfsI2cChannel::~LinxSysfsI2cChannel(void) +{ + if (m_Fd >= 0) + close(m_Fd); +} + +int32_t LinxSysfsI2cChannel::Open(void) +{ + if (m_Fd < 0) + { + m_Fd = open(m_ChannelName, O_RDWR); + if (m_Fd < 0) + { + m_Debug->Writeln("I2C Fail - Failed To Open I2C Channel"); + return LI2C_OPEN_FAIL; + } + ioctl(m_Fd, I2C_FUNCS, &m_Funcs); + } + return L_OK; +} + +int32_t LinxSysfsI2cChannel::SetSpeed(uint32_t speed, uint32_t* actualSpeed) +{ + return L_FUNCTION_NOT_SUPPORTED; +} + +int32_t LinxSysfsI2cChannel::Write(uint8_t slaveAddress, uint8_t eofConfig, int32_t numBytes, unsigned char* sendBuffer) +{ + if (m_Fd < 0) + return LI2C_DEVICE_NOT_OPEN; + + //Check EOF - Currently Only Support 0x00 + if (eofConfig != EOF_STOP) + { + m_Debug->Writeln("I2C Fail - EOF Not Supported"); + return LI2C_EOF; + } + + struct i2c_rdwr_ioctl_data work_queue; + struct i2c_msg msg[1]; + + work_queue.nmsgs = 1; + work_queue.msgs = msg; + + msg[0].addr = slaveAddress; + msg[0].len = numBytes; + msg[0].flags = 0; + msg[0].buf = sendBuffer; + + if (ioctl(m_Fd, I2C_RDWR, &work_queue) < 0) + return LI2C_SADDR; + + return L_OK; +} + +int32_t LinxSysfsI2cChannel::Read(uint8_t slaveAddress, uint8_t eofConfig, int32_t numBytes, uint32_t timeout, unsigned char* recBuffer) +{ + if (m_Fd < 0) + return LI2C_DEVICE_NOT_OPEN; + + struct i2c_rdwr_ioctl_data work_queue; + struct i2c_msg msg[1]; + + //Check EOF - Currently Only Support 0x00 + if (eofConfig != EOF_STOP) + { + return LI2C_EOF; + } + + work_queue.nmsgs = 1; + work_queue.msgs = msg; + + msg[0].addr = slaveAddress; + msg[0].len = numBytes; + msg[0].flags = I2C_M_RD; + msg[0].buf = recBuffer; + + if (ioctl(m_Fd, I2C_RDWR, &work_queue) < 0) + return LI2C_SADDR; + + return L_OK; +} + +int32_t LinxSysfsI2cChannel::Transfer(uint8_t slaveAddress, int32_t numFrames, int32_t *flags, int32_t *numBytes, uint32_t timeout, unsigned char* sendBuffer, unsigned char* recBuffer) +{ + if (m_Fd < 0) + return LI2C_DEVICE_NOT_OPEN; + + if (numFrames > I2C_RDRW_IOCTL_MAX_MSGS) + return LERR_BADPARAM; + + if (!(m_Funcs & I2C_FUNC_I2C)) + return L_FUNCTION_NOT_SUPPORTED; + + struct i2c_rdwr_ioctl_data work_queue; + struct i2c_msg msg[I2C_RDRW_IOCTL_MAX_MSGS]; + int32_t sendOffset = 0, recvOffset = 0; + + for (int32_t i = 0; i < numFrames; i++) + { + msg[i].addr = slaveAddress; + msg[i].len = numBytes[i]; + msg[i].flags = flags[i]; + if (flags[i] & I2C_M_RD) + { + msg[i].buf = recBuffer + recvOffset; + recvOffset += numBytes[i]; + } + else + { + msg[i].buf = sendBuffer + sendOffset; + sendOffset += numBytes[i]; + } + } + work_queue.nmsgs = numFrames; + work_queue.msgs = msg; + + if (ioctl(m_Fd, I2C_RDWR, &work_queue) < 0) + return LI2C_SADDR; + + return L_OK; +} + +int32_t LinxSysfsI2cChannel::Close(void) +{ + if ((m_Fd >= 0) && (close(m_Fd) < 0)) + return LI2C_CLOSE_FAIL; + m_Fd = -1; + return L_OK; +} + +//------------------------------------- SPI ------------------------------------- +LinxSysfsSpiChannel::LinxSysfsSpiChannel(LinxFmtChannel *debug, LinxDevice *device, const char *channelName, uint32_t maxSpeed) : LinxSpiChannel(debug, channelName) +{ + m_Device = device; + m_CurrentSpeed = maxSpeed; + m_MaxSpeed = maxSpeed; + m_Fd = -1; +} + +LinxSysfsSpiChannel::~LinxSysfsSpiChannel(void) +{ + if (m_Fd >= 0) + close(m_Fd); +} + +int32_t LinxSysfsSpiChannel::Open(void) +{ + if (m_Fd < 0) + { + m_Fd = open(m_ChannelName, O_RDWR); + if (m_Fd < 0) + { + return LSPI_OPEN_FAIL; + } + else + { + // Default To Mode 0 With No CS (LINX Uses GPIO When Performing Write) + uint8_t spi_mode = SPI_MODE_0 | SPI_NO_CS; + if (ioctl(m_Fd, SPI_IOC_WR_MODE, &spi_mode) < 0) + { + m_Debug->Writeln("Failed To Set SPI Mode"); + m_Debug->Writeln(spi_mode, BIN); + close(m_Fd); + return LSPI_OPEN_FAIL; + } + + //Default Max Speed To + if (ioctl(m_Fd, SPI_IOC_WR_MAX_SPEED_HZ, &m_MaxSpeed) < 0) + { + m_Debug->Write("SPI Fail - Failed To Set SPI Max Speed - "); + m_Debug->Writeln(m_MaxSpeed, DEC); + close(m_Fd); + return LSPI_OPEN_FAIL; + } + } + } + return L_OK; +} + +int32_t LinxSysfsSpiChannel::SetBitOrder(uint8_t bitOrder) +{ + m_BitOrder = bitOrder; + return L_OK; +} + +int32_t LinxSysfsSpiChannel::SetMode(uint8_t mode) +{ + if (m_Fd < 0) + return LSPI_DEVICE_NOT_OPEN; + + uint32_t spi_mode; + if (ioctl(m_Fd, SPI_IOC_RD_MODE, &spi_mode) < 0) + { + m_Debug->Writeln("Failed To Set SPI Mode"); + return L_UNKNOWN_ERROR; + } + + if (mode != spi_mode) + { + if (ioctl(m_Fd, SPI_IOC_WR_MODE, &mode) < 0) + { + m_Debug->Writeln("Failed To Set SPI Mode"); + m_Debug->Writeln(mode, BIN); + return L_UNKNOWN_ERROR; + } + } + return L_OK; +} + +int32_t LinxSysfsSpiChannel::SetSpeed(uint32_t speed, uint32_t* actualSpeed) +{ + if (m_Fd < 0) + return LSPI_DEVICE_NOT_OPEN; + + if (m_NumSpiSpeeds) + { + int32_t index; + //Loop Over All Supported SPI Speeds + for (index = 0; index < m_NumSpiSpeeds; index++) + { + if (speed < *(m_SpiSupportedSpeeds + index)) + { + //Previous Index Was Closest Supported Baud Without Going Over, Index Will Be Decremented Accordingly Below. + break; + } + } + if (index != 0) + index--; + *actualSpeed = *(m_SpiSupportedSpeeds + index); + } + else + { + *actualSpeed = speed; + } + m_CurrentSpeed = *actualSpeed; + return L_OK; +} + +int32_t LinxSysfsSpiChannel::WriteRead(uint8_t frameSize, uint8_t numFrames, uint8_t csChan, uint8_t csLL, unsigned char* sendBuffer, unsigned char* recBuffer) +{ + if (m_Fd < 0) + return LSPI_DEVICE_NOT_OPEN; + + uint8_t csInv = ~csLL & 0x01, // Precompute inverse digital value + nextByte = 0; // First Byte Of Next SPI Frame + + //SPI hardware only supports MSB First transfer. If Configured for LSB First reverse bits in software + if (m_BitOrder == LSBFIRST) + ReverseBits(sendBuffer, frameSize); + + struct spi_ioc_transfer transfer = {0}; + + //Set CS as output and make sure CS starts idle + if (csChan) + m_Device->DigitalWrite(1, &csChan, &csInv); + + for (int32_t i = 0; i < numFrames; i++) + { + //Setup Transfer + transfer.tx_buf = (uint32_t)(sendBuffer + nextByte); + transfer.rx_buf = (uint32_t)(recBuffer + nextByte); + transfer.len = frameSize; + transfer.delay_usecs = 0; + transfer.speed_hz = m_CurrentSpeed; + transfer.bits_per_word = 8; + + //CS Active + if (csChan) + m_Device->DigitalWrite(1, &csChan, &csLL); + + //Transfer Data + int32_t retVal = ioctl(m_Fd, SPI_IOC_MESSAGE(1), &transfer); + + //CS Idle + if (csChan) + m_Device->DigitalWrite(1, &csChan, &csInv); + + if (retVal < 0) + { + m_Debug->Writeln("SPI Fail - Failed To Transfer Data"); + return LSPI_TRANSFER_FAIL; + } + nextByte += frameSize; + } + return L_OK; +} + +int32_t LinxSysfsSpiChannel::Close(void) +{ + // Close SPI handle + if ((m_Fd >= 0) && (close(m_Fd) < 0)) + return LSPI_CLOSE_FAIL; + m_Fd = -1; + return L_OK; +} diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/utility/LinxLinuxChannel.h b/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/utility/LinxLinuxChannel.h new file mode 100644 index 00000000..56ea612d --- /dev/null +++ b/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/utility/LinxLinuxChannel.h @@ -0,0 +1,293 @@ +/**************************************************************************************** +** LINX header for channel defitions for use on Linux based systems +** +** For more information see: www.labviewmakerhub.com/linx +** For support visit the forums at: www.labviewmakerhub.com/forums/linx +** +** Written By Rolf Kalbermater based on code from Sam Kristoff +** +** BSD2 License. +****************************************************************************************/ + +#ifndef LINX_LINUXCHANNEL_H +#define LINX_LINUXCHANNEL_H + +/**************************************************************************************** +** Includes +****************************************************************************************/ +#include +#include +#include "LinxDefines.h" +#include "LinxChannel.h" +#include "LinxDevice.h" + +/**************************************************************************************** +** Typedefs +****************************************************************************************/ + +class LinxLinuxDevice; + +class LinxSysfsAiChannel : public LinxAiChannel +{ + public: + /**************************************************************************************** + ** Constructors + ****************************************************************************************/ + LinxSysfsAiChannel(LinxFmtChannel *debug, const char *channelName, uint8_t resolution); + virtual ~LinxSysfsAiChannel(void); + + /**************************************************************************************** + ** Functions + ****************************************************************************************/ + virtual int32_t Read(uint32_t *value); + + protected: + + private: + FILE *m_ValHandle; // File Handles For Digital Pin Value + + int32_t SmartOpen(void); +}; + +class LinxSysfsAoChannel : public LinxAoChannel +{ + public: + /**************************************************************************************** + ** Constructors + ****************************************************************************************/ + LinxSysfsAoChannel(LinxFmtChannel *debug, const char *channelName, uint8_t resolution); + virtual ~LinxSysfsAoChannel(void); + + /**************************************************************************************** + ** Functions + ****************************************************************************************/ + virtual int32_t Write(uint32_t value); + + protected: + + private: + FILE *m_ValHandle; // File Handles For Digital Pin Value + + int32_t SmartOpen(void); +}; + +class LinxSysfsDioChannel : public LinxDioChannel +{ + public: + /**************************************************************************************** + ** Constructors + ****************************************************************************************/ + LinxSysfsDioChannel(LinxFmtChannel *debug, uint16_t linxPin, uint16_t gpioPin); + virtual ~LinxSysfsDioChannel(void); + + protected: + /**************************************************************************************** + ** Functions + ****************************************************************************************/ + virtual int32_t setDirection(uint8_t dir); // direction + virtual int32_t setPull(uint8_t pud); // pull-up/down + virtual int32_t setValue(uint8_t value); + virtual int32_t getValue(uint8_t *value); + + private: + /**************************************************************************************** + ** Variables + ****************************************************************************************/ + FILE *m_ValHandle; // File Handles For Digital Pin Value + FILE *m_DirHandle; // File Handles For Digital Pin Direction + FILE *m_EdgeHandle; // File Handles For Digital Pin Edge + + /**************************************************************************************** + ** Functions + ****************************************************************************************/ + int32_t SmartOpen(void); +}; + +class LinxGPIODioChannel : public LinxDioChannel +{ + public: + /**************************************************************************************** + ** Constructors + ****************************************************************************************/ + LinxGPIODioChannel(LinxFmtChannel *debug, uint16_t linxPin, uint16_t gpioPin); + virtual ~LinxGPIODioChannel(void); + + protected: + /**************************************************************************************** + ** Functions + ****************************************************************************************/ + virtual int32_t setDirection(uint8_t dir); // direction + virtual int32_t setPull(uint8_t pud); // pull-up/down + virtual int32_t setValue(uint8_t value); + virtual int32_t getValue(uint8_t *value); + + private: + /**************************************************************************************** + ** Variables + + /**************************************************************************************** + ** Functions + ****************************************************************************************/ + int32_t SmartOpen(void); +}; + +class LinxSysfsPwmChannel : public LinxPwmChannel +{ + public: + /**************************************************************************************** + ** Constructors + ****************************************************************************************/ + LinxSysfsPwmChannel(LinxFmtChannel *debug, const char *deviceName, const char *enableFileName, const char *periodName, const char *dutyCycleName, uint32_t defaultPeriod); + virtual ~LinxSysfsPwmChannel(void); + + /**************************************************************************************** + ** Functions + ****************************************************************************************/ + virtual int32_t SetDutyCycle(uint8_t values); + virtual int32_t SetFrequency(uint32_t values); + + private: + /**************************************************************************************** + ** Variables + ****************************************************************************************/ + FILE *m_PeriodHandle; // File Handles For Period + FILE *m_DutyCycleHandle; // File Handles For Duty Cycle + const char *m_EnableFileName; + const char *m_PeriodFileName; + const char *m_DutyCycleFileName; + uint32_t m_DefaultPeriod; + uint32_t m_Period; + + /**************************************************************************************** + ** Functions + ****************************************************************************************/ + int32_t SmartOpen(void); +}; + +class LinxUnixCommChannel : public LinxCommChannel +{ + public: + /**************************************************************************************** + ** Constructors + ****************************************************************************************/ + LinxUnixCommChannel(LinxFmtChannel *debug, const unsigned char *channelName, NetObject socket); + LinxUnixCommChannel(LinxFmtChannel *debug, const unsigned char *address, uint16_t port); + virtual ~LinxUnixCommChannel(void); + + /**************************************************************************************** + ** Functions + ****************************************************************************************/ + virtual int32_t Read(unsigned char* recBuffer, int32_t numBytes, uint32_t start, int32_t timeout, int32_t* numBytesRead); + virtual int32_t Write(const unsigned char* sendBuffer, int32_t numBytes, uint32_t start, int32_t timeout); + virtual int32_t Close(void); + + protected: + /**************************************************************************************** + ** Functions + ****************************************************************************************/ + virtual int32_t SmartOpen(void); + int32_t m_Socket; + + private: + +} + +class LinxUnixUartChannel : public LinxUartChannel +{ + public: + /**************************************************************************************** + ** Constructors + ****************************************************************************************/ + LinxUnixUartChannel(LinxFmtChannel *debug, const char *deviceName); + virtual ~LinxUnixUartChannel(void) {}; + + /**************************************************************************************** + ** Functions + ****************************************************************************************/ + virtual int32_t SetSpeed(uint32_t speed, uint32_t* actualSpeed); + virtual int32_t SetParameters(uint8_t dataBits, uint8_t stopBits, LinxUartParity parity); + +private: + +}; + +class LinxSysfsI2cChannel : public LinxI2cChannel +{ + public: + /**************************************************************************************** + ** Constructors + ****************************************************************************************/ + LinxSysfsI2cChannel(LinxFmtChannel *debug, const char *channelName); + virtual ~LinxSysfsI2cChannel(void); + + /**************************************************************************************** + ** Functions + ****************************************************************************************/ + virtual int32_t Open(void); + virtual int32_t SetSpeed(uint32_t speed, uint32_t* actualSpeed); + virtual int32_t Read(uint8_t slaveAddress, uint8_t eofConfig, int32_t numBytes, uint32_t timeout, unsigned char* recBuffer); + virtual int32_t Write(uint8_t slaveAddress, uint8_t eofConfig, int32_t numBytes, unsigned char* sendBuffer); + virtual int32_t Transfer(uint8_t slaveAddress, int32_t numFrames, int32_t *flags, int32_t *numBytes, uint32_t timeout, unsigned char* sendBuffer, unsigned char* recBuffer); + virtual int32_t Close(void); + + protected: + /**************************************************************************************** + ** Functions + ****************************************************************************************/ + + private: + /**************************************************************************************** + ** Variables + ****************************************************************************************/ + int32_t m_Fd; + unsigned long m_Funcs; +}; + +class LinxSysfsSpiChannel : public LinxSpiChannel +{ + public: + /**************************************************************************************** + ** Variables + ****************************************************************************************/ + + /**************************************************************************************** + ** Constructors + ****************************************************************************************/ + LinxSysfsSpiChannel(LinxFmtChannel *debug, LinxDevice *device, const char *channelName, uint32_t maxSpeed); + virtual ~LinxSysfsSpiChannel(void); + + /**************************************************************************************** + ** Functions + ****************************************************************************************/ + virtual int32_t Open(void); + virtual int32_t SetBitOrder(uint8_t bitOrder); + virtual int32_t SetMode(uint8_t mode); + virtual int32_t SetSpeed(uint32_t speed, uint32_t* actualSpeed); + virtual int32_t WriteRead(uint8_t frameSize, uint8_t numFrames, uint8_t csChan, uint8_t csLL, unsigned char* sendBuffer, unsigned char* recBuffer); + virtual int32_t Close(void); + + protected: + /**************************************************************************************** + ** Functions + ****************************************************************************************/ + + /**************************************************************************************** + ** Variables + ****************************************************************************************/ + uint8_t m_NumSpiSpeeds; //Number Of Supported SPI Speeds + uint32_t* m_SpiSupportedSpeeds; //Supported SPI Clock Frequencies + int32_t* m_SpiSpeedCodes; //SPI Speed Values (Clock Divider Macros In Wiring Case) + + private: + /**************************************************************************************** + ** Variables + ****************************************************************************************/ +// LinxDevice *m_Device; + int32_t m_Fd; + LinxDevice *m_Device; + uint8_t m_BitOrder; + uint32_t m_CurrentSpeed; + uint32_t m_MaxSpeed; + +}; +#endif // LINX_LINUX_CHANNEL_H \ No newline at end of file diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/utility/LinxPjrc.cpp b/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/utility/LinxPjrc.cpp index 3f3571dc..97f604d0 100644 --- a/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/utility/LinxPjrc.cpp +++ b/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/utility/LinxPjrc.cpp @@ -19,5 +19,5 @@ ****************************************************************************************/ LinxPjrc::LinxPjrc() { - DeviceFamily = 0x03; //PJRC Family Code + DeviceFamily = LINX_FAMILY_PJRC; //PJRC Family Code } diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/utility/LinxRaspberryPi.cpp b/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/utility/LinxRaspberryPi.cpp deleted file mode 100644 index 1c1d70c7..00000000 --- a/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/utility/LinxRaspberryPi.cpp +++ /dev/null @@ -1,784 +0,0 @@ -/**************************************************************************************** -** LINX - Raspberry Pi code -** -** For more information see: www.labviewmakerhub.com/linx -** For support visit the forums at: www.labviewmakerhub.com/forums/linx -** -** Written By Sam Kristoff -** -** BSD2 License. -****************************************************************************************/ - -/**************************************************************************************** -** Defines -****************************************************************************************/ - -/**************************************************************************************** -** Includes -****************************************************************************************/ -#include "LinxDevice.h" -#include "LinxRaspberryPi.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -using namespace std; - -/**************************************************************************************** -** Variables -****************************************************************************************/ - -/**************************************************************************************** -** Constructors / Destructors -****************************************************************************************/ -LinxRaspberryPi::LinxRaspberryPi() -{ - //LINX API Version - LinxApiMajor = 2; - LinxApiMinor = 0; - LinxApiSubminor = 0; - - // TODO Load User Config Data From Non Volatile Storage - //userId = NonVolatileRead(NVS_USERID) << 8 | NonVolatileRead(NVS_USERID + 1); - -} - -LinxRaspberryPi::~LinxRaspberryPi() -{ - -} - -/**************************************************************************************** -** Private Functions -****************************************************************************************/ -int LinxRaspberryPi::digitalSmartOpen(unsigned char numChans, unsigned char* channels) -{ - for(int i=0; i> i%8) & 0x01) == OUTPUT && DigitalDirs[channels[i]] != OUTPUT) - { - //Set As Output - fprintf(DigitalDirHandles[channels[i]], "out"); - fflush(DigitalDirHandles[channels[i]]); - DigitalDirs[channels[i]] = OUTPUT; - } - else if( (values[i] & 0x01) == INPUT && DigitalDirs[channels[i]] != INPUT) - { - //Set As Input - fprintf(DigitalDirHandles[channels[i]], "in"); - fflush(DigitalDirHandles[channels[i]]); - DigitalDirs[channels[i]] = INPUT; - } - } - - return L_OK; -} - -int LinxRaspberryPi::DigitalWrite(unsigned char numChans, unsigned char* channels, unsigned char* values) -{ - //Generate Bit Packed Output Direction Array - int numDirBytes = (int)ceil(numChans/8.0); - unsigned char directions[numDirBytes]; - for(int i=0; i< numDirBytes; i++) - { - directions[i] = 0xFF; - } - - if(DigitalSetDirection(numChans, channels, directions) != L_OK) - { - DebugPrintln("Digital Write Fail - Set Direction Failed"); - } - - for(int i=0; i> i%8) & 0x01) == LOW) - { - fprintf(DigitalValueHandles[channels[i]], "0"); - fflush(DigitalValueHandles[channels[i]]); - } - else - { - fprintf(DigitalValueHandles[channels[i]], "1"); - fflush(DigitalValueHandles[channels[i]]); - } - } - - return L_OK; -} - -int LinxRaspberryPi::DigitalWrite(unsigned char channel, unsigned char value) -{ - return DigitalWrite(1, &channel, &value); -} - -int LinxRaspberryPi::DigitalWriteNoPacking(unsigned char numChans, unsigned char* channels, unsigned char* values) -{ - //Generate Directions Array (waste some memory, save some CPU) - unsigned char directions[numChans]; - - for(int i=0; i< numChans; i++) - { - directions[i] = 0xFF; - } - - if(DigitalSetDirection(numChans, channels, directions) != L_OK) - { - DebugPrintln("Digital Write Fail - Set Direction Failed"); - } - - for(int i=0; i= NumSpiSpeeds) - index = NumSpiSpeeds-1; - SpiSetSpeeds[channel] = *(SpiSupportedSpeeds+index); - *actualSpeed = *(SpiSupportedSpeeds+index); - - return L_OK; -} - -int LinxRaspberryPi::SpiWriteRead(unsigned char channel, unsigned char frameSize, unsigned char numFrames, unsigned char csChan, unsigned char csLL, unsigned char* sendBuffer, unsigned char* recBuffer) -{ - unsigned char nextByte = 0; //First Byte Of Next SPI Frame - - //SPI Hardware Only Supports MSb First Transfer. If Configured for LSb First Reverse Bits In Software - if( SpiBitOrders[channel] == LSBFIRST ) - { - for(int i=0; i< frameSize*numFrames; i++) - { - sendBuffer[i] = ReverseBits(sendBuffer[i]); - } - } - - struct spi_ioc_transfer transfer = {}; - - //Set CS As Output And Make Sure CS Starts Idle - DigitalWrite(csChan, (~csLL & 0x01) ); - - for(int i=0; i< numFrames; i++) - { - //Setup Transfer - transfer.tx_buf = (unsigned long)(sendBuffer+nextByte); - transfer.rx_buf = (unsigned long)(recBuffer+nextByte); - transfer.len = frameSize; - transfer.delay_usecs = 0; - transfer.speed_hz = SpiSetSpeeds[channel]; - //transfer.speed_hz = 25000; - transfer.bits_per_word = 8; - transfer.pad = 0; - - //CS Active - DigitalWrite(csChan, csLL); - - //Transfer Data - int retVal = ioctl(SpiHandles[channel], SPI_IOC_MESSAGE(1), &transfer); - - //CS Idle - DigitalWrite(csChan, (~csLL & 0x01) ); - - if (retVal < 0) - { - DebugPrintln("SPI Fail - Failed To Transfer Data"); - return LSPI_TRANSFER_FAIL; - } - - nextByte += frameSize; - } - - return L_OK; - } - -//------------------------------------- I2C ------------------------------------- -int LinxRaspberryPi::I2cOpenMaster(unsigned char channel) -{ - int handle = open(I2cPaths[channel].c_str(), O_RDWR); - if (handle < 0) - { - DebugPrintln("I2C Fail - Failed To Open I2C Channel"); - return LI2C_OPEN_FAIL; - } - else - { - I2cHandles[channel] = handle; - } - return L_OK; -} - -int LinxRaspberryPi::I2cSetSpeed(unsigned char channel, unsigned long speed, unsigned long* actualSpeed) -{ - return L_FUNCTION_NOT_SUPPORTED; -} - -int LinxRaspberryPi::I2cWrite(unsigned char channel, unsigned char slaveAddress, unsigned char eofConfig, unsigned char numBytes, unsigned char* sendBuffer) -{ - //Check EOF - Currently Only Support 0x00 - if(eofConfig != EOF_STOP) - { - DebugPrintln("I2C Fail - EOF Not Supported"); - return LI2C_EOF; - } - - //Set Slave Address - if(ioctl(I2cHandles[channel], I2C_SLAVE, slaveAddress) < 0) - { - //Failed To Set Slave Address - DebugPrintln("I2C Fail - Failed To Set Slave Address"); - return LI2C_SADDR; - } - - //Write Data - if(write(I2cHandles[channel], sendBuffer, numBytes) != numBytes) - { - DebugPrintln("I2C Fail - Failed To Write All Data"); - return LI2C_WRITE_FAIL; - } - - return L_OK; -} - -int LinxRaspberryPi::I2cRead(unsigned char channel, unsigned char slaveAddress, unsigned char eofConfig, unsigned char numBytes, unsigned int timeout, unsigned char* recBuffer) -{ - //Check EOF - Currently Only Support 0x00 - if(eofConfig != EOF_STOP) - { - return LI2C_EOF; - } - - //Set Slave Address - if (ioctl(I2cHandles[channel], I2C_SLAVE, slaveAddress) < 0) - { - //Failed To Set Slave Address - return LI2C_SADDR; - } - - if(read(I2cHandles[channel], recBuffer, numBytes) < numBytes) - { - return LI2C_READ_FAIL; - } - - return L_OK; -} - -int LinxRaspberryPi::I2cClose(unsigned char channel) -{ - //Close I2C Channel - if(close(I2cHandles[channel]) < 0) - { - return LI2C_CLOSE_FAIL; - } - - return L_OK; -} - - -//------------------------------------- UART ------------------------------------- -int LinxRaspberryPi::UartOpen(unsigned char channel, unsigned long baudRate, unsigned long* actualBaud) -{ - //Open UART Handle If Not Already Open - if(UartHandles[channel] <= 0) - { - int handle = open(UartPaths[channel].c_str(), O_RDWR); - - if(handle <= 0) - { - DebugPrint("UART Fail - Failed To Open UART Handle - "); - DebugPrintln(UartPaths[channel].c_str()); - return LUART_OPEN_FAIL; - } - else - { - UartHandles[channel] = handle; - } - } - - if(UartSetBaudRate(channel, baudRate, actualBaud) != L_OK) - { - DebugPrintln("Failed to set baud rate"); - } - - return L_OK; -} - -int LinxRaspberryPi::UartSetBaudRate(unsigned char channel, unsigned long baudRate, unsigned long* actualBaud) -{ - //Get Closest Support Baud Rate Without Going Over - - //Loop Over All Supported SPI Speeds - int index = 0; - for(index=0; index < NumUartSpeeds; index++) - { - if(baudRate < *(UartSupportedSpeeds+index)) - { - //Previous Index Was Closest Supported Baud Without Going Over, Index Will Be Decremented Accordingly Below. - break; - } - } - - //Once Loop Completes Index Is One Higher Than The Correct Baud, But Could Be Zero So Check And Decrement Accordingly - //If The Entire Loop Runs Then index == NumUartSpeeds So Decrement It To Get Max Baud - if(index != 0) - { - index = index -1; - } - - //Store Actual Baud Used - *actualBaud = (unsigned long) *(UartSupportedSpeeds+index); - - //Set Baud Rate - struct termios options; - tcgetattr(UartHandles[channel], &options); - - options.c_cflag = *(UartSupportedSpeedsCodes+index) | CS8 | CLOCAL | CREAD; - options.c_iflag = IGNPAR; - options.c_oflag = 0; - options.c_lflag = 0; - - tcflush(UartHandles[channel], TCIFLUSH); - tcsetattr(UartHandles[channel], TCSANOW, &options); - - return L_OK; -} - -int LinxRaspberryPi::UartGetBytesAvailable(unsigned char channel, unsigned char *numBytes) -{ - int bytesAtPort = -1; - ioctl(UartHandles[channel], FIONREAD, &bytesAtPort); - - if(bytesAtPort < 0) - { - return LUART_AVAILABLE_FAIL; - } - else - { - *numBytes = (unsigned char) bytesAtPort; - } - - return L_OK; -} - -int LinxRaspberryPi::UartRead(unsigned char channel, unsigned char numBytes, unsigned char* recBuffer, unsigned char* numBytesRead) -{ - //Check If Enough Bytes Are Available - unsigned char bytesAvailable = -1; - UartGetBytesAvailable(channel, &bytesAvailable); - - if(bytesAvailable >= numBytes) - { - //Read Bytes From Input Buffer - int bytesRead = read(UartHandles[channel], recBuffer, numBytes); - *numBytesRead = (unsigned char) bytesRead; - - if(bytesRead != numBytes) - { - return LUART_READ_FAIL; - } - } - - return L_OK; -} - -int LinxRaspberryPi::UartWrite(unsigned char channel, unsigned char numBytes, unsigned char* sendBuffer) -{ - int bytesSent = write(UartHandles[channel], sendBuffer, numBytes); - if(bytesSent != numBytes) - { - return LUART_WRITE_FAIL; - } - - return L_OK; -} - -int LinxRaspberryPi::UartClose(unsigned char channel) -{ - //Close UART Channel, Return OK or Error - if (close(UartHandles[channel]) < 0) - { - return LUART_CLOSE_FAIL; - } - UartHandles[channel] = 0; - - return L_OK; - -} - - -//------------------------------------- Servo ------------------------------------- -int LinxRaspberryPi::ServoOpen(unsigned char numChans, unsigned char* channels) -{ - return L_FUNCTION_NOT_SUPPORTED; -} - -int LinxRaspberryPi::ServoSetPulseWidth(unsigned char numChans, unsigned char* channels, unsigned short* pulseWidths) -{ - return L_FUNCTION_NOT_SUPPORTED; -} - -int LinxRaspberryPi::ServoClose(unsigned char numChans, unsigned char* channels) -{ - return L_FUNCTION_NOT_SUPPORTED; -} - - -//------------------------------------- General ------------------------------------- -unsigned long LinxRaspberryPi::GetMilliSeconds() -{ - timespec mTime; - clock_gettime(CLOCK_MONOTONIC, &mTime); - //return (mTime.tv_nsec / 1000000); - return ( ((unsigned long) mTime.tv_sec * 1000) + mTime.tv_nsec / 1000000); -} - -unsigned long LinxRaspberryPi::GetSeconds() -{ - timespec mTime; - clock_gettime(CLOCK_MONOTONIC, &mTime); - return mTime.tv_sec; -} - -void LinxRaspberryPi::DelayMs(unsigned long ms) -{ - usleep(ms * 1000); -} - -void LinxRaspberryPi::NonVolatileWrite(int address, unsigned char data) -{ - -} - -unsigned char LinxRaspberryPi::NonVolatileRead(int address) -{ - return L_FUNCTION_NOT_SUPPORTED; -} - - - - diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/utility/LinxRaspberryPi.h b/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/utility/LinxRaspberryPi.h deleted file mode 100644 index cc67c4da..00000000 --- a/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/utility/LinxRaspberryPi.h +++ /dev/null @@ -1,166 +0,0 @@ -/**************************************************************************************** -** LINX header for Raspberry Pi Family -** -** For more information see: www.labviewmakerhub.com/linx -** For support visit the forums at: www.labviewmakerhub.com/forums/linx -** -** Written By Sam Kristoff -** -** BSD2 License. -****************************************************************************************/ - -#ifndef LINX_RASPBERRYPI_H -#define LINX_RASPBERRYPI_H - -/**************************************************************************************** -** Defines -****************************************************************************************/ - -/**************************************************************************************** -** Includes -****************************************************************************************/ -#include "LinxDevice.h" -#include -#include -#include - -using namespace std; - -/**************************************************************************************** -** Variables -****************************************************************************************/ -class LinxRaspberryPi : public LinxDevice -{ - public: - /**************************************************************************************** - ** Variables - ****************************************************************************************/ - //DIO - map DigitalChannels; //Maps LINX DIO Channel Numbers To BB GPIO Channels - map DigitalDirs; //Current DIO Direction Values - map DigitalDirHandles; //File Handles For Digital Pin Directions - map DigitalValueHandles; //File Handles For Digital Pin Values - - //PWM - map PwmDirPaths; //PWM Device Tree Overlay Names - map PwmDtoNames; //PWM Device Tree Overlay Names - map PwmPeriodHandles; //File Handles For PWM Period Values - map PwmDutyCycleHandles; //File Handles For PWM Duty Cycle Values - map PwmFrequencies; //Current PWM Period Values - unsigned long PwmDefaultFrequency; //Default Frequency For PWM Channels (Hz) - //const char (*PwmDirPaths)[PWM_PATH_LEN]; //Path To PWM Directories - //const char (*PwmDtoNames)[PWM_DTO_NAME_LEN]; //PWM Device Tree Overlay Names - - //AI - unsigned char NumAiRefIntVals; //Number Of Internal AI Reference Voltages - const unsigned long* AiRefIntVals; //Supported AI Reference Voltages (uV) - const int* AiRefCodes; //AI Ref Values (AI Ref Macros In Wiring Case) - unsigned long AiRefExtMin; //Min External AI Ref Value (uV) - unsigned long AiRefExtMax; //Max External AI Ref Value (uV) - int* AiHandles; //AI File Handles - //const char (*AiPaths)[AI_PATH_LEN]; //AI Channel File Paths - - //UART - map UartPaths; //UART Channel File Paths - map UartHandles; //File Handles For UARTs - Must Be Int For Termios Functions - map UartDtoNames; //UART Device Tree Overlay Names - unsigned char NumUartSpeeds; //Number Of Support UART Buads - unsigned long* UartSupportedSpeeds; //Supported UART Bauds Frequencies - unsigned long* UartSupportedSpeedsCodes; //Supported UART Baud Divider Codes - - //SPI - map SpiDtoNames; //Device Tree Overlay Names For SPI Master(s) - map SpiPaths; //File Paths For SPI Master(s) - map SpiHandles; //File Handles For SPI Master(s) - unsigned char NumSpiSpeeds; //Number Of Supported SPI Speeds - unsigned long* SpiSupportedSpeeds; //Supported SPI Clock Frequencies - int* SpiSpeedCodes; //SPI Speed Values (Clock Divider Macros In Wiring Case) - map SpiBitOrders; //Stores Bit Orders For SPI Channels (LSBFIRST / MSBFIRST) - map SpiSetSpeeds; //Stores The Set Clock Rate Of Each SPI Channel - unsigned long SpiDefaultSpeed; //Stores The Default Clock Rate Used When Opening An SPI Channel - - //I2C - map I2cPaths; //File Paths For I2C Master(s) - map I2cHandles; //File Handles For I2C Master(s) - map I2cDtoNames; //Device Tree Overlay Names For I2C Master(s) - unsigned char* I2cRefCount; //Number Opens - Closes On I2C Channel - - - /**************************************************************************************** - ** Constructors - ****************************************************************************************/ - LinxRaspberryPi(); - virtual ~LinxRaspberryPi(); - - - /**************************************************************************************** - ** Functions - ****************************************************************************************/ - //Analog - virtual int AnalogRead(unsigned char numChans, unsigned char* channels, unsigned char* values); - virtual int AnalogSetRef(unsigned char mode, unsigned long voltage); - - //DIGITAL - virtual int DigitalSetDirection(unsigned char numChans, unsigned char* channels, unsigned char* values); - virtual int DigitalWrite(unsigned char numChans, unsigned char* channels, unsigned char* values); - virtual int DigitalWrite(unsigned char channel, unsigned char value); - virtual int DigitalWriteNoPacking(unsigned char numChans, unsigned char* channels, unsigned char* values); //Values Not Bit Packed - virtual int DigitalRead(unsigned char numChans, unsigned char* channels, unsigned char* values); - virtual int DigitalRead(unsigned char channel, unsigned char* value); - virtual int DigitalReadNoPacking(unsigned char numChans, unsigned char* channels, unsigned char* values); //Response Not Bit Packed - virtual int DigitalWriteSquareWave(unsigned char channel, unsigned long freq, unsigned long duration); - virtual int DigitalReadPulseWidth(unsigned char stimChan, unsigned char stimType, unsigned char respChan, unsigned char respType, unsigned long timeout, unsigned long* width); - - //PWM - virtual int PwmSetDutyCycle(unsigned char numChans, unsigned char* channels, unsigned char* values); - - //SPI - virtual int SpiOpenMaster(unsigned char channel); - virtual int SpiSetBitOrder(unsigned char channel, unsigned char bitOrder); - virtual int SpiSetMode(unsigned char channel, unsigned char mode); - virtual int SpiSetSpeed(unsigned char channel, unsigned long speed, unsigned long* actualSpeed); - virtual int SpiWriteRead(unsigned char channel, unsigned char frameSize, unsigned char numFrames, unsigned char csChan, unsigned char csLL, unsigned char* sendBuffer, unsigned char* recBuffer); - - //I2C - virtual int I2cOpenMaster(unsigned char channel); - virtual int I2cSetSpeed(unsigned char channel, unsigned long speed, unsigned long* actualSpeed); - virtual int I2cWrite(unsigned char channel, unsigned char slaveAddress, unsigned char eofConfig, unsigned char numBytes, unsigned char* sendBuffer); - virtual int I2cRead(unsigned char channel, unsigned char slaveAddress, unsigned char eofConfig, unsigned char numBytes, unsigned int timeout, unsigned char* recBuffer); - virtual int I2cClose(unsigned char channel); - - //UART - virtual int UartOpen(unsigned char channel, unsigned long baudRate, unsigned long* actualBaud); - virtual int UartSetBaudRate(unsigned char channel, unsigned long baudRate, unsigned long* actualBaud); - virtual int UartGetBytesAvailable(unsigned char channel, unsigned char *numBytes); - virtual int UartRead(unsigned char channel, unsigned char numBytes, unsigned char* recBuffer, unsigned char* numBytesRead); - virtual int UartWrite(unsigned char channel, unsigned char numBytes, unsigned char* sendBuffer); - virtual int UartClose(unsigned char channel); - - //Servo - virtual int ServoOpen(unsigned char numChans, unsigned char* chans); - virtual int ServoSetPulseWidth(unsigned char numChans, unsigned char* chans, unsigned short* pulseWidths); - virtual int ServoClose(unsigned char numChans, unsigned char* chans); - - //General - - virtual unsigned long GetMilliSeconds(); - virtual unsigned long GetSeconds(); - virtual void DelayMs(unsigned long ms); - virtual void NonVolatileWrite(int address, unsigned char data); - virtual unsigned char NonVolatileRead(int address); - - protected: - /**************************************************************************************** - ** Variables - ****************************************************************************************/ - - /**************************************************************************************** - ** Functions - ****************************************************************************************/ - virtual int digitalSmartOpen(unsigned char numChans, unsigned char* channels); - virtual int pwmSmartOpen(unsigned char numChans, unsigned char* channels); - bool fileExists(const char* path); - bool fileExists(const char* directory, const char* fileName); - bool fileExists(const char* directory, const char* fileName, unsigned long timout); -}; - -#endif //LINX_RASPBERRYPI_H \ No newline at end of file diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/utility/LinxUtilities.cpp b/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/utility/LinxUtilities.cpp new file mode 100644 index 00000000..abdf037c --- /dev/null +++ b/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/utility/LinxUtilities.cpp @@ -0,0 +1,294 @@ +/**************************************************************************************** +** LINX file for generic LINX Utilities. +** +** For more information see: www.labviewmakerhub.com/linx +** For support visit the forums at: www.labviewmakerhub.com/forums/linx +** +** Written By Rolf Kalbermatter +** +** BSD2 License. +****************************************************************************************/ +#include +#include +#include "LinxDefines.h" +#if Unix +#include +#include +#include +#include +#endif +#include "LinxUtilities.h" + +uint32_t WriteU8ToBuff(uint8_t *buffer, uint32_t offset, uint8_t val) +{ + buffer[offset++] = val; + return offset; +} + +uint32_t WriteU16ToBuff(uint8_t *buffer, uint32_t offset, uint16_t val) +{ + buffer[offset++] = ((val >> 8) & 0xFF); + buffer[offset++] = (val & 0xFF); + return offset; +} + +uint32_t WriteU32ToBuff(uint8_t *buffer, uint32_t offset, uint32_t val) +{ + buffer[offset++] = ((val >> 24) & 0xFF); + buffer[offset++] = ((val >> 16) & 0xFF); + buffer[offset++] = ((val >> 8) & 0xFF); + buffer[offset++] = (val & 0xFF); + return offset; +} + +uint32_t WriteU8ArrToBuff(uint8_t *buffer, uint32_t offset, uint8_t *arr, int32_t length) +{ + if (length < 0) + length = (int32_t)strlen((char*)arr); + memcpy(buffer + offset, arr, length); + return offset + length; +} + +uint8_t GetU8FromBuff(uint8_t *buffer, uint32_t offset) +{ + return buffer[offset]; +} + +uint16_t GetU16FromBuff(uint8_t *buffer, uint32_t offset) +{ + return (((uint16_t)buffer[offset + 0] << 8) | + ((uint16_t)buffer[offset + 1])); +} + +uint32_t GetU32FromBuff(uint8_t *buffer, uint32_t offset) +{ + return (((uint32_t)buffer[offset + 0] << 24) | + ((uint32_t)buffer[offset + 1] << 16) | + ((uint32_t)buffer[offset + 2] << 8) | + ((uint32_t)buffer[offset + 3])); +} + +uint32_t ReadU8FromBuff(uint8_t *buffer, uint32_t offset, uint8_t *val) +{ + *val = buffer[offset++]; + return offset; +} + +uint32_t ReadU16FromBuff(uint8_t *buffer, uint32_t offset, uint16_t *val) +{ + *val = (((uint32_t)buffer[offset + 0] << 8) | + ((uint32_t)buffer[offset + 1])); + return offset + 2; +} + +uint32_t ReadU32FromBuff(uint8_t *buffer, uint32_t offset, uint32_t *val) +{ + *val = (((uint32_t)buffer[offset + 0] << 24) | + ((uint32_t)buffer[offset + 1] << 16) | + ((uint32_t)buffer[offset + 2] << 8) | + ((uint32_t)buffer[offset + 3])); + return offset + 4; +} + +uint32_t ReadU8ArrFromBuff(uint8_t *buffer, uint32_t offset, uint8_t *arr, uint32_t length) +{ + memcpy(arr, buffer + offset, length); + return offset + length; +} + +uint32_t ReadStringFromBuff(uint8_t *buffer, uint32_t offset, unsigned char *arr, uint32_t length) +{ + memcpy(arr, buffer + offset, length); + buffer[offset + length] = 0; + return offset + length; +} + +uint8_t ComputeChecksum(uint8_t checksum, uint8_t* buffer, int32_t length) +{ + for (uint16_t i = 0; i < length; i++) + { + checksum += buffer[i]; + } + return checksum; +} + +uint8_t ReverseBits(uint8_t b) +{ + b = (b & 0xF0) >> 4 | (b & 0x0F) << 4; + b = (b & 0xCC) >> 2 | (b & 0x33) << 2; + b = (b & 0xAA) >> 1 | (b & 0x55) << 1; + return b; +} + +void ReverseBits(unsigned char *buffer, uint32_t length) +{ + for (uint32_t i = 0; i < length; i++) + { + buffer[i] = ReverseBits(buffer[i]); + } +} + + +#if Win32 +static LARGE_INTEGER g_Frequency = {0}; +static int32_t isAvailable = -1; +static int32_t initializeFrequency(void) +{ + if (isAvailable < 0) + { + isAvailable = QueryPerformanceFrequency(&g_Frequency) != 0; + if (isAvailable) + g_Frequency.QuadPart /= 1000; + } + return isAvailable; +} +#endif + +uint64_t getUsTicks(void) +{ +#if Unix + timespec mTime; + clock_gettime(CLOCK_MONOTONIC, &mTime); + return (((uint64_t)mTime.tv_sec * 1000000) + (mTime.tv_nsec / 1000)); +#elif Win32 + if (initializeFrequency()) + { + LARGE_INTEGER counter; + if (QueryPerformanceCounter(&counter)) + { + counter.QuadPart /= g_Frequency.QuadPart / 1000; + return counter.QuadPart; + } + } + return GetTickCount64(); +#elif Arduino + return micros(); +#endif +} + +uint32_t getMsTicks(void) +{ +#if Unix + timespec mTime; + clock_gettime(CLOCK_MONOTONIC, &mTime); + return ((mTime.tv_sec * 1000) + (mTime.tv_nsec / 1000000)); +#elif Win32 + if (initializeFrequency()) + { + LARGE_INTEGER counter; + if (QueryPerformanceCounter(&counter)) + { + counter.QuadPart /= g_Frequency.QuadPart; + return (uint32_t)(counter.QuadPart & UINT_MAX); + } + } + return GetTickCount(); +#elif Arduino + return millis(); +#endif +} + +void delayMs(uint32_t ms) +{ +#if Unix + usleep(ms * 1000); +#elif Win32 + Sleep(ms); +#elif Arduino + delay(ms); +#endif +} + +// Return true If file specified by path exists. +int32_t fileExists(const char* path) +{ +#if Unix + struct stat buffer; + return (stat(path, &buffer) == 0); +#elif Win32 + return GetFileAttributesA(path) != INVALID_FILE_ATTRIBUTES; +#else + return false; +#endif +} + +int32_t fileExists(const char* path, int32_t *length) +{ +#if Unix + struct stat buffer; + int32_t ret = stat(path, &buffer); + if (ret == 0 && length) + *length = buffer.st_size; + return (ret == 0); +#elif Win32 + WIN32_FIND_DATAA findBuf; + HANDLE findHandle = FindFirstFileA(path, &findBuf); + if (findHandle != INVALID_HANDLE_VALUE) + { + if (length) + *length = findBuf.nFileSizeLow; + FindClose(findHandle); + } + return findHandle != INVALID_HANDLE_VALUE; +#else + return false; +#endif +} + +int32_t fileExists(const char* directory, const char* fileName, uint32_t timeout) +{ + char fullPath[260]; + sprintf(fullPath, "%s%s", directory, fileName); + uint32_t startTime = getMsTicks(); + do + { + if (fileExists(fullPath)) + return true; + delayMs(10); + } + while (getMsTicks() - startTime < timeout); + return false; +} + +int32_t listDirectory(const char* path, std::list &list) +{ +#if Unix + dirent* dp; + DIR* handle = opendir(path); + if (handle == NULL) + return false; + + // Loop over all entries in directory path + while ((dp = readdir(handle)) != NULL) + { + //Make Sure Dir Is Not . or .. + if ((strcmp(dp->d_name, ".") != 0) && (strcmp(dp->d_name, "..") != 0)) + { + list.push_back(std::string(dp->d_name)); + } + } + closedir(handle); +#elif Win32 + WIN32_FIND_DATAA findData; + size_t len = strlen(path); + char *temp = (char*)alloca(len + 6); + strcpy(temp, path); + if (temp[len] == '\\') len--; + strcpy(temp + len, "\\*.*"); + HANDLE handle = FindFirstFileA(temp, &findData); + if (handle == INVALID_HANDLE_VALUE) + return false; + + do + { + //Make Sure Dir Is Not . or .. + if ((strcmp(findData.cFileName, ".") != 0) && (strcmp(findData.cFileName, "..") != 0)) + { + list.push_back(std::string(findData.cFileName)); + } + } + while (FindNextFileA(handle, &findData)); + FindClose(handle); +#endif + return true; +} \ No newline at end of file diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/utility/LinxUtilities.h b/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/utility/LinxUtilities.h new file mode 100644 index 00000000..96964505 --- /dev/null +++ b/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/utility/LinxUtilities.h @@ -0,0 +1,51 @@ +/**************************************************************************************** +** LINX header for generic LINX Utilities. +** +** For more information see: www.labviewmakerhub.com/linx +** For support visit the forums at: www.labviewmakerhub.com/forums/linx +** +** Written By Rolf Kalbermatter +** +** BSD2 License. +****************************************************************************************/ + +#ifndef LINX_UTILITIES_H +#define LINX_UTILITIES_H + +#define getMilliSeconds() getMsTicks() +#define getSeconds() (getMsTicks() / 1000) +#include +#include +#include "LinxDefines.h" + +uint32_t WriteU8ToBuff(uint8_t *buffer, uint32_t offset, uint8_t val); +uint32_t WriteU16ToBuff(uint8_t *buffer, uint32_t offset, uint16_t val); +uint32_t WriteU32ToBuff(uint8_t *buffer, uint32_t offset, uint32_t val); +uint32_t WriteU8ArrToBuff(uint8_t *buffer, uint32_t offset, uint8_t *arr, uint32_t length); + +uint8_t GetU8FromBuff(uint8_t *buffer, uint32_t offset); +uint16_t GetU16FromBuff(uint8_t *buffer, uint32_t offset); +uint32_t GetU32FromBuff(uint8_t *buffer, uint32_t offset); + +uint32_t ReadU8FromBuff(uint8_t *buffer, uint32_t offset, uint8_t *val); +uint32_t ReadU16FromBuff(uint8_t *buffer, uint32_t offset, uint16_t *val); +uint32_t ReadU32FromBuff(uint8_t *buffer, uint32_t offset, uint32_t *val); +uint32_t ReadU8ArrFromBuff(uint8_t *buffer, uint32_t offset, uint8_t *arr, uint32_t length); +uint32_t ReadStringFromBuff(uint8_t *buffer, uint32_t offset, unsigned char *arr, uint32_t length); + +uint8_t ComputeChecksum(uint8_t checksum, uint8_t* buffer, int32_t length); + +uint8_t ReverseBits(uint8_t b); +void ReverseBits(uint8_t *buffer, uint32_t length); + +uint64_t getUsTicks(void); +uint32_t getMsTicks(void); +void delayMs(uint32_t ms); + +int32_t fileExists(const char* path); +int32_t fileExists(const char* path, int32_t *length); +int32_t fileExists(const char* directory, const char* fileName, uint32_t timout = 0); + +int32_t listDirectory(const char* path, std::list list); + +#endif // LINX_UTILITIES_H \ No newline at end of file diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/utility/LinxWindowsChannel.cpp b/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/utility/LinxWindowsChannel.cpp new file mode 100644 index 00000000..1c96659a --- /dev/null +++ b/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/utility/LinxWindowsChannel.cpp @@ -0,0 +1,425 @@ +/**************************************************************************************** +** LINX Windows host Code +** +** For more information see: www.labviewmakerhub.com/linx +** For support visit the forums at: www.labviewmakerhub.com/forums/linx +** +** Written by Rolf Kalbermatter +** +** BSD2 License. +****************************************************************************************/ + +/**************************************************************************************** +** Includes +****************************************************************************************/ +#include +#include +#include + +#include "LinxWindowsChannel.h" +#include "LinxUtilities.h" + +/***************************************** Socket ****************************************/ + +/**************************************************************************************** +** Constructor/Destructors +****************************************************************************************/ +LinxWindowsCommChannel::LinxWindowsCommChannel(LinxFmtChannel *debug, const unsigned char *channelName, NetObject socket) : LinxCommChannel(debug, channelName) +{ + u_long nonBlocking = 1; + m_Socket = socket; + ioctlsocket(m_Socket, FIONBIO, &nonBlocking); +} + +LinxWindowsCommChannel::LinxWindowsCommChannel(LinxFmtChannel *debug, const unsigned char *address, uint16_t port) : LinxCommChannel(debug, address) +{ + struct addrinfo hints, *result, *rp; + char servname[10]; + int32_t retval; + + memset(&hints, 0, sizeof(struct addrinfo)); + hints.ai_family = AF_UNSPEC; + hints.ai_socktype = SOCK_STREAM; + hints.ai_protocol = AF_UNSPEC; + hints.ai_flags = AI_NUMERICSERV; + + sprintf(servname, "%hu", port); + retval = getaddrinfo((char*)address, servname, &hints, &result); + if (!retval) + { + for (rp = result; rp != NULL; rp = rp->ai_next) + { + m_Socket = socket(rp->ai_family, rp->ai_socktype, rp->ai_protocol); + if (!IsANetObject(m_Socket)) + continue; + + switch (rp->ai_addr->sa_family) + { + case AF_INET: + ((sockaddr_in*)rp->ai_addr)->sin_port = port; + break; + case AF_INET6: + ((sockaddr_in6*)rp->ai_addr)->sin6_port = port; + break; + default: + continue; + } + retval = connect(m_Socket, rp->ai_addr, (socklen_t)rp->ai_addrlen); + if (retval != -1) + { + u_long nonBlocking = 1; + retval = ioctlsocket(m_Socket, FIONBIO, &nonBlocking); + if (retval >= 0) + break; + } + closesocket(m_Socket); + m_Socket = kInvalNetObject; + } + freeaddrinfo(result); + if (rp == NULL) + { + m_Debug->Write("Could not connect to TCP/IP address: "); + m_Debug->Writeln((char*)address); + } + } +} + +/**************************************************************************************** +** Functions +****************************************************************************************/ +LinxWindowsCommChannel::~LinxWindowsCommChannel(void) +{ + if (IsANetObject(m_Socket)) + closesocket(m_Socket); +} + +#define kRetryLimit 25 + +int32_t LinxWindowsCommChannel::Read(uint8_t* recBuffer, uint32_t numBytes, uint32_t start, int32_t timeout, uint32_t* numBytesRead) +{ + int32_t retval; + + *numBytesRead = 0; + + if (recBuffer && numBytes) + { + struct timeval tout, *pto = timeout < 0 ? NULL : &tout; + int32_t syserr; + fd_set readfds; /* read sockets */ + + FD_ZERO(&readfds); + FD_SET(m_Socket, &readfds); + + while (*numBytesRead < numBytes) + { + int32_t i = 0; + do + { + if (pto) + { + int32_t elapsed = (int32_t)(getMsTicks() - start); + if (elapsed < timeout) + { + elapsed = timeout - elapsed; + pto->tv_sec = elapsed / 1000; + pto->tv_usec = (elapsed % 1000) * 1000; + } + else + { + pto->tv_sec = 0; + pto->tv_usec = 0; + } + } + + retval = select(0, &readfds, NULL, NULL, pto); + if (retval < 0) + { + syserr = WSAGetLastError(); + if ((syserr & 0xFFFF) != WSAEINTR || ++i >= kRetryLimit) + return LUART_READ_FAIL; + } + } + while (retval < 0); + + if (!retval) + return LERR_TIMEOUT; + + // some socket event was triggered, check which one + if (FD_ISSET(m_Socket, &readfds)) + { + // Read bytes from input buffer + retval = recv(m_Socket, (char*)recBuffer + *numBytesRead, numBytes - *numBytesRead, 0); + if (retval < 0) + return LUART_READ_FAIL; + else if (!retval) + return LERR_CLOSED_BY_PEER; + + *numBytesRead += retval; + } + } + } + else + { + // Check how many bytes are available + retval = ioctlsocket(m_Socket, FIONREAD, (u_long*)numBytesRead); + if (retval < 0) + return LUART_READ_FAIL; + } + return L_OK; +} + +int32_t LinxWindowsCommChannel::Write(const unsigned char* sendBuffer, uint32_t numBytes, uint32_t start, int32_t timeout) +{ + if (sendBuffer && numBytes) + { + struct timeval tout, *pto = timeout < 0 ? NULL : &tout; + uint32_t bytesSent = 0; + int32_t retval, syserr; + fd_set writefds; /* write sockets */ + + FD_ZERO(&writefds); + FD_SET(m_Socket, &writefds); + + while (bytesSent < numBytes) + { + int32_t i = 0; + do + { + if (pto) + { + int32_t elapsed = (int32_t)(getMsTicks() - start); + if (elapsed < timeout) + { + elapsed = timeout - elapsed; + pto->tv_sec = elapsed / 1000; + pto->tv_usec = (elapsed % 1000) * 1000; + } + else + { + pto->tv_sec = 0; + pto->tv_usec = 0; + } + } + + retval = select(0, NULL, &writefds, NULL, pto); + if (retval < 0) + { + syserr = WSAGetLastError(); + if (!pto || (syserr & 0xFFFF) != WSAEINTR || ++i >= kRetryLimit) + return LUART_READ_FAIL; + } + } + while (retval < 0); + + if (!retval) + return LERR_TIMEOUT; + + // some socket event was triggered, check which one + if (FD_ISSET(m_Socket, &writefds)) + { + retval = send(m_Socket, (char*)sendBuffer + bytesSent, numBytes - bytesSent, 0); + if (retval < 0) + return LUART_WRITE_FAIL; + + bytesSent += retval; + } + } + } + return L_OK; +} + +int32_t LinxWindowsCommChannel::Close(void) +{ + if (IsANetObject(m_Socket)) + closesocket(m_Socket); + m_Socket = kInvalNetObject; + return L_OK; +} + +/***************************************** Uart ****************************************/ + +/**************************************************************************************** +** Constructor/Destructors +****************************************************************************************/ +LinxWindowsUartChannel::LinxWindowsUartChannel(LinxFmtChannel *debug, const unsigned char *deviceName) : LinxUartChannel(debug, deviceName) +{ + m_Handle = INVALID_HANDLE_VALUE; + + int32_t length = 0; + const char *sPortName = strstr((char*)deviceName, "COM"); + if (sPortName) + { + length = 3; + while (isdigit(sPortName[length])) length++; + strncpy(m_DeviceName, sPortName, length); + } + m_DeviceName[length] = 0; +} + +/* +LinxWindowsUartChannel::LinxWindowsUartChannel(LinxFmtChannel *debug, uint8_t channel) : LinxUartChannel(debug, NULL) +{ + m_Handle = INVALID_HANDLE_VALUE; + sprintf(m_DeviceName, "COM%c", channel); + SetName(m_DeviceName); +} +*/ + +LinxWindowsUartChannel::~LinxWindowsUartChannel() +{ + if (m_Handle != INVALID_HANDLE_VALUE) + CloseHandle(m_Handle); +} + +/**************************************************************************************** +** Functions +****************************************************************************************/ +int32_t LinxWindowsUartChannel::SmartOpen(void) +{ + if (m_Handle == INVALID_HANDLE_VALUE) + { + m_Handle = CreateFileA(m_DeviceName, // Name of the Port to be Opened + GENERIC_READ | GENERIC_WRITE, // Read/Write Access + 0, // No Sharing, ports cant be shared + NULL, // No Security + OPEN_EXISTING, // Open existing port only + 0, // Non Overlapped I/O + NULL); // Null for Comm Devices + if (m_Handle == INVALID_HANDLE_VALUE) + { + m_Debug->Write("UART Fail - Failed To Open UART Handle - "); + PrintName(); + m_Debug->Writeln(); + return LUART_OPEN_FAIL; + } + COMMTIMEOUTS timeouts = {0}; + SetCommTimeouts(m_Handle, &timeouts); + } + return L_OK; +} + +int32_t LinxWindowsUartChannel::SetSpeed(uint32_t speed, uint32_t* actualSpeed) +{ + int32_t status = SmartOpen(); + if (status) + return status; + + DCB dcbSerialParams = { 0 }; // Initializing DCB structure + dcbSerialParams.DCBlength = sizeof(dcbSerialParams); + + status = GetCommState(m_Handle, &dcbSerialParams); //retreives the current settings + if (status == FALSE) + m_Debug->Writeln(" Error! in GetCommState()"); + + dcbSerialParams.BaudRate = speed; // Setting BaudRate + status = SetCommState(m_Handle, &dcbSerialParams); // Configuring the port according to settings in DCB + if (status && actualSpeed) + *actualSpeed = speed; + return status ? L_OK : LUART_SET_PARAM_FAIL; +} + +#define NUM_PARITY_SIZES 5 + +int32_t LinxWindowsUartChannel::SetParameters(uint8_t dataBits, uint8_t stopBits, LinxUartParity parity) +{ + int32_t status = SmartOpen(); + if (status) + return status; + + if (parity > NUM_PARITY_SIZES) + return LERR_BADPARAM; + + DCB dcbSerialParams = { 0 }; // Initializing DCB structure + dcbSerialParams.DCBlength = sizeof(dcbSerialParams); + + status = GetCommState(m_Handle, &dcbSerialParams); //retreives the current settings + if (status == FALSE) + m_Debug->Writeln(" Error! in GetCommState()"); + + dcbSerialParams.ByteSize = dataBits; // Setting ByteSize + if (stopBits == 1) + dcbSerialParams.StopBits = ONESTOPBIT; // Setting StopBits + else if (stopBits == 2) + dcbSerialParams.StopBits = TWOSTOPBITS; // Setting StopBits + + if (parity == Ignore) + { + dcbSerialParams.Parity = NOPARITY; // Setting parity = None + dcbSerialParams.fParity = TRUE; // Ignore parity errors + } + else + { + dcbSerialParams.Parity = parity - 1; // Setting parity to desired value + dcbSerialParams.fParity = FALSE; // Enable parity errors + } + status = SetCommState(m_Handle, &dcbSerialParams); //Configuring the port according to settings in DCB + return status ? L_OK : LUART_SET_PARAM_FAIL; +} + +int32_t LinxWindowsUartChannel::Read(unsigned char* recBuffer, uint32_t numBytes, uint32_t start, int32_t timeout, uint32_t* numBytesRead) +{ + int32_t status = SmartOpen(); + if (status) + return status; + + if (recBuffer && numBytes) + { + COMMTIMEOUTS timeouts = { 0 }; + status = GetCommTimeouts(m_Handle, &timeouts); + if (status) + { + if (!timeout) + { + // Return immediately even if there is no data + timeouts.ReadIntervalTimeout = MAXDWORD; + timeouts.ReadTotalTimeoutConstant = 0; + } + else + { + timeouts.ReadIntervalTimeout = 0; + timeouts.ReadTotalTimeoutConstant = timeout > 0 ? timeout : MAXDWORD; + } + status = SetCommTimeouts(m_Handle, &timeouts); + if (status) + { + status = ReadFile(m_Handle, recBuffer, numBytes, (LPDWORD)numBytesRead, NULL); + if (status && *numBytesRead < numBytes) + return LERR_TIMEOUT; + } + } + } + else + { + COMSTAT stat; + DWORD error; + status = ClearCommError(m_Handle, (LPDWORD)&error, &stat); + if (status) + *numBytesRead = stat.cbInQue; + } + return status ? L_OK : LERR_IO; +} + +int32_t LinxWindowsUartChannel::Write(const unsigned char* sendBuffer, uint32_t numBytes, uint32_t start, int32_t timeout) +{ + int32_t status = SmartOpen(); + if (status) + return status; + + COMMTIMEOUTS timeouts = { 0 }; + status = GetCommTimeouts(m_Handle, &timeouts); + if (status) + { + timeouts.WriteTotalTimeoutConstant = timeout >= 0 ? timeout : MAXDWORD; + status = SetCommTimeouts(m_Handle, &timeouts); + } + if (status) + status = WriteFile(m_Handle, sendBuffer, numBytes, (LPDWORD)&numBytes, NULL); + return status ? L_OK : LERR_IO; +} + +int32_t LinxWindowsUartChannel::Close(void) +{ + if (m_Handle != INVALID_HANDLE_VALUE) + CloseHandle(m_Handle); + return L_OK; +} \ No newline at end of file diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/utility/LinxWindowsChannel.h b/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/utility/LinxWindowsChannel.h new file mode 100644 index 00000000..30957ecc --- /dev/null +++ b/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/utility/LinxWindowsChannel.h @@ -0,0 +1,117 @@ +/**************************************************************************************** +** LINX header for Windows support functions used LinxDeviceLib on host +** +** For more information see: www.labviewmakerhub.com/linx +** For support visit the forums at: www.labviewmakerhub.com/forums/linx +** +** Written By Rolf Kalbermater based on code from Sam Kristoff +** +** BSD2 License. +****************************************************************************************/ + +#ifndef LINX_WINDOWSCHANNEL_H +#define LINX_WINDOWSCHANNEL_H + +/**************************************************************************************** +** Defines +****************************************************************************************/ + +/**************************************************************************************** +** Includes +****************************************************************************************/ +#include +#include "LinxDefines.h" +#include "LinxDevice.h" + +using namespace std; + +class LinxWindowsCommChannel : public LinxCommChannel +{ + public: + /**************************************************************************************** + ** Constructors + ****************************************************************************************/ + LinxWindowsCommChannel(LinxFmtChannel *debug, const unsigned char *channelName, NetObject socket); + LinxWindowsCommChannel(LinxFmtChannel *debug, const unsigned char *address, uint16_t port); + ~LinxWindowsCommChannel(void); + + /**************************************************************************************** + ** Functions + ****************************************************************************************/ + virtual int32_t Read(unsigned char* recBuffer, uint32_t numBytes, uint32_t start, int32_t timeout, uint32_t* numBytesRead); + virtual int32_t Write(const unsigned char* sendBuffer, uint32_t numBytes, uint32_t start, int32_t timeout); + virtual int32_t Close(void); + + protected: + /**************************************************************************************** + ** Functions + ****************************************************************************************/ + + private: + /**************************************************************************************** + ** Variables + ****************************************************************************************/ + NetObject m_Socket; +}; + +class LinxWindowsUartChannel : public LinxUartChannel +{ + public: + /**************************************************************************************** + ** Constructors + ****************************************************************************************/ + LinxWindowsUartChannel(LinxFmtChannel *debug, const unsigned char *deviceName); + ~LinxWindowsUartChannel(void); + + /**************************************************************************************** + ** Functions + ****************************************************************************************/ + virtual int32_t SetSpeed(uint32_t speed, uint32_t* actualSpeed); + virtual int32_t SetParameters(uint8_t dataBits, uint8_t stopBits, LinxUartParity parity); + virtual int32_t Read(unsigned char* recBuffer, uint32_t numBytes, uint32_t start, int32_t timeout, uint32_t* numBytesRead); + virtual int32_t Write(const unsigned char* sendBuffer, uint32_t numBytes, uint32_t start, int32_t timeout); + virtual int32_t Close(void); + + protected: + /**************************************************************************************** + ** Functions + ****************************************************************************************/ + virtual int32_t SmartOpen(void); + + private: + /**************************************************************************************** + ** Variables + ****************************************************************************************/ + HANDLE m_Handle; + CHAR m_DeviceName[10]; +}; + +class LinxWindowsSocketChannel : public LinxCommChannel +{ + public: + /**************************************************************************************** + ** Constructors + ****************************************************************************************/ + LinxWindowsSocketChannel(LinxFmtChannel *debug, const char *name, NetObject socket); + LinxWindowsSocketChannel(LinxFmtChannel *debug, const char *address, uint16_t port); + ~LinxWindowsSocketChannel(void); + + /**************************************************************************************** + ** Functions + ****************************************************************************************/ + virtual int32_t Read(unsigned char* recBuffer, int32_t numBytes, int32_t timeout, int32_t* numBytesRead); + virtual int32_t Write(unsigned char* sendBuffer, int32_t numBytes, int32_t timeout); + virtual int32_t Close(void); + + protected: + /**************************************************************************************** + ** Functions + ****************************************************************************************/ + + private: + /**************************************************************************************** + ** Variables + ****************************************************************************************/ + NetObject m_Socket; +}; +#endif //LINX_WINDOWSCHANNEL_H \ No newline at end of file diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/utility/LinxWindowsDevice.cpp b/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/utility/LinxWindowsDevice.cpp new file mode 100644 index 00000000..ab27916e --- /dev/null +++ b/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/utility/LinxWindowsDevice.cpp @@ -0,0 +1,163 @@ +/**************************************************************************************** +** LINX Windows host Code +** +** For more information see: www.labviewmakerhub.com/linx +** For support visit the forums at: www.labviewmakerhub.com/forums/linx +** +** Written by Rolf Kalbermatter +** +** BSD2 License. +****************************************************************************************/ + +/**************************************************************************************** +** Includes +****************************************************************************************/ +#include +#include +#include +#include "LinxWindowsDevice.h" +#include "LinxWindowsChannel.h" +#include + +/**************************************************************************************** +** Constructors/Destructor +****************************************************************************************/ +LinxWindowsDevice::LinxWindowsDevice(LinxFmtChannel *debug) : LinxDevice(debug) +{ +#if DEBUG + char sFriendlyName[32]; +#endif + //LINX API Version + LinxApiMajor = 2; + LinxApiMinor = 2; + LinxApiSubminor = 0; + + //-------------------------------- Device Detection ------------------------------ + DeviceFamily = LINX_FAMILY_WINDOWS; // Windows Family Code +#if Win64 + DeviceId = 0x1; // Windows 64-bit +#elif Win32 + DeviceId = 0x2; // Windows 32-bit +#endif + + //------------------------------------- AI --------------------------------------- + AiResolution = 12; + AiRefDefault = 5000000; + AiRefSet = 5000000; +#if DEBUG + for (int32_t i = 1; i <= 8; i++) + { + sprintf(sFriendlyName, "AI%d", i); + LinxAnalogChannel *channel = new LinxAiChannel(m_Debug, (unsigned char*)sFriendlyName, AiResolution); + RegisterChannel(IID_LinxAiChannel, i, channel); + } +#endif + + //------------------------------------- AO --------------------------------------- + AoResolution = 12; + AoRefDefault = 5000000; + AoRefSet = 5000000; +#if DEBUG + for (int32_t i = 1; i <= 4; i++) + { + sprintf(sFriendlyName, "AO%d", i); + LinxAnalogChannel *channel = new LinxAoChannel(m_Debug, (unsigned char*)sFriendlyName, AoResolution); + RegisterChannel(IID_LinxAoChannel, i, channel); + } +#endif + + //------------------------------------- DIO -------------------------------------- +#if DEBUG + for (int32_t i = 1; i <= 16; i++) + { + sprintf(sFriendlyName, "AO%d", i); + LinxDioChannel *channel = new LinxDioChannel(m_Debug, i, i); + RegisterChannel(IID_LinxDioChannel, i, channel); + } +#endif + + //------------------------------------- PWM -------------------------------------- + + //------------------------------------- QE --------------------------------------- + + //------------------------------------- UART ------------------------------------- + // Enumerate all currently known Uart channels and store them in the registry map + // EnumerateCommPorts(&GUID_DEVINTERFACE_SERENUM_BUS_ENUMERATOR, DIGCF_PRESENT); + EnumerateCommPorts(&GUID_DEVINTERFACE_COMPORT, DIGCF_PRESENT | DIGCF_DEVICEINTERFACE); + + //------------------------------------- I2C ------------------------------------- + + //------------------------------------- SPI ------------------------------------- + + //------------------------------------- CAN ------------------------------------- + + //------------------------------------ SERVO ------------------------------------ +} + +unsigned char LinxWindowsDevice::EnumerateCommPorts(const GUID *guid, DWORD dwFlags) +{ + HDEVINFO hDevInfo = SetupDiGetClassDevs(guid, NULL, NULL, dwFlags); + if (INVALID_HANDLE_VALUE != hDevInfo) + { + DWORD i, buffersize = 0; + SP_DEVINFO_DATA devInfoData = {0}; + LPSTR buffer = NULL; + + // Enumerate through all devices in Set. + devInfoData.cbSize = sizeof(SP_DEVINFO_DATA); + for (i = 0; SetupDiEnumDeviceInfo(hDevInfo, i, &devInfoData); i++) + { + HKEY hKey = SetupDiOpenDevRegKey(hDevInfo, &devInfoData, DICS_FLAG_GLOBAL, 0, DIREG_DEV, KEY_QUERY_VALUE); + if (hKey != INVALID_HANDLE_VALUE) + { + DWORD error, dwSize, dwType = 0; + ULONG length = 0; +// WCHAR nameBuf[MAX_PATH]; +// error = RegQueryKeyPath(hKey, nameBuf, MAX_PATH); + + error = RegGetValueW(hKey, NULL, L"PortName", RRF_RT_REG_SZ, &dwType, NULL, &length); + if (error == ERROR_SUCCESS || error == ERROR_MORE_DATA) + { + LPWSTR sPortName = (LPWSTR)malloc(length); + if (sPortName) + { + error = RegGetValueW(hKey, NULL, L"PortName", RRF_RT_REG_SZ, &dwType, sPortName, &length); + if (error == ERROR_SUCCESS) + { + //If it looks like "COMx" then add it to the array which will be returned + if (length / sizeof(WCHAR) > 3 && !_wcsnicmp(sPortName, L"COM", 3) && iswdigit(sPortName[3])) + { + //Work out the port number- + int32_t nPort = _wtoi(sPortName + 3); + + //Query initially to get the buffer size required + if (!SetupDiGetDeviceRegistryPropertyW(hDevInfo, &devInfoData, SPDRP_FRIENDLYNAME, &dwType, NULL, 0, &dwSize)) + { + if (GetLastError() != ERROR_INSUFFICIENT_BUFFER) + continue; + } + unsigned char *sFriendlyName = (unsigned char*)malloc(dwSize); + + if (SetupDiGetDeviceRegistryPropertyA(hDevInfo, &devInfoData, SPDRP_FRIENDLYNAME, &dwType, (PBYTE)sFriendlyName, dwSize, &dwSize) && dwType == REG_SZ) + { + RegisterChannel(IID_LinxUartChannel, nPort, (LinxUartChannel*)new LinxWindowsUartChannel(m_Debug, sFriendlyName)); + } + free(sFriendlyName); + } + } + free(sPortName); + } + } + } + } + SetupDiDestroyDeviceInfoList(hDevInfo); + } + return L_OK;} + +unsigned char LinxWindowsDevice::GetDeviceName(unsigned char *buffer, unsigned char length) +{ + DWORD len = length; + if (!GetComputerNameExA(ComputerNamePhysicalDnsFullyQualified, (LPSTR)buffer, &len)) + return L_UNKNOWN_ERROR; + return L_OK; +} diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/utility/LinxWindowsDevice.h b/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/utility/LinxWindowsDevice.h new file mode 100644 index 00000000..0625388c --- /dev/null +++ b/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/utility/LinxWindowsDevice.h @@ -0,0 +1,62 @@ +/**************************************************************************************** +** LINX header for Windows support functions used LinxDeviceLib on host +** +** For more information see: www.labviewmakerhub.com/linx +** For support visit the forums at: www.labviewmakerhub.com/forums/linx +** +** Written By Rolf Kalbermater based on code from Sam Kristoff +** +** BSD2 License. +****************************************************************************************/ + +#ifndef LINX_WINDOWSDEVICE_H +#define LINX_WINDOWSDEVICE_H + +/**************************************************************************************** +** Defines +****************************************************************************************/ + +/**************************************************************************************** +** Includes +****************************************************************************************/ +#include +#include +#include +#include "LinxDefines.h" +#include "LinxDevice.h" + +/**************************************************************************************** +** Variables +****************************************************************************************/ + +class LinxWindowsDevice : public LinxDevice +{ + public: + /**************************************************************************************** + ** Variables + ****************************************************************************************/ + + /**************************************************************************************** + ** Constructors + ****************************************************************************************/ + LinxWindowsDevice(LinxFmtChannel *debug = NULL); + ~LinxWindowsDevice(void) {}; + + /**************************************************************************************** + ** Functions + ****************************************************************************************/ + virtual unsigned char GetDeviceName(unsigned char *buffer, unsigned char length); + + protected: + /**************************************************************************************** + ** Variables + ****************************************************************************************/ + + private: + /**************************************************************************************** + ** Variables + ****************************************************************************************/ + unsigned char EnumerateCommPorts(const GUID *guid, DWORD dwFlags); + +}; +#endif //LINX_WINDOWSDEVICE_H \ No newline at end of file diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/utility/LinxWiringDevice.cpp b/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/utility/LinxWiringDevice.cpp index db35e2c3..fdd3eea0 100644 --- a/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/utility/LinxWiringDevice.cpp +++ b/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/utility/LinxWiringDevice.cpp @@ -16,15 +16,11 @@ /**************************************************************************************** ** Includes ****************************************************************************************/ +#include "LinxDefines.h" +#include "LinxChannel.h" #include "LinxDevice.h" #include "LinxWiringDevice.h" -#if ARDUINO_VERSION >= 100 - #include -#else - #include -#endif - //Not all wiring devices have these... #ifndef EXTERNAL #define EXTERNAL 0 @@ -45,7 +41,7 @@ /**************************************************************************************** ** Constructors / Destructors ****************************************************************************************/ -LinxWiringDevice::LinxWiringDevice() +LinxWiringDevice::LinxWiringDevice(LinxFmtChannel *debug) : LinxDevice(debug) { //LINX API Version LinxApiMajor = 3; @@ -57,51 +53,49 @@ LinxWiringDevice::LinxWiringDevice() } - /**************************************************************************************** ** Functions ****************************************************************************************/ - -void LinxWiringDevice::DelayMs(unsigned long ms) +void LinxWiringDevice::DelayMs(uint32_t ms) { delay(ms); } -unsigned long LinxWiringDevice::GetMilliSeconds() +uint32_t LinxWiringDevice::GetMilliSeconds(void) { return millis(); } -unsigned long LinxWiringDevice::GetSeconds() +uint32_t LinxWiringDevice::GetSeconds(void) { return (millis() / 1000); } //--------------------------------------------------------ANALOG------------------------------------------------------- -int LinxWiringDevice::AnalogRead(unsigned char numChans, unsigned char* channels, unsigned char* values) +int32_t LinxWiringDevice::AnalogRead(uint8_t numChans, uint8_t* channels, uint8_t* values) { - unsigned int analogValue = 0; - unsigned char responseByteOffset = 0; - unsigned char responseBitsRemaining = 8; - unsigned char dataBitsRemaining = AiResolution; + uint32_t analogValue = 0; + uint8_t responseByteOffset = 0; + uint8_t responseBitsRemaining = 8; + uint8_t dataBitsRemaining = AiResolution; values[responseByteOffset] = 0x00; //Clear First Response Byte //Loop Over All AI channels In Command Packet - for(int i=0; i 0) + while (dataBitsRemaining > 0) { - *(values+responseByteOffset) |= ( (analogValue>>(AiResolution - dataBitsRemaining)) << (8 - responseBitsRemaining) ); + *(values + responseByteOffset) |= ( (analogValue >> (AiResolution - dataBitsRemaining)) << (8 - responseBitsRemaining)); //*(values+responseByteOffset) = 69; - if(responseBitsRemaining > dataBitsRemaining) + if (responseBitsRemaining > dataBitsRemaining) { //Current Byte Still Has Empty Bits responseBitsRemaining -= dataBitsRemaining; @@ -121,23 +115,23 @@ int LinxWiringDevice::AnalogRead(unsigned char numChans, unsigned char* channels return L_OK; } -int LinxWiringDevice::AnalogSetRef(unsigned char mode, unsigned long voltage) +int32_t LinxWiringDevice::AnalogSetRef(uint8_t mode, uint32_t voltage) { #if NUM_AI_INT_REFS > 0 - switch(mode) + switch (mode) { case 0: //Default analogReference(DEFAULT); AiRefSet = AiRefDefault; break; case 1: //Internal - if(NumAiRefIntVals > 0) + if (NumAiRefIntVals > 0) { //Check If Internal AI Ref Value Is Supported - for(int i=0; i= AiRefExtMin && voltage <= AiRefExtMax) + if (voltage >= AiRefExtMin && voltage <= AiRefExtMax) { analogReference(EXTERNAL); AiRefSet = voltage; @@ -177,28 +171,27 @@ int LinxWiringDevice::AnalogSetRef(unsigned char mode, unsigned long voltage) //--------------------------------------------------------DIGITAL------------------------------------------------------- -int LinxWiringDevice::DigitalWrite(unsigned char numChans, unsigned char* channels, unsigned char* values) +int32_t LinxWiringDevice::DigitalWrite(uint8_t numChans, uint8_t* channels, uint8_t* values) { - for(int i=0; i> i%8) & 0x01); + digitalWrite(channels[i], (values[i / 8] >> i % 8) & 0x01); } - return L_OK; } -int LinxWiringDevice::DigitalRead(unsigned char numChans, unsigned char* channels, unsigned char* values) +int32_t LinxWiringDevice::DigitalRead(uint8_t numChans, uint8_t* channels, uint8_t* values) { - unsigned char bitOffset = 8; - unsigned char byteOffset = 0; - unsigned char retVal = 0; + uint8_t bitOffset = 8; + uint8_t byteOffset = 0; + uint8_t retVal = 0; //Loop Over channels To Read - for(int i=0; i 0) + if (freq > 0) { pinMode(channel, OUTPUT); - if(duration > 0) + if (duration > 0) { tone(channel, freq, duration); } @@ -243,14 +236,13 @@ int LinxWiringDevice::DigitalWriteSquareWave(unsigned char channel, unsigned lon { noTone(channel); } - return L_OK; } -int LinxWiringDevice::DigitalReadPulseWidth(unsigned char stimChan, unsigned char stimType, unsigned char respChan, unsigned char respType, unsigned long timeout, unsigned long* width) +int32_t LinxWiringDevice::DigitalReadPulseWidth(uint8_t stimChan, uint8_t stimType, uint8_t respChan, uint8_t respType, uint32_t timeout, uint32_t* width) { //Stimulus - if(stimType == 1) + if (stimType == 1) { //High->Low->High pinMode(stimChan, OUTPUT); @@ -261,7 +253,7 @@ int LinxWiringDevice::DigitalReadPulseWidth(unsigned char stimChan, unsigned cha delay(1); digitalWrite(stimChan, HIGH); } - else if(stimType == 2) + else if (stimType == 2) { //Low->High->Low pinMode(stimChan, OUTPUT); @@ -276,46 +268,44 @@ int LinxWiringDevice::DigitalReadPulseWidth(unsigned char stimChan, unsigned cha //Read Pulse pinMode(respChan, INPUT); - if(respType == 0) + if (respType == 0) { *width = pulseIn(respChan, LOW, timeout); } - else if(respType == 1) + else if (respType == 1) { *width = pulseIn(respChan, HIGH, timeout); } - return L_OK; } //--------------------------------------------------------PWM----------------------------------------------------------- -int LinxWiringDevice::PwmSetDutyCycle(unsigned char numChans, unsigned char* channels, unsigned char* values) +int32_t LinxWiringDevice::PwmSetDutyCycle(uint8_t numChans, uint8_t* channels, uint8_t* values) { - for(int i=0; i Slowest) - for(int index=0; index < NumSpiSpeeds; index++) + for (int32_t index = 0; index < NumSpiSpeeds; index++) { //If Target Speed Is greater or equal to the current supported speed use current supported speed (it's the fastest supported speed that is less or equal to the target) - if(speed >= *(SpiSupportedSpeeds+index)) + if (speed >= *(SpiSupportedSpeeds + index)) { - *actualSpeed = *(SpiSupportedSpeeds+index); - SPI.setClockDivider(*(SpiSpeedCodes+index)); + *actualSpeed = *(SpiSupportedSpeeds + index); + SPI.setClockDivider(*(SpiSpeedCodes + index)); break; } - if(index == NumSpiSpeeds-1) + if (index == NumSpiSpeeds-1) { //Target speed is slower than slowest supported. Use slowest supported - *actualSpeed = *(SpiSupportedSpeeds+index); - SPI.setClockDivider(*(SpiSpeedCodes+index)); + *actualSpeed = *(SpiSupportedSpeeds + index); + SPI.setClockDivider(*(SpiSpeedCodes + index)); } } - return L_OK; } -int LinxWiringDevice::SpiWriteRead(unsigned char channel, unsigned char frameSize, unsigned char numFrames, unsigned char csChan, unsigned char csLL, unsigned char* sendBuffer, unsigned char* recBuffer) +int32_t LinxWiringDevice::SpiWriteRead(uint8_t channel, uint8_t frameSize, uint8_t numFrames, uint8_t csChan, uint8_t csLL, unsigned char* sendBuffer, unsigned char* recBuffer) { //Set CS Pin As DO pinMode(csChan, OUTPUT); @@ -368,16 +356,16 @@ int LinxWiringDevice::SpiWriteRead(unsigned char channel, unsigned char frameSiz digitalWrite(csChan, (~csLL & 0x01) ); //Loop Over Frames - for(int i=0; i 0) + if (*(I2cRefCount + channel) > 0) { //Channel Already Open, Increment Ref Count - *(I2cRefCount+channel) = *(I2cRefCount+channel)+1; + *(I2cRefCount + channel) = *(I2cRefCount + channel) + 1; } else { @@ -413,20 +401,20 @@ int LinxWiringDevice::I2cOpenMaster(unsigned char channel) return 0; } -int LinxWiringDevice::I2cSetSpeed(unsigned char channel, unsigned long speed, unsigned long* actualSpeed) +int32_t LinxWiringDevice::I2cSetSpeed(uint8_t channel, uint32_t speed, uint32_t* actualSpeed) { if (actualSpeed) *actualSpeed = 100000; // we only support standard speed return L_OK; } -int LinxWiringDevice::I2cWrite(unsigned char channel, unsigned char slaveAddress, unsigned char eofConfig, unsigned char numBytes, unsigned char* sendBuffer) +int32_t LinxWiringDevice::I2cWrite(uint8_t channel, uint8_t slaveAddress, uint8_t eofConfig, uint8_t numBytes, unsigned char* sendBuffer) { #if ARDUINO_VERSION >= 100 Wire.beginTransmission(slaveAddress); Wire.write(sendBuffer, numBytes); - if(eofConfig == EOF_STOP) + if (eofConfig == EOF_STOP) { Wire.endTransmission(true); } @@ -442,13 +430,13 @@ int LinxWiringDevice::I2cWrite(unsigned char channel, unsigned char slaveAddress } return L_OK; #else - if(eofConfig != EOF_STOP) + if (eofConfig != EOF_STOP) { //EOF Not Supported, Stop Bus return LI2C_EOF; } Wire.beginTransmission(slaveAddress); - for(int i=0; i= 100 - if(eofConfig == EOF_STOP) + if (eofConfig == EOF_STOP) { Wire.requestFrom(slaveAddress, numBytes, (uint8_t)1); } @@ -474,7 +462,7 @@ int LinxWiringDevice::I2cRead(unsigned char channel, unsigned char slaveAddress, return LI2C_EOF; } #else - if(eofConfig != EOF_STOP) + if (eofConfig != EOF_STOP) { //EOF Not Supported return LI2C_EOF; @@ -483,8 +471,8 @@ int LinxWiringDevice::I2cRead(unsigned char channel, unsigned char slaveAddress, #endif //Wait For Data, Potentially Timeout - unsigned long tickCount = millis(); - while(Wire.available() < numBytes) + uint32_t tickCount = millis(); + while (Wire.available() < numBytes) { if( (millis() - tickCount) > timeout) { @@ -493,7 +481,7 @@ int LinxWiringDevice::I2cRead(unsigned char channel, unsigned char slaveAddress, } //Data Read, Read And Return - for(int i=0; i= 100 *(recBuffer+i) = Wire.read(); @@ -504,7 +492,7 @@ int LinxWiringDevice::I2cRead(unsigned char channel, unsigned char slaveAddress, return L_OK; } -int LinxWiringDevice::I2cClose(unsigned char channel) +int32_t LinxWiringDevice::I2cClose(uint8_t channel) { //Function Not Supported return L_FUNCTION_NOT_SUPPORTED; @@ -512,13 +500,13 @@ int LinxWiringDevice::I2cClose(unsigned char channel) //--------------------------------------------------------UART---------------------------------------------------------- -int LinxWiringDevice::UartOpen(unsigned char channel, unsigned long baudRate, unsigned long* actualBaud) +int32_t LinxWiringDevice::UartOpen(uint8_t channel, uint32_t baudRate, uint32_t* actualBaud) { - int index = 0; + int32_t index = 0; - for(index=0; index < NumUartSpeeds; index++) + for (index = 0; index < NumUartSpeeds; index++) { - if(baudRate < *(UartSupportedSpeeds+index)) + if (baudRate < *(UartSupportedSpeeds+index)) { //Previous Index Was Closest Supported Baud Without Going Over, Index Will Be Decremented Accordingly Below. break; @@ -527,109 +515,107 @@ int LinxWiringDevice::UartOpen(unsigned char channel, unsigned long baudRate, un //Once Loop Complets Index Is One Higher Than The Correct Baud, But Could Be Zero So Check And Decrement Accordingly //If The Entire Loop Runs Then index == NumUartSpeeds So Decrement It To Get Max Baud - if(index != 0) + if (index != 0) { index = index -1; } - if(channel == 0) + if (channel == 0) { #if NUM_UART_CHANS > 0 Serial.begin(*(UartSupportedSpeeds+index)); *actualBaud = *(UartSupportedSpeeds+index); #endif } - if(channel == 1) + if (channel == 1) { #if NUM_UART_CHANS > 1 Serial1.begin(*(UartSupportedSpeeds+index)); *actualBaud = *(UartSupportedSpeeds+index); #endif } - if(channel == 2) + if (channel == 2) { #if NUM_UART_CHANS > 2 Serial2.begin(*(UartSupportedSpeeds+index)); *actualBaud = *(UartSupportedSpeeds+index); #endif } - if(channel == 3) + if (channel == 3) { #if NUM_UART_CHANS > 3 Serial3.begin(*(UartSupportedSpeeds+index)); *actualBaud = *(UartSupportedSpeeds+index); #endif } - return L_OK; } -int LinxWiringDevice::UartSetBaudRate(unsigned char channel, unsigned long baudRate, unsigned long* actualBaud) +int32_t LinxWiringDevice::UartSetBaudRate(uint8_t channel, uint32_t baudRate, uint32_t* actualBaud) { UartClose(channel); - int retVal = UartOpen(channel, baudRate, actualBaud); + int32_t retVal = UartOpen(channel, baudRate, actualBaud); return retVal; } -int LinxWiringDevice::UartGetBytesAvailable(unsigned char channel, unsigned char *numBytes) +int32_t LinxWiringDevice::UartGetBytesAvailable(uint8_t channel, uint32_t *numBytes) { - if(channel == 0) + if (channel == 0) { #if NUM_UART_CHANS > 0 *numBytes = Serial.available(); #endif } - if(channel == 1) + if (channel == 1) { #if NUM_UART_CHANS > 1 *numBytes = Serial1.available(); #endif } - if(channel == 2) + if (channel == 2) { #if NUM_UART_CHANS > 2 *numBytes = Serial2.available(); #endif } - if(channel == 3) + if (channel == 3) { #if NUM_UART_CHANS > 3 *numBytes = Serial3.available(); #endif } - return L_OK; } -int LinxWiringDevice::UartRead(unsigned char channel, unsigned char numBytes, unsigned char* recBuffer, unsigned char* numBytesRead) +int32_t LinxWiringDevice::UartRead(uint8_t channel, uint32_t numBytes, unsigned char* recBuffer, uint32_t* numBytesRead) { #if ARDUINO_VERSION >= 100 - if(channel == 0) + if (channel == 0) { #if NUM_UART_CHANS > 0 *numBytesRead = Serial.readBytes((char*)recBuffer, numBytes); #endif } - else if(channel == 1) + else if (channel == 1) { #if NUM_UART_CHANS > 1 *numBytesRead = Serial1.readBytes((char*)recBuffer, numBytes); #endif } - else if(channel == 2) + else if (channel == 2) { #if NUM_UART_CHANS > 2 *numBytesRead = Serial2.readBytes((char*)recBuffer, numBytes); #endif } - else if(channel == 3) + else if (channel == 3) { #if NUM_UART_CHANS > 3 *numBytesRead = Serial3.readBytes((char*)recBuffer, numBytes); #endif } - if(*numBytesRead !=numBytes) + if (*numBytesRead !=numBytes) { return LUART_READ_FAIL; } @@ -637,36 +623,36 @@ int LinxWiringDevice::UartRead(unsigned char channel, unsigned char numBytes, un return L_OK; #else - for(int i=0; i 0 data = Serial.read(); #endif } - else if(channel == 1) + else if (channel == 1) { #if NUM_UART_CHANS > 1 data = Serial1.read(); #endif } - else if(channel == 2) + else if (channel == 2) { #if NUM_UART_CHANS > 2 data = Serial2.read(); #endif } - else if(channel == 3) + else if (channel == 3) { #if NUM_UART_CHANS > 3 data = Serial3.read(); #endif } - if(data < 0) + if (data < 0) { return LUART_READ_FAIL; } @@ -677,63 +663,61 @@ int LinxWiringDevice::UartRead(unsigned char channel, unsigned char numBytes, un //Read All Bytes Without Error. Return Num Bytes Read So Listener Can Pass It To PacketizeAndSend() *numBytesRead = numBytes; - } - + } return L_OK; #endif } -int LinxWiringDevice::UartWrite(unsigned char channel, unsigned char numBytes, unsigned char* sendBuffer) +int32_t LinxWiringDevice::UartWrite(uint8_t channel, uint32_t numBytes, unsigned char* sendBuffer) { - if(channel == 0) + if (channel == 0) { #if NUM_UART_CHANS > 0 Serial.write(sendBuffer, numBytes); #endif } - if(channel == 1) + if (channel == 1) { #if NUM_UART_CHANS > 1 Serial1.write(sendBuffer, numBytes); #endif } - if(channel == 2) + if (channel == 2) { #if NUM_UART_CHANS > 2 Serial2.write(sendBuffer, numBytes); #endif } - if(channel == 3) + if (channel == 3) { #if NUM_UART_CHANS > 3 Serial3.write(sendBuffer, numBytes); #endif } - return L_OK; } -int LinxWiringDevice::UartClose(unsigned char channel) +int32_t LinxWiringDevice::UartClose(uint8_t channel) { - if(channel == 0) + if (channel == 0) { #if NUM_UART_CHANS > 0 Serial.end(); #endif } - if(channel == 1) + if (channel == 1) { #if NUM_UART_CHANS > 1 Serial1.end(); #endif } - if(channel == 2) + if (channel == 2) { #if NUM_UART_CHANS > 2 Serial2.end(); #endif } - if(channel == 3) + if (channel == 3) { #if NUM_UART_CHANS > 3 Serial3.end(); @@ -743,12 +727,12 @@ int LinxWiringDevice::UartClose(unsigned char channel) } //--------------------------------------------------------SERVO---------------------------------------------------------- -int LinxWiringDevice::ServoOpen(unsigned char numChans, unsigned char* chans) +int32_t LinxWiringDevice::ServoOpen(uint8_t numChans, uint8_t* chans) { - for(int i=0; iwriteMicroseconds(pulseWidths[i]); } - return L_OK; } -int LinxWiringDevice::ServoClose(unsigned char numChans, unsigned char* chans) +int32_t LinxWiringDevice::ServoClose(uint8_t numChans, uint8_t* chans) { - for(int i=0; idetach(); Servos[chans[i]] = 0; @@ -791,12 +774,12 @@ int LinxWiringDevice::ServoClose(unsigned char numChans, unsigned char* chans) //--------------------------------------------------------GENERAL---------------------------------------------------------- -void LinxWiringDevice::NonVolatileWrite(int address, unsigned char data) +void LinxWiringDevice::NonVolatileWrite(int32_t address, uint8_t data) { EEPROM.write(address, data); } -unsigned char LinxWiringDevice::NonVolatileRead(int address) +unsigned char LinxWiringDevice::NonVolatileRead(int32_t address) { return EEPROM.read(address); } diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/utility/LinxWiringDevice.h b/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/utility/LinxWiringDevice.h index 8bc9518c..6a6de740 100644 --- a/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/utility/LinxWiringDevice.h +++ b/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/utility/LinxWiringDevice.h @@ -15,9 +15,8 @@ /**************************************************************************************** ** Includes ****************************************************************************************/ +#include "LinxDefines.h" #include "LinxDevice.h" -#include - /**************************************************************************************** ** Variables @@ -29,81 +28,76 @@ class LinxWiringDevice : public LinxDevice /**************************************************************************************** ** Variables ****************************************************************************************/ - unsigned char NumAiRefIntVals; //Number Of Internal AI Reference Voltages - const unsigned long* AiRefIntVals; //Supported AI Reference Voltages (uV) - const int* AiRefCodes; //AI Ref Values (AI Ref Macros In Wiring Case) + uint8_t NumAiRefIntVals; //Number Of Internal AI Reference Voltages + const uint32_t* AiRefIntVals; //Supported AI Reference Voltages (uV) + const int32_t* AiRefCodes; //AI Ref Values (AI Ref Macros In Wiring Case) - unsigned long AiRefExtMin; //Min External AI Ref Value (uV) - unsigned long AiRefExtMax; //Min External AI Ref Value (uV) + uint32_t AiRefExtMin; //Min External AI Ref Value (uV) + uint32_t AiRefExtMax; //Min External AI Ref Value (uV) - unsigned char NumUartSpeeds; //Number Of Support UART Buads - unsigned long* UartSupportedSpeeds; //Supported UART Bauds Frequencies + uint8_t NumUartSpeeds; //Number Of Support UART Buads + uint32_t* UartSupportedSpeeds; //Supported UART Bauds Frequencies - unsigned char NumSpiSpeeds; //Number Of Supported SPI Speeds - unsigned long* SpiSupportedSpeeds; //Supported SPI Clock Frequencies - int* SpiSpeedCodes; //SPI Speed Values (Clock Divider Macros In Wiring Case) + uint8_t NumSpiSpeeds; //Number Of Supported SPI Speeds + uint32_t* SpiSupportedSpeeds; //Supported SPI Clock Frequencies + int32_t* SpiSpeedCodes; //SPI Speed Values (Clock Divider Macros In Wiring Case) - unsigned char* I2cRefCount; //Number Opens - Closes On I2C Channel + unsigned char* I2cRefCount; //Number Opens - Closes On I2C Channel - Servo** Servos; //Array Servo Pointers +// Servo** Servos; //Array Servo Pointers /**************************************************************************************** ** Constructors ****************************************************************************************/ - LinxWiringDevice(); + LinxWiringDevice(LinxFmtChannel *debug = NULL); + virtual ~LinxWiringDevice(void) {}; /**************************************************************************************** ** Functions ****************************************************************************************/ //Analog - virtual int AnalogRead(unsigned char numChans, unsigned char* channels, unsigned char* values); - virtual int AnalogSetRef(unsigned char mode, unsigned long voltage); + virtual int32_t AnalogRead(uint8_t numChans, uint8_t* channels, uint8_t* values); + virtual int32_t AnalogSetRef(uint8_t mode, uint32_t voltage); //DIGITAL - virtual int DigitalWrite(unsigned char numChans, unsigned char* channels, unsigned char* values); - virtual int DigitalRead(unsigned char numChans, unsigned char* channels, unsigned char* values); - virtual int DigitalWriteSquareWave(unsigned char channel, unsigned long freq, unsigned long duration); - virtual int DigitalReadPulseWidth(unsigned char stimChan, unsigned char stimType, unsigned char respChan, unsigned char respType, unsigned long timeout, unsigned long* width); + virtual int32_t DigitalWrite(uint8_t numChans, uint8_t* channels, uint8_t* values); + virtual int32_t DigitalRead(uint8_t numChans, uint8_t* channels, uint8_t* values); + virtual int32_t DigitalWriteSquareWave(uint8_t channel, uint32_t freq, uint32_t duration); + virtual int32_t DigitalReadPulseWidth(uint8_t stimChan, uint8_t stimType, uint8_t respChan, uint8_t respType, uint32_t timeout, uint32_t* width); //PWM - virtual int PwmSetDutyCycle(unsigned char numChans, unsigned char* channels, unsigned char* values); + virtual int32_t PwmSetDutyCycle(uint8_t numChans, uint8_t* channels, uint8_t* values); //SPI - virtual int SpiOpenMaster(unsigned char channel); - virtual int SpiSetBitOrder(unsigned char channel, unsigned char bitOrder); - virtual int SpiSetMode(unsigned char channel, unsigned char mode); - virtual int SpiSetSpeed(unsigned char channel, unsigned long speed, unsigned long* actualSpeed); - virtual int SpiWriteRead(unsigned char channel, unsigned char frameSize, unsigned char numFrames, unsigned char csChan, unsigned char csLL, unsigned char* sendBuffer, unsigned char* recBuffer); + virtual int32_t SpiOpenMaster(uint8_t channel); + virtual int32_t SpiSetBitOrder(uint8_t channel, uint8_t bitOrder); + virtual int32_t SpiSetMode(uint8_t channel, uint8_t mode); + virtual int32_t SpiSetSpeed(uint8_t channel, uint32_t speed, uint32_t* actualSpeed); + virtual int32_t SpiWriteRead(uint8_t channel, uint8_t frameSize, uint8_t numFrames, uint8_t csChan, uint8_t csLL, unsigned char* sendBuffer, unsigned char* recBuffer); //I2C - virtual int I2cOpenMaster(unsigned char channel); - virtual int I2cSetSpeed(unsigned char channel, unsigned long speed, unsigned long* actualSpeed); - virtual int I2cWrite(unsigned char channel, unsigned char slaveAddress, unsigned char eofConfig, unsigned char numBytes, unsigned char* sendBuffer); - virtual int I2cRead(unsigned char channel, unsigned char slaveAddress, unsigned char eofConfig, unsigned char numBytes, unsigned int timeout, unsigned char* recBuffer); - virtual int I2cClose(unsigned char channel); + virtual int32_t I2cOpenMaster(uint8_t channel); + virtual int32_t I2cSetSpeed(uint8_t channel, uint32_t speed, uint32_t* actualSpeed); + virtual int32_t I2cWrite(uint8_t channel, uint8_t slaveAddress, uint8_t eofConfig, uint8_t numBytes, unsigned char* sendBuffer); + virtual int32_t I2cRead(uint8_t channel, uint8_t slaveAddress, uint8_t eofConfig, uint8_t numBytes, uint32_t timeout, unsigned char* recBuffer); + virtual int32_t I2cClose(uint8_t channel); //UART - virtual int UartOpen(unsigned char channel, unsigned long baudRate, unsigned long* actualBaud); - virtual int UartSetBaudRate(unsigned char channel, unsigned long baudRate, unsigned long* actualBaud); - virtual int UartGetBytesAvailable(unsigned char channel, unsigned char *numBytes); - virtual int UartRead(unsigned char channel, unsigned char numBytes, unsigned char* recBuffer, unsigned char* numBytesRead); - virtual int UartWrite(unsigned char channel, unsigned char numBytes, unsigned char* sendBuffer); - virtual int UartClose(unsigned char channel); + virtual int32_t UartOpen(uint8_t channel, uint32_t baudRate, uint32_t* actualBaud); + virtual int32_t UartSetBaudRate(uint8_t channel, uint32_t baudRate, uint32_t* actualBaud); + virtual int32_t UartGetBytesAvailable(uint8_t channel, uint8_t *numBytes); + virtual int32_t UartRead(uint8_t channel, uint8_t numBytes, unsigned char* recBuffer, uint8_t* numBytesRead); + virtual int32_t UartWrite(uint8_t channel, uint8_t numBytes, unsigned char* sendBuffer); + virtual int32_t UartClose(uint8_t channel); //Servo - virtual int ServoOpen(unsigned char numChans, unsigned char* chans); - virtual int ServoSetPulseWidth(unsigned char numChans, unsigned char* chans, unsigned short* pulseWidths); - virtual int ServoClose(unsigned char numChans, unsigned char* chans); + virtual int32_t ServoOpen(uint8_t numChans, uint8_t* chans); + virtual int32_t ServoSetPulseWidth(uint8_t numChans, uint8_t* chans, uint16_t* pulseWidths); + virtual int32_t ServoClose(uint8_t numChans, uint8_t* chans); //General - - virtual unsigned long GetMilliSeconds(); - virtual unsigned long GetSeconds(); - virtual void DelayMs(unsigned long ms); - virtual void NonVolatileWrite(int address, unsigned char data); - virtual unsigned char NonVolatileRead(int address); - - //Debug - + virtual void NonVolatileWrite(int32_t address, uint8_t data); + virtual uint8_t NonVolatileRead(int32_t address); protected: /**************************************************************************************** @@ -113,12 +107,17 @@ class LinxWiringDevice : public LinxDevice /**************************************************************************************** ** Functions ****************************************************************************************/ + virtual LinxChannel* LookupChannel(int32_t type, uint8_t channel); + virtual uint8_t RegisterChannel(int32_t type, LinxChannel *chan); + virtual void RegisterChannel(int32_t type, uint8_t channel, LinxChannel *chan); + virtual void RemoveChannel(int32_t type, uint8_t channel); + virtual void ClearChannels(int32_t type); private: /**************************************************************************************** ** Functions ****************************************************************************************/ - void LinxWireWrite(); + void LinxWireWrite(void); }; diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/utility/winutils.c b/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/utility/winutils.c new file mode 100644 index 00000000..0c28766b --- /dev/null +++ b/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/device/utility/winutils.c @@ -0,0 +1,74 @@ +#include +#define WIN32_NO_STATUS +#include +#include + +#define REG_KEY_PATH_LENGTH 1024 + +typedef enum _KEY_INFORMATION_CLASS { + KeyBasicInformation, + KeyNodeInformation, + KeyFullInformation, + KeyNameInformation, + KeyCachedInformation, + KeyFlagsInformation, + KeyVirtualizationInformation, + KeyHandleTagsInformation, + KeyTrustInformation, + KeyLayerInformation, + MaxKeyInfoClass +} KEY_INFORMATION_CLASS; + +typedef struct _KEY_NAME_INFORMATION { + ULONG NameLength; + WCHAR Name[1]; +} KEY_NAME_INFORMATION, *PKEY_NAME_INFORMATION; + +typedef NTSTATUS (NTAPI *PFN_NtQueryKey)( + __in HANDLE /* KeyHandle */, + __in KEY_INFORMATION_CLASS /* KeyInformationClass */, + __out_opt PVOID /* KeyInformation */, + __in ULONG /* Length */, + __out ULONG * /* ResultLength */ +); + +DWORD RegQueryKeyPath(HKEY hKey, LPWSTR string, ULONG strLen) +{ + NTSTATUS status; + if (hKey != NULL) + { + HMODULE hinstDLL = GetModuleHandleW(L"ntdll.dll"); + if (hinstDLL != NULL) + { + PFN_NtQueryKey pfn = (PFN_NtQueryKey)GetProcAddress(hinstDLL, "NtQueryKey"); + if (pfn != NULL) + { + ULONG length = FIELD_OFFSET(KEY_NAME_INFORMATION, Name) + sizeof(WCHAR) * REG_KEY_PATH_LENGTH; + LPWSTR buffer = (LPWSTR)malloc(length); + KEY_NAME_INFORMATION *pkni; + + TryAgain: + status = (pfn)(hKey, KeyNameInformation, buffer, length, &length); + switch (status) + { + case STATUS_BUFFER_TOO_SMALL: + case STATUS_BUFFER_OVERFLOW: + buffer = realloc(buffer, length); + goto TryAgain; + case STATUS_SUCCESS: + pkni = (KEY_NAME_INFORMATION *)buffer; + if (strLen > pkni->NameLength / sizeof(WCHAR)) + strLen = pkni->NameLength / sizeof(WCHAR); + else + strLen--; + wcsncpy(string, pkni->Name, strLen); + string[strLen] = 0; + default: + break; + } + free(buffer); + } + } + } + return status; +} diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/examples/LinxDeviceLib/src/LinxDeviceLib.cpp b/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/examples/LinxDeviceLib/src/LinxDeviceLib.cpp index 93ee5fa5..5c6c68b5 100755 --- a/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/examples/LinxDeviceLib/src/LinxDeviceLib.cpp +++ b/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/examples/LinxDeviceLib/src/LinxDeviceLib.cpp @@ -4,7 +4,8 @@ ** For more information see: www.labviewmakerhub.com/linx ** For support visit the forums at: www.labviewmakerhub.com/forums/linx ** -** Written By Sam Kristoff +** Written by Sam Kristoff +** Modifications by Rolf Kalbermatter ** ** BSD2 License. ****************************************************************************************/ @@ -13,422 +14,760 @@ #include #include +#include "LinxDefines.h" +#include "LinxChannel.h" #include "LinxDevice.h" - +#include "LinxClient.h" +#include "utility/LinxListener.h" +#include "LinxSerialListener.h" +#include "LinxTcpListener.h" +#include "LinxDeviceLib.h" + +#if Win32 + #define LINXDEVICETYPE LinxWindowsDevice + #include "LinxWindowsDevice.h" +#elif Unix + #if LINX_DEVICE_FAMILY == 4 //------------------------------------- Raspberry Pi ------------------------------------- -#if LINX_DEVICE_FAMILY == 4 - #if LINX_DEVICE_ID == 3 //RPI 2 B - #define LINXDEVICETYPE LinxRaspberryPi2B - #include "LinxRaspberryPi.h" - #include "LinxRaspberryPi2B.h" - #endif + #if LINX_DEVICE_ID >= 3 //RPI 2 B + #define LINXDEVICETYPE LinxRaspberryPi + #include "LinxRaspberryPi.h" + #endif + #elif LINX_DEVICE_FAMILY == 6 //------------------------------------- Beagle Bone ------------------------------------- -#elif LINX_DEVICE_FAMILY == 6 - #if LINX_DEVICE_ID == 1 - #define LINXDEVICETYPE LinxBeagleBoneBlack - #include "LinxBeagleBone.h" - #include "LinxBeagleBoneBlack.h" - #endif + #if LINX_DEVICE_ID == 1 + #define LINXDEVICETYPE LinxBeagleBoneBlack + #include "LinxBeagleBoneBlack.h" + #endif + #else + #define LINXDEVICETYPE LinxBeagleBoneBlack + #endif +#elif Arduino + #endif -LINXDEVICETYPE* LinxDev; +LinxDevice* gLinxDev = NULL; //------------------------------------- Constructor / Destructor ------------------------------------- -extern "C" int LinxOpen() +LibAPI(LinxDevice *) LinxOpenLocalClient(void) { - - //Instantiate The LINX Device - LinxDev = new LINXDEVICETYPE(); - return L_OK; + //Instantiate the LINX Device + return new LINXDEVICETYPE(); } -extern "C" int LinxClose() +LibAPI(int32_t) LinxOpen(void) { - delete LinxDev; + if (!gLinxDev) + { + //Instantiate The LINX Device + gLinxDev = LinxOpenLocalClient(); + } return L_OK; } +LibAPI(LinxDevice *) LinxOpenSerialClient(const unsigned char *deviceName, uint32_t *baudrate, uint8_t dataBits, uint8_t stopBits, LinxUartParity parity, int32_t timeout) +{ + LinxClient *client = new LinxClient(deviceName, baudrate, dataBits, stopBits, parity, timeout); + if (client && !client->IsInitialized()) + { + client->Release(); + return NULL; + } + return client; +} -//------------------------------------- Enumeration ------------------------------------- -extern "C" int LinxGetDeviceFamily() +LibAPI(LinxDevice *) LinxOpenTCPClient(const unsigned char *clientAddress, uint16_t port, int32_t timeout) { - return LinxDev->DeviceFamily; + LinxClient *client = new LinxClient(clientAddress, port, timeout); + if (client && !client->IsInitialized()) + { + client->Release(); + return NULL; + } + return client; } -extern "C" int LinxGetDeviceId() +LibAPI(LinxListener *) LinxOpenSerialServer(LinxDevice *dev, const unsigned char *deviceName, uint32_t baudRate, uint8_t dataBits, uint8_t stopBits, LinxUartParity parity, bool autostart) { - return LinxDev->DeviceId; + if (!dev) + dev = LinxOpenLocalClient(); + else + dev->AddRef(); + + LinxSerialListener *listener = new LinxSerialListener(dev, autostart); + if (listener) + { + int32_t status = listener->Start(deviceName, baudRate, dataBits, stopBits, parity); + if (status) + { + listener->Release(); + return NULL; + } + } + return listener; } -extern "C" int LinxGetDeviceName(string* name) +LibAPI(LinxListener *) LinxOpenTCPServer(LinxDevice *dev, const unsigned char *interfaceAddress, uint16_t port, bool autostart) { - memcpy(name, LinxDev->DeviceName, LinxDev->DeviceNameLen); + if (!dev) + dev = LinxOpenLocalClient(); + else + dev->AddRef(); + + LinxTcpListener *listener = new LinxTcpListener(dev, autostart); + if (listener) + { + int32_t status = listener->Start(interfaceAddress, port); + if (status) + { + listener->Release(); + listener = NULL; + } + } + dev->Release(); + return listener; +} + +LibAPI(int32_t) LinxServerProcess(LinxListener *listener, int32_t timeout) +{ + if (listener) + return listener->ProcessLoop(timeout); + return L_DISCONNECT; +} + +LibAPI(int32_t) LinxCloseRef(LinxBase *base) +{ + if (base) + base->Release(); return L_OK; } +LibAPI(int32_t) LinxClose(void) +{ + int32_t status = LinxCloseRef(gLinxDev); + gLinxDev = NULL; + return status; +} +//------------------------------------- Enumeration ------------------------------------- +LibAPI(uint8_t) LinxGetDeviceFamilyRef(LinxDevice *dev) +{ + if (dev) + return dev->DeviceFamily; + return 0; +} + +LibAPI(uint8_t) LinxGetDeviceFamily(void) +{ + return LinxGetDeviceFamilyRef(gLinxDev); +} + +LibAPI(uint8_t) LinxGetDeviceIdRef(LinxDevice *dev) +{ + if (dev) + return dev->DeviceId; + return 0; +} + +LibAPI(uint8_t) LinxGetDeviceId(void) +{ + return LinxGetDeviceIdRef(gLinxDev); +} + +LibAPI(int32_t) LinxGetDeviceNameRef(LinxDevice *dev, unsigned char *name, int32_t len) +{ + if (dev) + { + dev->GetDeviceName(name, len); + return L_OK; + } + return L_DISCONNECT; +} + +LibAPI(int32_t) LinxGetDeviceName(unsigned char *name) +{ + return LinxGetDeviceNameRef(gLinxDev, name, 64); +} //------------------------------------- General ------------------------------------- -extern "C" unsigned long LinxGetMilliSeconds() +LibAPI(uint32_t) LinxGetMilliSecondsRef(LinxDevice *dev) { - return LinxDev->GetMilliSeconds(); + if (dev) + return dev->GetMilliSeconds(); + return 0; } +LibAPI(uint32_t) LinxGetMilliSeconds(void) +{ + return LinxGetMilliSecondsRef(gLinxDev); +} //------------------------------------- Analog ------------------------------------- -extern "C" unsigned long LinxAiGetRefSetVoltage() +LibAPI(uint32_t) LinxAiGetRefSetVoltageRef(LinxDevice *dev) { - return LinxDev->AiRefSet; + if (dev) + return dev->AiRefSet; + return 0; } -extern "C" unsigned long LinxAoGetRefSetVoltage() +LibAPI(uint32_t) LinxAiGetRefSetVoltage(void) { - return LinxDev->AoRefSet; + return LinxAiGetRefSetVoltageRef(gLinxDev); } -extern "C" unsigned char LinxAiGetResolution() +LibAPI(uint32_t) LinxAoGetRefSetVoltageRef(LinxDevice *dev) { - return LinxDev->AiResolution; + if (dev) + return dev->AoRefSet; + return 0; } -extern "C" unsigned char LinxAoGetResolution() +LibAPI(uint32_t) LinxAoGetRefSetVoltage(void) { - return LinxDev->AoResolution; + return LinxAoGetRefSetVoltageRef(gLinxDev); } -extern "C" unsigned char LinxAiGetNumChans() +LibAPI(uint8_t) LinxAiGetResolutionRef(LinxDevice *dev) { - return LinxDev->NumAiChans; + if (dev) + return dev->AiResolution; + return 0; } -extern "C" unsigned char LinxAoGetNumChans() +LibAPI(uint8_t) LinxAiGetResolution(void) { - return LinxDev->NumAoChans; + return LinxAiGetResolutionRef(gLinxDev); } -extern "C" int LinxAiGetChans(unsigned char numChans, unsigned char* channels) +LibAPI(uint8_t) LinxAoGetResolutionRef(LinxDevice *dev) { - if(numChans >= LinxDev->NumAiChans) - { - //Copy All Channels - memcpy(channels, LinxDev->AiChans, LinxDev->NumAiChans); - return LinxDev->NumAiChans; - } - else - { - //Copy As Many Channels As Possible With Given Space - memcpy(channels, LinxDev->AiChans, numChans); - return numChans; - } + if (dev) + return dev->AoResolution; + return 0; } -extern "C" int LinxAoGetChans(unsigned char numChans, unsigned char* channels) +LibAPI(uint8_t) LinxAoGetResolution(void) { - if(numChans >= LinxDev->NumAoChans) - { - //Copy All Channels - memcpy(channels, LinxDev->AoChans, LinxDev->NumAoChans); - return LinxDev->NumAoChans; - } - else - { - //Copy As Many Channels As Possible With Given Space - memcpy(channels, LinxDev->AoChans, numChans); - return numChans; - } + return LinxAoGetResolutionRef(gLinxDev); } -extern "C" int LinxAnalogRead(unsigned char numChans, unsigned char* channels, unsigned char* values) +LibAPI(int32_t) LinxAiGetChansRef(LinxDevice *dev, uint8_t *buffer, uint32_t *bufLen) { - return LinxDev->AnalogRead(numChans, channels, values); + if (dev) + return dev->EnumerateChannels(IID_LinxAiChannel, buffer, bufLen ? *bufLen : 0, bufLen); + return 0; } -extern "C" int LinxAnalogReadNoPacking(unsigned char numChans, unsigned char* channels, unsigned long* values) +LibAPI(int32_t) LinxAoGetChansRef(LinxDevice *dev, uint8_t *buffer, uint32_t *bufLen) { - return LinxDev->AnalogReadNoPacking(numChans, channels, values); -} + if (dev) + return dev->EnumerateChannels(IID_LinxAoChannel, buffer, bufLen ? *bufLen : 0, bufLen); + return 0; +} +LibAPI(uint8_t) LinxAiGetNumChans(void) +{ + return LinxAiGetChansRef(gLinxDev, NULL, NULL); +} + +LibAPI(uint8_t) LinxAoGetNumChans(void) +{ + return LinxAoGetChansRef(gLinxDev, NULL, NULL); +} + +LibAPI(int32_t) LinxAiGetChans(uint8_t numChans, uint8_t* channels) +{ + return LinxAiGetChansRef(gLinxDev, channels, (uint32_t*)&numChans); +} + +LibAPI(int32_t) LinxAoGetChans(uint8_t numChans, uint8_t* channels) +{ + return LinxAoGetChansRef(gLinxDev, channels, (uint32_t*)&numChans); +} + +LibAPI(int32_t) LinxAnalogReadRef(LinxDevice *dev, uint8_t numChans, uint8_t* channels, uint8_t* values) +{ + if (dev) + return dev->AnalogRead(numChans, channels, values); + return L_DISCONNECT; +} + +LibAPI(int32_t) LinxAnalogRead(uint8_t numChans, uint8_t* channels, uint8_t* values) +{ + return LinxAnalogReadRef(gLinxDev, numChans, channels, values); +} + +LibAPI(int32_t) LinxAnalogReadNoPackingRef(LinxDevice *dev, uint8_t numChans, uint8_t* channels, uint32_t* values) +{ + if (dev) + return dev->AnalogReadNoPacking(numChans, channels, values); + return L_DISCONNECT; +} + +LibAPI(int32_t) LinxAnalogReadNoPacking(uint8_t numChans, uint8_t* channels, uint32_t* values) +{ + return LinxAnalogReadNoPackingRef(gLinxDev, numChans, channels, values); +} + +LibAPI(int32_t) LinxAnalogWriteRef(LinxDevice *dev, uint8_t numChans, uint8_t* channels, uint8_t* values) +{ + if (dev) + return dev->AnalogWrite(numChans, channels, values); + return L_DISCONNECT; +} + +LibAPI(int32_t) LinxAnalogWrite(uint8_t numChans, uint8_t* channels, uint8_t* values) +{ + return LinxAnalogWriteRef(gLinxDev, numChans, channels, values);; +} //------------------------------------- CAN ------------------------------------- -extern "C" unsigned char LinxCanGetNumChans() +LibAPI(int32_t) LinxCanGetChansRef(LinxDevice *dev, uint8_t *buffer, uint32_t *bufLen) { - return LinxDev->NumCanChans; + if (dev) + return dev->EnumerateChannels(IID_LinxCanChannel, buffer, bufLen ? *bufLen : 0, bufLen); + return 0; } -extern "C" int LinxCanGetChans(unsigned char numChans, unsigned char* channels) + +LibAPI(uint8_t) LinxCanGetNumChans(void) { - if(numChans >= LinxDev->NumCanChans) - { - //Copy All Channels - memcpy(channels, LinxDev->CanChans, LinxDev->NumCanChans); - return LinxDev->NumCanChans; - } - else - { - //Copy As Many Channels As Possible With Given Space - memcpy(channels, LinxDev->CanChans, numChans); - return numChans; - } + return LinxCanGetChansRef(gLinxDev, NULL, NULL); } +LibAPI(int32_t) LinxCanGetChans(uint8_t numChans, uint8_t* channels) +{ + return LinxCanGetChansRef(gLinxDev, channels, (uint32_t*)&numChans); +} //------------------------------------- Digital ------------------------------------- -extern "C" unsigned char LinxDigitalGetNumChans() +LibAPI(int32_t) LinxDigitalGetChansRef(LinxDevice *dev, uint8_t* buffer, uint32_t *bufLen) { - return LinxDev->NumDigitalChans; + if (dev) + return dev->EnumerateChannels(IID_LinxDioChannel, buffer, bufLen ? *bufLen : 0, bufLen); + return 0; } -extern "C" int LinxDigitalGetChans(unsigned char numChans, unsigned char* channels) +LibAPI(uint8_t) LinxDigitalGetNumChans(void) { - if(numChans >= LinxDev->NumDigitalChans) - { - //Copy All Channels - memcpy(channels, LinxDev->DigitalChans, LinxDev->NumDigitalChans); - return LinxDev->NumDigitalChans; - } - else - { - //Copy As Many Channels As Possible With Given Space - memcpy(channels, LinxDev->DigitalChans, numChans); - return numChans; - } + return LinxDigitalGetChansRef(gLinxDev, NULL, NULL); +} + +LibAPI(int32_t) LinxDigitalGetChans(uint8_t numChans, uint8_t* channels) +{ + return LinxDigitalGetChansRef(gLinxDev, channels, (uint32_t*)&numChans); } -extern "C" int LinxDigitalRead(unsigned char numChans, unsigned char* channels, unsigned char* values) +LibAPI(int32_t) LinxDigitalSetStateRef(LinxDevice *dev, uint8_t numChans, uint8_t* channels, uint8_t* states) { - return LinxDev->DigitalRead(numChans, channels, values); + if (dev) + return dev->DigitalSetState(numChans, channels, states); + return L_DISCONNECT; } -extern "C" int LinxDigitalReadNoPacking(unsigned char numChans, unsigned char* channels, unsigned char* values) +LibAPI(int32_t) LinxDigitalSetState(uint8_t numChans, uint8_t* channels, uint8_t* states) { - return LinxDev->DigitalReadNoPacking(numChans, channels, values); + return LinxDigitalSetStateRef(gLinxDev, numChans, channels, states); } -extern "C" int LinxDigitalWrite(unsigned char numChans, unsigned char* channels, unsigned char* values) +LibAPI(int32_t) LinxDigitalReadRef(LinxDevice *dev, uint8_t numChans, uint8_t* channels, uint8_t* values) { - return LinxDev->DigitalWrite(numChans, channels, values); + if (dev) + return dev->DigitalRead(numChans, channels, values); + return L_DISCONNECT; } -extern "C" int LinxDigitalWriteNoPacking(unsigned char numChans, unsigned char* channels, unsigned char* values) +LibAPI(int32_t) LinxDigitalRead(uint8_t numChans, uint8_t* channels, uint8_t* values) { - return LinxDev->DigitalWriteNoPacking(numChans, channels, values); + return LinxDigitalReadRef(gLinxDev, numChans, channels, values); } +LibAPI(int32_t) LinxDigitalReadNoPackingRef(LinxDevice *dev, uint8_t numChans, uint8_t* channels, uint8_t* values) +{ + if (dev) + return dev->DigitalReadNoPacking(numChans, channels, values); + return L_DISCONNECT; +} + +LibAPI(int32_t) LinxDigitalReadNoPacking(uint8_t numChans, uint8_t* channels, uint8_t* values) +{ + return LinxDigitalReadNoPackingRef(gLinxDev, numChans, channels, values); +} + +LibAPI(int32_t) LinxDigitalWriteRef(LinxDevice *dev, uint8_t numChans, uint8_t* channels, uint8_t* values) +{ + if (dev) + return dev->DigitalWrite(numChans, channels, values); + return L_DISCONNECT; +} +LibAPI(int32_t) LinxDigitalWrite(uint8_t numChans, uint8_t* channels, uint8_t* values) +{ + return LinxDigitalWriteRef(gLinxDev, numChans, channels, values); +} + +LibAPI(int32_t) LinxDigitalWriteNoPackingRef(LinxDevice *dev, uint8_t numChans, uint8_t* channels, uint8_t* values) +{ + if (dev) + return dev->DigitalWriteNoPacking(numChans, channels, values); + return L_DISCONNECT; +} + +LibAPI(int32_t) LinxDigitalWriteNoPacking(uint8_t numChans, uint8_t* channels, uint8_t* values) +{ + return LinxDigitalWriteNoPackingRef(gLinxDev, numChans, channels, values); +} //------------------------------------- I2C ------------------------------------- -extern "C" unsigned char LinxI2cGetNumChans() +LibAPI(int32_t) LinxI2cGetChansRef(LinxDevice *dev, uint8_t* buffer, uint32_t *bufLen) { - return LinxDev->NumI2cChans; + if (dev) + return dev->EnumerateChannels(IID_LinxI2cChannel, buffer, bufLen ? *bufLen : 0, bufLen); + return 0; } -extern "C" int LinxI2cGetChans(unsigned char numChans, unsigned char* channels) +LibAPI(uint8_t) LinxI2cGetNumChans(void) { - if(numChans >= LinxDev->NumI2cChans) - { - //Copy All Channels - memcpy(channels, LinxDev->I2cChans, LinxDev->NumI2cChans); - return LinxDev->NumI2cChans; - } - else - { - //Copy As Many Channels As Possible With Given Space - memcpy(channels, LinxDev->I2cChans, numChans); - return numChans; - } + return LinxI2cGetChansRef(gLinxDev, NULL, NULL); +} + +LibAPI(int32_t) LinxI2cGetChans(uint8_t numChans, uint8_t* channels) +{ + return LinxI2cGetChansRef(gLinxDev, channels, (uint32_t*)&numChans); +} + +LibAPI(int32_t) LinxI2cOpenMasterRef(LinxDevice *dev, uint8_t channel) +{ + if (dev) + return dev->I2cOpenMaster(channel); + return L_DISCONNECT; } -extern "C" int LinxI2cOpenMaster(unsigned char channel) +LibAPI(int32_t) LinxI2cOpenMaster(uint8_t channel) { - return LinxDev->I2cOpenMaster(channel); + return LinxI2cOpenMasterRef(gLinxDev, channel); } -extern "C" int LinxI2cSetSpeed(unsigned char channel, unsigned long speed, unsigned long* actualSpeed) +LibAPI(int32_t) LinxI2cSetSpeedRef(LinxDevice *dev, uint8_t channel, uint32_t speed, uint32_t* actualSpeed) { - return LinxDev->I2cSetSpeed(channel, speed, actualSpeed); + if (dev) + return dev->I2cSetSpeed(channel, speed, actualSpeed); + return L_DISCONNECT; } -extern "C" int LinxI2cWrite(unsigned char channel, unsigned char slaveAddress, unsigned char eofConfig, unsigned char numBytes, unsigned char* sendBuffer) +LibAPI(int32_t) LinxI2cSetSpeed(uint8_t channel, uint32_t speed, uint32_t* actualSpeed) { - return LinxDev->I2cWrite(channel, slaveAddress, eofConfig, numBytes, sendBuffer); + return LinxI2cSetSpeedRef(gLinxDev, channel, speed, actualSpeed);; } -extern "C" int LinxI2cRead(unsigned char channel, unsigned char slaveAddress, unsigned char eofConfig, unsigned char numBytes, unsigned int timeout, unsigned char* recBuffer) +LibAPI(int32_t) LinxI2cWriteRef(LinxDevice *dev, uint8_t channel, uint8_t slaveAddress, uint8_t eofConfig, uint8_t numBytes, uint8_t* sendBuffer) { - return LinxDev->I2cRead(channel, slaveAddress, eofConfig, numBytes, timeout, recBuffer); + if (dev) + return dev->I2cWrite(channel, slaveAddress, eofConfig, numBytes, sendBuffer); + return L_DISCONNECT; } -extern "C" int LinxI2cClose(unsigned char channel) +LibAPI(int32_t) LinxI2cWrite(uint8_t channel, uint8_t slaveAddress, uint8_t eofConfig, uint8_t numBytes, unsigned char* sendBuffer) { - return LinxDev->I2cClose(channel); + return LinxI2cWriteRef(gLinxDev, channel, slaveAddress, eofConfig, numBytes, sendBuffer);; +} + +LibAPI(int32_t) LinxI2cReadRef(LinxDevice *dev, uint8_t channel, uint8_t slaveAddress, uint8_t eofConfig, uint8_t numBytes, uint32_t timeout, unsigned char* recBuffer) +{ + if (dev) + return dev->I2cRead(channel, slaveAddress, eofConfig, numBytes, timeout, recBuffer); + return L_DISCONNECT; +} + +LibAPI(int32_t) LinxI2cRead(uint8_t channel, uint8_t slaveAddress, uint8_t eofConfig, uint8_t numBytes, uint32_t timeout, unsigned char* recBuffer) +{ + return LinxI2cReadRef(gLinxDev, channel, slaveAddress, eofConfig, numBytes, timeout, recBuffer);; +} + +LibAPI(int32_t) LinxI2cCloseRef(LinxDevice *dev, uint8_t channel) +{ + if (dev) + return dev->I2cClose(channel); + return L_DISCONNECT; +} + +LibAPI(int32_t) LinxI2cClose(uint8_t channel) +{ + return LinxI2cCloseRef(gLinxDev, channel); } - //------------------------------------- PWM ------------------------------------- -extern "C" unsigned char LinxPwmGetNumChans() +LibAPI(int32_t) LinxPwmGetChansRef(LinxDevice *dev, uint8_t* buffer, uint32_t *bufLen) { - return LinxDev->NumPwmChans; + if (dev) + return dev->EnumerateChannels(IID_LinxPwmChannel, buffer, bufLen ? *bufLen : 0, bufLen); + return 0; } -extern "C" int LinxPwmGetChans(unsigned char numChans, unsigned char* channels) +LibAPI(uint8_t) LinxPwmGetNumChans(void) { - if(numChans >= LinxDev->NumPwmChans) - { - //Copy All Channels - memcpy(channels, LinxDev->PwmChans, LinxDev->NumPwmChans); - return LinxDev->NumPwmChans; - } - else - { - //Copy As Many Channels As Possible With Given Space - memcpy(channels, LinxDev->PwmChans, numChans); - return numChans; - } + return LinxPwmGetChansRef(gLinxDev, NULL, NULL); } -extern "C" int LinxPwmSetDutyCycle(unsigned char numChans, unsigned char* channels, unsigned char* values) +LibAPI(int32_t) LinxPwmGetChans(uint8_t numChans, uint8_t* channels) { - return LinxDev->PwmSetDutyCycle(numChans, channels, values); + return LinxPwmGetChansRef(gLinxDev, channels, (uint32_t*)&numChans); } +LibAPI(int32_t) LinxPwmSetDutyCycleRef(LinxDevice *dev, uint8_t numChans, uint8_t* channels, uint8_t* values) +{ + if (dev) + return dev->PwmSetDutyCycle(numChans, channels, values); + return L_DISCONNECT; +} + +LibAPI(int32_t) LinxPwmSetDutyCycle(uint8_t numChans, uint8_t* channels, uint8_t* values) +{ + return LinxPwmSetDutyCycleRef(gLinxDev, numChans, channels, values); +} //------------------------------------- QE ------------------------------------- -extern "C" unsigned char LinxQeGetNumChans() +LibAPI(int32_t) LinxQeGetChansRef(LinxDevice *dev, uint8_t* buffer, uint32_t *bufLen) { - return LinxDev->NumQeChans; + if (dev) + return dev->EnumerateChannels(IID_LinxQeChannel, buffer, bufLen ? *bufLen : 0, bufLen); + return 0; } -extern "C" int LinxQeGetChans(unsigned char numChans, unsigned char* channels) + +LibAPI(uint8_t) LinxQeGetNumChans(void) { - if(numChans >= LinxDev->NumQeChans) - { - //Copy All Channels - memcpy(channels, LinxDev->QeChans, LinxDev->NumQeChans); - return LinxDev->NumQeChans; - } - else - { - //Copy As Many Channels As Possible With Given Space - memcpy(channels, LinxDev->QeChans, numChans); - return numChans; - } + return LinxQeGetChansRef(gLinxDev, NULL, NULL); +} + +LibAPI(int32_t) LinxQeGetChans(uint8_t numChans, uint8_t* channels) +{ + return LinxQeGetChansRef(gLinxDev, channels, (uint32_t*)&numChans); } //------------------------------------- Servo ------------------------------------- -extern "C" unsigned char LinxServoGetNumChans() +LibAPI(int32_t) LinxServoGetChansRef(LinxDevice *dev, uint8_t* buffer, uint32_t *bufLen) { - return LinxDev->NumServoChans; + if (dev) + return dev->EnumerateChannels(IID_LinxServoChannel, buffer, bufLen ? *bufLen : 0, bufLen); + return 0; } -extern "C" int LinxServoGetChans(unsigned char numChans, unsigned char* channels) +LibAPI(uint8_t) LinxServoGetNumChans(void) { - if(numChans >= LinxDev->NumServoChans) - { - //Copy All Channels - memcpy(channels, LinxDev->ServoChans, LinxDev->NumServoChans); - return LinxDev->NumServoChans; - } - else - { - //Copy As Many Channels As Possible With Given Space - memcpy(channels, LinxDev->ServoChans, numChans); - return numChans; - } + return LinxServoGetChansRef(gLinxDev, NULL, NULL); } +LibAPI(int32_t) LinxServoGetChans(uint8_t numChans, uint8_t* channels) +{ + return LinxServoGetChansRef(gLinxDev, channels, (uint32_t*)&numChans); +} //------------------------------------- SPI ------------------------------------- -extern "C" unsigned char LinxSpiGetNumChans() +LibAPI(int32_t) LinxSpiGetChansRef(LinxDevice *dev, uint8_t* buffer, uint32_t *bufLen) { - return LinxDev->NumSpiChans; + if (dev) + return dev->EnumerateChannels(IID_LinxSpiChannel, buffer, bufLen ? *bufLen : 0, bufLen); + return 0; } -extern "C" int LinxSpiGetChans(unsigned char numChans, unsigned char* channels) +LibAPI(uint8_t) LinxSpiGetNumChans(void) { - if(numChans >= LinxDev->NumSpiChans) - { - //Copy All Channels - memcpy(channels, LinxDev->SpiChans, LinxDev->NumSpiChans); - return LinxDev->NumSpiChans; - } - else - { - //Copy As Many Channels As Possible With Given Space - memcpy(channels, LinxDev->SpiChans, numChans); - return numChans; - } + return LinxSpiGetChansRef(gLinxDev, NULL, NULL); +} + +LibAPI(int32_t) LinxSpiGetChans(uint8_t numChans, uint8_t* channels) +{ + return LinxSpiGetChansRef(gLinxDev, channels, (uint32_t*)&numChans); +} + +LibAPI(int32_t) LinxSpiOpenMasterRef(LinxDevice *dev, uint8_t channel) +{ + if (dev) + return dev->SpiOpenMaster(channel); + return L_DISCONNECT; } -extern "C" int LinxSpiOpenMaster(unsigned char channel) +LibAPI(int32_t) LinxSpiOpenMaster(uint8_t channel) { - return LinxDev->SpiOpenMaster(channel); + return LinxSpiOpenMasterRef(gLinxDev, channel); } -extern "C" int LinxSpiSetBitOrder(unsigned char channel, unsigned char bitOrder) +LibAPI(int32_t) LinxSpiSetBitOrderRef(LinxDevice *dev, uint8_t channel, uint8_t bitOrder) { - return LinxDev->SpiSetBitOrder(channel, bitOrder); + if (dev) + return dev->SpiSetBitOrder(channel, bitOrder); + return L_DISCONNECT; } -extern "C" int LinxSpiSetMode(unsigned char channel, unsigned char mode) +LibAPI(int32_t) LinxSpiSetBitOrder(uint8_t channel, uint8_t bitOrder) { - return LinxDev->SpiSetMode(channel, mode); + return LinxSpiSetBitOrderRef(gLinxDev, channel, bitOrder); } -extern "C" int LinxSpiSetSpeed(unsigned char channel, unsigned long speed, unsigned long* actualSpeed) +LibAPI(int32_t) LinxSpiSetModeRef(LinxDevice *dev, uint8_t channel, uint8_t mode) { - return LinxDev->SpiSetSpeed(channel, speed, actualSpeed); + if (dev) + return dev->SpiSetMode(channel, mode); + return L_DISCONNECT; } -extern "C" int LinxSpiWriteRead(unsigned char channel, unsigned char frameSize, unsigned char numFrames, unsigned char csChan, unsigned char csLL, unsigned char* sendBuffer, unsigned char* recBuffer) +LibAPI(int32_t) LinxSpiSetMode(uint8_t channel, uint8_t mode) { - return LinxDev->SpiWriteRead(channel, frameSize, numFrames, csChan, csLL, sendBuffer, recBuffer); + return LinxSpiSetModeRef(gLinxDev, channel, mode); +} + +LibAPI(int32_t) LinxSpiSetSpeedRef(LinxDevice *dev, uint8_t channel, uint32_t speed, uint32_t* actualSpeed) +{ + if (dev) + return dev->SpiSetSpeed(channel, speed, actualSpeed); + return L_DISCONNECT; +} + +LibAPI(int32_t) LinxSpiSetSpeed(uint8_t channel, uint32_t speed, uint32_t* actualSpeed) +{ + return LinxSpiSetSpeedRef(gLinxDev, channel, speed, actualSpeed); +} + +LibAPI(int32_t) LinxSpiWriteReadRef(LinxDevice *dev, uint8_t channel, uint8_t frameSize, uint8_t numFrames, uint8_t csChan, uint8_t csLL, unsigned char* sendBuffer, unsigned char* recBuffer) +{ + if (dev) + return dev->SpiWriteRead(channel, frameSize, numFrames, csChan, csLL, sendBuffer, recBuffer); + return L_DISCONNECT; +} + +LibAPI(int32_t) LinxSpiWriteRead(uint8_t channel, uint8_t frameSize, uint8_t numFrames, uint8_t csChan, uint8_t csLL, unsigned char* sendBuffer, unsigned char* recBuffer) +{ + return LinxSpiWriteReadRef(gLinxDev, channel, frameSize, numFrames, csChan, csLL, sendBuffer, recBuffer); +} + +LibAPI(int32_t) LinxSpiCloseMasterRef(LinxDevice *dev, uint8_t channel) +{ + if (dev) + return dev->SpiCloseMaster(channel); + return L_DISCONNECT; +} + +LibAPI(int32_t) LinxSpiCloseMaster(uint8_t channel) +{ + return LinxSpiCloseMasterRef(gLinxDev, channel); } - //------------------------------------- UART ------------------------------------- -extern "C" unsigned char LinxUartGetNumChans() +LibAPI(int32_t) LinxUartGetChansRef(LinxDevice *dev, uint8_t* buffer, uint32_t *bufLen) { - return LinxDev->NumUartChans; + if (dev) + return dev->EnumerateChannels(IID_LinxUartChannel, buffer, bufLen ? *bufLen : 0, bufLen); + return 0; } -extern "C" int LinxUartGetChans(unsigned char numChans, unsigned char* channels) +LibAPI(uint8_t) LinxUartGetNumChans(void) { - if(numChans >= LinxDev->NumUartChans) - { - //Copy All Channels - memcpy(channels, LinxDev->UartChans, LinxDev->NumUartChans); - return LinxDev->NumUartChans; - } - else - { - //Copy As Many Channels As Possible With Given Space - memcpy(channels, LinxDev->UartChans, numChans); - return numChans; - } + return LinxUartGetChansRef(gLinxDev, NULL, NULL); +} + +LibAPI(int32_t) LinxUartGetChans(uint8_t numChans, uint8_t* channels) +{ + return LinxUartGetChansRef(gLinxDev, channels, (uint32_t*)&numChans); +} + +LibAPI(int32_t) LinxUartOpenRef(LinxDevice *dev, uint8_t channel) +{ + if (dev) + return dev->UartOpen(channel); + return L_DISCONNECT; +} + +LibAPI(int32_t) LinxUartOpenNameRef(LinxDevice *dev, const unsigned char*name, uint8_t *channel) +{ + if (dev) + return dev->UartOpen(name, channel); + return L_DISCONNECT; +} + +LibAPI(int32_t) LinxUartSetBaudRateRef(LinxDevice *dev, uint8_t channel, uint32_t baudRate, uint32_t* actualBaud) +{ + if (dev) + return dev->UartSetBaudRate(channel, baudRate, actualBaud); + return L_DISCONNECT; +} + +LibAPI(int32_t) LinxUartSetBaudRate(uint8_t channel, uint32_t baudRate, uint32_t* actualBaud) +{ + return LinxUartSetBaudRateRef(gLinxDev, channel, baudRate, actualBaud); +} + +LibAPI(int32_t) LinxUartOpen(uint8_t channel, uint32_t baudRate, uint32_t* actualBaud) +{ + int32_t status = LinxUartOpenRef(gLinxDev, channel); + if (!status) + status = LinxUartSetBaudRateRef(gLinxDev, channel, baudRate, actualBaud); + return status; +} + +LibAPI(int32_t) LinxUartSetParametersRef(LinxDevice *dev, uint8_t channel, uint8_t dataBits, uint8_t stopBits, LinxUartParity parity) +{ + if (dev) + return dev->UartSetParameters(channel, dataBits, stopBits, parity); + return L_DISCONNECT; +} + +LibAPI(int32_t) LinxUartSetParameters(uint8_t channel, uint8_t dataBits, uint8_t stopBits, LinxUartParity parity) +{ + return LinxUartSetParametersRef(gLinxDev, channel, dataBits, stopBits, parity); +} + +LibAPI(int32_t) LinxUartGetBytesAvailableRef(LinxDevice *dev, uint8_t channel, uint32_t *numBytes) +{ + if (dev) + return dev->UartGetBytesAvailable(channel, numBytes); + return L_DISCONNECT; +} + +LibAPI(int32_t) LinxUartGetBytesAvailable(uint8_t channel, uint8_t *numBytes) +{ + return LinxUartGetBytesAvailableRef(gLinxDev, channel, (uint32_t*)numBytes); } -extern "C" int LinxUartOpen(unsigned char channel, unsigned long baudRate, unsigned long* actualBaud) +LibAPI(int32_t) LinxUartReadRef(LinxDevice *dev, uint8_t channel, uint32_t numBytes, unsigned char* recBuffer, int32_t timeout, uint32_t* numBytesRead) { - return LinxDev->UartOpen(channel, baudRate, actualBaud); + if (dev) + return dev->UartRead(channel, numBytes, recBuffer, timeout, numBytesRead); + return L_DISCONNECT; } -extern "C" int LinxUartSetBaudRate(unsigned char channel, unsigned long baudRate, unsigned long* actualBaud) + +LibAPI(int32_t) LinxUartRead2(uint8_t channel, uint32_t numBytes, unsigned char* recBuffer, int32_t timeout, uint32_t* numBytesRead) +{ + return LinxUartReadRef(gLinxDev, channel, numBytes, recBuffer, timeout, numBytesRead); +} + +LibAPI(int32_t) LinxUartRead(uint8_t channel, uint8_t numBytes, unsigned char* recBuffer, uint8_t* numBytesRead) +{ + return LinxUartReadRef(gLinxDev, channel, numBytes, recBuffer, TIMEOUT_INFINITE, (uint32_t*)numBytesRead); +} + +LibAPI(int32_t) LinxUartWriteRef(LinxDevice *dev, uint8_t channel, uint32_t numBytes, unsigned char* sendBuffer, int32_t timeout) { - return LinxDev->UartSetBaudRate(channel, baudRate, actualBaud); + if (dev) + return dev->UartWrite(channel, numBytes, sendBuffer, timeout); + return L_DISCONNECT; } -extern "C" int LinxUartGetBytesAvailable(unsigned char channel, unsigned char *numBytes) +LibAPI(int32_t) LinxUartWrite2(uint8_t channel, uint32_t numBytes, unsigned char* sendBuffer, int32_t timeout) { - return LinxDev->UartGetBytesAvailable(channel, numBytes); + return LinxUartWriteRef(gLinxDev, channel, numBytes, sendBuffer, timeout); } -extern "C" int LinxUartRead(unsigned char channel, unsigned char numBytes, unsigned char* recBuffer, unsigned char* numBytesRead) +LibAPI(int32_t) LinxUartWrite(uint8_t channel, uint8_t numBytes, unsigned char* sendBuffer) { - return LinxDev->UartRead(channel, numBytes, recBuffer, numBytesRead); + return LinxUartWriteRef(gLinxDev, channel, numBytes, sendBuffer, TIMEOUT_INFINITE); } -extern "C" int LinxUartWrite(unsigned char channel, unsigned char numBytes, unsigned char* sendBuffer) +LibAPI(int32_t) LinxUartCloseRef(LinxDevice *dev, uint8_t channel) { - return LinxDev->UartWrite(channel, numBytes, sendBuffer); + if (dev) + return dev->UartClose(channel); + return L_DISCONNECT; } -extern "C" int LinxUartClose(unsigned char channel) +LibAPI(int32_t) LinxUartClose(uint8_t channel) { - return LinxDev->UartClose(channel); + return LinxUartCloseRef(gLinxDev, channel); } diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/examples/LinxDeviceLib/src/LinxDeviceLib.h b/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/examples/LinxDeviceLib/src/LinxDeviceLib.h index e2b98d53..a1b7b6d7 100644 --- a/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/examples/LinxDeviceLib/src/LinxDeviceLib.h +++ b/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/examples/LinxDeviceLib/src/LinxDeviceLib.h @@ -12,94 +12,180 @@ #ifndef LINX_DEVICELIB_H #define LINX_DEVICELIB_H -#include +#if defined(_MSC_VER) + #if defined(LINX_EXPORTS) + #define LibAPI(type) extern "C" __declspec(dllexport) type + #else + #define LibAPI(type) extern "C" __declspec(dllimport) type + #endif +#elif defined (__GNUC__) && defined(__unix__) + #define LibAPI(type) extern "C" __attribute__ ((__visibility__("default"))) type +#else + #define LibAPI(type) extern "C" type +#endif -using namespace std; //------------------------------------- Constructor/Destructor ------------------------------------- -extern "C" int LinxOpen(); -extern "C" int LinxClose(); +LibAPI(LinxDevice *) LinxOpenLocalClient(void); +LibAPI(LinxDevice *) LinxOpenSerialClient(const unsigned char *deviceName, uint32_t *baudrate, uint8_t dataBits, uint8_t stopBits, LinxUartParity parity, int32_t timeout); +LibAPI(LinxDevice *) LinxOpenTCPClient(const unsigned char *clientAddress, uint16_t port, int32_t timeout); +LibAPI(LinxListener *) LinxOpenSerialServer(LinxDevice *dev, const unsigned char *deviceName, uint32_t baudRate, uint8_t dataBits, uint8_t stopBits, LinxUartParity parity, bool autostart); +LibAPI(LinxListener *) LinxOpenTCPServer(LinxDevice *dev, const unsigned char *interfaceAddress, uint16_t port, bool autostart); +LibAPI(int32_t) LinxServerProcess(LinxListener *listener, int32_t timeout); -//------------------------------------- Enumeration ------------------------------------- -extern "C" unsigned char LinxGetDeviceFamily(); -extern "C" unsigned char LinxGetDeviceId(); -extern "C" int LinxGetDeviceName(string* name); +LibAPI(int32_t) LinxCloseRef(LinxBase *base); +//------------------------------------- Enumeration ------------------------------------- +LibAPI(uint8_t) LinxGetDeviceFamilyRef(LinxDevice *dev); +LibAPI(uint8_t) LinxGetDeviceIdRef(LinxDevice *dev); +LibAPI(int32_t) LinxGetDeviceNameRef(LinxDevice *dev, unsigned char *name, int32_t nameLen); //------------------------------------- General ------------------------------------- -extern "C" unsigned long LinxGetMilliSeconds(); - +LibAPI(uint32_t) LinxGetMilliSecondsRef(LinxDevice *dev); //------------------------------------- Analog ------------------------------------- +LibAPI(uint32_t) LinxAiGetRefSetVoltageRef(LinxDevice *dev); +LibAPI(uint32_t) LinxAoGetRefSetVoltageRef(LinxDevice *dev); +LibAPI(int32_t) LinxAiGetChansRef(LinxDevice *dev, uint8_t* buffer, uint32_t *bufLen); +LibAPI(int32_t) LinxAoGetChansRef(LinxDevice *dev, uint8_t* buffer, uint32_t *bufLen); +LibAPI(int32_t) LinxAnalogReadRef(LinxDevice *dev, uint8_t numChans, uint8_t* channels, uint8_t* values); +LibAPI(int32_t) LinxAnalogReadNoPackingRef(LinxDevice *dev, uint8_t numChans, uint8_t* channels, uint32_t* values); +LibAPI(int32_t) LinxAnalogWriteRef(LinxDevice *dev, uint8_t numChans, uint8_t* channels, uint8_t* values); -extern "C" unsigned long LinxAiGetRefSetVoltage(); -extern "C" unsigned long LinxAoGetRefSetVoltage(); -extern "C" unsigned long LinxAiGetResolution(); -extern "C" unsigned long LinxAoGetResolution(); -extern "C" unsigned char LinxAiGetNumChans(); -extern "C" unsigned char LinxAoGetNumChans(); -extern "C" int LinxAiGetChans(unsigned char numChans, unsigned char* channels); -extern "C" int LinxAoGetChans(unsigned char numChans, unsigned char* channels); -extern "C" int LinxAnalogRead(unsigned char numChans, unsigned char* channels, unsigned char* values); -extern "C" int LinxAnalogReadNoPacking(unsigned char numChans, unsigned char* channels, unsigned long* values); +//------------------------------------- CAN ------------------------------------- +LibAPI(int32_t) LinxCanGetChansRef(LinxDevice *dev, uint8_t* buffer, uint32_t *bufLen); +//------------------------------------- Digital ------------------------------------- +LibAPI(int32_t) LinxDigitalGetChansRef(LinxDevice *dev, uint8_t* buffer, uint32_t *bufLen); +LibAPI(int32_t) LinxDigitalSetStateRef(LinxDevice *dev, uint8_t numChans, uint8_t* channels, uint8_t* states); +LibAPI(int32_t) LinxDigitalWriteRef(LinxDevice *dev, uint8_t numChans, uint8_t* channels, uint8_t* values); +LibAPI(int32_t) LinxDigitalWriteNoPackingRef(LinxDevice *dev, uint8_t numChans, uint8_t* channels, uint8_t* values); +LibAPI(int32_t) LinxDigitalReadRef(LinxDevice *dev, uint8_t numChans, uint8_t* channels, uint8_t* values); +LibAPI(int32_t) LinxDigitalReadNoPackingRef(LinxDevice *dev, uint8_t numChans, uint8_t* channels, uint8_t* values); -//------------------------------------- CAN ------------------------------------- -extern "C" unsigned char LinxCanGetNumChans(); -extern "C" int LinxCanGetChans(unsigned char numChans, unsigned char* channels); +//------------------------------------- I2C ------------------------------------- +LibAPI(int32_t) LinxI2cGetChansRef(LinxDevice *dev, uint8_t* buffer, uint32_t *bufLen); +LibAPI(int32_t) LinxI2cOpenMasterRef(LinxDevice *dev, uint8_t channel); +LibAPI(int32_t) LinxI2cSetSpeedRef(LinxDevice *dev, uint8_t channel, uint32_t speed, uint32_t* actualSpeed); +LibAPI(int32_t) LinxI2cWriteRef(LinxDevice *dev, uint8_t channel, uint8_t slaveAddress, uint8_t eofConfig, uint8_t numBytes, unsigned char* sendBuffer); +LibAPI(int32_t) LinxI2cReadRef(LinxDevice *dev, uint8_t channel, uint8_t slaveAddress, uint8_t eofConfig, uint8_t numBytes, uint32_t timeout, unsigned char* recBuffer); +LibAPI(int32_t) LinxI2cCloseRef(LinxDevice *dev, uint8_t channel); + +//------------------------------------- PWM ------------------------------------- +LibAPI(int32_t) LinxPwmGetChansRef(LinxDevice *dev, uint8_t* buffer, uint32_t *bufLen); +LibAPI(int32_t) LinxPwmSetDutyCycleRef(LinxDevice *dev, uint8_t numChans, uint8_t* channels, uint8_t* values); +//------------------------------------- QE ------------------------------------- +LibAPI(int32_t) LinxQeGetChansRef(LinxDevice *dev, uint8_t* buffer, uint32_t *bufLen); -//------------------------------------- Digital ------------------------------------- -extern "C" unsigned char LinxDigitalGetNumChans(); -extern "C" int LinxDigitalGetChans(unsigned char numChans, unsigned char* channels); -extern "C" int LinxDigitalWrite(unsigned char numChans, unsigned char* channels, unsigned char* values); -extern "C" int LinxDigitalWriteNoPacking(unsigned char numChans, unsigned char* channels, unsigned char* values); -extern "C" int LinxDigitalRead(unsigned char numChans, unsigned char* channels, unsigned char* values); -extern "C" int LinxDigitalReadNoPacking(unsigned char numChans, unsigned char* channels, unsigned char* values); +//------------------------------------- Servo ------------------------------------- +LibAPI(int32_t) LinxServoGetChansRef(LinxDevice *dev, uint8_t* buffer, uint32_t *bufLen); + +//------------------------------------- SPI ------------------------------------- +LibAPI(int32_t) LinxSpiGetChansRef(LinxDevice *dev, uint8_t* buffer, uint32_t *bufLen); +LibAPI(int32_t) LinxSpiOpenMasterRef(LinxDevice *dev, uint8_t channel); +LibAPI(int32_t) LinxSpiSetBitOrderRef(LinxDevice *dev, uint8_t channel, uint8_t bitOrder); +LibAPI(int32_t) LinxSpiSetModeRef(LinxDevice *dev, uint8_t channel, uint8_t mode); +LibAPI(int32_t) LinxSpiSetSpeedRef(LinxDevice *dev, uint8_t channel, uint32_t speed, uint32_t* actualSpeed); +LibAPI(int32_t) LinxSpiWriteReadRef(LinxDevice *dev, uint8_t channel, uint8_t frameSize, uint8_t numFrames, uint8_t csChan, uint8_t csLL, unsigned char* sendBuffer, unsigned char* recBuffer); +LibAPI(int32_t) LinxSpiCloseMasterRef(LinxDevice *dev, uint8_t channel); + +//------------------------------------- UART ------------------------------------- +LibAPI(int32_t) LinxUartGetChansRef(LinxDevice *dev, uint8_t* buffer, uint32_t *bufLen); +LibAPI(int32_t) LinxUartOpenRef(LinxDevice *dev, uint8_t channel); +LibAPI(int32_t) LinxUartOpenNameRef(LinxDevice *dev, const uint8_t *name, uint8_t *channel); +LibAPI(int32_t) LinxUartSetBaudRateRef(LinxDevice *dev, uint8_t channel, uint32_t baudRate, uint32_t* actualBaud); +LibAPI(int32_t) LinxUartSetParametersRef(LinxDevice *dev, uint8_t channel, uint8_t dataBits, uint8_t stopBits, LinxUartParity parity); +LibAPI(int32_t) LinxUartGetBytesAvailableRef(LinxDevice *dev, uint8_t channel, uint32_t *numBytes); +LibAPI(int32_t) LinxUartReadRef(LinxDevice *dev, uint8_t channel, uint32_t numBytes, unsigned char* recBuffer, int32_t timeout, uint32_t* numBytesRead); +LibAPI(int32_t) LinxUartWriteRef(LinxDevice *dev, uint8_t channel, uint32_t numBytes, unsigned char* sendBuffer, int32_t timeout); +LibAPI(int32_t) LinxUartCloseRef(LinxDevice *dev, uint8_t channel); + +// ------------------------------------------------------------------------------------------------- +// Old Legacy API +//-------------------------------------------------------------------------------------------------- + +//------------------------------------- Constructor/Destructor ------------------------------------- +LibAPI(int32_t) LinxOpen(void); +LibAPI(int32_t) LinxClose(void); + +//------------------------------------- Enumeration ------------------------------------- +LibAPI(uint8_t) LinxGetDeviceFamily(void); +LibAPI(uint8_t) LinxGetDeviceId(void); +LibAPI(int32_t) LinxGetDeviceName(unsigned char *name); + +//------------------------------------- General ------------------------------------- +LibAPI(uint32_t) LinxGetMilliSeconds(void); +//------------------------------------- Analog ------------------------------------- +LibAPI(uint32_t) LinxAiGetRefSetVoltage(void); +LibAPI(uint32_t) LinxAoGetRefSetVoltage(void); +LibAPI(uint8_t) LinxAiGetResolution(void); +LibAPI(uint8_t) LinxAoGetResolution(void); +LibAPI(uint8_t) LinxAiGetNumChans(void); +LibAPI(uint8_t) LinxAoGetNumChans(void); +LibAPI(int32_t) LinxAiGetChans(uint8_t numChans, uint8_t* channels); +LibAPI(int32_t) LinxAoGetChans(uint8_t numChans, uint8_t* channels); +LibAPI(int32_t) LinxAnalogRead(uint8_t numChans, uint8_t* channels, uint8_t* values); +LibAPI(int32_t) LinxAnalogReadNoPacking(uint8_t numChans, uint8_t* channels, uint32_t* values); +LibAPI(int32_t) LinxAnalogWrite(uint8_t numChans, uint8_t* channels, uint8_t* values); + +//------------------------------------- CAN ------------------------------------- +LibAPI(uint8_t) LinxCanGetNumChans(void); +LibAPI(int32_t) LinxCanGetChans(uint8_t numChans, uint8_t* channels); + +//------------------------------------- Digital ------------------------------------- +LibAPI(uint8_t) LinxDigitalGetNumChans(void); +LibAPI(int32_t) LinxDigitalGetChans(uint8_t numChans, uint8_t* channels); +LibAPI(int32_t) LinxDigitalSetState(uint8_t numChans, uint8_t* channels, uint8_t* states); +LibAPI(int32_t) LinxDigitalWrite(uint8_t numChans, uint8_t* channels, uint8_t* values); +LibAPI(int32_t) LinxDigitalWriteNoPacking(uint8_t numChans, uint8_t* channels, uint8_t* values); +LibAPI(int32_t) LinxDigitalRead(uint8_t numChans, uint8_t* channels, uint8_t* values); +LibAPI(int32_t) LinxDigitalReadNoPacking(uint8_t numChans, uint8_t* channels, uint8_t* values); //------------------------------------- I2C ------------------------------------- -extern "C" unsigned char LinxI2cGetNumChans(); -extern "C" int LinxI2cGetChans(unsigned char numChans, unsigned char* channels); -extern "C" int LinxI2cOpenMaster(unsigned char channel); -extern "C" int LinxI2cSetSpeed(unsigned char channel, unsigned long speed, unsigned long* actualSpeed); -extern "C" int LinxI2cWrite(unsigned char channel, unsigned char slaveAddress, unsigned char eofConfig, unsigned char numBytes, unsigned char* sendBuffer); -extern "C" int LinxI2cRead(unsigned char channel, unsigned char slaveAddress, unsigned char eofConfig, unsigned char numBytes, unsigned int timeout, unsigned char* recBuffer); -extern "C" int LinxI2cClose(unsigned char channel); - +LibAPI(uint8_t) LinxI2cGetNumChans(void); +LibAPI(int32_t) LinxI2cGetChans(uint8_t numChans, uint8_t* channels); +LibAPI(int32_t) LinxI2cOpenMaster(uint8_t channel); +LibAPI(int32_t) LinxI2cSetSpeed(uint8_t channel, uint32_t speed, uint32_t* actualSpeed); +LibAPI(int32_t) LinxI2cWrite(uint8_t channel, uint8_t slaveAddress, uint8_t eofConfig, uint8_t numBytes, unsigned char* sendBuffer); +LibAPI(int32_t) LinxI2cRead(uint8_t channel, uint8_t slaveAddress, uint8_t eofConfig, unsigned char numBytes, uint32_t timeout, unsigned char* recBuffer); +LibAPI(int32_t) LinxI2cClose(uint8_t channel); //------------------------------------- PWM ------------------------------------- -extern "C" unsigned char LinxPwmGetNumChans(); -extern "C" int LinxPwmGetChans(unsigned char numChans, unsigned char* channels); -extern "C" int LinxPwmSetDutyCycle(unsigned char numChans, unsigned char* channels, unsigned char* values); +LibAPI(uint8_t) LinxPwmGetNumChans(void); +LibAPI(int32_t) LinxPwmGetChans(uint8_t numChans, uint8_t* channels); +LibAPI(int32_t) LinxPwmSetDutyCycle(uint8_t numChans, uint8_t* channels, uint8_t* values); //------------------------------------- QE ------------------------------------- -extern "C" unsigned char LinxQeGetNumChans(); -extern "C" int LinxQeGetChans(unsigned char numChans, unsigned char* channels); - +LibAPI(uint8_t) LinxQeGetNumChans(void); +LibAPI(int32_t) LinxQeGetChans(uint8_t numChans, uint8_t* channels); //------------------------------------- Servo ------------------------------------- -extern "C" unsigned char LinxServoGetNumChans(); -extern "C" int LinxServoGetChans(unsigned char numChans, unsigned char* channels); - +LibAPI(uint8_t) LinxServoGetNumChans(void); +LibAPI(int32_t) LinxServoGetChans(uint8_t numChans, uint8_t* channels); //------------------------------------- SPI ------------------------------------- -extern "C" unsigned char LinxSpiGetNumChans(); -extern "C" int LinxSpiGetChans(unsigned char numChans, unsigned char* channels); -extern "C" int LinxSpiOpenMaster(unsigned char channel); -extern "C" int LinxSpiSetBitOrder(unsigned char channel, unsigned char bitOrder); -extern "C" int LinxSpiSetMode(unsigned char channel, unsigned char mode); -extern "C" int LinxSpiSetSpeed(unsigned char channel, unsigned long speed, unsigned long* actualSpeed); -extern "C" int LinxSpiWriteRead(unsigned char channel, unsigned char frameSize, unsigned char numFrames, unsigned char csChan, unsigned char csLL, unsigned char* sendBuffer, unsigned char* recBuffer); +LibAPI(uint8_t) LinxSpiGetNumChans(void); +LibAPI(int32_t) LinxSpiGetChans(uint8_t numChans, uint8_t* channels); +LibAPI(int32_t) LinxSpiOpenMaster(uint8_t channel); +LibAPI(int32_t) LinxSpiSetBitOrder(uint8_t channel, uint8_t bitOrder); +LibAPI(int32_t) LinxSpiSetMode(uint8_t channel, uint8_t mode); +LibAPI(int32_t) LinxSpiSetSpeed(uint8_t channel, uint32_t speed, uint32_t* actualSpeed); +LibAPI(int32_t) LinxSpiWriteRead(uint8_t channel, uint8_t frameSize, uint8_t numFrames, uint8_t csChan, uint8_t csLL, unsigned char* sendBuffer, unsigned char* recBuffer); +LibAPI(int32_t) LinxSpiCloseMaster(uint8_t channel); //------------------------------------- UART ------------------------------------- -extern "C" unsigned char LinxUartGetNumChans(); -extern "C" int LinxUartGetChans(unsigned char numChans, unsigned char* channels); -extern "C" int LinxUartOpen(unsigned char channel, unsigned long baudRate, unsigned long* actualBaud); -extern "C" int LinxUartSetBaudRate(unsigned char channel, unsigned long baudRate, unsigned long* actualBaud); -extern "C" int LinxUartGetBytesAvailable(unsigned char channel, unsigned char *numBytes); -extern "C" int LinxUartRead(unsigned char channel, unsigned char numBytes, unsigned char* recBuffer, unsigned char* numBytesRead); -extern "C" int LinxUartWrite(unsigned char channel, unsigned char numBytes, unsigned char* sendBuffer); -extern "C" int LinxUartClose(unsigned char channel); +LibAPI(uint8_t) LinxUartGetNumChans(void); +LibAPI(int32_t) LinxUartGetChans(uint8_t numChans, uint8_t* channels); +LibAPI(int32_t) LinxUartOpen(uint8_t channel, uint32_t baudRate, uint32_t* actualBaud); +LibAPI(int32_t) LinxUartSetBaudRate(uint8_t channel, uint32_t baudRate, uint32_t* actualBaud); +LibAPI(int32_t) LinxUartSetParameters(uint8_t channel, uint8_t dataBits, uint8_t stopBits, LinxUartParity parity); +LibAPI(int32_t) LinxUartGetBytesAvailable(uint8_t channel, uint8_t *numBytes); +LibAPI(int32_t) LinxUartRead(uint8_t channel, uint8_t numBytes, unsigned char* recBuffer, uint8_t* numBytesRead); +LibAPI(int32_t) LinxUartRead2(uint8_t channel, uint32_t numBytes, unsigned char* recBuffer, int32_t timeout, uint32_t* numBytesRead); +LibAPI(int32_t) LinxUartWrite(uint8_t channel, uint8_t numBytes, unsigned char* sendBuffer); +LibAPI(int32_t) LinxUartWrite2(uint8_t channel, uint32_t numBytes, unsigned char* sendBuffer, int32_t timeout); +LibAPI(int32_t) LinxUartClose(uint8_t channel); #endif //LINX_DEVICELIB_H \ No newline at end of file diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/listener/LinxLinuxTcpListener.cpp b/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/listener/LinxLinuxTcpListener.cpp deleted file mode 100644 index 01e5e48a..00000000 --- a/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/listener/LinxLinuxTcpListener.cpp +++ /dev/null @@ -1,298 +0,0 @@ -/**************************************************************************************** -** LINX Linux TCP listener code. -** -** For more information see: www.labviewmakerhub.com/linx -** For support visit the forums at: www.labviewmakerhub.com/forums/linx -** -** Written By Sam Kristoff -** -** BSD2 License. -****************************************************************************************/ - -/**************************************************************************************** -** Includes -****************************************************************************************/ -#include "utility/LinxDevice.h" -#include "utility/LinxListener.h" -#include "LinxLinuxTcpListener.h" - -#include -#include -#include -#include -#include -#include -#include -#include - -/**************************************************************************************** -** Constructors -****************************************************************************************/ -LinxLinuxTcpListener::LinxLinuxTcpListener() -{ - State = START; - Interface = TCP; - TcpPort = 44300; - TcpTimeout.tv_sec = 10; //Set Socket Time-out To Default Value -} - -/**************************************************************************************** -** Functions -****************************************************************************************/ - -int LinxLinuxTcpListener::Start(LinxDevice* linxDev, unsigned short port) -{ - LinxDev = linxDev; - - recBuffer = (unsigned char*) malloc(LinxDev->ListenerBufferSize); - sendBuffer = (unsigned char*) malloc(LinxDev->ListenerBufferSize); - - LinxDev->DebugPrintln("Starting Linux TCP Listener..."); - - //Create the TCP socket - if((ServerSocket = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0) - { - LinxDev->DebugPrintln("Failed To Create Socket"); - State = EXIT; - return -1; - } - else - { - LinxDev->DebugPrintln("Successfully Created Socket"); - } - - //Construct the server sockaddr_in structure - TcpPort = port; //Store Specified Port In Case It's Needed Later - memset(&TcpServer, 0, sizeof(TcpServer)); //Clear Struct - TcpServer.sin_family = AF_INET; //Internet/IP - TcpServer.sin_addr.s_addr = htonl(INADDR_ANY); //Incoming Addr - TcpServer.sin_port = htons(port); //Server Port - - //Bind the server socket - if( bind(ServerSocket, (struct sockaddr *) &TcpServer, sizeof(TcpServer)) < 0) - { - LinxDev->DebugPrintln("Failed To Bind Sever Socket"); - State = EXIT; - return -1; - } - else - { - LinxDev->DebugPrintln("Successfully Bound Sever Socket"); - } - - //Listen on the server socket - if(listen(ServerSocket, MAX_PENDING_CONS) < 0) - { - LinxDev->DebugPrintln("Failed To Start Listening On Sever Socket"); - State = EXIT; - return -1; - } - else - { - LinxDev->DebugPrintln("Successfully Started Listening On Sever Socket"); - State = LISTENING; - } - - return 0; -} - -int LinxLinuxTcpListener::Listen() -{ - LinxDev->DebugPrintln("Waiting For Client Connection\n"); - - unsigned int clientlen = sizeof(TcpClient); - - if( (ClientSocket = accept(ServerSocket, (struct sockaddr *) &TcpClient, &clientlen)) < 0) - { - ("Failed To Accept Client Connection\n"); - State = EXIT; - return -1; - } - else - { - if ( setsockopt (ClientSocket, SOL_SOCKET, SO_RCVTIMEO, (char *)&TcpTimeout, sizeof(TcpTimeout)) < 0) - { - LinxDev->DebugPrintln("Failed To Set Socket Receive Time-out\n"); - return -1; - } - else - { - TcpUpdateTime = LinxDev->GetSeconds(); - State = CONNECTED; - LinxDev->DebugPrintln(inet_ntoa(TcpClient.sin_addr)); - LinxDev->DebugPrintln("Successfully Connected\n"); - } - } - return 0; -} - -int LinxLinuxTcpListener::Connected() -{ - int received = -1; - unsigned char packetSize = 0; - errno = 0; - - //Clear SoF - recBuffer[0] = 0; - - //Watch For New Packet - received = peek(recBuffer, LinxDev->ListenerBufferSize); - - //Wait For At Least First Two Bytes Of Packet - if(received >= 2) - { - //Check SoF and Packet Size - if(recBuffer[0] == 0xFF) - { - //Valid SoF, Check Packet Size - packetSize = recBuffer[1]; - if(packetSize < received ) - { - //Partial Packet, Make Sure Packet Size Will Fit In Buffer, If It Will Loop To Wait For Remainder Of Packet - if(packetSize > LinxDev->ListenerBufferSize) - { - LinxDev->DebugPrintln("Packet Size Too Large For Buffer"); - State = EXIT; - return -1; - } - return 0; - } - else - { - //Full Packet In Receive Buffer - if( received = read(ClientSocket, recBuffer, packetSize) < 0 ) - { - //Failed To Read Packet From Buffer - LinxDev->DebugPrintln("Failed To Read Packet From Buffer"); - State = EXIT; - return -1; - } - else - { - //Check Checksum - if(ChecksumPassed(recBuffer)) - { - LinxDev->DebugPrintPacket(RX, recBuffer); - - //Process Packet Handle Any Networking Packets - int status = ProcessCommand(recBuffer, sendBuffer); - if(status == L_DISCONNECT) - { - //Host Disconnected. Listen For New Connection - LinxDev->DebugPrintln("Disconnect"); - State = LISTENING; - } - - - //Send Response Packet - LinxDev->DebugPrintPacket(TX, sendBuffer); - unsigned char bytesToSend = sendBuffer[1]; - if( send(ClientSocket, sendBuffer, bytesToSend, 0) != bytesToSend) - { - LinxDev->DebugPrintln("Failed To Send Response Packet"); - State = EXIT; - return -1; - } - return 0; - } - else - { - //Checksum Failed - LinxDev->DebugPrintln("Checksum Failed"); - recv(ClientSocket, recBuffer, LinxDev->ListenerBufferSize, MSG_DONTWAIT); - } - } - } - } - else - { - //Bad SoF, Flush Socket - LinxDev->DebugPrintln("Bad SoF"); - recv(ClientSocket, recBuffer, LinxDev->ListenerBufferSize, MSG_DONTWAIT); - printf("Got %s\n", recBuffer); - } - } -} - - -int LinxLinuxTcpListener::Exit() -{ - close(ServerSocket); - close(ClientSocket); - State = LISTENING; - - return 0; -} - -int LinxLinuxTcpListener::Close() -{ - State = LISTENING; - - return 0; -} - - -int LinxLinuxTcpListener::peek(unsigned char * recBuffer, int bufferSize) -{ - int peekReceived = -1; - errno = 0; - - if( (peekReceived = recv(ClientSocket, recBuffer, bufferSize, MSG_PEEK)) < 0) - { - //Time-out Or Error - if(errno == EWOULDBLOCK) - { - //Time-out Waiting For Data - LinxDev->DebugPrintln("Time-out Waiting For Data"); - } - else - { - State = EXIT; - return peekReceived; - } - } - else if(peekReceived == 0) - { - //Client Disconnected - LinxDev->DebugPrintln("Client Disconnected"); - State = LISTENING; - return peekReceived; - } - else - { - //Data Received - return peekReceived; - } -} - -int LinxLinuxTcpListener::CheckForCommands() -{ - switch(State) - { - case START: - LinxDev->DebugPrintln("State - Start"); - Start(LinxDev, TcpPort); - break; - case LISTENING: - LinxDev->DebugPrintln("State - Listening"); - Listen(); - break; - case CONNECTED: - //LinxDev->DebugPrintln("State - Connected"); - Connected(); - break; - case CLOSE: - LinxDev->DebugPrintln("State - Close"); - Close(); - break; - case EXIT: - LinxDev->DebugPrintln("State - Exit"); - Exit(); - exit(-1); - break; - } - return L_OK; -} - -// Pre Instantiate Object -LinxLinuxTcpListener LinxTcpConnection = LinxLinuxTcpListener(); diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/listener/LinxSerialListener.cpp b/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/listener/LinxSerialListener.cpp index 5296fc75..6418fc14 100644 --- a/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/listener/LinxSerialListener.cpp +++ b/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/listener/LinxSerialListener.cpp @@ -3,11 +3,12 @@ ** ** For more information see: www.labviewmakerhub.com/linx ** For support visit the forums at: www.labviewmakerhub.com/forums/linx -** -** Written By Sam Kristoff +** +** Written by Sam Kristoff +** Modifications by Rolf Kalbermatter ** ** BSD2 License. -****************************************************************************************/ +****************************************************************************************/ /**************************************************************************************** ** Includes @@ -16,168 +17,60 @@ #include #include -#include "utility/LinxDevice.h" - +#include "LinxDevice.h" #include "utility/LinxListener.h" #include "LinxSerialListener.h" /**************************************************************************************** ** Constructors ****************************************************************************************/ -LinxSerialListener::LinxSerialListener() -{ - State = START; - Interface = UART; -} /**************************************************************************************** -** Functions +** Public Functions ****************************************************************************************/ -int LinxSerialListener::Start(LinxDevice* linxDev, unsigned char uartChan) -{ - LinxDev = linxDev; - - recBuffer = (unsigned char*) malloc(LinxDev->ListenerBufferSize); - sendBuffer = (unsigned char*) malloc(LinxDev->ListenerBufferSize); - - LinxDev->DebugPrintln("Starting Listener...\n"); - - ListenerChan = uartChan; - unsigned long acutalBaud = 0; - ListenerChan = uartChan; - LinxDev->UartOpen(ListenerChan, 9600, &acutalBaud); - - State = CONNECTED; - return 0; -} - -int LinxSerialListener::Connected() +int32_t LinxSerialListener::Start(uint8_t uartChannel, uint32_t baudRate, + uint8_t dataBits, uint8_t stopBits, + LinxUartParity parity) { - unsigned char bytesAvailable = 0; - - //Check How Many Bytes Received, Need At Least 2 To Get SoF And Packet Size - LinxDev->UartGetBytesAvailable(ListenerChan, &bytesAvailable); - - //LinxDev->DebugPrint("Received "); - //LinxDev->DebugPrint(bytesAvailable, DEC); - //LinxDev->DebugPrintln(" bytes"); - - if(bytesAvailable >= 2) + LinxUartChannel *channelObj; + int32_t status = m_LinxDev->UartOpen(uartChannel, &channelObj); + if (!status) { - //Check for valid SoF - unsigned char bytesRead = 0; - LinxDev->UartRead(ListenerChan, 2, recBuffer, &bytesRead); - - if(recBuffer[0] == 0xFF) + status = channelObj->SetSpeed(baudRate, NULL); + if (!status) + status = channelObj->SetParameters(dataBits, stopBits, parity); + if (!status) { - //SoF is valid. Check If Entire Packet Has Been Received - LinxDev->UartGetBytesAvailable(ListenerChan, &bytesAvailable); - - if(bytesAvailable < (recBuffer[1] - 2) ) - { - //Wait For More Bytes - int timeout = 100; - while(bytesAvailable < (recBuffer[1] - 2) ) - { - LinxDev->UartGetBytesAvailable(ListenerChan, &bytesAvailable); - - if(timeout <= 0) - { - //Flush - LinxDev->UartGetBytesAvailable(ListenerChan, &bytesAvailable); - LinxDev->UartRead(ListenerChan, bytesAvailable, recBuffer, &bytesRead); - return -1; - } - LinxDev->DelayMs(1); - timeout--; - } - } - - //Full Packet Received - LinxDev->UartRead(ListenerChan, (recBuffer[1] - 2), (recBuffer+2), &bytesRead); - - //Full Packet Received - Compute Checksum - Process Packet If Checksum Passes - if(ChecksumPassed(recBuffer)) - { - LinxDev->DebugPrintPacket(RX, recBuffer); - - //Process Packet - int status = ProcessCommand(recBuffer, sendBuffer); - if(status == L_DISCONNECT) - { - State = CLOSE; - } - - //Send Response Packet - LinxDev->DebugPrintPacket(TX, sendBuffer); - LinxDev->UartWrite(ListenerChan, sendBuffer[1], sendBuffer); - } - else - { - //Flush - LinxDev->UartGetBytesAvailable(ListenerChan, &bytesAvailable); - LinxDev->UartRead(ListenerChan, bytesAvailable, recBuffer, &bytesRead); - } - } - else - { - //Flush - LinxDev->UartGetBytesAvailable(ListenerChan, &bytesAvailable); - LinxDev->UartRead(ListenerChan, bytesAvailable, recBuffer, &bytesRead); + status = Run(channelObj); } } - else + return status; +} + +int32_t LinxSerialListener::Start(const unsigned char *deviceName, uint32_t baudRate, + uint8_t dataBits, uint8_t stopBits, + LinxUartParity parity) +{ + LinxUartChannel *channelObj; + uint8_t uartChannel; + int32_t status = m_LinxDev->UartOpen(deviceName, &uartChannel, &channelObj); + if (!status) { - //No New Packet - if (periodicTasks[0] != NULL) - { - periodicTasks[0](0,0); - } - else + status = channelObj->SetSpeed(baudRate, NULL); + if (!status) + status = channelObj->SetParameters(dataBits, stopBits, parity); + if (!status) { - #if LINX_DEVICE_FAMILY==4 || LINX_DEVICE_FAMILY==6 - LinxDev->DelayMs(30); - #endif + status = Run(channelObj); } } - - return 0; + return status; } -int LinxSerialListener::Close() -{ - LinxDev->UartClose(ListenerChan); - State = START; - return 0; -} - -int LinxSerialListener::Exit() -{ - return -1; -} - -int LinxSerialListener::CheckForCommands() -{ - switch(State) - { - case START: - Start(LinxDev, ListenerChan); - break; - case CONNECTED: - //LinxDev->DebugPrintln("State - Connected"); - Connected(); - break; - case CLOSE: - LinxDev->DebugPrintln("State - Close"); - Close(); - break; - case EXIT: - LinxDev->DebugPrintln("State - Exit"); - Exit(); - break; - } - return L_OK; -} +/**************************************************************************************** +** Protected Functions +****************************************************************************************/ -// Pre Instantiate Object -LinxSerialListener LinxSerialConnection = LinxSerialListener(); +/**************************************************************************************** +** Private Functions +****************************************************************************************/ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/listener/LinxSerialListener.h b/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/listener/LinxSerialListener.h index b614ca76..6599f817 100644 --- a/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/listener/LinxSerialListener.h +++ b/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/listener/LinxSerialListener.h @@ -3,66 +3,67 @@ ** ** For more information see: www.labviewmakerhub.com/linx ** For support visit the forums at: www.labviewmakerhub.com/forums/linx -** +** ** Written By Sam Kristoff ** ** BSD2 License. -****************************************************************************************/ +****************************************************************************************/ #ifndef LINX_SERIAL_LISTENER_H #define LINX_SERIAL_LISTENER_H /**************************************************************************************** ** Defines -****************************************************************************************/ +****************************************************************************************/ /**************************************************************************************** ** Includes -****************************************************************************************/ +****************************************************************************************/ +#include "LinxDevice.h" #include "utility/LinxListener.h" -#include "utility/LinxDevice.h" /**************************************************************************************** ** Type Defs -****************************************************************************************/ +****************************************************************************************/ /**************************************************************************************** ** Classes -****************************************************************************************/ +****************************************************************************************/ class LinxSerialListener : public LinxListener { public: /**************************************************************************************** ** Variables - ****************************************************************************************/ - LinxListenerState State; - //unsigned char LinxSerialListenerChan; - + ****************************************************************************************/ + /**************************************************************************************** ** Constructors ****************************************************************************************/ - LinxSerialListener(); //Default Constructor - + LinxSerialListener(LinxDevice *device, bool autoLaunch = false) : LinxListener(device, autoLaunch){}; + /**************************************************************************************** ** Functions - ****************************************************************************************/ - virtual int Start(LinxDevice* linxDev, unsigned char uartChan); - virtual int Connected(); - virtual int Close(); - virtual int Exit(); - - virtual int CheckForCommands(); - - private: + ****************************************************************************************/ + int32_t Start(uint8_t uartChan, uint32_t baudRate = 9600, + uint8_t dataBits = 8, uint8_t stopBits = 2, + LinxUartParity parity = None); + int32_t Start(const unsigned char *deviceName, uint32_t baudRate = 9600, + uint8_t dataBits = 8, uint8_t stopBits = 2, + LinxUartParity parity = None); + protected: + /**************************************************************************************** + ** Functions + ****************************************************************************************/ + +private: /**************************************************************************************** ** Variables - ****************************************************************************************/ - + ****************************************************************************************/ + /**************************************************************************************** ** Functions ****************************************************************************************/ - }; extern LinxSerialListener LinxSerialConnection; diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/listener/LinxTcpListener.cpp b/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/listener/LinxTcpListener.cpp new file mode 100644 index 00000000..1441a65c --- /dev/null +++ b/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/listener/LinxTcpListener.cpp @@ -0,0 +1,233 @@ +/**************************************************************************************** +** LINX Linux TCP listener code. +** +** For more information see: www.labviewmakerhub.com/linx +** For support visit the forums at: www.labviewmakerhub.com/forums/linx +** +** Written by Sam Kristoff +** Modifications by Rolf Kalbermatter +** +** BSD2 License. +****************************************************************************************/ + +/**************************************************************************************** +** Includes +****************************************************************************************/ +#include "LinxDefines.h" +#include +#include +#include +#if Unix +#include +#include +#include +#include +#include +#elif Win32 +#include +#include +#endif + +#include "LinxDevice.h" +#include "utility/LinxListener.h" +#include "LinxTcpListener.h" + +/**************************************************************************************** +** Constructors +****************************************************************************************/ +LinxTcpListener::LinxTcpListener(LinxDevice* device, bool autoLaunch) : LinxListener(device, autoLaunch) +{ + m_ServerSocket = kInvalNetObject; +#if Win32 + WSADATA wsaData; + int32_t iResult = WSAStartup(MAKEWORD(2,2), &wsaData); + if (iResult != 0) + { + m_Debug->Write("WSAStartup failed: "); + m_Debug->Writeln(iResult); + } +#endif +} + +LinxTcpListener::~LinxTcpListener(void) +{ + closesocket(m_ServerSocket); +#if Win32 + int32_t iResult = WSACleanup(); +#endif +} + +/**************************************************************************************** +** Public Functions +****************************************************************************************/ +int32_t LinxTcpListener::Start(const unsigned char *interfaceAddress, uint16_t port) +{ + char servName[10]; + sprintf(servName, "%hu", port); + return Start(interfaceAddress, servName); +} + +int32_t LinxTcpListener::Start(const unsigned char *interfaceAddress, const char *servName) +{ + const char *address = (interfaceAddress && interfaceAddress[0]) ? ((const char*)interfaceAddress) : NULL; + struct addrinfo hints = {0}; + struct addrinfo *addrinfo = NULL; + int32_t retval; + + m_Debug->Write("Starting listener on TCP/IP address: "); + m_Debug->Write((char*)interfaceAddress); + m_Debug->Write(":"); + m_Debug->Writeln(servName); + + //Create the TCP socket + NetObject s = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP); + if (!IsANetObject(s)) + { + m_Debug->Writeln("Failed to create server socket"); + return LERR_MEMORY; + } + m_Debug->Writeln("Successfully created server socket"); + + hints.ai_family = AF_UNSPEC; + hints.ai_socktype = SOCK_STREAM; + hints.ai_protocol = IPPROTO_TCP; + hints.ai_flags = AI_PASSIVE; + retval = getaddrinfo(address, servName, &hints, &addrinfo); + if (retval) + { + closesocket(s); + m_Debug->Writeln("Failed to retrieve socket address"); + return LERR_MEMORY; + } + u_long nonBlocking = TRUE; + retval = ioctlsocket(s, FIONBIO, &nonBlocking); + if (retval < 0) + { + closesocket(s); + m_Debug->Writeln("Failed to make server socket non-blocking"); + return L_DISCONNECT; + } + + //Bind the server socket + struct addrinfo *next = addrinfo; + do + { + retval = bind(s, next->ai_addr, (int)next->ai_addrlen); + } while (retval < 0 && (next = addrinfo->ai_next) != NULL); + freeaddrinfo(addrinfo); + if (retval < 0) + { + closesocket(s); + m_Debug->Writeln("Failed to bind server socket"); + return L_DISCONNECT; + } + m_Debug->Writeln("Successfully bound server socket"); + + //Listen on the server socket + retval = listen(s, MAX_PENDING_CONS); + if (retval < 0) + { + closesocket(s); + m_Debug->Writeln("Failed to start listening on sever socket"); + return L_DISCONNECT; + } + ControlMutex(true); + m_ServerSocket = s; + m_Debug->Writeln("Successfully started listening on sever socket"); + ControlMutex(false); + return L_OK; +} + +int32_t LinxTcpListener::Terminate(void) +{ + ControlMutex(true); + if (IsANetObject(m_ServerSocket)) + { + closesocket(m_ServerSocket); + m_ServerSocket = kInvalNetObject; + } + ControlMutex(false); + return LinxListener::Terminate(); +} + +/**************************************************************************************** +** Protected Functions +****************************************************************************************/ +int32_t LinxTcpListener::WaitForConnection(int32_t timeout) +{ + int32_t status = LinxListener::WaitForConnection(timeout); + if (status == L_WAITING) + { + struct sockaddr_storage addr; + struct timeval timeout_val; + int32_t retval, clientlen = sizeof(addr); + NetObject clientSocket = kInvalNetObject; + LinxCommChannel *clientChannel; + + m_Debug->Writeln("Waiting For Client Connection\n"); + + ControlMutex(true); + clientSocket = accept(m_ServerSocket, (struct sockaddr *)&addr, &clientlen); + ControlMutex(false); + if (!IsANetObject(clientSocket)) + { + m_Debug->Writeln("Failed to accept client connection\n"); + return L_WAITING; + } + + retval = setsockopt(clientSocket, SOL_SOCKET, SO_RCVTIMEO, (char *)&timeout_val, sizeof(timeout_val)); + if (retval < 0) + { + m_Debug->Writeln("Failed to set socket receive time-out\n"); + closesocket(clientSocket); + return LERR_IO; + } + + unsigned char *buf; + uint16_t port; + switch (addr.ss_family) + { + case AF_INET: + { + struct sockaddr_in *addr_in = ((struct sockaddr_in *)&addr); + port = addr_in->sin_port; + buf = (unsigned char*)malloc(INET_ADDRSTRLEN + 6); + inet_ntop(AF_INET, &(addr_in->sin_addr), (char*)buf, INET_ADDRSTRLEN); + } + break; + case AF_INET6: + { + struct sockaddr_in6 *addr_in = (struct sockaddr_in6 *)&addr; + port = addr_in->sin6_port; + buf = (unsigned char*)malloc(INET6_ADDRSTRLEN + 6); + inet_ntop(AF_INET6, &(addr_in->sin6_addr), (char*)buf, INET6_ADDRSTRLEN); + } + break; + default: + m_Debug->Writeln("Invalid socket family\n"); + closesocket(clientSocket); + return LERR_IO; + } + sprintf((char*)buf + strlen((char*)buf), ":%hd", port); + +#if Unix + clientChannel = new LinxUnixCommChannel(m_Debug, buf, clientSocket); +#elif Win32 + clientChannel = new LinxWindowsCommChannel(m_Debug, buf, clientSocket); +#endif + if (clientChannel) + { + m_TcpUpdateTime = m_LinxDev->GetSeconds(); + m_Debug->Write((char*)buf); + m_Debug->Writeln(" successfully connected\n"); + status = LinxListener::Run(clientChannel, 4095); + } + free(buf); + } + return status; +} + +/**************************************************************************************** +** Private Functions +****************************************************************************************/ + diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/listener/LinxLinuxTcpListener.h b/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/listener/LinxTcpListener.h similarity index 63% rename from LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/listener/LinxLinuxTcpListener.h rename to LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/listener/LinxTcpListener.h index e1b48139..fe002f95 100644 --- a/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/listener/LinxLinuxTcpListener.h +++ b/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/listener/LinxTcpListener.h @@ -3,14 +3,14 @@ ** ** For more information see: www.labviewmakerhub.com/linx ** For support visit the forums at: www.labviewmakerhub.com/forums/linx -** +** ** Written By Sam Kristoff ** ** BSD2 License. -****************************************************************************************/ +****************************************************************************************/ -#ifndef LINX_LINUX_TCP_LISTENER_H -#define LINX_LINUX_TCP_LISTENER_H +#ifndef LINX_TCP_LISTENER_H +#define LINX_TCP_LISTENER_H #ifndef MAX_PENDING_CONS @@ -19,63 +19,53 @@ /**************************************************************************************** ** Includes -****************************************************************************************/ -#include "utility/LinxListener.h" -#include "utility/LinxDevice.h" - +****************************************************************************************/ +#include "LinxDefines.h" #include +#if Unix #include -#include -#include #include - +#endif +#include "utility\LinxListener.h" /**************************************************************************************** ** Classes -****************************************************************************************/ -class LinxLinuxTcpListener : public LinxListener +****************************************************************************************/ +class LinxTcpListener : public LinxListener { public: /**************************************************************************************** ** Variables - ****************************************************************************************/ - unsigned long TcpUpdateTime; - struct timeval TcpTimeout; - - unsigned short TcpPort; - int ServerSocket; - int ClientSocket; - - struct sockaddr_in TcpServer; - struct sockaddr_in TcpClient; - + ****************************************************************************************/ + /**************************************************************************************** - ** Constructors + ** Constructors/Destructor ****************************************************************************************/ - LinxLinuxTcpListener(); //Default Constructor - + LinxTcpListener(LinxDevice* device, bool autoLaunch = false); + virtual ~LinxTcpListener(void); + /**************************************************************************************** ** Functions - ****************************************************************************************/ - int Start(LinxDevice* linxDev, unsigned short port); - int Listen(); - int Connected(); - int Close(); - int Exit(); - - virtual int CheckForCommands(); - + ****************************************************************************************/ + virtual int32_t Start(const unsigned char *interfaceAddress, uint16_t port = 44300); + virtual int32_t Start(const unsigned char *interfaceAddress, const char *servName); + + protected: + /**************************************************************************************** + ** Functions + ****************************************************************************************/ + virtual int32_t WaitForConnection(int32_t timeout); + virtual int32_t Terminate(void); + private: /**************************************************************************************** ** Variables - ****************************************************************************************/ - + ****************************************************************************************/ + uint32_t m_TcpUpdateTime; + + NetObject m_ServerSocket; /**************************************************************************************** ** Functions ****************************************************************************************/ - int peek(unsigned char * recBuffer, int bufferSize); }; - -extern LinxLinuxTcpListener LinxTcpConnection; - -#endif //LINX_LINUX_TCP_LISTENER_H \ No newline at end of file +#endif //LINX_TCP_LISTENER_H \ No newline at end of file diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/listener/utility/LinxDevice.h b/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/listener/utility/LinxDevice.h deleted file mode 100644 index 513e619c..00000000 --- a/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/listener/utility/LinxDevice.h +++ /dev/null @@ -1,343 +0,0 @@ -/**************************************************************************************** -** LINX header for generic LINX Device. -** -** For more information see: www.labviewmakerhub.com/linx -** For support visit the forums at: www.labviewmakerhub.com/forums/linx -** -** Written By Sam Kristoff -** -** BSD2 License. -****************************************************************************************/ - -#ifndef LINX_DEVICE_H -#define LINX_DEVICE_H - -/**************************************************************************************** -** Includes -****************************************************************************************/ -//This Makes It Easy For IDE Users To Define Necessary Settings In One Place -//When Using Make Files Define LINXCONFIG To Ignore Config.h File - - -/**************************************************************************************** -** Defines -****************************************************************************************/ -//GPIO -#ifndef INPUT - #define INPUT 0x00 -#endif - -#ifndef OUTPUT - #define OUTPUT 0x01 -#endif - -#ifndef HIGH - #define HIGH 0x01 -#endif - -#ifndef LOW - #define LOW 0x00 -#endif - -//SPI -#ifndef LSBFIRST - #define LSBFIRST 0 -#endif - -#ifndef MSBFIRST - #define MSBFIRST 1 -#endif - -//I2C -#define EOF_STOP 0 -#define EOF_RESTART 1 -#define EOF_RESTART_NOSTOP 2 -#define EOF_NOSTOP 3 - -//UART -#ifndef BIN - #define BIN 2 -#endif -#ifndef OCT - #define OCT 8 -#endif -#ifndef DEC - #define DEC 10 -#endif -#ifndef HEX - #define HEX 16 -#endif - -//Non-Volatile Storage Addresses -#define NVS_USERID 0x00 -#define NVS_ETHERNET_IP 0x02 -#define NVS_ETHERNET_PORT 0x06 -#define NVS_WIFI_IP 0x08 -#define NVS_WIFI_PORT 0x0C -#define NVS_WIFI_SSID_SIZE 0x0E -#define NVS_WIFI_SSID 0x0F -#define NVS_WIFI_SECURITY_TYPE 0x30 -#define NVS_WIFI_PW_SIZE 0x31 -#define NVS_WIFI_PW 0x32 -#define NVS_SERIAL_INTERFACE_MAX_BAUD 0x72 - -//DEBUG -#define TX 0 -#define RX 1 - -/**************************************************************************************** -** Typedefs -****************************************************************************************/ -typedef enum LinxStatus -{ - L_OK = 0, - L_FUNCTION_NOT_SUPPORTED, - L_REQUEST_RESEND, - L_UNKNOWN_ERROR, - L_DISCONNECT -}LinxStatus; - -typedef enum AioStatus -{ - LANALOG_REF_MODE_ERROR=129, - LANALOG_REF_VAL_ERROR=130 -}AioStatus; - -typedef enum DioStatus -{ - LDIGITAL_PIN_DNE=128, -}DioStatus; - - -typedef enum SPIStatus -{ - LSPI_OPEN_FAIL = 128, - LSPI_TRANSFER_FAIL -}SPIStatus; - -typedef enum I2CStatus -{ - LI2C_SADDR=128, - LI2C_EOF, - LI2C_WRITE_FAIL, - LI2C_READ_FAIL, - LI2C_CLOSE_FAIL, - LI2C_OPEN_FAIL -}I2CStatus; - -typedef enum UartStatus -{ - LUART_OPEN_FAIL=128, - LUART_SET_BAUD_FAIL, - LUART_AVAILABLE_FAIL, - LUART_READ_FAIL, - LUART_WRITE_FAIL, - LUART_CLOSE_FAIL -}UartStatus; - -class LinxDevice -{ - public: - /**************************************************************************************** - ** Member Variables - ****************************************************************************************/ - - //Device ID - unsigned char DeviceFamily; - unsigned char DeviceId; - unsigned char DeviceNameLen; - const unsigned char* DeviceName; - unsigned char ListenerBufferSize; - - //LINX API Version - unsigned char LinxApiMajor; - unsigned char LinxApiMinor; - unsigned char LinxApiSubminor; - - //----Peripherals---- - - //DIO - unsigned char NumDigitalChans; - const unsigned char* DigitalChans; - - //AI - unsigned char NumAiChans; - const unsigned char* AiChans; - unsigned char AiResolution; - unsigned long AiRefDefault; - unsigned long AiRefSet; - - //AO - unsigned char NumAoChans; - const unsigned char* AoChans; - unsigned char AoResolution; - unsigned long AoRefDefault; - unsigned long AoRefSet; - - //PWM - unsigned char NumPwmChans; - const unsigned char* PwmChans; - - //QE - unsigned char NumQeChans; - const unsigned char* QeChans; - - //UART - unsigned char NumUartChans; - const unsigned char* UartChans; - unsigned long UartMaxBaud; - - //I2C - unsigned char NumI2cChans; - const unsigned char* I2cChans; - - //SPI - unsigned char NumSpiChans; - const unsigned char* SpiChans; - - //CAN - unsigned char NumCanChans; - const unsigned char* CanChans; - - //Servo - unsigned char NumServoChans; - const unsigned char* ServoChans; - - //User Configured Values - unsigned short userId; - - unsigned long ethernetIp; - unsigned short ethernetPort; - - - unsigned long WifiIp; - unsigned short WifiPort; - unsigned char WifiSsidSize; - char WifiSsid[32]; - unsigned char WifiSecurity; - unsigned char WifiPwSize; - char WifiPw[64]; - - - unsigned long serialInterfaceMaxBaud; - - /**************************************************************************************** - ** Constructors/Destructor - ****************************************************************************************/ - LinxDevice(); - virtual ~LinxDevice(); - - /**************************************************************************************** - ** Functions - ****************************************************************************************/ - - //Analog - virtual int AnalogRead(unsigned char numChans, unsigned char* channels, unsigned char* values) = 0; - virtual int AnalogReadNoPacking(unsigned char numChans, unsigned char* channels, unsigned long* values); //Values Are ADC Ticks And Not Bit Packed - virtual int AnalogSetRef(unsigned char mode, unsigned long voltage) = 0; - - //DIGITAL - virtual int DigitalWrite(unsigned char numChans, unsigned char* channels, unsigned char* values) = 0; //Values Are Bit Packed - virtual int DigitalWriteNoPacking(unsigned char numChans, unsigned char* channels, unsigned char* values); //Values Are Not Bit Packed - virtual int DigitalRead(unsigned char numChans, unsigned char* channels, unsigned char* values) = 0; - virtual int DigitalReadNoPacking(unsigned char numChans, unsigned char* channels, unsigned char* values); //Response Not Bit Packed - virtual int DigitalWriteSquareWave(unsigned char channel, unsigned long freq, unsigned long duration) = 0; - virtual int DigitalReadPulseWidth(unsigned char stimChan, unsigned char stimType, unsigned char respChan, unsigned char respType, unsigned long timeout, unsigned long* width) = 0; - - //PWM - virtual int PwmSetDutyCycle(unsigned char numChans, unsigned char* channels, unsigned char* values) = 0; - virtual int PwmSetFrequency(unsigned char numChans, unsigned char* channels, unsigned long* values); - - //SPI - virtual int SpiOpenMaster(unsigned char channel) = 0; - virtual int SpiSetBitOrder(unsigned char channel, unsigned char bitOrder) = 0; - virtual int SpiSetMode(unsigned char channel, unsigned char mode) = 0; - virtual int SpiSetSpeed(unsigned char channel, unsigned long speed, unsigned long* actualSpeed) = 0; - virtual int SpiWriteRead(unsigned char channel, unsigned char frameSize, unsigned char numFrames, unsigned char csChan, unsigned char csLL, unsigned char* sendBuffer, unsigned char* recBuffer) = 0; - - //I2C - virtual int I2cOpenMaster(unsigned char channel) = 0; - virtual int I2cSetSpeed(unsigned char channel, unsigned long speed, unsigned long* actualSpeed) = 0; - virtual int I2cWrite(unsigned char channel, unsigned char slaveAddress, unsigned char eofConfig, unsigned char numBytes, unsigned char* sendBuffer) = 0; - virtual int I2cRead(unsigned char channel, unsigned char slaveAddress, unsigned char eofConfig, unsigned char numBytes, unsigned int timeout, unsigned char* recBuffer) = 0; - virtual int I2cClose(unsigned char channel) = 0; - - //UART - virtual int UartOpen(unsigned char channel, unsigned long baudRate, unsigned long* actualBaud) = 0; - virtual int UartSetBaudRate(unsigned char channel, unsigned long baudRate, unsigned long* actualBaud) = 0; - virtual int UartGetBytesAvailable(unsigned char channel, unsigned char *numBytes) = 0; - virtual int UartRead(unsigned char channel, unsigned char numBytes, unsigned char* recBuffer, unsigned char* numBytesRead) = 0; - virtual int UartWrite(unsigned char channel, unsigned char numBytes, unsigned char* sendBuffer) = 0; - virtual void UartWrite(unsigned char channel, char c); - virtual void UartWrite(unsigned char channel, const char s[]); - virtual void UartWrite(unsigned char channel, unsigned char c); - virtual void UartWrite(unsigned char channel, int n); - virtual void UartWrite(unsigned char channel, unsigned int n); - virtual void UartWrite(unsigned char channel, long n); - virtual void UartWrite(unsigned char channel, unsigned long n); - virtual void UartWrite(unsigned char channel, long n, int base); - virtual void UartWriteln(unsigned char channel); - virtual void UartWriteln(unsigned char channel, char c); - virtual void UartWriteln(unsigned char channel, const char s[]); - virtual void UartWriteln(unsigned char channel, unsigned char c); - virtual void UartWriteln(unsigned char channel, int n); - virtual void UartWriteln(unsigned char channel, long n); - virtual void UartWriteln(unsigned char channel, unsigned long n); - virtual void UartWriteln(unsigned char channel, long n, int base); - virtual int UartClose(unsigned char channel) = 0; - - //Servo - virtual int ServoOpen(unsigned char numChans, unsigned char* channels) = 0; - virtual int ServoSetPulseWidth(unsigned char numChans, unsigned char* channels, unsigned short* pulseWidths) = 0; - virtual int ServoClose(unsigned char numChans, unsigned char* channels) = 0; - - //WS2812 - virtual int Ws2812Open(unsigned short numLeds, unsigned char dataChan); - virtual int Ws2812WriteOnePixel(unsigned short pixelIndex, unsigned char red, unsigned char green, unsigned char blue, unsigned char refresh); - virtual int Ws2812WriteNPixels(unsigned short startPixel, unsigned short numPixels, unsigned char* data, unsigned char refresh); - virtual int Ws2812Refresh(); - virtual int Ws2812Close(); - - //General - unsigned char ReverseBits(unsigned char b); - virtual unsigned long GetMilliSeconds() = 0; - virtual unsigned long GetSeconds() = 0; - virtual void DelayMs(unsigned long ms); - virtual void NonVolatileWrite(int address, unsigned char data) = 0; - virtual unsigned char NonVolatileRead(int address) = 0; - - //Debug - virtual void EnableDebug(unsigned char channel); - - virtual void DebugPrint(char c); - virtual void DebugPrint(const char s[]); - virtual void DebugPrint(unsigned char c); - virtual void DebugPrint(int n); - virtual void DebugPrint(unsigned int n); - virtual void DebugPrint(long n); - virtual void DebugPrint(unsigned long n); - virtual void DebugPrint(long n, int base); - - virtual void DebugPrintln(); - virtual void DebugPrintln(char c); - virtual void DebugPrintln(const char s[]); - virtual void DebugPrintln(unsigned char c); - virtual void DebugPrintln(int n); - virtual void DebugPrintln(long n); - virtual void DebugPrintln(unsigned long n); - virtual void DebugPrintln(long n, int base); - - - virtual void DebugPrintPacket(unsigned char direction, const unsigned char* packetBuffer); - - private: - /**************************************************************************************** - ** Variables - ****************************************************************************************/ - virtual void UartWriteNumber(unsigned char channel, unsigned long n, unsigned char bases); - - /**************************************************************************************** - ** Functions - ****************************************************************************************/ -}; -#endif //LINX_DEVICE_H diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/listener/utility/LinxListener.cpp b/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/listener/utility/LinxListener.cpp index e5ca4879..8aa98a82 100644 --- a/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/listener/utility/LinxListener.cpp +++ b/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/core/listener/utility/LinxListener.cpp @@ -3,772 +3,1591 @@ ** ** For more information see: www.labviewmakerhub.com/linx ** For support visit the forums at: www.labviewmakerhub.com/forums/linx -** -** Written By Sam Kristoff +** +** Written by Sam Kristoff +** Modifications by Rolf Kalbermatter ** ** BSD2 License. -****************************************************************************************/ -#ifndef LINXLISTENER_H -#define LINXLISTENER_H +****************************************************************************************/ /**************************************************************************************** ** Includes ****************************************************************************************/ #include -#include "LinxListener.h" +#include +#include "LinxCommand.h" +#include "LinxUtilities.h" #include "LinxDevice.h" +#include "LinxListener.h" /**************************************************************************************** -** Constructors +** Defines ****************************************************************************************/ -LinxListener::LinxListener() -{ - State = START; -} +#define CUSTOM_CMD_PREFIX 0xFC00 /**************************************************************************************** -** Functions +** Constructors/Destructors ****************************************************************************************/ +LinxListener::LinxListener(LinxDevice *device, bool autoLaunch) : LinxBase() +{ + unsigned char buffer[255]; + + m_Channel = NULL; + m_PeriodicTask = NULL; + for (int32_t i = 0; i < MAX_CUSTOM_CMDS; i++) + { + m_CustomCommands[i] = NULL; + } + m_ListenerBufferSize = 0; + m_DataBuffer = NULL; + m_ProtocolVersion = 0; + + m_LaunchThread = autoLaunch; + m_Thread = 0; + + m_LinxDev = device; + m_LinxDev->AddRef(); + + m_LinxDev->GetDeviceName(buffer, 255); + m_Debug = m_LinxDev->GetDebug(); + m_Debug->Write("Initializing Listener on "); + m_Debug->Writeln((char *)buffer); +#if Win32 + InitializeCriticalSection(&m_Mutex); +#elif Linux + m_Mutex = PTHREAD_MUTEX_INITIALIZER; +#else +#else +#endif +} -int LinxListener::Start() +LinxListener::~LinxListener(void) { - return -1; + Terminate(); + ControlMutex(true); + free(m_DataBuffer); + ControlMutex(false); +#if Win32 + DeleteCriticalSection(&m_Mutex); +#elif Linux +#else +#endif } -int LinxListener::Listen() -{ - return -1; +#if Win32 +static DWORD WINAPI ThreadFunction(LPVOID lpParam) +{ + ((LinxListener *)lpParam)->ProcessLoop(TIMEOUT_INFINITE); + return 0; +} +#elif Linux +static void *ThreadFunction(void *lpParam) +{ + ((LinxListener *)lpParam)->ProcessLoop(TIMEOUT_INFINITE); + pthread_exit(NULL); + return NULL; } +#else +#endif -int LinxListener::Available() +/**************************************************************************************** +** Public Functions +****************************************************************************************/ +int32_t LinxListener::AttachCustomCommand(uint16_t commandNumber, CustomCommand callback) { - return -1; + if (commandNumber < MAX_CUSTOM_CMDS) + { + ControlMutex(true); + m_CustomCommands[commandNumber] = callback; + ControlMutex(false); + return L_OK; + } + return LERR_BADPARAM; } -int LinxListener::Accept() +int32_t LinxListener::AttachPeriodicTask(PeriodicTask task) { - return -1; + ControlMutex(true); + m_PeriodicTask = task; + ControlMutex(false); + return L_OK; } -int LinxListener::Connected() + +int32_t LinxListener::ProcessLoop(int32_t timeout) { - return -1; + int32_t status = L_OK; + do + { + if (status == L_WAITING) + { + delayMs(50); + } + status = WaitForConnection(timeout); + if (!status) + { + status = CheckForCommand(timeout); + } + } while (timeout < 0 && status <= 0); + return status; } -int LinxListener::Close() +/**************************************************************************************** +** Protected Functions +****************************************************************************************/ +// Start Listener with the device to relay commands to +int32_t LinxListener::Run(LinxCommChannel *channel, int32_t bufferSize) { - return -1; + int32_t status = L_OK; + ControlMutex(true); + if (m_ListenerBufferSize != bufferSize) + { + m_ListenerBufferSize = bufferSize; + m_DataBuffer = (uint8_t *)realloc(m_DataBuffer, bufferSize); + } + if (m_Channel) + m_Channel->Release(); + if (channel) + channel->AddRef(); + m_Channel = channel; + if (m_LaunchThread) + { +#if Win32 + DWORD dwThreadID = 0; + m_Thread = CreateThread(NULL, 0, ThreadFunction, this, 0, &dwThreadID); + if (!m_Thread) + { + status = LERR_MEMORY; + } +#elif Linux + int err = pthread_create(&m_Thread, NULL, ThreadFunction, this); + if (err) + { + m_Thread = 0; + status = LERR_MEMORY; + } +#else +#endif + } + ControlMutex(false); + return status; } -int LinxListener::Exit() +int32_t LinxListener::WaitForConnection(int32_t timeout) { - return -1; + return m_Channel ? L_OK : L_WAITING; } -int LinxListener::CheckForCommands() +int32_t LinxListener::CloseChannel(void) { - switch(State) + ControlMutex(true); + if (m_Channel) { - case START: - Start(); - break; - case CONNECTED: - Connected(); - break; - case CLOSE: - Close(); - break; - case EXIT: - Exit(); - break; - default: - return LUNKNOWN_STATE; - break; + m_Channel->Close(); + m_Channel->Release(); + m_Channel = NULL; } + ControlMutex(false); return L_OK; } -unsigned char LinxListener::ComputeChecksum(unsigned char* packetBuffer) -{ - unsigned char checksum = 0; - - //Sum All Bytes In The Packet Except The Last (Checksum Byte) - for(int i=0; i<(packetBuffer[1] - 1); i++) - { - checksum += packetBuffer[i]; - } - return checksum; +int32_t LinxListener::Terminate(void) +{ + if (m_Thread) + { +#if Win32 + DWORD dwStatus = WaitForSingleObject(m_Thread, 2000); + ControlMutex(true); + if (dwStatus == WAIT_TIMEOUT) + { + TerminateThread(m_Thread, 1); + } + CloseHandle(m_Thread); + ControlMutex(false); +#elif Linux + //status = pthread_cancel(m_Thread); + // Waiting for the created thread to terminate + int status = pthread_join(ptid, NULL); +#else + +#endif + } + return CloseChannel(); } +int32_t LinxListener::ControlMutex(bool lock) +{ +#if Win32 + if (lock) + EnterCriticalSection(&m_Mutex); + else + LeaveCriticalSection(&m_Mutex); +#elif Linux + if (lock) + pthread_mutex_lock(&m_Mutex); + else + pthread_mutex_unlock(&m_Mutex); +#endif + return L_OK; +} -bool LinxListener::ChecksumPassed(unsigned char* packetBuffer) +/**************************************************************************************** +** Private Functions +****************************************************************************************/ +// wire protocol +// offset value +// 0 0xFF start of frame +// 1 len length of entire package including header +// 2 Hi(packetNum) +// 3 Lo(packetNum) +// 4 Hi(command) +// 5 Lo(command) +// 6 len - 7 bytes data +// n - 1 checksum + +// offset value +// 0 0xFF start of frame +// 1 len length of entire package including header +// 2 Hi(packetNum) +// 3 Lo(packetNum) +// 4 status +// 5 len - 6 bytes data +// n - 1 checksum + +// wire protocol +// offset value +// 0 0xFE start of frame +// 1 len2 +// 2 len1 length of entire package including header +// 3 len0 +// 4 Hi(packetNum) +// 5 Lo(packetNum) +// 6 Hi(command) +// 7 Lo(command) +// 8 len - 9 bytes data +// n - 1 checksum + +// offset value +// 0 0xFE start of frame +// 1 len2 +// 2 len1 length of entire package including header +// 3 len0 +// 4 Hi(packetNum) +// 5 Lo(packetNum) +// 6 status +// 7 len - 8 bytes data +// n - 1 checksum + +int32_t LinxListener::CheckForCommand(int32_t timeout) { - return (ComputeChecksum(packetBuffer) == packetBuffer[packetBuffer[1]-1]); + int32_t status = L_WAITING; + if (m_Channel) + { + uint32_t start = getMsTicks(), dataRead = 0; + + // Try to read first 4 bytes + status = ReadChannel(m_DataBuffer, 4, start, timeout, &dataRead); + if (!status) + { + int32_t offset, msgLength, length = dataRead; + // Decode length in package + if (m_DataBuffer[0] == 0xFF && dataRead >= 2) + { + msgLength = m_DataBuffer[1]; + offset = 4; + } + else if (m_DataBuffer[0] == 0xFE && dataRead >= 4) + { + msgLength = GetU32FromBuff(m_DataBuffer, 0) & 0xFFFFFF; + offset = 6; + } + else + { + // invalid data frame, flush buffer and return + ReadChannel(m_DataBuffer, m_ListenerBufferSize, start, 0, NULL); + return LERR_INVALID_FRAME; + } + + // if expected msgLength is greater than the data already received then read the remainder + while (msgLength > length) + { + status = ReadChannel(m_DataBuffer + dataRead, msgLength - dataRead, start, timeout, &dataRead); + if (status) + return status; + + length += dataRead; + } + + if (ComputeChecksum(0, m_DataBuffer, length - 1) != m_DataBuffer[length - 1]) + { + return LERR_CHECKSUM; + } + status = ProcessCommand(m_DataBuffer, offset, length - offset, m_ListenerBufferSize, start, timeout); + if (m_PeriodicTask) + status = m_PeriodicTask(m_DataBuffer, m_DataBuffer); + } + else if (status == L_DISCONNECT) + { + CloseChannel(); + } + } + return status; } +int32_t LinxListener::ReadChannel(uint8_t* buffer, uint32_t numBytes, uint32_t start, int32_t timeout, uint32_t* numBytesRead) +{ + int32_t status = L_WAITING; + ControlMutex(true); + if (m_Channel) + status = m_Channel->Read(buffer, numBytes, start, timeout, numBytesRead); + ControlMutex(false); + return status; +} -void LinxListener::StatusResponse(unsigned char* commandPacketBuffer, unsigned char* responsePacketBuffer, int status) +int32_t LinxListener::PacketizeAndSend(uint8_t* packetBuffer, uint32_t dataSize, int32_t status, uint32_t start, int32_t timeout) { - PacketizeAndSend(commandPacketBuffer, responsePacketBuffer, 0, status); + int32_t offset = 0; + + // Fill in packet size + if (packetBuffer[0] == 0xFE) + { + offset = WriteU32ToBuff(packetBuffer, 0, dataSize + 8); + packetBuffer[0] = 0xFE; + } + else if (packetBuffer[0] == 0xFF) + { + offset = WriteU8ToBuff(packetBuffer, 1, dataSize + 6); + } + + // Skip packet number + offset += 2; + + // Make Sure Status Is Valid + if (status >= 0 && status <= 255) + { + packetBuffer[offset++] = (unsigned char)status; //Status + } + else + { + packetBuffer[offset++] = L_UNKNOWN_ERROR; //Status + } + + // Compute and append checksum + packetBuffer[offset + dataSize] = ComputeChecksum(0, packetBuffer, offset + dataSize); + + // Send it off + return m_Channel->Write(packetBuffer, offset + dataSize + 1, start, timeout); } +int32_t LinxListener::EnumerateChannels(int32_t type, uint8_t protVersion, uint8_t *packetBuffer, uint32_t offset, uint32_t length) +{ + // Command parameters + // None + // Response parameters + // uint8[] : array of UART channel identifiers + // or when protVersion >= 1 + // Response parameters + // uint8 : numChans + // uint8[] : array of num Chans UART channel identifiers + // uint8[] : numChans of Pascal strings -int LinxListener::ProcessCommand(unsigned char* commandPacketBuffer, unsigned char* responsePacketBuffer) + if (protVersion) + { + packetBuffer[offset - 1] = m_LinxDev->EnumerateChannels(type, packetBuffer + offset, length - offset, &length); + length++; + } + else + { + offset--; + length = m_LinxDev->EnumerateChannels(type, packetBuffer + offset, length - offset, NULL); + } + return length; +} + +int32_t LinxListener::ProcessCommand(uint8_t* packetBuffer, uint32_t offset, uint32_t dataLength, uint32_t bufferLength, uint32_t start, int32_t timeout) { //Store Some Local Values For Convenience - unsigned int command = commandPacketBuffer[4] << 8 | commandPacketBuffer[5]; - - int status = L_OK; + int32_t status = LERR_BADPARAM; + uint16_t command; - /**************************************************************************************** - ** User Commands - ****************************************************************************************/ - if(command >= 0xFC00) + offset = ReadU16FromBuff(packetBuffer, offset, &command); + + if ((command & LCMD_EXTENDED_FLAG) == CUSTOM_CMD_PREFIX) { - unsigned char numResponseBytes = 0; - status = customCommands[command - 0xFC00](commandPacketBuffer[1]-7, commandPacketBuffer+6, &numResponseBytes, responsePacketBuffer+5); - PacketizeAndSend(commandPacketBuffer, responsePacketBuffer, numResponseBytes, status); + command &= ~LCMD_EXTENDED_FLAG; + + /**************************************************************************************** + ** User Commands + ****************************************************************************************/ + if (((command) < MAX_CUSTOM_CMDS) && (m_CustomCommands[command])) + { + bufferLength -= offset + 1; + status = m_CustomCommands[command](packetBuffer + offset, dataLength, packetBuffer + offset - 1, &bufferLength); + dataLength = bufferLength; + } + else + { + dataLength = 0; + } } - else + else { //Standard Commands - switch(command) + switch (command) { - /************************************************************************************ * SYSTEM COMMANDS ************************************************************************************/ - case 0x0000: // Sync Packet - StatusResponse(commandPacketBuffer, responsePacketBuffer, L_OK); + case LCMD_SYNC: // Sync Packet + // Command parameters + // None + // or + // uint8 : Protocol Version + // Response parameters + // None + // or + // uint8 : Protocol Version + if (dataLength) + { + m_ProtocolVersion = Min(packetBuffer[offset], PROTOCOL_VERSION); + packetBuffer[offset - 1] = m_ProtocolVersion; + } + else + { + m_ProtocolVersion = 0; + } + status = L_OK; break; - + //case 0x0001: //TODO Flush Linx Connection Buffer //case 0x0002: //TODO Reset - - case 0x0003: // Get Device ID - responsePacketBuffer[5] = LinxDev->DeviceFamily; - responsePacketBuffer[6] = LinxDev->DeviceId; - PacketizeAndSend(commandPacketBuffer, responsePacketBuffer, 2, L_OK); - break; - - case 0x0004: //Get LINX API Version - responsePacketBuffer[5] = LinxDev->LinxApiMajor; - responsePacketBuffer[6] = LinxDev->LinxApiMinor; - responsePacketBuffer[7] = LinxDev->LinxApiSubminor; - PacketizeAndSend(commandPacketBuffer, responsePacketBuffer, 3, L_OK); - break; - - case 0x0005: //Get UART Max Baud - responsePacketBuffer[5] = (LinxDev->UartMaxBaud>>24) & 0xFF; - responsePacketBuffer[6] = (LinxDev->UartMaxBaud>>16) & 0xFF; - responsePacketBuffer[7] = (LinxDev->UartMaxBaud>>8) & 0xFF; - responsePacketBuffer[8] = LinxDev->UartMaxBaud & 0xFF; - PacketizeAndSend(commandPacketBuffer, responsePacketBuffer, 4, L_OK); + + case LCMD_GET_DEV_ID: // Get Device ID + // Command parameters + // None + // Response parameters + // uint8 : device family + // uint8 : device id + if (bufferLength >= offset + 1) + { + offset = WriteU8ToBuff(packetBuffer, offset - 1, m_LinxDev->DeviceFamily); + offset = WriteU8ToBuff(packetBuffer, offset, m_LinxDev->DeviceId); + status = L_OK; + dataLength = 2; + break; + } + dataLength = 0; break; - - case 0x0006: //Set UART Listener Interface Max Baud - { - unsigned long targetBaud = (unsigned long)((unsigned long)(commandPacketBuffer[6] << 24) | (unsigned long)(commandPacketBuffer[7] << 16) | (unsigned long)(commandPacketBuffer[8] << 8) | (unsigned long)commandPacketBuffer[9]); - unsigned long actualBaud = 0; - status = LinxDev->UartSetBaudRate(ListenerChan, targetBaud, &actualBaud); - LinxDev->DelayMs(1000); - StatusResponse(commandPacketBuffer, responsePacketBuffer, status); - break; - } - - //case 0x0007: //TODO Get Max Packet Size - - case 0x0008: // Get DIO Channels - DataBufferResponse(commandPacketBuffer, responsePacketBuffer, LinxDev->DigitalChans, LinxDev->NumDigitalChans, L_OK); + + case LCMD_GET_API_VER: //Get LINX API Version + // Command parameters + // None + // Response parameters + // uint8 : api major version + // uint8 : api minor version + // uint8 : api subminor version + if (bufferLength >= offset + 2) + { + offset = WriteU8ToBuff(packetBuffer, offset - 1, m_LinxDev->LinxApiMajor); + offset = WriteU8ToBuff(packetBuffer, offset, m_LinxDev->LinxApiMinor); + offset = WriteU8ToBuff(packetBuffer, offset, m_LinxDev->LinxApiSubminor); + status = L_OK; + dataLength = 3; + break; + } + dataLength = 0; break; - - case 0x0009: // Get AI Channels - DataBufferResponse(commandPacketBuffer, responsePacketBuffer, LinxDev->AiChans, LinxDev->NumAiChans, L_OK); - break; - - case 0x000A: // Get AO Channels - DataBufferResponse(commandPacketBuffer, responsePacketBuffer, LinxDev->AoChans, LinxDev->NumAoChans, L_OK); - break; - - case 0x000B: // Get PWM Channels - DataBufferResponse(commandPacketBuffer, responsePacketBuffer, LinxDev->PwmChans, LinxDev->NumPwmChans, L_OK); - break; - - case 0x000C: // Get QE Channels - DataBufferResponse(commandPacketBuffer, responsePacketBuffer, LinxDev->QeChans, LinxDev->NumQeChans, L_OK); - break; - - case 0x000D: // Get UART Channels - DataBufferResponse(commandPacketBuffer, responsePacketBuffer, LinxDev->UartChans, LinxDev->NumUartChans, L_OK); - break; - - case 0x000E: // Get I2C Channels - DataBufferResponse(commandPacketBuffer, responsePacketBuffer, LinxDev->I2cChans, LinxDev->NumI2cChans, L_OK); - break; - - case 0x000F: // Get SPI Channels - DataBufferResponse(commandPacketBuffer, responsePacketBuffer, LinxDev->SpiChans, LinxDev->NumSpiChans, L_OK); - break; - - case 0x0010: // Get CAN Channels - DataBufferResponse(commandPacketBuffer, responsePacketBuffer, LinxDev->CanChans, LinxDev->NumCanChans, L_OK); - break; - - case 0x0011: // Disconnect - LinxDev->DebugPrintln("Close Command"); + + case LCMD_GET_UART_MAX_BAUD: //Get UART Listener Interface Max Baud + // Command parameters + // None + // Response parameters + // uint32 : max uart baudrate + if (bufferLength >= offset + 3) + { + WriteU32ToBuff(packetBuffer, offset - 1, m_LinxDev->UartMaxBaud); + status = L_OK; + dataLength = 4; + break; + } + dataLength = 0; + break; + + // case LCMD_SET_UART_MAX_BAUD: //Set UART Listener Interface Max Baud + // Command parameters + // uint32 : max uart baudrate + // Response parameters + // uint32 : actual used uart baudrate + + // case LCMD_GET_MAX_PACK_SIZE: // Get Max Packet Size + // Command parameters + // None + // Response parameters + // uint32 : listenere buffer size + + case LCMD_GET_DIO_CHANS: // Get DIO Channels + // Command parameters + // None + // Response parameters + // uint8[] : array of digital channel identifiers + dataLength = EnumerateChannels(IID_LinxDioChannel, m_ProtocolVersion, packetBuffer, offset, bufferLength); + status = L_OK; + break; + + case LCMD_GET_AI_CHANS: // Get AI Channels + // Command parameters + // None + // Response parameters + // uint8[] : array of analog input channel identifiers + dataLength = EnumerateChannels(IID_LinxAiChannel, m_ProtocolVersion, packetBuffer, offset, bufferLength); + status = L_OK; + break; + + case LCMD_GET_AO_CHANS: // Get AO Channels + // Command parameters + // None + // Response parameters + // uint8[] : array of analog output channel identifiers + dataLength = EnumerateChannels(IID_LinxAoChannel, m_ProtocolVersion, packetBuffer, offset, bufferLength); + status = L_OK; + break; + + case LCMD_GET_PWM_CHANS: // Get PWM Channels + // Command parameters + // None + // Response parameters + // uint8[] : array of pwm channel identifiers + dataLength = EnumerateChannels(IID_LinxPwmChannel, m_ProtocolVersion, packetBuffer, offset, bufferLength); + status = L_OK; + break; + + case LCMD_GET_QE_CHANS: // Get QE Channels + // Command parameters + // None + // Response parameters + // uint8[] : array of quadrature encoder channel identifiers + dataLength = EnumerateChannels(IID_LinxPwmChannel, m_ProtocolVersion, packetBuffer, offset, bufferLength); + status = L_OK; + break; + + case LCMD_GET_UART_CHANS: // Get UART Channels + // Command parameters + // None + // Response parameters + // uint8[] : array of UART channel identifiers + // or + // Response parameters + // uint8 : numChans + // uint8[] : array of num Chans UART channel identifiers + // uint8[] : numChans of Pascal strings + dataLength = EnumerateChannels(IID_LinxUartChannel, m_ProtocolVersion, packetBuffer, offset, bufferLength); + status = L_OK; + break; + + case LCMD_GET_I2C_CHANS: // Get I2C Channels + // Command parameters + // None + // Response parameters + // uint8[] : array of I2C channel identifiers + dataLength = EnumerateChannels(IID_LinxI2cChannel, m_ProtocolVersion, packetBuffer, offset, bufferLength); + status = L_OK; + break; + + case LCMD_GET_SPI_CHANS: // Get SPI Channels + // Command parameters + // None + // Response parameters + // uint8[] : array of SPI channel identifiers + dataLength = EnumerateChannels(IID_LinxSpiChannel, m_ProtocolVersion, packetBuffer, offset, bufferLength); + status = L_OK; + break; + + case LCMD_GET_CAN_CHANS: // Get CAN Channels + // Command parameters + // None + // Response parameters + // uint8[] : array of CAN channel identifiers + dataLength = EnumerateChannels(IID_LinxCanChannel, m_ProtocolVersion, packetBuffer, offset, bufferLength); + status = L_OK; + break; + + case LCMD_DISCONNECT: // Disconnect + // Command parameters + // None + // Response parameters + // None + m_Debug->Writeln("Remote Close Command"); status = L_DISCONNECT; - StatusResponse(commandPacketBuffer, responsePacketBuffer, L_OK); + dataLength = 0; + break; + + case LCMD_SET_DEVICE_USER_ID: //Set Device User Id + // Command parameters + // uint16 : device user id + // Response parameters + // None + if (dataLength >= 2) + { + m_LinxDev->userId = GetU16FromBuff(packetBuffer, offset); + m_LinxDev->NonVolatileWrite(NVS_USERID, packetBuffer[offset]); + m_LinxDev->NonVolatileWrite(NVS_USERID + 1, packetBuffer[offset + 1]); + status = L_OK; + } + dataLength = 0; break; - - case 0x0012: //Set Device User Id - LinxDev->userId = commandPacketBuffer[6] << 8 | commandPacketBuffer[7]; - LinxDev->NonVolatileWrite(NVS_USERID, commandPacketBuffer[6]); - LinxDev->NonVolatileWrite(NVS_USERID+1, commandPacketBuffer[7]); - StatusResponse(commandPacketBuffer, responsePacketBuffer, L_OK); + + case LCMD_GET_DEVICE_USER_ID: //Get Device User Id + // Command parameters + // None + // Response parameters + // uint16 : device user id + if (bufferLength >= offset + 1) + { + WriteU16ToBuff(packetBuffer, offset - 1, m_LinxDev->userId); + status = L_OK; + dataLength = 2; + break; + } + dataLength = 0; break; - - case 0x0013: //Get Device User Id - responsePacketBuffer[5] = (LinxDev->userId >> 8) & 0xFF; - responsePacketBuffer[6] = LinxDev->userId & 0xFF; - PacketizeAndSend(commandPacketBuffer, responsePacketBuffer, 2, L_OK); + + + case LCMD_SET_ETH_ADDR: //Set Device Ethernet IP + // Command parameters + // uint32 : ethernet IP + // Response parameters + // None + if (dataLength >= 4) + { + m_LinxDev->ethernetIp = GetU32FromBuff(packetBuffer, offset); + m_LinxDev->NonVolatileWrite(NVS_ETHERNET_IP + 0, packetBuffer[offset++]); + m_LinxDev->NonVolatileWrite(NVS_ETHERNET_IP + 1, packetBuffer[offset++]); + m_LinxDev->NonVolatileWrite(NVS_ETHERNET_IP + 2, packetBuffer[offset++]); + m_LinxDev->NonVolatileWrite(NVS_ETHERNET_IP + 3, packetBuffer[offset++]); + status = L_OK; + } + dataLength = 0; break; - - - case 0x0014: //Set Device Ethernet IP - LinxDev->ethernetIp = (commandPacketBuffer[6]<<24) | (commandPacketBuffer[7]<<16) | (commandPacketBuffer[8]<<8) | (commandPacketBuffer[9]); - LinxDev->NonVolatileWrite(NVS_ETHERNET_IP, commandPacketBuffer[6]); - LinxDev->NonVolatileWrite(NVS_ETHERNET_IP+1, commandPacketBuffer[7]); - LinxDev->NonVolatileWrite(NVS_ETHERNET_IP+2, commandPacketBuffer[8]); - LinxDev->NonVolatileWrite(NVS_ETHERNET_IP+3, commandPacketBuffer[9]); - StatusResponse(commandPacketBuffer, responsePacketBuffer, L_OK); - break; - - case 0x0015: //Get Device Ethernet IP - responsePacketBuffer[5] = ((LinxDev->ethernetIp>>24) & 0xFF); //Ethernet IP MSB - responsePacketBuffer[6] = ((LinxDev->ethernetIp>>16) & 0xFF); //Ethernet IP ... - responsePacketBuffer[7] = ((LinxDev->ethernetIp>>8) & 0xFF); //Ethernet IP ... - responsePacketBuffer[8] = ((LinxDev->ethernetIp) & 0xFF); //Ethernet IP LSB - PacketizeAndSend(commandPacketBuffer, responsePacketBuffer, 4, L_OK); - break; - - case 0x0016: //Set Device Ethernet Port - LinxDev->ethernetPort = ((commandPacketBuffer[6]<<8) | (commandPacketBuffer[7])); - LinxDev->NonVolatileWrite(NVS_ETHERNET_PORT, commandPacketBuffer[6]); - LinxDev->NonVolatileWrite(NVS_ETHERNET_PORT+1, commandPacketBuffer[7]); - StatusResponse(commandPacketBuffer, responsePacketBuffer, L_OK); - break; - - case 0x0017: //Get Device Ethernet Port - responsePacketBuffer[5] = ((LinxDev->ethernetPort>>8) & 0xFF); //Ethernet PORT MSB - responsePacketBuffer[6] = (LinxDev->ethernetPort & 0xFF); //Ethernet PORT LSB - PacketizeAndSend(commandPacketBuffer, responsePacketBuffer, 2, L_OK); + + case LCMD_GET_ETH_ADDR: //Get Device Ethernet IP + // Command parameters + // None + // Response parameters + // uint32 : ethernet IP + if (bufferLength >= offset + 3) + { + WriteU32ToBuff(packetBuffer, offset - 1, m_LinxDev->ethernetIp); + status = L_OK; + dataLength = 4; + break; + } + dataLength = 0; break; - - case 0x0018: //Set Device WIFI IP - LinxDev->WifiIp = (commandPacketBuffer[6]<<24) | (commandPacketBuffer[7]<<16) | (commandPacketBuffer[8]<<8) | (commandPacketBuffer[9]); - LinxDev->NonVolatileWrite(NVS_WIFI_IP, commandPacketBuffer[6]); - LinxDev->NonVolatileWrite(NVS_WIFI_IP+1, commandPacketBuffer[7]); - LinxDev->NonVolatileWrite(NVS_WIFI_IP+2, commandPacketBuffer[8]); - LinxDev->NonVolatileWrite(NVS_WIFI_IP+3, commandPacketBuffer[9]); - StatusResponse(commandPacketBuffer, responsePacketBuffer, L_OK); - break; - - case 0x0019: //Get Device WIFI IP - responsePacketBuffer[5] = ((LinxDev->WifiIp>>24) & 0xFF); //WIFI IP MSB - responsePacketBuffer[6] = ((LinxDev->WifiIp>>16) & 0xFF); //WIFI IP ... - responsePacketBuffer[7] = ((LinxDev->WifiIp>>8) & 0xFF); //WIFI IP ... - responsePacketBuffer[8] = ((LinxDev->WifiIp) & 0xFF); //WIFI IP LSB - PacketizeAndSend(commandPacketBuffer, responsePacketBuffer, 4, L_OK); - break; - - case 0x001A: //Set Device WIFI Port - LinxDev->WifiPort = ((commandPacketBuffer[6]<<8) | (commandPacketBuffer[7])); - LinxDev->NonVolatileWrite(NVS_WIFI_PORT, commandPacketBuffer[6]); - LinxDev->NonVolatileWrite(NVS_WIFI_PORT+1, commandPacketBuffer[7]); - StatusResponse(commandPacketBuffer, responsePacketBuffer, L_OK); - break; - - case 0x001B: //Get Device WIFI Port - responsePacketBuffer[5] = ((LinxDev->WifiPort>>8) & 0xFF); //WIFI PORT MSB - responsePacketBuffer[6] = (LinxDev->WifiPort & 0xFF); //WIFI PORT LSB - PacketizeAndSend(commandPacketBuffer, responsePacketBuffer, 2, L_OK); - break; - - case 0x001C: //Set Device WIFI SSID - //Update Ssid Size In RAM And NVS - if(commandPacketBuffer[6] > 32) - { - LinxDev->WifiSsidSize = 32; - LinxDev->NonVolatileWrite(NVS_WIFI_SSID_SIZE, 32); + + case LCMD_SET_ETH_PORT: //Set Device Ethernet Port + // Command parameters + // uint16 : ethernet port + // Response parameters + // None + if (dataLength >= 2) + { + m_LinxDev->ethernetPort = GetU16FromBuff(packetBuffer, offset); + m_LinxDev->NonVolatileWrite(NVS_ETHERNET_PORT + 0, packetBuffer[offset++]); + m_LinxDev->NonVolatileWrite(NVS_ETHERNET_PORT + 1, packetBuffer[offset++]); + status = L_OK; } - else + dataLength = 0; + break; + + case LCMD_GET_ETH_PORT: //Get Device Ethernet Port + // Command parameters + // None + // Response parameters + // uint16 : ethernet port + if (bufferLength >= offset + 1) { - LinxDev->WifiSsidSize = commandPacketBuffer[6]; - LinxDev->NonVolatileWrite(NVS_WIFI_SSID_SIZE, commandPacketBuffer[6]); + WriteU16ToBuff(packetBuffer, offset - 1, m_LinxDev->ethernetPort); + status = L_OK; + dataLength = 2; + break; } + dataLength = 0; + break; - //Update SSID Value In RAM And NVS - for(int i=0; iWifiSsidSize; i++) + case LCMD_SET_WIFI_ADDR: //Set Device WIFI IP + // Command parameters + // uint32 : WIFI IP + // Response parameters + // None + if (dataLength >= 4) { - LinxDev->WifiSsid[i] = commandPacketBuffer[7+i]; - LinxDev->NonVolatileWrite(NVS_WIFI_SSID+i, commandPacketBuffer[7+i]); + m_LinxDev->WifiIp = GetU32FromBuff(packetBuffer, offset); + m_LinxDev->NonVolatileWrite(NVS_WIFI_IP + 0, packetBuffer[offset++]); + m_LinxDev->NonVolatileWrite(NVS_WIFI_IP + 1, packetBuffer[offset++]); + m_LinxDev->NonVolatileWrite(NVS_WIFI_IP + 2, packetBuffer[offset++]); + m_LinxDev->NonVolatileWrite(NVS_WIFI_IP + 3, packetBuffer[offset++]); + status = L_OK; } - StatusResponse(commandPacketBuffer, responsePacketBuffer, L_OK); + dataLength = 0; break; - - case 0x001D: //Get Device WIFI SSID - responsePacketBuffer[5] = LinxDev->WifiSsidSize; //SSID SIZE - for(int i=0; iWifiSsidSize; i++) + case LCMD_GET_WIFI_ADDR: //Get Device WIFI IP + // Command parameters + // None + // Response parameters + // uint32 : WIFI IP + if (bufferLength >= offset + 3) { - responsePacketBuffer[i+6] = LinxDev->WifiSsid[i]; + WriteU32ToBuff(packetBuffer, offset - 1, m_LinxDev->WifiIp); + status = L_OK; + dataLength = 4; + break; } - PacketizeAndSend(commandPacketBuffer, responsePacketBuffer, LinxDev->WifiSsidSize, L_OK); + dataLength = 0; break; - - case 0x001E: //Set Device WIFI Security Type - LinxDev->WifiSecurity = commandPacketBuffer[6]; - LinxDev->NonVolatileWrite(NVS_WIFI_SECURITY_TYPE, commandPacketBuffer[6]); - StatusResponse(commandPacketBuffer, responsePacketBuffer, L_OK); + + case LCMD_SET_WIFI_PORT: //Set Device WIFI Port + // Command parameters + // uint16 : WIFI port + // Response parameters + // None + if (dataLength >= 2) + { + m_LinxDev->WifiPort = GetU16FromBuff(packetBuffer, offset); + m_LinxDev->NonVolatileWrite(NVS_WIFI_PORT + 0, packetBuffer[offset++]); + m_LinxDev->NonVolatileWrite(NVS_WIFI_PORT + 1, packetBuffer[offset++]); + status = L_OK; + } + dataLength = 0; break; - - case 0x001F: //Get Device WIFI Security Type - responsePacketBuffer[5] = LinxDev->WifiSecurity; - PacketizeAndSend(commandPacketBuffer, responsePacketBuffer, 1, L_OK); + + case LCMD_GET_WIFI_PORT: //Get Device WIFI Port + // Command parameters + // None + // Response parameters + // uint16 : WIFI port + if (bufferLength >= offset + 1) + { + WriteU16ToBuff(packetBuffer, offset - 1, m_LinxDev->WifiPort); + status = L_OK; + dataLength = 2; + break; + } + dataLength = 0; + break; + + case LCMD_SET_WIFI_SSID: //Set Device WIFI SSID + // Command parameters + // uint8 : len + // uint8[len] : WIFI SSID + // Response parameters + // None + if (dataLength > packetBuffer[offset]) + { + uint8_t length = packetBuffer[offset++]; + //Update Ssid Size In RAM And NVS + if (length > 32) + { + length = 32; + } + m_LinxDev->WifiSsidSize = length; + m_LinxDev->NonVolatileWrite(NVS_WIFI_SSID_SIZE, length); + + //Update SSID Value In RAM And NVS + for (int32_t i = 0; i < length; i++, offset++) + { + m_LinxDev->WifiSsid[i] = packetBuffer[offset]; + m_LinxDev->NonVolatileWrite(NVS_WIFI_SSID + i, packetBuffer[offset]); + } + status = L_OK; + } + dataLength = 0; break; - - case 0x0020: //Set Device WIFI Password - //Update PW Size In RAM And NVS - if(commandPacketBuffer[6] > 64) + + case LCMD_GET_WIFI_SSID: //Get Device WIFI SSID + // Command parameters + // None + // Response parameters + // uint8 : len + // uint8[len] : WIFI SSID + packetBuffer[offset - 1] = m_LinxDev->WifiSsidSize; //SSID SIZE + for (int32_t i = 0; i < m_LinxDev->WifiSsidSize; i++, offset++) { - LinxDev->WifiPwSize = 64; - LinxDev->NonVolatileWrite(NVS_WIFI_PW_SIZE, 64); + packetBuffer[offset] = m_LinxDev->WifiSsid[i]; } - else + status = L_OK; + dataLength = m_LinxDev->WifiSsidSize; + break; + + case LCMD_SET_WIFI_SEC: //Set Device WIFI Security Type + // Command parameters + // uint8 : WIFI Security Type + // Response parameters + // None + if (dataLength) { - LinxDev->WifiPwSize = commandPacketBuffer[6]; - LinxDev->NonVolatileWrite(NVS_WIFI_PW_SIZE, commandPacketBuffer[6]); - } + m_LinxDev->WifiSecurity = packetBuffer[offset]; + m_LinxDev->NonVolatileWrite(NVS_WIFI_SECURITY_TYPE, packetBuffer[offset]); + status = L_OK; + } + dataLength = 0; + break; - //Update PW Value In RAM And NVS - for(int i=0; iWifiPwSize; i++) + case LCMD_GET_WIFI_SEC: //Get Device WIFI Security Type + // Command parameters + // None + // Response parameters + // uint8 : WIFI Security Type + if (bufferLength >= offset) { - LinxDev->WifiPw[i] = commandPacketBuffer[7+i]; - LinxDev->NonVolatileWrite(NVS_WIFI_PW+i, commandPacketBuffer[i+7]); + packetBuffer[offset - 1] = m_LinxDev->WifiSecurity; + status = L_OK; + dataLength = 1; + break; } - StatusResponse(commandPacketBuffer, responsePacketBuffer, L_OK); + dataLength = 0; break; - + + case LCMD_SET_WIFI_PASS: //Set Device WIFI Password + // Command parameters + // uint8 : len + // uint8[len] : WIFI SSID + // Response parameters + // None + if (dataLength > packetBuffer[offset]) + { + uint8_t length = packetBuffer[offset++]; + //Update PW Size In RAM And NVS + if (length > 64) + { + length = 64; + } + m_LinxDev->WifiPwSize = length; + m_LinxDev->NonVolatileWrite(NVS_WIFI_PW_SIZE, length); + + //Update PW Value In RAM And NVS + for (int32_t i = 0; i < length; i++, offset++) + { + m_LinxDev->WifiPw[i] = packetBuffer[offset]; + m_LinxDev->NonVolatileWrite(NVS_WIFI_PW + i, packetBuffer[offset]); + } + status = L_OK; + } + dataLength = 0; + break; + //case 0x0021: //TODO Get Device WIFI Password - Intentionally Not Implemented For Security Reasons. - - case 0x0022: //Set Device Max Baud - LinxDev->serialInterfaceMaxBaud = (unsigned long)(((unsigned long)commandPacketBuffer[6]<<24) | ((unsigned long)commandPacketBuffer[7]<<16) | ((unsigned long)commandPacketBuffer[8]<<8) | ((unsigned long)commandPacketBuffer[9])); - LinxDev->NonVolatileWrite(NVS_SERIAL_INTERFACE_MAX_BAUD, commandPacketBuffer[6]); - LinxDev->NonVolatileWrite(NVS_SERIAL_INTERFACE_MAX_BAUD+1, commandPacketBuffer[7]); - LinxDev->NonVolatileWrite(NVS_SERIAL_INTERFACE_MAX_BAUD+2, commandPacketBuffer[8]); - LinxDev->NonVolatileWrite(NVS_SERIAL_INTERFACE_MAX_BAUD+3, commandPacketBuffer[9]); - StatusResponse(commandPacketBuffer, responsePacketBuffer, L_OK); - break; - case 0x0023: //Get Device Max Baud - - responsePacketBuffer[5] = ((LinxDev->serialInterfaceMaxBaud>>24) & 0xFF); //WIFI IP MSB - responsePacketBuffer[6] = ((LinxDev->serialInterfaceMaxBaud>>16) & 0xFF); //WIFI IP ... - responsePacketBuffer[7] = ((LinxDev->serialInterfaceMaxBaud>>8) & 0xFF); //WIFI IP ... - responsePacketBuffer[8] = ((LinxDev->serialInterfaceMaxBaud) & 0xFF); //WIFI IP LSB - PacketizeAndSend(commandPacketBuffer, responsePacketBuffer, 4, L_OK); + + case LCMD_SET_DEV_MAX_BAUD: //Set Device Max Baud + // Command parameters + // uint32 : Device Max Baud + // Response parameters + // None + if (dataLength >= 4) + { + m_LinxDev->UartMaxBaud = GetU32FromBuff(packetBuffer, offset); + m_LinxDev->NonVolatileWrite(NVS_SERIAL_INTERFACE_MAX_BAUD + 0, packetBuffer[offset++]); + m_LinxDev->NonVolatileWrite(NVS_SERIAL_INTERFACE_MAX_BAUD + 1, packetBuffer[offset++]); + m_LinxDev->NonVolatileWrite(NVS_SERIAL_INTERFACE_MAX_BAUD + 2, packetBuffer[offset++]); + m_LinxDev->NonVolatileWrite(NVS_SERIAL_INTERFACE_MAX_BAUD + 3, packetBuffer[offset++]); + status = L_OK; + } + dataLength = 0; break; - - case 0x0024: // Get Device Name - DataBufferResponse(commandPacketBuffer, responsePacketBuffer, (unsigned char*)LinxDev->DeviceName, LinxDev->DeviceNameLen, L_OK); + + case LCMD_GET_DEV_MAX_BAUD: //Get Device Max Baud + // Command parameters + // None + // Response parameters + // uint32 : Device Max Baud + if (bufferLength >= offset + 3) + { + WriteU32ToBuff(packetBuffer, offset - 1, m_LinxDev->UartMaxBaud); + status = L_OK; + dataLength = 4; + break; + } + dataLength = 0; break; - - case 0x0025: // Get Servo Channels - DataBufferResponse(commandPacketBuffer, responsePacketBuffer, LinxDev->ServoChans, LinxDev->NumServoChans, L_OK); + + case LCMD_GET_DEV_NAME: // Get Device Name + // Command parameters + // None + // Response parameters + // uint8[] : Device Name + dataLength = m_LinxDev->GetDeviceName(packetBuffer + offset - 1, bufferLength - offset); + status = L_OK; break; - + + case LCMD_GET_SERVO_CHANS: // Get Servo Channels + // Command parameters + // None + // Response parameters + // uint32 : Device Max Baud + dataLength = m_LinxDev->EnumerateChannels(IID_LinxServoChannel, packetBuffer + offset - 1, bufferLength - offset); + status = L_OK; + break; + //---0x0026 to 0x003F Reserved--- - + /**************************************************************************************** ** Digital I/O - ****************************************************************************************/ - //case 0x0040: //TODO Set Pin Mode - - case 0x0041: // Digital Write - status = LinxDev->DigitalWrite(commandPacketBuffer[6], &commandPacketBuffer[7], &commandPacketBuffer[7+commandPacketBuffer[6]]); - StatusResponse(commandPacketBuffer, responsePacketBuffer, status); + ****************************************************************************************/ + case LCMD_SET_PIN_MODE: // Set Pin Mode + // Command parameters + // uint8 : num channels + // uint8[numChans] : channels + // uint8[numChans] : states + // Response parameters + // None + if (dataLength > 2 * (uint32_t)packetBuffer[offset]) + { + uint8_t numChans = packetBuffer[offset++]; + status = m_LinxDev->DigitalSetState(numChans, packetBuffer + offset, packetBuffer + offset + numChans); + } + dataLength = 0; break; - - case 0x0042: // Digital Read - { - unsigned char numRespBytes = (((commandPacketBuffer[1]-7)-1) >> 3) +1; - status = LinxDev->DigitalRead((commandPacketBuffer[1]-7), &commandPacketBuffer[6], &responsePacketBuffer[5]); - PacketizeAndSend(commandPacketBuffer, responsePacketBuffer, numRespBytes, status); + + case LCMD_DIGITAL_WRITE: // Digital Write + // Command parameters + // uint8 : num channels + // uint8[numChans] : channels + // uint8[numChans + 7 / 8] : packed values + // Response parameters + // None + if (dataLength > ((uint32_t)packetBuffer[offset] + ((packetBuffer[offset] + 7) >> 3))) + { + uint8_t numChans = packetBuffer[offset++]; + status = m_LinxDev->DigitalWrite(numChans, packetBuffer + offset, packetBuffer + offset + numChans); + } + dataLength = 0; break; - } - - case 0x0043: //Write Square Wave - { - unsigned long freq = (unsigned long)((unsigned long)(commandPacketBuffer[7] << 24) | (unsigned long)(commandPacketBuffer[8] << 16) | (unsigned long)(commandPacketBuffer[9] << 8) | (unsigned long)commandPacketBuffer[10]); - unsigned long duration = (unsigned long)(((unsigned long)commandPacketBuffer[11] << 24) | (unsigned long)(commandPacketBuffer[12] << 16) | (unsigned long)(commandPacketBuffer[13] << 8) | (unsigned long)commandPacketBuffer[14]); - status = LinxDev->DigitalWriteSquareWave(commandPacketBuffer[6], freq, duration); - StatusResponse(commandPacketBuffer, responsePacketBuffer, status); + + case LCMD_DIGITAL_READ: // Digital Read + // Command parameters + // uint8[numChans] : channels + // Response parameters + // uint8[numChans + 7 / 8] : packed values + if (dataLength >= 1) + { + uint8_t numRespBytes = (dataLength + 7) >> 3; + status = m_LinxDev->DigitalRead(dataLength, packetBuffer + offset, packetBuffer + offset - 1); + dataLength = numRespBytes; + break; + } + dataLength = 0; break; - } - - case 0x0044: //Read Pulse Width - { - unsigned long timeout = (unsigned long)(((unsigned long)commandPacketBuffer[10]<<24) | ((unsigned long)commandPacketBuffer[11]<<16) | ((unsigned long)commandPacketBuffer[12]<<8) | ((unsigned long)commandPacketBuffer[13])); - - //LinxDev->DebugPrint("Timeout = "); - //LinxDev->DebugPrintln(timeout, DEC); - - unsigned long width; - status = LinxDev->DigitalReadPulseWidth(commandPacketBuffer[7], commandPacketBuffer[8], commandPacketBuffer[6], commandPacketBuffer[9], timeout, &width); - - responsePacketBuffer[5] = ((width>>24) & 0xFF); - responsePacketBuffer[6] = ((width>>16) & 0xFF); - responsePacketBuffer[7] = ((width>>8) & 0xFF); - responsePacketBuffer[8] = ((width) & 0xFF); - - PacketizeAndSend(commandPacketBuffer, responsePacketBuffer, 4, status); + + case LCMD_SET_SQUARE_WAVE: //Write Square Wave + // Command parameters + // uint8 : channel + // uint32 : frequency + // uint32 : duration + // Response parameters + // None + if (dataLength >= 9) + { + uint32_t freq, duration; + ReadU32FromBuff(packetBuffer, offset + 1, &freq); + ReadU32FromBuff(packetBuffer, offset + 5, &duration); + status = m_LinxDev->DigitalWriteSquareWave(packetBuffer[offset], freq, duration); + } + dataLength = 0; break; - } - + + case LCMD_GET_PULSE_WIDTH: //Read Pulse Width + // Command parameters + // uint8 : response channel + // uint8 : stimulation channel + // uint8 : stimulation type + // uint8 : response type + // uint32 : timeout + // Response parameters + // uint32 : pulse width + if (dataLength >= 8) + { + uint32_t timeout, width; + ReadU32FromBuff(packetBuffer, offset + 4, &timeout); + + //LinxDev->DebugPrint("Timeout = "); + //LinxDev->DebugPrintln(timeout, DEC); + + status = m_LinxDev->DigitalReadPulseWidth(packetBuffer[offset + 1], packetBuffer[offset + 2], packetBuffer[offset], packetBuffer[offset + 3], timeout, &width); + WriteU32ToBuff(packetBuffer, offset - 1, width); + dataLength = 4; + break; + } + dataLength = 0; + break; + //---0x0045 to 0x005F Reserved--- - + /**************************************************************************************** ** Analog I/O - ****************************************************************************************/ - case 0x0060: //Set AI Ref Voltage - { - unsigned long voltage = (unsigned long)(((unsigned long)commandPacketBuffer[7]<<24) | ((unsigned long)commandPacketBuffer[8]<<16) | ((unsigned long)commandPacketBuffer[9]<<8) | ((unsigned long)commandPacketBuffer[10])); - status = LinxDev->AnalogSetRef(commandPacketBuffer[6], voltage); - StatusResponse(commandPacketBuffer, responsePacketBuffer, status); + ****************************************************************************************/ + case LCMD_SET_AI_REF_VOLT: //Set AI Ref Voltage + // Command parameters + // uint8 : mode + // uint32 : reference voltage + // Response parameters + // None + if (dataLength >= 5) + { + uint32_t voltage; + ReadU32FromBuff(packetBuffer, offset + 1, &voltage); + status = m_LinxDev->AnalogSetRef(packetBuffer[offset], voltage); + } + dataLength = 0; break; - } - - case 0x0061: // Get AI Reference Voltage - responsePacketBuffer[5] = (LinxDev->AiRefSet>>24) & 0xFF; //AIREF MSB - responsePacketBuffer[6] = (LinxDev->AiRefSet>>16) & 0xFF; //... - responsePacketBuffer[7] = (LinxDev->AiRefSet>>8) & 0xFF; //... - responsePacketBuffer[8] = LinxDev->AiRefSet & 0xFF; //AIREF LSB - PacketizeAndSend(commandPacketBuffer, responsePacketBuffer, 4, status); - break; - - //case 0x0062: //TODO Set AI Resolution - //case 0x0063: //TODO Get AI Resolution - - case 0x0064: // Analog Read - { - responsePacketBuffer[5] = LinxDev->AiResolution; - status = LinxDev->AnalogRead((commandPacketBuffer[1]-7), &commandPacketBuffer[6], &responsePacketBuffer[6]); - unsigned int numDataBits = ((commandPacketBuffer[1]-7) * LinxDev->AiResolution); - unsigned char numResponseDataBytes = numDataBits / 8; - - if( (numDataBits % 8) != 0) + + case LCMD_GET_AI_REF_VOLT: // Get AI Reference Voltage + // Command parameters + // None + // Response parameters + // uint32 : reference voltage + if (bufferLength >= offset + 3) { - //Partial Byte Included, Increment Total - numResponseDataBytes++; + WriteU32ToBuff(packetBuffer, offset - 1, m_LinxDev->AiRefSet); + status = L_OK; + dataLength = 4; + break; } - - PacketizeAndSend(commandPacketBuffer, responsePacketBuffer, numResponseDataBytes+1, status); + dataLength = 0; break; - } - - //case 0x0065: //TODO Analog Write - + + //case LCMD_SET_AI_RESOLUTION; // Set AI Resolution + + case LCMD_GET_AI_RESOLUTION: // Get AI Resolution + // Command parameters + // None + // Response parameters + // uint8 : analog input resolution + if (bufferLength >= offset + 3) + { + packetBuffer[offset - 1] = m_LinxDev->AiResolution; + status = L_OK; + dataLength = 1; + break; + } + dataLength = 0; + break; + + case LCMD_ANALOG_READ: // Analog Read + // Command parameters + // uint8[length] : channels + // Response parameters + // uint8 : analog input resolution + // uint8[] : analog values, bit-packed with resolution bits per channel + if (dataLength >= bufferLength) + { + status = m_LinxDev->AnalogRead(dataLength, packetBuffer + offset, packetBuffer + offset); + packetBuffer[offset - 1] = m_LinxDev->AiResolution; + dataLength = ((dataLength * m_LinxDev->AiResolution + 7) / 8); + break; + } + dataLength = 0; + break; + + //case LCMD_GET_AO_RESOLUTION: // Get AO Resolution + + case LCMD_GET_AO_RESOLUTION: // Get AO Resolution + // Command parameters + // None + // Response parameters + // uint8 : analog output resolution + if (bufferLength >= offset) + { + packetBuffer[offset - 1] = m_LinxDev->AoResolution; + status = L_OK; + dataLength = 1; + break; + } + dataLength = 0; + break; + + case LCMD_ANALOG_WRITE: // Analog Write + // Command parameters + // uint8 : number of channels + // uint8 : analog output resolution + // uint8[numChans] : channels + // uint8[] : analog values, bit-packed with resolution bits per channel + // Response parameters + // None + if (dataLength >= (2 + (uint32_t)packetBuffer[offset] + (((uint32_t)packetBuffer[offset] * m_LinxDev->AoResolution + 7) / 8)) && + packetBuffer[offset + 1] == m_LinxDev->AoResolution) + { + uint8_t numChans = packetBuffer[offset]; + status = m_LinxDev->AnalogWrite(numChans, packetBuffer + offset + 2, packetBuffer + offset + 2 + numChans); + } + dataLength = 0; + break; + //---0x0066 to 0x007F Reserved--- - + /**************************************************************************************** ** PWM - ****************************************************************************************/ - - //case 0x0080: //TODO PWM Open - //case 0x0081: //TODO PWM Set Mode - //case 0x0082: //TODO PWM Set Frequency - - case 0x0083: //PWM Set Duty Cycle - status = LinxDev->PwmSetDutyCycle(commandPacketBuffer[6], &commandPacketBuffer[7], &commandPacketBuffer[commandPacketBuffer[6] + 7] ); - StatusResponse(commandPacketBuffer, responsePacketBuffer, status); + ****************************************************************************************/ + + //case LCMD_PWM_OPEN: //TODO PWM Open + //case LCMD_SET_PWM_MODE: //TODO PWM Set Mode + //case LCMD_SET_PWN_FREQ: //TODO PWM Set Frequency + + case LCMD_SET_PWM_DUTY_CYCLE: //PWM Set Duty Cycle + // Command parameters + // uint8 : number of channels + // uint8[numChans] : channels + // uint8[numChans] : pwm values + // Response parameters + // None + if (dataLength > 2 * (uint32_t)packetBuffer[offset]) + { + uint8_t numChans = packetBuffer[offset++]; + status = m_LinxDev->PwmSetDutyCycle(numChans, packetBuffer + offset, packetBuffer + offset + numChans); + } + dataLength = 0; break; - - //case 0x0084: //TODO PWM Close - + + //case LCMD_PWM_CLOSE: //TODO PWM Close + /**************************************************************************************** ** QE - ****************************************************************************************/ - + ****************************************************************************************/ + //---0x00A0 to 0x00BF Reserved--- - - + + /**************************************************************************************** ** UART - ****************************************************************************************/ - case 0x00C0: // UART Open - { - unsigned long targetBaud = (unsigned long)((unsigned long)(commandPacketBuffer[7] << 24) | (unsigned long)(commandPacketBuffer[8] << 16) | (unsigned long)(commandPacketBuffer[9] << 8) | (unsigned long)commandPacketBuffer[10]); - unsigned long actualBaud = 0; - - status = LinxDev->UartOpen(commandPacketBuffer[6], targetBaud, &actualBaud); - responsePacketBuffer[5] = (actualBaud>>24) & 0xFF; //actualBaud MSB - responsePacketBuffer[6] = (actualBaud>>16) & 0xFF; //... - responsePacketBuffer[7] = (actualBaud>>8) & 0xFF; //... - responsePacketBuffer[8] = actualBaud & 0xFF; //actualBaud LSB - PacketizeAndSend(commandPacketBuffer, responsePacketBuffer, 4, status); + ****************************************************************************************/ + case LCMD_UART_OPEN: // UART Open + // Command parameters + // uint8 : channel + // uint32 : baudrate + // Response parameters + // uint32 : actual baudrate + if (dataLength >= 5) + { + status = m_LinxDev->UartOpen(packetBuffer[offset]); + if (!status) + { + uint32_t actualBaud = 0; + status = m_LinxDev->UartSetBaudRate(packetBuffer[offset], GetU32FromBuff(packetBuffer, offset + 1), &actualBaud); + WriteU32ToBuff(packetBuffer, offset - 1, actualBaud); + dataLength = 4; + break; + } + } + dataLength = 0; break; - } - case 0x00C1: // UART Set Buad Rate - { - unsigned long targetBaud = (unsigned long)((unsigned long)(commandPacketBuffer[7] << 24) | (unsigned long)(commandPacketBuffer[8] << 16) | (unsigned long)(commandPacketBuffer[9] << 8) | (unsigned long)commandPacketBuffer[10]); - unsigned long actualBaud = 0; - status = LinxDev->UartSetBaudRate(commandPacketBuffer[6], targetBaud, &actualBaud); - responsePacketBuffer[5] = (actualBaud>>24) & 0xFF; //actualBaud MSB - responsePacketBuffer[6] = (actualBaud>>16) & 0xFF; //... - responsePacketBuffer[7] = (actualBaud>>8) & 0xFF; //... - responsePacketBuffer[8] = actualBaud & 0xFF; //actualBaud LSB - PacketizeAndSend(commandPacketBuffer, responsePacketBuffer, 4, status); + + case LCMD_UART_OPEN_BY_NAME: // UART Open by Name + // Command parameters + // uint8[] : device name + // Response parameters + // uint8 : assigned channel + if (dataLength >= bufferLength - offset) + { + packetBuffer[offset + dataLength] = 0; + status = m_LinxDev->UartOpen(packetBuffer + offset, packetBuffer + offset - 1); + dataLength = 1; + break; + } + dataLength = 0; break; - } - case 0x00C2: // UART Get Bytes Available - { - unsigned char numBytes; - status = LinxDev->UartGetBytesAvailable(commandPacketBuffer[6], &numBytes); - responsePacketBuffer[5] = numBytes; - PacketizeAndSend(commandPacketBuffer, responsePacketBuffer, 1, status); + + case LCMD_UART_SET_BAUD: // UART Set Baud Rate + // Command parameters + // uint8 : channel + // uint32 : baudrate + // Response parameters + // uint32 : actual baudrate + if (dataLength >= 5) + { + uint32_t actualBaud = 0; + status = m_LinxDev->UartSetBaudRate(packetBuffer[offset], GetU32FromBuff(packetBuffer, offset + 1), &actualBaud); + WriteU32ToBuff(packetBuffer, offset - 1, actualBaud); + dataLength = 4; + break; + } + dataLength = 0; break; - } - case 0x00C3: // UART Read - { - unsigned char numBytesRead = 0; - status = LinxDev->UartRead(commandPacketBuffer[6], commandPacketBuffer[7], &responsePacketBuffer[5], &numBytesRead); - PacketizeAndSend(commandPacketBuffer, responsePacketBuffer, numBytesRead, status); + + case LCMD_UART_SET_ATTRIBUTE: // UART Set Parameters + // Command parameters + // uint8 : channel + // uint8 : data bits + // uint8 : stop bits + // uint8 : parity + // Response parameters + // None + if (dataLength >= 4) + { + status = m_LinxDev->UartSetParameters(packetBuffer[offset], packetBuffer[offset + 1], packetBuffer[offset + 2], (LinxUartParity)packetBuffer[offset + 3]); + } + dataLength = 0; break; - } - case 0x00C4: // UART Write - { - status = LinxDev->UartWrite(commandPacketBuffer[6], (commandPacketBuffer[1]-8), &commandPacketBuffer[7]); - StatusResponse(commandPacketBuffer, responsePacketBuffer, status); + case LCMD_UART_GET_BYTES: // UART Get Bytes Available + // Command parameters + // uint8 : channel + // Response parameters + // uint8 : available bytes + // or + // uint32 : available bytes + if (dataLength >= 1) + { + uint32_t numBytes; + status = m_LinxDev->UartGetBytesAvailable(packetBuffer[offset], &numBytes); + if (!status) + { + if (m_ProtocolVersion) + { + WriteU32ToBuff(packetBuffer, offset - 1, numBytes); + dataLength = 4; + } + else + { + WriteU8ToBuff(packetBuffer, offset - 1, numBytes); + dataLength = 1; + } + } + break; + } + dataLength = 0; break; - } - case 0x00C5: // UART Close - { - status = LinxDev->UartClose(commandPacketBuffer[6]); - StatusResponse(commandPacketBuffer, responsePacketBuffer, status); + + case LCMD_UART_READ: // UART Read + // Command parameters + // Either: + // uint8 : channel + // uint8 : bytes to read + // or + // uint8 : 0 + // uint8 : channel + // int32 : timeout + // int32 : bytes to read + // end + // Response parameters + // uint8[] : read bytes + if (dataLength >= 2) + { + uint8_t channel = packetBuffer[offset]; + int32_t timeout = TIMEOUT_INFINITE; + uint32_t numBytes = packetBuffer[offset + 1]; + if (dataLength >= 10) + { + channel = packetBuffer[offset + 1]; + timeout = GetU32FromBuff(packetBuffer, offset + 2); + numBytes = GetU32FromBuff(packetBuffer, offset + 6); + } + if (numBytes > (uint32_t)(bufferLength - offset)) + numBytes = bufferLength - offset; + + status = m_LinxDev->UartRead(channel, numBytes, packetBuffer + offset - 1, timeout, &numBytes); + dataLength = numBytes; + break; + } + dataLength = 0; break; - } - + + case LCMD_UART_WRITE: // UART Write + // Command parameters + // Either: + // uint8 : channel + // or + // uint8 : 0 + // uint8 : channel + // int32 : timeout + // int32 : number of bytes + // end + // uint8[] : bytes to write + // Response parameters + // None + if (dataLength >= 1) + { + uint8_t channel = packetBuffer[offset++]; + uint32_t numBytes = dataLength - 1; + int32_t timeout = TIMEOUT_INFINITE; + if (!channel && dataLength > 10) + { + channel = packetBuffer[offset]; + timeout = GetU32FromBuff(packetBuffer, offset + 1); + numBytes = dataLength - 10; + numBytes = Min(numBytes, GetU32FromBuff(packetBuffer, offset + 5)); + offset += 9; + } + status = m_LinxDev->UartWrite(channel, numBytes, packetBuffer + offset, timeout); + } + dataLength = 0; + break; + + case LCMD_UART_CLOSE: // UART Close + // Command parameters + // uint8 : channel + // Response parameters + // None + if (dataLength >= 1) + { + status = m_LinxDev->UartClose(packetBuffer[offset]); + } + dataLength = 0; + break; + //---0x00C6 to 0x00DF Reserved--- - + /**************************************************************************************** ** I2C - ****************************************************************************************/ - case 0x00E0: // I2C Open Master - status = LinxDev->I2cOpenMaster(commandPacketBuffer[6]); - StatusResponse(commandPacketBuffer, responsePacketBuffer, status); + ****************************************************************************************/ + case LCMD_I2C_OPEN: // I2C Open Master + // Command parameters + // uint8 : channel + // Response parameters + // None + if (dataLength >= 1) + { + status = m_LinxDev->I2cOpenMaster(packetBuffer[offset]); + } + dataLength = 0; break; - case 0x00E1: // I2C Set Speed - { - unsigned long targetSpeed = (unsigned long)((unsigned long)(commandPacketBuffer[7] << 24) | (unsigned long)(commandPacketBuffer[8] << 16) | (unsigned long)(commandPacketBuffer[9] << 8) | (unsigned long)commandPacketBuffer[10]); - unsigned long actualSpeed = 0; - status = LinxDev->I2cSetSpeed(commandPacketBuffer[6], targetSpeed, &actualSpeed); - - //Build Response Packet - responsePacketBuffer[5] = (actualSpeed>>24) & 0xFF; //Actual Speed MSB - responsePacketBuffer[6] = (actualSpeed>>16) & 0xFF; //... - responsePacketBuffer[7] = (actualSpeed>>8) & 0xFF; //... - responsePacketBuffer[8] = actualSpeed & 0xFF; //Actual Speed LSB - PacketizeAndSend(commandPacketBuffer, responsePacketBuffer, 4, status); + + case LCMD_I2C_SPEED: // I2C Set Speed + // Command parameters + // uint8 : channel + // uint32 : speed + // Response parameters + // uint32 : actual speed + if (dataLength >= 5) + { + uint32_t actualSpeed = 0; + status = m_LinxDev->I2cSetSpeed(packetBuffer[offset], GetU32FromBuff(packetBuffer, offset + 1), &actualSpeed); + + //Build Response Packet + WriteU32ToBuff(packetBuffer, offset - 1, actualSpeed); + dataLength = 4; + break; + } + dataLength = 0; break; - } - case 0x00E2: // I2C Write - status = LinxDev->I2cWrite(commandPacketBuffer[6], commandPacketBuffer[7], commandPacketBuffer[8], (commandPacketBuffer[1]-10), &commandPacketBuffer[9]); - StatusResponse(commandPacketBuffer, responsePacketBuffer, status); + + case LCMD_I2C_WRITE: // I2C Write + // Command parameters + // uint8 : I2C channel + // uint8 : I2C slave address + // uint8 : I2C eof config + // uint8[] : data bytes to write + // Response parameters + // None + if (dataLength >= 3) + { + status = m_LinxDev->I2cWrite(packetBuffer[offset], packetBuffer[offset + 1], packetBuffer[offset + 2], (uint8_t)dataLength - 3, packetBuffer + offset + 3); + } + dataLength = 0; break; - case 0x00E3: // I2C Read - status = LinxDev->I2cRead(commandPacketBuffer[6], commandPacketBuffer[7], commandPacketBuffer[11], commandPacketBuffer[8],((commandPacketBuffer[9]<<8) | commandPacketBuffer[10]), &responsePacketBuffer[5]); - PacketizeAndSend(commandPacketBuffer, responsePacketBuffer, commandPacketBuffer[8], status); + + case LCMD_I2C_READ: // I2C Read + // Command parameters + // uint8 : I2C channel + // uint8 : I2C slave address + // uint8 : num bytes to read + // uint16 : timeout + // uint8 : I2C eof config + // Response parameters + // uint8[] : num bytes data + if (dataLength >= 6) + { + status = m_LinxDev->I2cRead(packetBuffer[offset], packetBuffer[offset + 1], packetBuffer[offset + 5], packetBuffer[offset + 2], GetU16FromBuff(packetBuffer, offset + 3), packetBuffer + offset - 1); + dataLength = packetBuffer[offset + 2]; + break; + } + dataLength = 0; break; - case 0x00E4: // I2C Close - status = LinxDev->I2cClose((commandPacketBuffer[6])); - StatusResponse(commandPacketBuffer, responsePacketBuffer, status); + + case LCMD_I2C_CLOSE: // I2C Close + // Command parameters + // uint8 : I2C channel + // Response parameters + // None + if (dataLength >= 1) + { + status = m_LinxDev->I2cClose((packetBuffer[offset])); + } + dataLength = 0; break; - + //---0x00E5 to 0x00FF Reserved--- - + /**************************************************************************************** ** SPI - ****************************************************************************************/ - case 0x0100: // SPI Open Master - status = LinxDev->SpiOpenMaster(commandPacketBuffer[6]); - StatusResponse(commandPacketBuffer, responsePacketBuffer, L_OK); + ****************************************************************************************/ + case LCMD_SPI_OPEN: // SPI Open Master + // Command parameters + // uint8 : SPI channel + // Response parameters + // None + if (dataLength >= 1) + { + status = m_LinxDev->SpiOpenMaster(packetBuffer[offset]); + } + dataLength = 0; break; - case 0x0101: // SPI Set Bit Order - LinxDev->SpiSetBitOrder(commandPacketBuffer[6], commandPacketBuffer[7]); - StatusResponse(commandPacketBuffer, responsePacketBuffer, L_OK); + + case LCMD_SPI_SET_ORDER: // SPI Set Bit Order + // Command parameters + // uint8 : SPI channel + // uint8 : SPI bit order + // Response parameters + // None + if (dataLength >= 2) + { + status = m_LinxDev->SpiSetBitOrder(packetBuffer[offset], packetBuffer[offset + 1]); + } + dataLength = 0; break; - - case 0x0102: // SPI Set Clock Frequency - { - unsigned long targetSpeed = (unsigned long) ( (unsigned long)commandPacketBuffer[7] << 24 | (unsigned long)commandPacketBuffer[8] << 16 | (unsigned long)commandPacketBuffer[9] << 8 | (unsigned long)commandPacketBuffer[10] ); - unsigned long actualSpeed = 0; - status = LinxDev->SpiSetSpeed( commandPacketBuffer[6], targetSpeed, &actualSpeed ); - - //Build Response Packet - responsePacketBuffer[5] = (actualSpeed>>24) & 0xFF; //Actual Speed MSB - responsePacketBuffer[6] = (actualSpeed>>16) & 0xFF; //... - responsePacketBuffer[7] = (actualSpeed>>8) & 0xFF; //... - responsePacketBuffer[8] = actualSpeed & 0xFF; //Actual Speed LSB - - PacketizeAndSend(commandPacketBuffer, responsePacketBuffer, 4, L_OK); - break; - } - case 0x0103: // SPI Set Mode - { - //Set SPI Mode - status = LinxDev->SpiSetMode(commandPacketBuffer[6], commandPacketBuffer[7]); - - //Build Response Packet - PacketizeAndSend(commandPacketBuffer, responsePacketBuffer, 4, status); - break; - } - + + case LCMD_SPI_SET_FREQ: // SPI Set Clock Frequency + // Command parameters + // uint8 : SPI channel + // uint32 : clock frequency + // Response parameters + // None + if (dataLength >= 5) + { + uint32_t actualSpeed = 0; + status = m_LinxDev->SpiSetSpeed(packetBuffer[offset], GetU32FromBuff(packetBuffer, offset + 1), &actualSpeed); + + //Build Response Packet + WriteU32ToBuff(packetBuffer, offset - 1, actualSpeed); + dataLength = 4; + break; + } + dataLength = 0; + break; + + case LCMD_SPI_SET_MODE: // SPI Set Mode + // Command parameters + // uint8 : SPI channel + // uint8 : SPI mode + // Response parameters + // None + if (dataLength >= 2) + { + status = m_LinxDev->SpiSetMode(packetBuffer[offset], packetBuffer[offset + 1]); + } + dataLength = 0; + break; + //case 0x0104: //LEGACY - SPI Set Frame Size //case 0x0105: //LEGACY - SPI Set CS Logic Level //case 0x0106: //LEGACY - SPI Set CS Channel - - case 0x0107: // SPI Write Read - { - status = LinxDev->SpiWriteRead(commandPacketBuffer[6], commandPacketBuffer[7], (commandPacketBuffer[1]-11)/commandPacketBuffer[7], commandPacketBuffer[8], commandPacketBuffer[9], &commandPacketBuffer[10], &responsePacketBuffer[5]); - PacketizeAndSend(commandPacketBuffer, responsePacketBuffer, commandPacketBuffer[1]-11, status); + + case LCMD_SPI_TRANSFER: // SPI Write Read + // Command parameters + // uint8 : SPI channel + // uint8 : frame size + // uint8 : CS digital channel + // uint8 : CS Logic Level + // uint8[] : num frames * frame size data bytes + // Response parameters + // uint8[] : num frames * frame size data bytes + if (dataLength > 4) + { + uint8_t frameSize = packetBuffer[offset + 1], + numFrames = (dataLength - 4) / frameSize, + + status = m_LinxDev->SpiWriteRead(packetBuffer[offset], frameSize, numFrames, packetBuffer[offset + 2], packetBuffer[offset + 3], packetBuffer + offset + 4, packetBuffer + offset - 1); + dataLength -= 5; + break; + } + dataLength = 0; break; - } - + + case LCMD_SPI_CLOSE: // SPI Close + if (dataLength >= 1) + { + status = m_LinxDev->SpiCloseMaster(packetBuffer[offset]); + } + dataLength = 0; + break; + //---0x0085 to 0x009F Reserved--- - + /**************************************************************************************** ** CAN - ****************************************************************************************/ - + ****************************************************************************************/ + //---0x0120 to 0x013F Reserved--- - + /**************************************************************************************** ** SERVO - ****************************************************************************************/ - case 0x0140: // Servo Init + ****************************************************************************************/ + case LCMD_SERVO_INIT: // Servo Init //LinxDev->DebugPrintln("Opening Servo"); - status = LinxDev->ServoOpen((commandPacketBuffer[1]-7), &commandPacketBuffer[6]); - StatusResponse(commandPacketBuffer, responsePacketBuffer, status); + status = m_LinxDev->ServoOpen((uint8_t)dataLength, packetBuffer + offset); + dataLength = 0; //LinxDev->DebugPrintln("Done Creating Servos..."); break; - case 0x0141: // Servo Set Pulse Width - { - //Convert Big Endian Packet To Little Endian (uC) - unsigned char* valPtr = &commandPacketBuffer[7+commandPacketBuffer[6]]; //Pointer To First Byte In Packet That Represents A Servo Value - unsigned short tempVals[commandPacketBuffer[6]]; //Temporary Array To Store Unsigned Shorts Built From Bytes - - //LinxDev->DebugPrint("valPtr offset : "); - //LinxDev->DebugPrintln(7+commandPacketBuffer[6]); - - - for(int i=0; iDebugPrintln("::tempVals::"); - - for(int i=0; iDebugPrintln(tempVals[i], DEC); - } - - status = LinxDev->ServoSetPulseWidth(commandPacketBuffer[6], &commandPacketBuffer[7], tempVals); - StatusResponse(commandPacketBuffer, responsePacketBuffer, status); + + case LCMD_SERVO_SET_PULSE: // Servo Set Pulse Width + if (dataLength >= 1) + { + uint8_t numChans = packetBuffer[offset]; + // Convert Big Endian packet to platform endianess (uC) + // Temporary in place array pointer to store endianess corrected value + uint8_t *tempPtr = packetBuffer + offset + 1 + numChans; + uint16_t *tempVals = (uint16_t *)tempPtr; + + for (int32_t i = 0; i < numChans; i++) + { + // Create uint16_t from big endian byte array + tempVals[i] = GetU16FromBuff(tempPtr, 2 * i); + } + + //TODO REMOVE DEBUG PRINT + m_Debug->Writeln("::tempVals::"); + for (int32_t i = 0; i < numChans; i++) + { + m_Debug->Writeln(tempVals[i], DEC); + } + status = m_LinxDev->ServoSetPulseWidth(numChans, packetBuffer + offset + 1, tempVals); + } + dataLength = 0; break; - } - case 0x0142: // Servo Close - status = LinxDev->ServoClose((commandPacketBuffer[1]-7), &commandPacketBuffer[6]); - StatusResponse(commandPacketBuffer, responsePacketBuffer, status); + + case LCMD_SERVE_CLOSE: // Servo Close + status = m_LinxDev->ServoClose((uint8_t)dataLength, packetBuffer + offset); + dataLength = 0; break; - + /**************************************************************************************** ** WS2812 - ****************************************************************************************/ + ****************************************************************************************/ case 0x0160: // WS2812 Open - status = LinxDev->Ws2812Open((commandPacketBuffer[6]<<8 | commandPacketBuffer[7]), commandPacketBuffer[8]); - StatusResponse(commandPacketBuffer, responsePacketBuffer, status); + status = m_LinxDev->Ws2812Open(GetU16FromBuff(packetBuffer, offset), packetBuffer[offset + 2]); + dataLength = 0; break; case 0x0161: // WS2812 Write One Pixel - status = LinxDev->Ws2812WriteOnePixel((commandPacketBuffer[6]<<8 | commandPacketBuffer[7]), commandPacketBuffer[8], commandPacketBuffer[9], commandPacketBuffer[10], commandPacketBuffer[11]); - StatusResponse(commandPacketBuffer, responsePacketBuffer, status); + status = m_LinxDev->Ws2812WriteOnePixel(GetU16FromBuff(packetBuffer, offset), packetBuffer[offset + 2], packetBuffer[offset + 3], packetBuffer[offset + 4], packetBuffer[offset + 5]); + dataLength = 0; break; case 0x0162: // WS2812 Write N Pixels - status = LinxDev->Ws2812WriteNPixels((commandPacketBuffer[6]<<8 | commandPacketBuffer[7]), (commandPacketBuffer[8]<<8 | commandPacketBuffer[9]), &commandPacketBuffer[11], commandPacketBuffer[10]); - StatusResponse(commandPacketBuffer, responsePacketBuffer, status); + status = m_LinxDev->Ws2812WriteNPixels(GetU16FromBuff(packetBuffer, offset), GetU16FromBuff(packetBuffer, offset), packetBuffer + offset + 5, packetBuffer[offset + 4]); + dataLength = 0; break; case 0x0163: // WS2812 Refresh - status = LinxDev->Ws2812Refresh(); - StatusResponse(commandPacketBuffer, responsePacketBuffer, status); + status = m_LinxDev->Ws2812Refresh(); + dataLength = 0; break; case 0x0164: // WS2812 Close - status = LinxDev->Ws2812Close(); - StatusResponse(commandPacketBuffer, responsePacketBuffer, status); + status = m_LinxDev->Ws2812Close(); + dataLength = 0; break; - + /**************************************************************************************** ** Default - ****************************************************************************************/ + ****************************************************************************************/ default: //Default Case - StatusResponse(commandPacketBuffer, responsePacketBuffer, (int)L_FUNCTION_NOT_SUPPORTED); - break; + dataLength = 0; + status = L_FUNCTION_NOT_SUPPORTED; + break; } } - - return status; -} - - -void LinxListener::PacketizeAndSend(unsigned char* commandPacketBuffer, unsigned char* responsePacketBuffer, unsigned int dataSize, int status) -{ - //Load Header - responsePacketBuffer[0] = 0xFF; //SoF - responsePacketBuffer[1] = dataSize+6; //PACKET SIZE - responsePacketBuffer[2] = commandPacketBuffer[2]; //PACKET NUM (MSB) - responsePacketBuffer[3] = commandPacketBuffer[3]; //PACKET NUM (LSB) - //Make Sure Status Is Valid - if(status >= 0 && status <= 255) - { - responsePacketBuffer[4] = (unsigned char)status; //Status - } - else - { - responsePacketBuffer[4] = (unsigned char)L_UNKNOWN_ERROR; //Status - } - - //Compute And Load Checksum - responsePacketBuffer[dataSize+5] = ComputeChecksum(responsePacketBuffer); + return PacketizeAndSend(packetBuffer, dataLength, status, start, timeout); } - -void LinxListener::DataBufferResponse(unsigned char* commandPacketBuffer, unsigned char* responsePacketBuffer, const unsigned char* dataBuffer, unsigned char dataSize, int status) -{ - - //Copy Data Into Response Buffer - for(int i=0; i + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/make/VS2005/Win32/Release/libLinxDevice.dll b/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/make/VS2005/Win32/Release/libLinxDevice.dll new file mode 100644 index 00000000..8911642a Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/make/VS2005/Win32/Release/libLinxDevice.dll differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/make/VS2005/x64/Release/libLinxDevice.dll b/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/make/VS2005/x64/Release/libLinxDevice.dll new file mode 100644 index 00000000..55df628f Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source/make/VS2005/x64/Release/libLinxDevice.dll differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/LMH-LINX.aliases b/LabVIEW/vi.lib/MakerHub/LINX/LMH-LINX.aliases deleted file mode 100644 index 169edf83..00000000 --- a/LabVIEW/vi.lib/MakerHub/LINX/LMH-LINX.aliases +++ /dev/null @@ -1,9 +0,0 @@ -[BeagleBone Black] -BeagleBone Black = "192.168.7.2" - -[My Computer] -My Computer = "192.168.7.1" - -[Raspberry Pi 2 B] -Raspberry Pi 2 B = "0.0.0.0" - diff --git a/LabVIEW/vi.lib/MakerHub/LINX/LMH-LINX.lvlib b/LabVIEW/vi.lib/MakerHub/LINX/LMH-LINX.lvlib index 0abed084..b2a0fa04 100644 --- a/LabVIEW/vi.lib/MakerHub/LINX/LMH-LINX.lvlib +++ b/LabVIEW/vi.lib/MakerHub/LINX/LMH-LINX.lvlib @@ -9,418 +9,416 @@ - - - - + + + + - - - - - - - - - - - + + + + + + + + + + + - - - - - - + + + + + + - - - + + + - - - + + + - - - + + + - + - + - - - - - - - + + + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + 3 - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + - - - - - - - + + + + + + + - - - - - - - - - + + + + + + + + + - - - - + + + + - - - + + + - - - - - + + + + + - - - - - - - - - - + + + + + + + + + + 3 - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + 3 - + - + - + - - - - - - + + + + + + - - - + + + diff --git a/LabVIEW/vi.lib/MakerHub/LINX/LMH-LINX.lvlps b/LabVIEW/vi.lib/MakerHub/LINX/LMH-LINX.lvlps deleted file mode 100644 index 4dcde2d3..00000000 --- a/LabVIEW/vi.lib/MakerHub/LINX/LMH-LINX.lvlps +++ /dev/null @@ -1,3 +0,0 @@ -[ProjectWindow_Data] -ProjectExplorer.ClassicPosition[String] = "48,-555,1016,-84" - diff --git a/LabVIEW/vi.lib/MakerHub/LINX/LMH-LINX.lvproj b/LabVIEW/vi.lib/MakerHub/LINX/LMH-LINX.lvproj index f925bf76..c4c80c4f 100644 --- a/LabVIEW/vi.lib/MakerHub/LINX/LMH-LINX.lvproj +++ b/LabVIEW/vi.lib/MakerHub/LINX/LMH-LINX.lvproj @@ -15,8 +15,8 @@ true false - - + + @@ -71,13 +71,12 @@ - + - + + - - @@ -90,44 +89,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -176,65 +137,125 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - - - true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - true + + true + + + + true + + + true + + diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Close Device.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Close Device.vi index f68ff373..3a808da6 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Close Device.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Close Device.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Device.lvlib b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Device.lvlib index 16fd2f95..641480dc 100644 --- a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Device.lvlib +++ b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Device.lvlib @@ -1,9 +1,7 @@  - - LMH-LINX.lvlib - /<vilib>/MakerHub/LINX/LMH-LINX.lvlib - '1#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!)N!!!*Q(C=\>5B=BN"%)8BZV3!K7[1UAV=\QK[AKD-GC]3.>16_AK#I1+_1,/!)&V"65'#TL_4NEKR;=I+]+Z(8LX:[@E]/\77RH%P@>8,"RT4;./YH+9`(`X^8@`LV>P_U4.V``3_`_XYK_\L_3\T8`@@]N$H]8H=^HC[`:[^U`QCIB5N;5'TZKF?CLT)C\T)C\T)ETT*ETT*ETT*ATT)ATT)ATT)47ZSEZP=Z#9@*\H)23ZS3-8ER52&U;*!=4-5&2_&J`!5HM,$6R7?QF.Y#E`BY296HM*4?!J0Y7'9#E`B+4S&J`"1;EBKH/2Y#A`FF8A34_**0)G(+:6Y%E!S76)Y+1*$37>SE8A34_,B5IEH]33?R*.Y[&<C34S**`%E(I;-6=GBG5^S0*22Y!E]A3@Q""Z++`!%HM!4?!)0USHQ"*Y!%5Q9&)?A9&"Q1`!F]!1?@CHQ"*\!%XA#$VXD#=69G6ETH_2YD->YD->YD)=3-B\D-2\D-2\+SHC-RXC-RXC93M:D0-:D)':3JJ=J:A;;GURA00S-X?,RF(*)0%[J.[^[5[IXGXI4K4?(_K'L([<[);E88\WI[M63,Y,[DV/DV2DV*/L"]YU[]8GE(7B\WI[WJ;VJ+^K3NJC(`O-<4[?4DM?D$I?$^PO^>LO>NNONVOOV6KO6FMOF&IP&Z48QD@0S1PD\P84?0$S?.T]@T^^`T,_@@WU?HD`A@_F`]'\5&VX8:9V_!UQQ5<)!!!!! - 419463168 + + )!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!)N!!!*Q(C=\>5B=BN"%)8BZV3!K7[1UAV=\QK[AKD-GC]3.>16_AK#I1+_1,/!)&V"65'#TL_4NEKR;=I+]+Z(8LX:[@E]/\77RH%P@>8,"RT4;./YH+9`(`X^8@`LV>P_U4.V``3_`_XYK_\L_3\T8`@@]N$H]8H=^HC[`:[^U`QCIB5N;5'TZKF?CLT)C\T)C\T)ETT*ETT*ETT*ATT)ATT)ATT)47ZSEZP=Z#9@*\H)23ZS3-8ER52&U;*!=4-5&2_&J`!5HM,$6R7?QF.Y#E`BY296HM*4?!J0Y7'9#E`B+4S&J`"1;EBKH/2Y#A`FF8A34_**0)G(+:6Y%E!S76)Y+1*$37>SE8A34_,B5IEH]33?R*.Y[&<C34S**`%E(I;-6=GBG5^S0*22Y!E]A3@Q""Z++`!%HM!4?!)0USHQ"*Y!%5Q9&)?A9&"Q1`!F]!1?@CHQ"*\!%XA#$VXD#=69G6ETH_2YD->YD->YD)=3-B\D-2\D-2\+SHC-RXC-RXC93M:D0-:D)':3JJ=J:A;;GURA00S-X?,RF(*)0%[J.[^[5[IXGXI4K4?(_K'L([<[);E88\WI[M63,Y,[DV/DV2DV*/L"]YU[]8GE(7B\WI[WJ;VJ+^K3NJC(`O-<4[?4DM?D$I?$^PO^>LO>NNONVOOV6KO6FMOF&IP&Z48QD@0S1PD\P84?0$S?.T]@T^^`T,_@@WU?HD`A@_F`]'\5&VX8:9V_!UQQ5<)!!!!! + 536903680 1.0.0.0 3 49 49 48 49 56 48 49 51 13 0 0 0 0 1 23 21 76 111 97 100 32 38 32 85 110 108 111 97 100 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 9 0 0 13 43 1 100 1 100 80 84 72 48 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 15 13 76 97 121 101 114 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 7 0 0 12 185 0 0 0 0 0 0 0 0 0 0 12 158 0 40 0 0 12 152 0 0 12 0 0 0 0 0 0 32 0 32 0 24 0 0 0 0 0 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7 86 73 32 73 99 111 110 100 1 0 2 0 0 0 6 76 88 45 68 101 118 0 0 0 0 0 0 0 0 0 0 0 0 0 100 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 83 109 97 108 108 32 70 111 110 116 115 0 1 8 1 1 @@ -11,134 +9,135 @@ - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - - - + + + + + - - - - + + + + - + - - - - - - - - + + + + + + + + - - - - - - + + + + + + - - - + + + - - - - - + + + + + - - - - - - - - + + + + + + + + - - - + + diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Initialize Device.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Initialize Device.vi index babb57bd..d70c5ad8 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Initialize Device.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Initialize Device.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/Analog/Analog Read.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/Analog/Analog Read.vi index ce91e225..587fc8f8 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/Analog/Analog Read.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/Analog/Analog Read.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/Analog/Analog Set Reference Voltage.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/Analog/Analog Set Reference Voltage.vi index e350857a..40f15d5e 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/Analog/Analog Set Reference Voltage.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/Analog/Analog Set Reference Voltage.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/Analog/Analog Write.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/Analog/Analog Write.vi index 58780801..b799a84d 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/Analog/Analog Write.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/Analog/Analog Write.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/Digital/Digital Read Pulse Width.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/Digital/Digital Read Pulse Width.vi index b201a559..cf363199 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/Digital/Digital Read Pulse Width.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/Digital/Digital Read Pulse Width.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/Digital/Digital Read.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/Digital/Digital Read.vi index 205cc33f..e809de8f 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/Digital/Digital Read.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/Digital/Digital Read.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/Digital/Digital Write Square Wave.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/Digital/Digital Write Square Wave.vi index b79ba7f9..1591e4a5 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/Digital/Digital Write Square Wave.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/Digital/Digital Write Square Wave.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/Digital/Digital Write.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/Digital/Digital Write.vi index 711d7407..3c5ab2f3 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/Digital/Digital Write.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/Digital/Digital Write.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/Digital/Set Digital Pin Mode.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/Digital/Set Digital Pin Mode.vi index 8af68da7..49e19371 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/Digital/Set Digital Pin Mode.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/Digital/Set Digital Pin Mode.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/I2C/I2C Close.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/I2C/I2C Close.vi index 502ca7a6..f9505223 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/I2C/I2C Close.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/I2C/I2C Close.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/I2C/I2C Open.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/I2C/I2C Open.vi index 1fc76a20..b38577f6 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/I2C/I2C Open.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/I2C/I2C Open.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/I2C/I2C Read.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/I2C/I2C Read.vi index c4cb5961..5c37f327 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/I2C/I2C Read.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/I2C/I2C Read.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/I2C/I2C Write.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/I2C/I2C Write.vi index 799ca68f..f410b407 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/I2C/I2C Write.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/I2C/I2C Write.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/PWM/Set Duty Cycle.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/PWM/Set Duty Cycle.vi index 853457d2..9f60a15d 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/PWM/Set Duty Cycle.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/PWM/Set Duty Cycle.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/SPI/SPI Open.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/SPI/SPI Open.vi index 1b283bb4..eb85a764 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/SPI/SPI Open.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/SPI/SPI Open.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/SPI/SPI Set Bit Order.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/SPI/SPI Set Bit Order.vi index d01c4ebe..42c1a5e0 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/SPI/SPI Set Bit Order.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/SPI/SPI Set Bit Order.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/SPI/SPI Set CS Logic Level.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/SPI/SPI Set CS Logic Level.vi index 3a834a2e..d3e32a84 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/SPI/SPI Set CS Logic Level.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/SPI/SPI Set CS Logic Level.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/SPI/SPI Set CS Pin.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/SPI/SPI Set CS Pin.vi index 7bb9457e..251062d1 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/SPI/SPI Set CS Pin.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/SPI/SPI Set CS Pin.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/SPI/SPI Set Clock Frequency.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/SPI/SPI Set Clock Frequency.vi index 05a4068e..6f425536 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/SPI/SPI Set Clock Frequency.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/SPI/SPI Set Clock Frequency.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/SPI/SPI Set Frame Size.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/SPI/SPI Set Frame Size.vi index 0695f5ca..8771cb61 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/SPI/SPI Set Frame Size.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/SPI/SPI Set Frame Size.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/SPI/SPI Set Mode.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/SPI/SPI Set Mode.vi index 5bd4849b..75d590d1 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/SPI/SPI Set Mode.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/SPI/SPI Set Mode.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/SPI/SPI Write Read.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/SPI/SPI Write Read.vi index 06bbc356..461a9632 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/SPI/SPI Write Read.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/SPI/SPI Write Read.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/Servo/Servo Close.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/Servo/Servo Close.vi index 73800f8d..ba89b266 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/Servo/Servo Close.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/Servo/Servo Close.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/Servo/Servo Open.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/Servo/Servo Open.vi index c9ad3080..ed7f6f77 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/Servo/Servo Open.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/Servo/Servo Open.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/Servo/Servo Set Pulse Width.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/Servo/Servo Set Pulse Width.vi index 7b2c380a..9d7568a1 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/Servo/Servo Set Pulse Width.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/Servo/Servo Set Pulse Width.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/UART/UART Close.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/UART/UART Close.vi index c31a3b3d..65045f58 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/UART/UART Close.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/UART/UART Close.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/UART/UART Get Bytes Available.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/UART/UART Get Bytes Available.vi index 0711de08..db949920 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/UART/UART Get Bytes Available.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/UART/UART Get Bytes Available.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/UART/UART Open.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/UART/UART Open.vi index 9a196379..1df1a619 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/UART/UART Open.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/UART/UART Open.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/UART/UART Read.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/UART/UART Read.vi index eeaf0eaf..5847dd3a 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/UART/UART Read.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/UART/UART Read.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/UART/UART Set Baud Rate.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/UART/UART Set Baud Rate.vi index 52c5f13e..77934d26 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/UART/UART Set Baud Rate.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/UART/UART Set Baud Rate.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/UART/UART Write.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/UART/UART Write.vi index 0992c328..1dcd3fe2 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/UART/UART Write.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/UART/UART Write.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/WS2812/WS2812 Close.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/WS2812/WS2812 Close.vi index 1ccad604..e4e7db8c 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/WS2812/WS2812 Close.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/WS2812/WS2812 Close.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/WS2812/WS2812 Open.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/WS2812/WS2812 Open.vi index 888942df..0f30eb0d 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/WS2812/WS2812 Open.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/WS2812/WS2812 Open.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/WS2812/WS2812 Refresh.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/WS2812/WS2812 Refresh.vi index 9ced591f..cf387037 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/WS2812/WS2812 Refresh.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/WS2812/WS2812 Refresh.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/WS2812/WS2812 Write N Pixels.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/WS2812/WS2812 Write N Pixels.vi index e0e7a9b9..5f930742 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/WS2812/WS2812 Write N Pixels.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/WS2812/WS2812 Write N Pixels.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/WS2812/WS2812 Write One Pixel.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/WS2812/WS2812 Write One Pixel.vi index b37af029..ec45f93e 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/WS2812/WS2812 Write One Pixel.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Peripheral/WS2812/WS2812 Write One Pixel.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Type Defs/AI Reference Mode.ctl b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Type Defs/AI Reference Mode.ctl index 7cf52e35..1db102fb 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Type Defs/AI Reference Mode.ctl and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Type Defs/AI Reference Mode.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Type Defs/Channels.ctl b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Type Defs/Channels.ctl index 0d329861..189fb1a5 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Type Defs/Channels.ctl and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Type Defs/Channels.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Type Defs/Firmware Interface.ctl b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Type Defs/Firmware Interface.ctl index ce218841..ddd25e2f 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Type Defs/Firmware Interface.ctl and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Type Defs/Firmware Interface.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Type Defs/Firmware Version.ctl b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Type Defs/Firmware Version.ctl index 27572ff5..c69f9e8a 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Type Defs/Firmware Version.ctl and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Type Defs/Firmware Version.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Type Defs/LINX Device Config.ctl b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Type Defs/LINX Device Config.ctl index 1144f117..2b82358f 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Type Defs/LINX Device Config.ctl and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Type Defs/LINX Device Config.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Type Defs/Packet Number FGV Action.ctl b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Type Defs/Packet Number FGV Action.ctl index 58b922c2..e804aa24 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Type Defs/Packet Number FGV Action.ctl and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Type Defs/Packet Number FGV Action.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Type Defs/Pulse Polarity.ctl b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Type Defs/Pulse Polarity.ctl index d1f51ea4..69958fca 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Type Defs/Pulse Polarity.ctl and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Type Defs/Pulse Polarity.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Type Defs/Stimulus Pulse.ctl b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Type Defs/Stimulus Pulse.ctl index 137b9d6b..2e401e31 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Type Defs/Stimulus Pulse.ctl and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Type Defs/Stimulus Pulse.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Type Defs/TCP Config.ctl b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Type Defs/TCP Config.ctl index 2a7d6b98..64c6f728 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Type Defs/TCP Config.ctl and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Type Defs/TCP Config.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Type Defs/Wifi Config.ctl b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Type Defs/Wifi Config.ctl index d293b6ba..d065956c 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Type Defs/Wifi Config.ctl and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Type Defs/Wifi Config.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Bit Pack.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Bit Pack.vi index 2c2b53a1..ae283933 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Bit Pack.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Bit Pack.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Bit Unpack.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Bit Unpack.vi index 54d9b69a..f965815f 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Bit Unpack.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Bit Unpack.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Check Firmware Version.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Check Firmware Version.vi index afe0003b..a051b469 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Check Firmware Version.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Check Firmware Version.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Checksum.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Checksum.vi index e9c0bc27..fda1cac9 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Checksum.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Checksum.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Configure Ethernet.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Configure Ethernet.vi index 36cfab31..f5c61c20 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Configure Ethernet.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Configure Ethernet.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Configure LINX Device.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Configure LINX Device.vi index 4bea00ee..5937a92a 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Configure LINX Device.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Configure LINX Device.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Configure Wifi.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Configure Wifi.vi index 17d48286..a4601313 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Configure Wifi.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Configure Wifi.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Fast Find COM Ports.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Fast Find COM Ports.vi index 67d52e89..9fd249dc 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Fast Find COM Ports.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Fast Find COM Ports.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get AI Channels.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get AI Channels.vi index 8199e545..a4da0f2e 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get AI Channels.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get AI Channels.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get AI Ref Voltage.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get AI Ref Voltage.vi index d4d88af3..62573e17 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get AI Ref Voltage.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get AI Ref Voltage.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get AI Ref.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get AI Ref.vi index d29b509c..b23ce908 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get AI Ref.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get AI Ref.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get AO Channels.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get AO Channels.vi index 1d70e4c1..4b00b5d1 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get AO Channels.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get AO Channels.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get CAN Channels.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get CAN Channels.vi index 240e106d..751c083a 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get CAN Channels.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get CAN Channels.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get DIO Channels.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get DIO Channels.vi index a87c390f..b6315e93 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get DIO Channels.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get DIO Channels.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get Device AO Data.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get Device AO Data.vi index ba32c6d3..07651be0 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get Device AO Data.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get Device AO Data.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get Device ID.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get Device ID.vi index 9b706490..c4f8afac 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get Device ID.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get Device ID.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get Device Name.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get Device Name.vi index aaa4bbf9..be6aa94f 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get Device Name.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get Device Name.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get Device User ID.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get Device User ID.vi index 6956ec0a..d8177e19 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get Device User ID.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get Device User ID.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get Ethernet IP.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get Ethernet IP.vi index 2d05f8b3..5ad315b6 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get Ethernet IP.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get Ethernet IP.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get Ethernet Port.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get Ethernet Port.vi index 2dc202c3..0ca488a5 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get Ethernet Port.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get Ethernet Port.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get Firmware Version.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get Firmware Version.vi index 919cebda..f72baf2f 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get Firmware Version.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get Firmware Version.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get I2C Channels.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get I2C Channels.vi index a2199f10..dc519968 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get I2C Channels.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get I2C Channels.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get Max Baud Rate.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get Max Baud Rate.vi index 9e9f0880..175eca1f 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get Max Baud Rate.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get Max Baud Rate.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get PWM Channels.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get PWM Channels.vi index 00063a6d..97aed862 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get PWM Channels.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get PWM Channels.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get QE Channels.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get QE Channels.vi index a97d7abc..d34f77a3 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get QE Channels.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get QE Channels.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get SPI Channels.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get SPI Channels.vi index e0b4bc1e..855dbc89 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get SPI Channels.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get SPI Channels.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get Serial Interface Max Baud.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get Serial Interface Max Baud.vi index e0eb5d58..0dd15699 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get Serial Interface Max Baud.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get Serial Interface Max Baud.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get Servo Channels.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get Servo Channels.vi index 6e96b4a1..bde4a767 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get Servo Channels.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get Servo Channels.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get UART Channels.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get UART Channels.vi index 04029156..ea3ad899 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get UART Channels.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get UART Channels.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get WIFI IP.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get WIFI IP.vi index 9ef6f21f..fd95f3d5 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get WIFI IP.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get WIFI IP.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get WIFI Port.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get WIFI Port.vi index e2313af4..1d74d568 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get WIFI Port.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get WIFI Port.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get WIFI SSID.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get WIFI SSID.vi index 027366ce..d2c930fd 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get WIFI SSID.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get WIFI SSID.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get WIFI Secuirty Type.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get WIFI Secuirty Type.vi index eb8789f1..f9af3c10 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get WIFI Secuirty Type.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Get WIFI Secuirty Type.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/LINX VI API Version.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/LINX VI API Version.vi index 609a1531..d912821b 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/LINX VI API Version.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/LINX VI API Version.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Load Device Config.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Load Device Config.vi index e613c796..11881cb4 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Load Device Config.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Load Device Config.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Loop Frequency.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Loop Frequency.vi index e08760e4..0103d33b 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Loop Frequency.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Loop Frequency.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Pack A0 Values.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Pack A0 Values.vi index 9c13f5a0..4cf1e793 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Pack A0 Values.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Pack A0 Values.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Packet Number.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Packet Number.vi index b13a3d27..857fb173 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Packet Number.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Packet Number.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Packetize.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Packetize.vi index e4c34953..c9a647b6 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Packetize.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Packetize.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Reset VISA Device.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Reset VISA Device.vi index b608f58f..f207411e 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Reset VISA Device.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Reset VISA Device.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Send Command.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Send Command.vi index cc2501ba..da729390 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Send Command.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Send Command.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Set Device Baud Rate.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Set Device Baud Rate.vi index 88dcc512..35f221ae 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Set Device Baud Rate.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Set Device Baud Rate.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Set Device User ID.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Set Device User ID.vi index 230dfb90..f72b1803 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Set Device User ID.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Set Device User ID.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Set Ethernet IP.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Set Ethernet IP.vi index 873ecfa4..0a0b3c8c 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Set Ethernet IP.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Set Ethernet IP.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Set Ethernet Port.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Set Ethernet Port.vi index ea04dbbd..27aa0840 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Set Ethernet Port.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Set Ethernet Port.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Set Serial Interface Max Baud.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Set Serial Interface Max Baud.vi index 600270f7..74c1bcdb 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Set Serial Interface Max Baud.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Set Serial Interface Max Baud.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Set WIFI IP.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Set WIFI IP.vi index d3cf19a2..a08db29f 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Set WIFI IP.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Set WIFI IP.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Set WIFI Password.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Set WIFI Password.vi index fb02e626..b830bc31 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Set WIFI Password.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Set WIFI Password.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Set WIFI Port.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Set WIFI Port.vi index ef97af23..61ae5037 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Set WIFI Port.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Set WIFI Port.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Set WIFI SSID.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Set WIFI SSID.vi index 04ba43d4..e9e32d7f 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Set WIFI SSID.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Set WIFI SSID.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Set WIFI Security Type.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Set WIFI Security Type.vi index 31b81e7f..d6f37444 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Set WIFI Security Type.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Set WIFI Security Type.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Synchronize.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Synchronize.vi index f8559fc4..aa2cf694 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Synchronize.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Synchronize.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Unpack AI Values.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Unpack AI Values.vi index 7df3a035..22304b11 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Unpack AI Values.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Unpack AI Values.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Wait For Bytes.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Wait For Bytes.vi index 75cf1095..8a873084 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Wait For Bytes.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Wait For Bytes.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Wait For Packet.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Wait For Packet.vi index 33fc16e1..6e4ed3d7 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Wait For Packet.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Wait For Packet.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Wrappers/Serial Flush.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Wrappers/Serial Flush.vi index 41b05499..0908959b 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Wrappers/Serial Flush.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Wrappers/Serial Flush.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Wrappers/Serial Open.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Wrappers/Serial Open.vi index 7794d48c..03c8fd6e 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Wrappers/Serial Open.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Wrappers/Serial Open.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Wrappers/Serial Read.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Wrappers/Serial Read.vi index c6868a59..bef714f9 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Wrappers/Serial Read.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Wrappers/Serial Read.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Wrappers/Serial Set Baud.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Wrappers/Serial Set Baud.vi index ce847d88..9bd245c6 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Wrappers/Serial Set Baud.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Wrappers/Serial Set Baud.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Wrappers/Serial Write.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Wrappers/Serial Write.vi index 0ed2867d..344b5e1a 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Wrappers/Serial Write.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Wrappers/Serial Write.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Wrappers/TCP Close.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Wrappers/TCP Close.vi index c7500e6d..25c75db1 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Wrappers/TCP Close.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Wrappers/TCP Close.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Wrappers/TCP Flush.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Wrappers/TCP Flush.vi index 1fe81183..b2999a65 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Wrappers/TCP Flush.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Wrappers/TCP Flush.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Wrappers/TCP Open.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Wrappers/TCP Open.vi index 4427da57..f360fd51 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Wrappers/TCP Open.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Wrappers/TCP Open.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Wrappers/TCP Read.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Wrappers/TCP Read.vi index ce6fb205..c72cc805 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Wrappers/TCP Read.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Wrappers/TCP Read.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Wrappers/TCP Write.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Wrappers/TCP Write.vi index 49040b96..627c9521 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Wrappers/TCP Write.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Device/Utilities/Wrappers/TCP Write.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/Conditional Disable Helper.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/Conditional Disable Helper.vi index d2e28b80..a8cd7d0f 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/Conditional Disable Helper.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/Conditional Disable Helper.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/Handle Errors.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/Handle Errors.vi index 2f660e8c..834d3e1f 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/Handle Errors.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/Handle Errors.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxAiGetChans.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxAiGetChans.vi index 3cef48b1..c964cd75 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxAiGetChans.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxAiGetChans.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxAiGetNumChans.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxAiGetNumChans.vi index b08f3c3c..5fa1a55e 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxAiGetNumChans.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxAiGetNumChans.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxAiGetRefSetVoltage.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxAiGetRefSetVoltage.vi index ab2b2b22..b4352d22 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxAiGetRefSetVoltage.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxAiGetRefSetVoltage.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxAiGetResolution.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxAiGetResolution.vi index 3aa0368b..ddb263ac 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxAiGetResolution.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxAiGetResolution.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxAnalogRead.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxAnalogRead.vi index cbc9f1eb..8c2b3ffe 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxAnalogRead.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxAnalogRead.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxAoGetChans.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxAoGetChans.vi index 8aba3377..0beee28d 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxAoGetChans.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxAoGetChans.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxAoGetNumChans.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxAoGetNumChans.vi index 7eb8837b..3791b2b4 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxAoGetNumChans.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxAoGetNumChans.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxAoGetRefSetVoltage.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxAoGetRefSetVoltage.vi index 571e5ace..f1990a2d 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxAoGetRefSetVoltage.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxAoGetRefSetVoltage.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxAoGetResolution.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxAoGetResolution.vi index c5668749..9fa9bfa8 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxAoGetResolution.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxAoGetResolution.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxCanGetChans.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxCanGetChans.vi index 92d04190..20d8b183 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxCanGetChans.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxCanGetChans.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxCanGetNumChans.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxCanGetNumChans.vi index b4add14e..edcea847 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxCanGetNumChans.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxCanGetNumChans.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxClose.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxClose.vi index 1c3ef812..422be7b2 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxClose.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxClose.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxDigitalGetChans.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxDigitalGetChans.vi index 16cf6c8a..57566c07 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxDigitalGetChans.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxDigitalGetChans.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxDigitalGetNumChans.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxDigitalGetNumChans.vi index 34252188..68a7c221 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxDigitalGetNumChans.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxDigitalGetNumChans.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxDigitalRead.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxDigitalRead.vi index b361c0f2..6003ba11 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxDigitalRead.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxDigitalRead.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxDigitalWrite.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxDigitalWrite.vi index a5e63dcd..cc37f360 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxDigitalWrite.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxDigitalWrite.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxGetDeviceFamily.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxGetDeviceFamily.vi index 650da108..9031a5de 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxGetDeviceFamily.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxGetDeviceFamily.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxGetDeviceId.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxGetDeviceId.vi index aeb82c83..69c06a0b 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxGetDeviceId.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxGetDeviceId.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxGetDeviceName.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxGetDeviceName.vi index f3e9acd5..026e4f65 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxGetDeviceName.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxGetDeviceName.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxI2cClose.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxI2cClose.vi index e22f5ff6..4d6b936d 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxI2cClose.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxI2cClose.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxI2cGetChans.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxI2cGetChans.vi index c57e9010..fd833b69 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxI2cGetChans.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxI2cGetChans.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxI2cGetNumChans.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxI2cGetNumChans.vi index 6235d1df..9008ab3d 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxI2cGetNumChans.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxI2cGetNumChans.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxI2cOpen.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxI2cOpen.vi index aca67dfb..0ee12bab 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxI2cOpen.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxI2cOpen.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxI2cRead.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxI2cRead.vi index 8c02dc3d..fb8256f6 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxI2cRead.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxI2cRead.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxI2cWrite.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxI2cWrite.vi index f8bd1293..897d38d6 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxI2cWrite.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxI2cWrite.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxOpen.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxOpen.vi index 3cdd2859..e9e00f3a 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxOpen.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxOpen.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxPwmGetChans.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxPwmGetChans.vi index 8ad52502..7572d31d 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxPwmGetChans.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxPwmGetChans.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxPwmGetNumChans.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxPwmGetNumChans.vi index 4e2f9420..4443946b 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxPwmGetNumChans.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxPwmGetNumChans.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxPwmSetDutyCycle.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxPwmSetDutyCycle.vi index 0437e31b..fef9993c 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxPwmSetDutyCycle.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxPwmSetDutyCycle.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxQeGetChans.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxQeGetChans.vi index 90429689..6344cb52 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxQeGetChans.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxQeGetChans.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxQeGetNumChans.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxQeGetNumChans.vi index 0971bdaa..492fffaf 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxQeGetNumChans.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxQeGetNumChans.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxServoGetChans.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxServoGetChans.vi index e766cedb..7d47b8e3 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxServoGetChans.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxServoGetChans.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxServoGetNumChans.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxServoGetNumChans.vi index 3773d9f9..40fd18a8 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxServoGetNumChans.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxServoGetNumChans.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxSpiConfigure.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxSpiConfigure.vi index 56828583..31c4ab84 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxSpiConfigure.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxSpiConfigure.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxSpiGetChans.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxSpiGetChans.vi index d863e65c..1331f37c 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxSpiGetChans.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxSpiGetChans.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxSpiGetNumChans.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxSpiGetNumChans.vi index 45f1a17a..cdaab7cf 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxSpiGetNumChans.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxSpiGetNumChans.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxSpiOpenMaster.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxSpiOpenMaster.vi index b42afbce..cfd31e7e 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxSpiOpenMaster.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxSpiOpenMaster.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxSpiSetBitOrder.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxSpiSetBitOrder.vi index 5535a167..fc0307f7 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxSpiSetBitOrder.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxSpiSetBitOrder.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxSpiWriteRead.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxSpiWriteRead.vi index 2ec20675..5677618c 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxSpiWriteRead.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxSpiWriteRead.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxUartClose.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxUartClose.vi index 49f85428..9735cb84 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxUartClose.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxUartClose.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxUartGetBytesAvailable.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxUartGetBytesAvailable.vi index 6cc6be14..5643bbc7 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxUartGetBytesAvailable.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxUartGetBytesAvailable.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxUartGetChans.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxUartGetChans.vi index d9785bf3..0b254b00 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxUartGetChans.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxUartGetChans.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxUartGetNumChans.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxUartGetNumChans.vi index 040659a8..04779cce 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxUartGetNumChans.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxUartGetNumChans.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxUartOpen.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxUartOpen.vi index 3d0288b3..085c6b62 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxUartOpen.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxUartOpen.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxUartRead.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxUartRead.vi index 6631b720..41b941fc 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxUartRead.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxUartRead.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxUartSetBaudRate.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxUartSetBaudRate.vi index de77d929..e8b2379c 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxUartSetBaudRate.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxUartSetBaudRate.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxUartWrite.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxUartWrite.vi index 62c1b980..b6f8a177 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxUartWrite.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/LinxUartWrite.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/Utilities/Load Device Channels.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/Utilities/Load Device Channels.vi index a454f336..64d30bdb 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/Utilities/Load Device Channels.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/Utilities/Load Device Channels.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/Utilities/Load Device Info.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/Utilities/Load Device Info.vi index dad15f75..1c8e2653 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/Utilities/Load Device Info.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/Utilities/Load Device Info.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/liblinxdevice Path.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/liblinxdevice Path.vi index 028fa2da..69d7039b 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/liblinxdevice Path.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Local IO/liblinxdevice Path.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/All Firmware Data FGV States.ctl b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/All Firmware Data FGV States.ctl index f0a73377..e99df822 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/All Firmware Data FGV States.ctl and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/All Firmware Data FGV States.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Baud Rate.ctl b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Baud Rate.ctl index fd7fd335..4415ec11 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Baud Rate.ctl and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Baud Rate.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Channel FGV States.ctl b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Channel FGV States.ctl index d3a23cf7..13c330cf 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Channel FGV States.ctl and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Channel FGV States.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Deploy Firmware State.ctl b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Deploy Firmware State.ctl index 422af108..4c6a0a0f 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Deploy Firmware State.ctl and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Deploy Firmware State.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Device Data.ctl b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Device Data.ctl index a360d5bf..53e9eab9 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Device Data.ctl and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Device Data.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Device Family.ctl b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Device Family.ctl index 78f4dc9c..4ee05fee 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Device Family.ctl and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Device Family.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Device Firmware.ctl b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Device Firmware.ctl index 8f11e4b0..f60f4a80 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Device Firmware.ctl and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Device Firmware.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices - Arduino.ctl b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices - Arduino.ctl index 5f5b02df..e1a158d9 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices - Arduino.ctl and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices - Arduino.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices - Digilent.ctl b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices - Digilent.ctl index c4d6551c..2b98b34f 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices - Digilent.ctl and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices - Digilent.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices - NI.ctl b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices - NI.ctl index 76600fb2..e42ed818 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices - NI.ctl and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices - NI.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices/Arduino/Arduino Due.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices/Arduino/Arduino Due.vi index 04b6a56a..6f890f5f 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices/Arduino/Arduino Due.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices/Arduino/Arduino Due.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices/Arduino/Arduino Fio.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices/Arduino/Arduino Fio.vi index 3b6a5032..5531d105 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices/Arduino/Arduino Fio.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices/Arduino/Arduino Fio.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices/Arduino/Arduino Leonardo.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices/Arduino/Arduino Leonardo.vi index e8325144..282f660d 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices/Arduino/Arduino Leonardo.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices/Arduino/Arduino Leonardo.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices/Arduino/Arduino Mega 1280.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices/Arduino/Arduino Mega 1280.vi index 6528db17..32851488 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices/Arduino/Arduino Mega 1280.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices/Arduino/Arduino Mega 1280.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices/Arduino/Arduino Mega 2560.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices/Arduino/Arduino Mega 2560.vi index fee24700..ec33f0db 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices/Arduino/Arduino Mega 2560.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices/Arduino/Arduino Mega 2560.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices/Arduino/Arduino Nano.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices/Arduino/Arduino Nano.vi index 4391a633..de8f80d5 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices/Arduino/Arduino Nano.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices/Arduino/Arduino Nano.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices/Arduino/Arduino Pro Mini.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices/Arduino/Arduino Pro Mini.vi index 5709b69e..ce8ba582 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices/Arduino/Arduino Pro Mini.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices/Arduino/Arduino Pro Mini.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices/Arduino/Arduino Pro.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices/Arduino/Arduino Pro.vi index 469f3565..186d7444 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices/Arduino/Arduino Pro.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices/Arduino/Arduino Pro.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices/Arduino/Arduino Uno.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices/Arduino/Arduino Uno.vi index 1b4b202b..347c6eb0 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices/Arduino/Arduino Uno.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices/Arduino/Arduino Uno.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices/Arduino/Arduino Yun.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices/Arduino/Arduino Yun.vi index 002e9253..05514472 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices/Arduino/Arduino Yun.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices/Arduino/Arduino Yun.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices/Device Type.ctl b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices/Device Type.ctl index c0c22b73..4c4bfec6 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices/Device Type.ctl and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices/Device Type.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices/Digilent/chipKIT DP32.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices/Digilent/chipKIT DP32.vi index a677256f..cc92fa08 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices/Digilent/chipKIT DP32.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices/Digilent/chipKIT DP32.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices/Digilent/chipKIT Max32.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices/Digilent/chipKIT Max32.vi index 43d75292..e819617e 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices/Digilent/chipKIT Max32.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices/Digilent/chipKIT Max32.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices/Digilent/chipKIT Uno32.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices/Digilent/chipKIT Uno32.vi index d9ec3f57..99cca826 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices/Digilent/chipKIT Uno32.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices/Digilent/chipKIT Uno32.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices/Digilent/chipKIT WF32.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices/Digilent/chipKIT WF32.vi index 7d3c5e95..a3181374 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices/Digilent/chipKIT WF32.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices/Digilent/chipKIT WF32.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices/Digilent/chipKIT uC32.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices/Digilent/chipKIT uC32.vi index fb4d8ffe..1f9edc96 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices/Digilent/chipKIT uC32.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices/Digilent/chipKIT uC32.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices/Generic Device.ctl b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices/Generic Device.ctl index d9373485..25d34b7f 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices/Generic Device.ctl and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices/Generic Device.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices/NI/myRI0-1900.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices/NI/myRI0-1900.vi index f0868458..6326c59d 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices/NI/myRI0-1900.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices/NI/myRI0-1900.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices/NI/myRI0-1950.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices/NI/myRI0-1950.vi index 78b35f28..18d9c2f7 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices/NI/myRI0-1950.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Devices/NI/myRI0-1950.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Error Type.ctl b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Error Type.ctl index 1409d5fe..8322463e 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Error Type.ctl and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Error Type.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/FGV Operation.ctl b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/FGV Operation.ctl index f4f6d46c..005ac153 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/FGV Operation.ctl and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/FGV Operation.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Firmware Library Component.ctl b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Firmware Library Component.ctl index 7bb1bbb7..4e46d4be 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Firmware Library Component.ctl and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Firmware Library Component.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Firmware Program Interface.ctl b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Firmware Program Interface.ctl index 9c71f13c..af243605 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Firmware Program Interface.ctl and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Firmware Program Interface.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Firmware Version.ctl b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Firmware Version.ctl index ada0e1ac..f173fccf 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Firmware Version.ctl and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Firmware Version.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Interface.ctl b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Interface.ctl index dcf5ac8f..9431e553 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Interface.ctl and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Interface.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/LINX Ref.ctl b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/LINX Ref.ctl index 3d4d634c..0ca10b7c 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/LINX Ref.ctl and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/LINX Ref.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Peripheral.ctl b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Peripheral.ctl index 54073bfa..6575e213 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Peripheral.ctl and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Peripheral.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Peripherals/Digital/Digital Pin Configuration.ctl b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Peripherals/Digital/Digital Pin Configuration.ctl index 648d79d5..e108b7b5 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Peripherals/Digital/Digital Pin Configuration.ctl and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Peripherals/Digital/Digital Pin Configuration.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Peripherals/Digital/Digital Pin Mode.ctl b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Peripherals/Digital/Digital Pin Mode.ctl index e0bd5820..0df8f979 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Peripherals/Digital/Digital Pin Mode.ctl and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Peripherals/Digital/Digital Pin Mode.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Peripherals/Digital/Digital Write Control.ctl b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Peripherals/Digital/Digital Write Control.ctl index 62a727d9..521bb61d 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Peripherals/Digital/Digital Write Control.ctl and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Peripherals/Digital/Digital Write Control.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Peripherals/I2C/EOF.ctl b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Peripherals/I2C/EOF.ctl index 6b2e556a..8a614fdb 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Peripherals/I2C/EOF.ctl and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Peripherals/I2C/EOF.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Peripherals/PWM/PWM Duty Cycle Control.ctl b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Peripherals/PWM/PWM Duty Cycle Control.ctl index e815810f..d58dc27e 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Peripherals/PWM/PWM Duty Cycle Control.ctl and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Peripherals/PWM/PWM Duty Cycle Control.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Peripherals/SPI/SPI Bit Order.ctl b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Peripherals/SPI/SPI Bit Order.ctl index 4c7b948d..fb5b4dc4 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Peripherals/SPI/SPI Bit Order.ctl and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Peripherals/SPI/SPI Bit Order.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Peripherals/SPI/SPI CS Logic Level.ctl b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Peripherals/SPI/SPI CS Logic Level.ctl index ecaa390a..d8cdf781 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Peripherals/SPI/SPI CS Logic Level.ctl and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Peripherals/SPI/SPI CS Logic Level.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Peripherals/SPI/SPI Clock Phase.ctl b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Peripherals/SPI/SPI Clock Phase.ctl index 1b4a57cd..397c9e8e 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Peripherals/SPI/SPI Clock Phase.ctl and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Peripherals/SPI/SPI Clock Phase.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Peripherals/SPI/SPI Clock Polarity.ctl b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Peripherals/SPI/SPI Clock Polarity.ctl index a009c6fb..5bf058a5 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Peripherals/SPI/SPI Clock Polarity.ctl and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Peripherals/SPI/SPI Clock Polarity.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Peripherals/SPI/SPI Configuration.ctl b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Peripherals/SPI/SPI Configuration.ctl index c47366f6..ee404045 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Peripherals/SPI/SPI Configuration.ctl and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Peripherals/SPI/SPI Configuration.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Peripherals/SPI/SPI Mode.ctl b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Peripherals/SPI/SPI Mode.ctl index 008231f5..42ce2518 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Peripherals/SPI/SPI Mode.ctl and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Peripherals/SPI/SPI Mode.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Platform.ctl b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Platform.ctl index d880adad..802d2c22 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Platform.ctl and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Platform.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Seven Segment Control.ctl b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Seven Segment Control.ctl index 746fb257..4c62042f 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Seven Segment Control.ctl and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Seven Segment Control.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Temperature Units.ctl b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Temperature Units.ctl index 4510261d..f03ac092 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Temperature Units.ctl and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Temperature Units.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Thumbstick Data.ctl b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Thumbstick Data.ctl index 00db2468..78619933 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Thumbstick Data.ctl and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/Thumbstick Data.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/User Platform.ctl b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/User Platform.ctl index 02d5ccda..08163f5f 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/User Platform.ctl and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/User Platform.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/WIFI Security Type.ctl b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/WIFI Security Type.ctl index 6656b813..16b81108 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/WIFI Security Type.ctl and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Type Defs/WIFI Security Type.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/All Firmware Data FGV.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/All Firmware Data FGV.vi index cca50a99..881360a9 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/All Firmware Data FGV.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/All Firmware Data FGV.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Baud Rate To Value.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Baud Rate To Value.vi index 88417e19..1ab59337 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Baud Rate To Value.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Baud Rate To Value.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Breakup Version String.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Breakup Version String.vi index 011310a0..583d69de 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Breakup Version String.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Breakup Version String.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Channel FGVs/I2C Channels.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Channel FGVs/I2C Channels.vi index 1828d178..3d29b81a 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Channel FGVs/I2C Channels.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Channel FGVs/I2C Channels.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Channel FGVs/SPI Channels.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Channel FGVs/SPI Channels.vi index 529e2223..38847e5a 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Channel FGVs/SPI Channels.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Channel FGVs/SPI Channels.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Channel FGVs/UART Channels.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Channel FGVs/UART Channels.vi index a8456e44..82b21ac8 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Channel FGVs/UART Channels.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Channel FGVs/UART Channels.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Check For Empty Path.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Check For Empty Path.vi index 37001f8c..79912a7c 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Check For Empty Path.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Check For Empty Path.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Check myRIO Status.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Check myRIO Status.vi index 2906a69b..0823c37b 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Check myRIO Status.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Check myRIO Status.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Clean Error Call Chain.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Clean Error Call Chain.vi index b962f609..e24c8884 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Clean Error Call Chain.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Clean Error Call Chain.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Clear INI Settings.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Clear INI Settings.vi index efd737e6..cee43f94 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Clear INI Settings.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Clear INI Settings.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/CommandLineUploadWizardInt.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/CommandLineUploadWizardInt.vi index f9860a4f..338df55a 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/CommandLineUploadWizardInt.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/CommandLineUploadWizardInt.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Configure Target - Legacy.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Configure Target - Legacy.vi index 15bf51b6..91a9db76 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Configure Target - Legacy.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Configure Target - Legacy.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Copy Firmware Libraries.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Copy Firmware Libraries.vi index 3ae3251b..efb5c35c 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Copy Firmware Libraries.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Copy Firmware Libraries.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Device ID to Name.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Device ID to Name.vi index dddb8670..f3c10d48 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Device ID to Name.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Device ID to Name.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/E14 BBB Test.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/E14 BBB Test.vi index 62e84435..f266ae2a 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/E14 BBB Test.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/E14 BBB Test.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Enter Leonardo Bootloader.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Enter Leonardo Bootloader.vi index 112b28ae..5ecd3f1d 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Enter Leonardo Bootloader.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Enter Leonardo Bootloader.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Firmware Wizard Check INI.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Firmware Wizard Check INI.vi index 74cc60f7..07dcaaa6 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Firmware Wizard Check INI.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Firmware Wizard Check INI.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Firmware Wizard Config.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Firmware Wizard Config.vi index 7b874a5d..3da365e5 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Firmware Wizard Config.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Firmware Wizard Config.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Format Version for Display.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Format Version for Display.vi index bb92e124..ecfc6ffd 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Format Version for Display.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Format Version for Display.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Generate Error.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Generate Error.vi index 5ee2c4f5..e190bad0 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Generate Error.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Generate Error.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Generate Firmware Interface Config Message.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Generate Firmware Interface Config Message.vi index af61b05d..b80184f6 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Generate Firmware Interface Config Message.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Generate Firmware Interface Config Message.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Generate Firmware Wizard Summary Message.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Generate Firmware Wizard Summary Message.vi index c5538e79..c13723e9 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Generate Firmware Wizard Summary Message.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Generate Firmware Wizard Summary Message.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Get Arduino Base Path.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Get Arduino Base Path.vi index 4ae17a64..a8f572b6 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Get Arduino Base Path.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Get Arduino Base Path.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Get Device Config_OLD.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Get Device Config_OLD.vi index 7cf4a1c0..96d7f85f 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Get Device Config_OLD.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Get Device Config_OLD.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Get Devices In Family.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Get Devices In Family.vi index 6863b499..d16f0671 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Get Devices In Family.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Get Devices In Family.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Get Firmware Builds Base Path.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Get Firmware Builds Base Path.vi index e70a6095..2e364722 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Get Firmware Builds Base Path.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Get Firmware Builds Base Path.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Get Firmware Pogram Interface Index.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Get Firmware Pogram Interface Index.vi index 1442fc25..988d1129 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Get Firmware Pogram Interface Index.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Get Firmware Pogram Interface Index.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Get Firmware Program Interfaces.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Get Firmware Program Interfaces.vi index 5f2cafae..62f85fcf 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Get Firmware Program Interfaces.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Get Firmware Program Interfaces.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Get Firmware Version Names.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Get Firmware Version Names.vi index dbc2996d..9bf33b55 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Get Firmware Version Names.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Get Firmware Version Names.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Get Unique Directory.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Get Unique Directory.vi index 666de055..2223ce48 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Get Unique Directory.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Get Unique Directory.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Install LV Events.ctl b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Install LV Events.ctl index d07e29cd..9db8ad9f 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Install LV Events.ctl and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Install LV Events.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Install LabVIEW Support Legacy.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Install LabVIEW Support Legacy.vi index cebdadfd..1dd927fc 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Install LabVIEW Support Legacy.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Install LabVIEW Support Legacy.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Load All Firmware Config Data.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Load All Firmware Config Data.vi index b5b8a170..5fe53c5b 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Load All Firmware Config Data.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Load All Firmware Config Data.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Load Device Image.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Load Device Image.vi index 517c0d67..4cef1b11 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Load Device Image.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Load Device Image.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Load Firmware Data.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Load Firmware Data.vi index 70e8b2ec..09d68048 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Load Firmware Data.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Load Firmware Data.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Make Versioned Name.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Make Versioned Name.vi index 3295d71a..f01dacda 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Make Versioned Name.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Make Versioned Name.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Post-Install Custom Action.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Post-Install Custom Action.vi index f8ed86ac..fb5ed337 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Post-Install Custom Action.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Post-Install Custom Action.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Read DEV INI.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Read DEV INI.vi index 09c3bb90..7bc79a5b 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Read DEV INI.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Read DEV INI.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Read FW INI.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Read FW INI.vi index f7c4e992..b516d93d 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Read FW INI.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Read FW INI.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Reboot Target.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Reboot Target.vi index 823c0360..1b2e5617 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Reboot Target.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Reboot Target.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/SSH/SCP Close.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/SSH/SCP Close.vi index 91ccd160..ee963697 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/SSH/SCP Close.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/SSH/SCP Close.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/SSH/SCP Open.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/SSH/SCP Open.vi index a97af043..25b85081 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/SSH/SCP Open.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/SSH/SCP Open.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/SSH/SCP Upload File.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/SSH/SCP Upload File.vi index 67c1a18e..c7288478 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/SSH/SCP Upload File.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/SSH/SCP Upload File.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/SSH/SCP Wrapper.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/SSH/SCP Wrapper.vi index c5458687..91183f93 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/SSH/SCP Wrapper.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/SSH/SCP Wrapper.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/SSH/SSH Async Execute Command.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/SSH/SSH Async Execute Command.vi index 94761fec..30969e7d 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/SSH/SSH Async Execute Command.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/SSH/SSH Async Execute Command.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/SSH/SSH Close.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/SSH/SSH Close.vi index 156c1bc9..0020e06c 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/SSH/SSH Close.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/SSH/SSH Close.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/SSH/SSH Execute Command Wrapper.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/SSH/SSH Execute Command Wrapper.vi index a6171e62..2f81f5d7 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/SSH/SSH Execute Command Wrapper.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/SSH/SSH Execute Command Wrapper.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/SSH/SSH Execute Command.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/SSH/SSH Execute Command.vi index 1d65eea8..ea0e5ced 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/SSH/SSH Execute Command.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/SSH/SSH Execute Command.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/SSH/SSH Get .NET Refnum.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/SSH/SSH Get .NET Refnum.vi index 4bb552cd..7542e5dd 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/SSH/SSH Get .NET Refnum.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/SSH/SSH Get .NET Refnum.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/SSH/SSH Get Pipe Descriptor.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/SSH/SSH Get Pipe Descriptor.vi index 259a0c7e..f6183914 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/SSH/SSH Get Pipe Descriptor.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/SSH/SSH Get Pipe Descriptor.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/SSH/SSH Open.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/SSH/SSH Open.vi index 5b9552ad..e86d1446 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/SSH/SSH Open.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/SSH/SSH Open.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/SSH/SSH Set .NET Refnum.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/SSH/SSH Set .NET Refnum.vi index badece19..3509d74a 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/SSH/SSH Set .NET Refnum.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/SSH/SSH Set .NET Refnum.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/SSH/SSH Set Pipe Descriptor.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/SSH/SSH Set Pipe Descriptor.vi index e6671e49..d1d7ab93 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/SSH/SSH Set Pipe Descriptor.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/SSH/SSH Set Pipe Descriptor.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/SSH/SSH Unix Make Temp Pwd File.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/SSH/SSH Unix Make Temp Pwd File.vi index 638ced63..ac8c3397 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/SSH/SSH Unix Make Temp Pwd File.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/SSH/SSH Unix Make Temp Pwd File.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/SSH/SSH Unix Session FGV.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/SSH/SSH Unix Session FGV.vi index c67dee6d..c6c4f2cf 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/SSH/SSH Unix Session FGV.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/SSH/SSH Unix Session FGV.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/SSH/SSH Unix Session Info.ctl b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/SSH/SSH Unix Session Info.ctl index 8b12150e..ef0aa5ac 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/SSH/SSH Unix Session Info.ctl and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/SSH/SSH Unix Session Info.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/SSH/SSH Unix Session Op.ctl b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/SSH/SSH Unix Session Op.ctl index 9557ecd6..b217e14d 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/SSH/SSH Unix Session Op.ctl and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/SSH/SSH Unix Session Op.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Script Example Project.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Script Example Project.vi index 563d63a4..14d5a2e5 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Script Example Project.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Script Example Project.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Set Device Name.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Set Device Name.vi index 66b0dba1..452b2ef0 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Set Device Name.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Set Device Name.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Sudo Wrapper.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Sudo Wrapper.vi index fae4f825..b034fe11 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Sudo Wrapper.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Sudo Wrapper.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/System Check.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/System Check.vi index 160c8141..4ce0c662 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/System Check.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/System Check.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Add MakerHub Feed.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Add MakerHub Feed.vi index f51a239d..d733bfeb 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Add MakerHub Feed.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Add MakerHub Feed.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Add Unconfigured NICs.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Add Unconfigured NICs.vi index c6cc903b..791abd82 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Add Unconfigured NICs.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Add Unconfigured NICs.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/BBB Expand File System.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/BBB Expand File System.vi index 49462398..e72a617b 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/BBB Expand File System.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/BBB Expand File System.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Check Internet Access Status.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Check Internet Access Status.vi index ab470e0a..d757b837 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Check Internet Access Status.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Check Internet Access Status.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Check Linux Partition Size.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Check Linux Partition Size.vi index 21b36668..d2c51462 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Check Linux Partition Size.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Check Linux Partition Size.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Check OS Version.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Check OS Version.vi index 979dde15..6567be74 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Check OS Version.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Check OS Version.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Check SSH Connection Status.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Check SSH Connection Status.vi index 3957f6f1..86e328b7 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Check SSH Connection Status.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Check SSH Connection Status.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Check Target Internet Connection.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Check Target Internet Connection.vi index 97a8308b..884398ca 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Check Target Internet Connection.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Check Target Internet Connection.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Check Target LV Package Version.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Check Target LV Package Version.vi index 37ecc823..8293b2f1 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Check Target LV Package Version.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Check Target LV Package Version.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Device Pre Install Tasks.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Device Pre Install Tasks.vi index 58d4135b..a9bd9a7b 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Device Pre Install Tasks.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Device Pre Install Tasks.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Filter NICs.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Filter NICs.vi index 102660d3..b200f0ca 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Filter NICs.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Filter NICs.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Fix Warning.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Fix Warning.vi index 470a7143..4631ab6e 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Fix Warning.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Fix Warning.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Flatten Target Info To String.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Flatten Target Info To String.vi index 8e32c4ec..675ac261 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Flatten Target Info To String.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Flatten Target Info To String.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Generate Target Compatibility Report.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Generate Target Compatibility Report.vi index 55eb4fa7..c001b972 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Generate Target Compatibility Report.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Generate Target Compatibility Report.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Generic FGV State.ctl b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Generic FGV State.ctl index de757a07..95b09450 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Generic FGV State.ctl and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Generic FGV State.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Get Debian Version.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Get Debian Version.vi index dd246916..03904af9 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Get Debian Version.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Get Debian Version.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Get Device Type.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Get Device Type.vi index 4bdabc07..9a0e53a8 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Get Device Type.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Get Device Type.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Get Network Interfaces Info.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Get Network Interfaces Info.vi index c7af451c..0c27ef44 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Get Network Interfaces Info.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Get Network Interfaces Info.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Get Platform.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Get Platform.vi index 1b7b9f6e..8ba82ef9 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Get Platform.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Get Platform.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Get Set Hostname.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Get Set Hostname.vi index 826d7725..cdad1156 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Get Set Hostname.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Get Set Hostname.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Initialize Menus.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Initialize Menus.vi index ee33c3b4..1738f019 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Initialize Menus.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Initialize Menus.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Insert Line Into File.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Insert Line Into File.vi index aa156d56..45083ea6 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Insert Line Into File.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Insert Line Into File.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Install LV Data.ctl b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Install LV Data.ctl index 9e0aedc9..118deac5 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Install LV Data.ctl and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Install LV Data.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Install LV Support.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Install LV Support.vi index 2a9dec4a..d6fed777 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Install LV Support.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Install LV Support.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Interrogate Target.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Interrogate Target.vi index 79e9a899..f1844d38 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Interrogate Target.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Interrogate Target.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/List NICs.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/List NICs.vi index 89739243..7bd70170 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/List NICs.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/List NICs.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/NIC Ctrl Ref FGV.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/NIC Ctrl Ref FGV.vi index afc2eb17..1035bece 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/NIC Ctrl Ref FGV.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/NIC Ctrl Ref FGV.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/NIC Info.ctl b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/NIC Info.ctl index 149dcbb2..6e793d50 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/NIC Info.ctl and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/NIC Info.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/NIC Mode.ctl b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/NIC Mode.ctl index 7a1359d7..6e915b4c 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/NIC Mode.ctl and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/NIC Mode.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/NIC Settings/Device Data Snapshot FGV.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/NIC Settings/Device Data Snapshot FGV.vi index 2940028a..65089693 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/NIC Settings/Device Data Snapshot FGV.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/NIC Settings/Device Data Snapshot FGV.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/NIC Settings/Set Configured Status Ctrl.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/NIC Settings/Set Configured Status Ctrl.vi index 210b4ce7..36bda6b1 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/NIC Settings/Set Configured Status Ctrl.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/NIC Settings/Set Configured Status Ctrl.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/NIC Settings/Set DHCP Status.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/NIC Settings/Set DHCP Status.vi index 5a686645..02f850dd 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/NIC Settings/Set DHCP Status.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/NIC Settings/Set DHCP Status.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/NIC Settings/Set Hostname Ctrl.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/NIC Settings/Set Hostname Ctrl.vi index d62ae59e..9629e616 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/NIC Settings/Set Hostname Ctrl.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/NIC Settings/Set Hostname Ctrl.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/NIC Settings/Set IP Subnet Gateway.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/NIC Settings/Set IP Subnet Gateway.vi index 16ad05d7..90743fef 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/NIC Settings/Set IP Subnet Gateway.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/NIC Settings/Set IP Subnet Gateway.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/NIC Settings/Set NICs Enum Ctrl.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/NIC Settings/Set NICs Enum Ctrl.vi index 110cbdea..037589bf 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/NIC Settings/Set NICs Enum Ctrl.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/NIC Settings/Set NICs Enum Ctrl.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/NIC Settings/Set Wifi Ctrls.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/NIC Settings/Set Wifi Ctrls.vi index 53bdffd7..89fa4eb8 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/NIC Settings/Set Wifi Ctrls.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/NIC Settings/Set Wifi Ctrls.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Network Settings Ctrl Refs.ctl b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Network Settings Ctrl Refs.ctl index c622e0c8..0517277e 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Network Settings Ctrl Refs.ctl and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Network Settings Ctrl Refs.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Parse NIC Info.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Parse NIC Info.vi index 02994763..9b6e461a 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Parse NIC Info.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Parse NIC Info.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Parse ifconfig data.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Parse ifconfig data.vi index b992ff31..eec9774f 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Parse ifconfig data.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Parse ifconfig data.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/RPI2 Check UART Console.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/RPI2 Check UART Console.vi index af9554c3..34c8f8c2 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/RPI2 Check UART Console.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/RPI2 Check UART Console.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/RPI2 Enable I2C.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/RPI2 Enable I2C.vi index fb1210f3..83755f62 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/RPI2 Enable I2C.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/RPI2 Enable I2C.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/RPI2 Enable SPI.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/RPI2 Enable SPI.vi index 94f574ad..af89e54c 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/RPI2 Enable SPI.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/RPI2 Enable SPI.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/RPI2 Enable UART.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/RPI2 Enable UART.vi index e0c65b57..d4dfa547 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/RPI2 Enable UART.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/RPI2 Enable UART.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/RPI2 Expand File System.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/RPI2 Expand File System.vi index 283f3fea..ddfbcf6c 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/RPI2 Expand File System.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/RPI2 Expand File System.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Reconnect To Target.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Reconnect To Target.vi index 57bc7a44..2468f3bb 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Reconnect To Target.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Reconnect To Target.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Remove Line From File.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Remove Line From File.vi index 4eb0b063..3176132e 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Remove Line From File.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Remove Line From File.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Reset NIC.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Reset NIC.vi index 92845fd9..58476d1c 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Reset NIC.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Reset NIC.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/SSH Smart Close Session.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/SSH Smart Close Session.vi index 9f74f2d9..8e0a2de8 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/SSH Smart Close Session.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/SSH Smart Close Session.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/SSH Smart Open Session.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/SSH Smart Open Session.vi index e6822bfd..90d189ab 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/SSH Smart Open Session.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/SSH Smart Open Session.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Save NIC Settings.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Save NIC Settings.vi index eb1a3b92..f83010c5 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Save NIC Settings.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Save NIC Settings.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Show Compatibility Warnings.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Show Compatibility Warnings.vi index 73e2a98a..42b02b91 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Show Compatibility Warnings.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Show Compatibility Warnings.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Split NIC Config Groups.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Split NIC Config Groups.vi index 696676db..f5b1b0ae 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Split NIC Config Groups.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Split NIC Config Groups.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Start LabVIEW.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Start LabVIEW.vi index aa20a967..67689986 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Start LabVIEW.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Start LabVIEW.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Status FGV States.ctl b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Status FGV States.ctl index 97045e72..2a0d95ac 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Status FGV States.ctl and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Status FGV States.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Status FGV.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Status FGV.vi index 23e80ace..25819c9c 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Status FGV.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Status FGV.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Target Compatibility Warnings.ctl b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Target Compatibility Warnings.ctl index dc480c7a..e70c3e01 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Target Compatibility Warnings.ctl and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Target Compatibility Warnings.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Target Info.ctl b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Target Info.ctl index b94d4bee..001b1da7 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Target Info.ctl and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Target Info.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Update Button Text.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Update Button Text.vi index e1f54d95..e4bcc703 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Update Button Text.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Update Button Text.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Update Fix Button.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Update Fix Button.vi index 81a32d16..1b2bc62a 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Update Fix Button.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Update Fix Button.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Update Menu Controls Disable.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Update Menu Controls Disable.vi index b44e45e9..7d022d5e 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Update Menu Controls Disable.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Update Menu Controls Disable.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Update Menu Controls Highlight.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Update Menu Controls Highlight.vi index 8f901d2c..4182f672 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Update Menu Controls Highlight.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Update Menu Controls Highlight.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Update NIC Ctrls.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Update NIC Ctrls.vi index d1dd2482..17bb5067 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Update NIC Ctrls.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Update NIC Ctrls.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Update Package List.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Update Package List.vi index 3bf7abf7..45fcf23f 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Update Package List.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Update Package List.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Update User Warning Dialog.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Update User Warning Dialog.vi index 82676db7..cd2add61 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Update User Warning Dialog.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/Update User Warning Dialog.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/User Warning.ctl b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/User Warning.ctl index 6b22d3e9..9e374474 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/User Warning.ctl and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Target Management/User Warning.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Upload Firmware.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Upload Firmware.vi index 8dedb2db..e232b6ac 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Upload Firmware.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Upload Firmware.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Verify Arduino Libraries.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Verify Arduino Libraries.vi index aec8a954..8eba5132 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Verify Arduino Libraries.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/Utilties/Verify Arduino Libraries.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/myRIO/Utilities/Get AI Channel Name.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/myRIO/Utilities/Get AI Channel Name.vi index fddc6c53..ca637927 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/myRIO/Utilities/Get AI Channel Name.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/myRIO/Utilities/Get AI Channel Name.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/myRIO/Utilities/Get DIO Channel Name.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/myRIO/Utilities/Get DIO Channel Name.vi index e09db201..294f0dd7 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/myRIO/Utilities/Get DIO Channel Name.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/myRIO/Utilities/Get DIO Channel Name.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/myRIO/Utilities/Get I2C Channel Name.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/myRIO/Utilities/Get I2C Channel Name.vi index 92f63417..3e4eecbf 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/myRIO/Utilities/Get I2C Channel Name.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/myRIO/Utilities/Get I2C Channel Name.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/myRIO/Utilities/Get PWM Channel Name.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/myRIO/Utilities/Get PWM Channel Name.vi index f58ec9d6..a42ae313 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/myRIO/Utilities/Get PWM Channel Name.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/myRIO/Utilities/Get PWM Channel Name.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/myRIO/Utilities/Get SPI Channel Name.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/myRIO/Utilities/Get SPI Channel Name.vi index f1e1be44..b31c4de6 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/myRIO/Utilities/Get SPI Channel Name.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/myRIO/Utilities/Get SPI Channel Name.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/myRIO/Utilities/Get UART Channel Name.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/myRIO/Utilities/Get UART Channel Name.vi index 6ee670e2..c9a3cea5 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/myRIO/Utilities/Get UART Channel Name.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/myRIO/Utilities/Get UART Channel Name.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/myRIO/Utilities/Load Device Channels.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/myRIO/Utilities/Load Device Channels.vi index 2feee884..face7ccc 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/myRIO/Utilities/Load Device Channels.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/myRIO/Utilities/Load Device Channels.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/myRIO/Utilities/Load Device Info.vi b/LabVIEW/vi.lib/MakerHub/LINX/Private/myRIO/Utilities/Load Device Info.vi index d1132e60..1f17a318 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Private/myRIO/Utilities/Load Device Info.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Private/myRIO/Utilities/Load Device Info.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Private/myRIO/myRIO.lvlib b/LabVIEW/vi.lib/MakerHub/LINX/Private/myRIO/myRIO.lvlib index 6b84493d..903f0ed3 100644 --- a/LabVIEW/vi.lib/MakerHub/LINX/Private/myRIO/myRIO.lvlib +++ b/LabVIEW/vi.lib/MakerHub/LINX/Private/myRIO/myRIO.lvlib @@ -1,29 +1,29 @@  - + LMH-LINX.lvlib - /<vilib>/MakerHub/LINX/LMH-LINX.lvlib - '1#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!)S!!!*Q(C=\>7R52N"&-<RTRY#J_L!IR:?#WJ",O&&>L#25E+V],7A2!7IB2>Z<$).(7C=%$,S`Z9&")-S$!\99Q`JO^WX0_ZW$KGX,^+&DG`;7O`N\N4/8G^0LT@;YZ2W._*E?LOP?;<_S@87TK\`!O=.GD\;2XP@>PH_?`;4JB=2P?CG*TUU,85M]C)P]C)P]C)XO=F.<H+4GTT*ETT*ETT*ETT)ATT)ATT)A\Q@Z#)8O=AB&9M8#R6&CQ,&9#AK4I7H]"3?QM.8&:\#5XA+4_&BC!J0Y3E]B;@Q-%W&J`!5HM*4?#D6*>50=DS&B`)S(O-R(O-R(J;5]2C!7=Q5.E6AS&QU(YT(?)S(DT)?YT%?YT%?,MNYD->YD->YG.,PCLNG/MDR5%;**`%EHM34?#CNR*.Y%E`C34QMJ]34?"*%MG"3()+33=G!Z%PC34T]5O**0)EH]31?,P5HF0X/4*LJ)-=4?!*0Y!E]A9=3#DS"*`!%HM"$717?Q".Y!E`A93E&HM!4?!*)M#D,+SA74!Q'"5(AY;@PFOB0S6U3`:$'ZN89F"K<47-4;7Q/D9?O]4!V(J,'T>?YK2IX3_-G;0RR'GA.D-9C'J/HA4JQXN.X^!V^46`2F`1&@5[@46.@??$B=."_P^>ON^.GM^&[P>:KN>*SO>2CM>"]0N>M.HNY$8TF?(AB0(MPX6ZND\=`NX^_`\K__8'VP@H_<8O]`O@`3`_$>[-_[\1O^_APXQR5Y!!!!!! - 419463168 + ../../../LMH-LINX.lvlib + )!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!)S!!!*Q(C=\>7R52N"&-<RTRY#J_L!IR:?#WJ",O&&>L#25E+V],7A2!7IB2>Z<$).(7C=%$,S`Z9&")-S$!\99Q`JO^WX0_ZW$KGX,^+&DG`;7O`N\N4/8G^0LT@;YZ2W._*E?LOP?;<_S@87TK\`!O=.GD\;2XP@>PH_?`;4JB=2P?CG*TUU,85M]C)P]C)P]C)XO=F.<H+4GTT*ETT*ETT*ETT)ATT)ATT)A\Q@Z#)8O=AB&9M8#R6&CQ,&9#AK4I7H]"3?QM.8&:\#5XA+4_&BC!J0Y3E]B;@Q-%W&J`!5HM*4?#D6*>50=DS&B`)S(O-R(O-R(J;5]2C!7=Q5.E6AS&QU(YT(?)S(DT)?YT%?YT%?,MNYD->YD->YG.,PCLNG/MDR5%;**`%EHM34?#CNR*.Y%E`C34QMJ]34?"*%MG"3()+33=G!Z%PC34T]5O**0)EH]31?,P5HF0X/4*LJ)-=4?!*0Y!E]A9=3#DS"*`!%HM"$717?Q".Y!E`A93E&HM!4?!*)M#D,+SA74!Q'"5(AY;@PFOB0S6U3`:$'ZN89F"K<47-4;7Q/D9?O]4!V(J,'T>?YK2IX3_-G;0RR'GA.D-9C'J/HA4JQXN.X^!V^46`2F`1&@5[@46.@??$B=."_P^>ON^.GM^&[P>:KN>*SO>2CM>"]0N>M.HNY$8TF?(AB0(MPX6ZND\=`NX^_`\K__8'VP@H_<8O]`O@`3`_$>[-_[\1O^_APXQR5Y!!!!!! + 536903680 1.0.0.0 49 49 48 49 56 48 49 51 13 0 0 0 0 1 23 21 76 111 97 100 32 38 32 85 110 108 111 97 100 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 9 0 0 26 1 1 100 1 100 80 84 72 48 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 1 15 13 76 97 121 101 114 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 7 0 0 12 182 0 0 0 0 0 0 0 0 0 0 12 158 0 40 0 0 12 152 0 0 12 0 0 0 0 0 0 32 0 32 0 24 0 0 0 0 0 255 255 255 0 0 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 127 255 255 255 127 255 255 255 127 255 255 255 127 255 255 255 127 255 255 255 127 255 255 255 127 255 255 255 127 255 255 255 127 255 255 255 127 255 255 255 127 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 84 111 111 108 100 1 0 2 0 0 0 1 15 13 76 97 121 101 114 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 7 0 0 12 185 0 0 0 0 0 0 0 0 0 0 12 158 0 40 0 0 12 152 0 0 12 0 0 0 0 0 0 32 0 32 0 24 0 0 0 0 0 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 0 0 0 0 0 0 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 0 0 0 0 0 0 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 0 0 0 0 0 0 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 0 0 0 0 0 0 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 0 0 0 0 0 0 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 0 0 0 0 0 0 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 0 0 0 0 0 0 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 0 0 0 0 0 0 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 0 0 0 0 0 0 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7 86 73 32 73 99 111 110 100 1 0 2 0 0 0 6 109 121 76 73 78 88 0 0 0 0 0 0 0 0 0 0 0 0 0 100 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 83 109 97 108 108 32 70 111 110 116 115 0 1 8 1 0 - - - - - - + + + + + + - - - - - - - - + + + + + + + + diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Close.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Close.vi index d8a052cb..2e830ee7 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Close.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Close.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Initialize.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Initialize.vi index e74887bc..2c05c954 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Initialize.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Initialize.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Open.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Open.vi index 5dbf08f4..6f3fb594 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Open.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Open.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/Analog/Analog Read 1 Chan.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/Analog/Analog Read 1 Chan.vi index 28b2046f..2c761df7 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/Analog/Analog Read 1 Chan.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/Analog/Analog Read 1 Chan.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/Analog/Analog Read N Chans.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/Analog/Analog Read N Chans.vi index d373ce7e..c04a28d7 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/Analog/Analog Read N Chans.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/Analog/Analog Read N Chans.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/Analog/Analog Read.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/Analog/Analog Read.vi index 901176db..c3b9c301 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/Analog/Analog Read.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/Analog/Analog Read.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/Analog/Analog Set Reference Voltage.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/Analog/Analog Set Reference Voltage.vi index 993b9489..4b805abf 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/Analog/Analog Set Reference Voltage.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/Analog/Analog Set Reference Voltage.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/Analog/Analog Write 1 Chan.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/Analog/Analog Write 1 Chan.vi index 6c8ab423..563de533 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/Analog/Analog Write 1 Chan.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/Analog/Analog Write 1 Chan.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/Analog/Analog Write N Chans.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/Analog/Analog Write N Chans.vi index c9861396..ee73169b 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/Analog/Analog Write N Chans.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/Analog/Analog Write N Chans.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/Analog/Analog Write.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/Analog/Analog Write.vi index ae1fd635..c1844413 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/Analog/Analog Write.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/Analog/Analog Write.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/Digital/Digital Close.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/Digital/Digital Close.vi index b018275b..18e899e7 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/Digital/Digital Close.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/Digital/Digital Close.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/Digital/Digital Read 1 Chan.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/Digital/Digital Read 1 Chan.vi index 32c24932..a87cf309 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/Digital/Digital Read 1 Chan.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/Digital/Digital Read 1 Chan.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/Digital/Digital Read N Chans.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/Digital/Digital Read N Chans.vi index 1d916c63..b146f31d 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/Digital/Digital Read N Chans.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/Digital/Digital Read N Chans.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/Digital/Digital Read Pulse Width.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/Digital/Digital Read Pulse Width.vi index 02ac9a10..d909366b 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/Digital/Digital Read Pulse Width.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/Digital/Digital Read Pulse Width.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/Digital/Digital Read.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/Digital/Digital Read.vi index d6799223..16c280ee 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/Digital/Digital Read.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/Digital/Digital Read.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/Digital/Digital Write 1 Chan.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/Digital/Digital Write 1 Chan.vi index 4b88e718..0485d966 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/Digital/Digital Write 1 Chan.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/Digital/Digital Write 1 Chan.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/Digital/Digital Write N Chans.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/Digital/Digital Write N Chans.vi index e4dbc4b8..a7ed8647 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/Digital/Digital Write N Chans.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/Digital/Digital Write N Chans.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/Digital/Digital Write Square Wave.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/Digital/Digital Write Square Wave.vi index 564164cc..4a2765a4 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/Digital/Digital Write Square Wave.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/Digital/Digital Write Square Wave.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/Digital/Digital Write.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/Digital/Digital Write.vi index 6a1d7b67..f46ff56c 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/Digital/Digital Write.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/Digital/Digital Write.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/I2C/I2C Close.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/I2C/I2C Close.vi index 6d14dad6..58f7daf8 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/I2C/I2C Close.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/I2C/I2C Close.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/I2C/I2C Open.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/I2C/I2C Open.vi index 83c10baf..ed45b2ea 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/I2C/I2C Open.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/I2C/I2C Open.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/I2C/I2C Read.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/I2C/I2C Read.vi index 2eeaeb80..fd5f3d34 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/I2C/I2C Read.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/I2C/I2C Read.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/I2C/I2C Write.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/I2C/I2C Write.vi index d365ff19..e8b408b4 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/I2C/I2C Write.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/I2C/I2C Write.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/PWM/PWM Set Duty Cycle 1 Chan.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/PWM/PWM Set Duty Cycle 1 Chan.vi index b3ad45ca..ff6de36c 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/PWM/PWM Set Duty Cycle 1 Chan.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/PWM/PWM Set Duty Cycle 1 Chan.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/PWM/PWM Set Duty Cycle N Chans.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/PWM/PWM Set Duty Cycle N Chans.vi index e3b2dc09..4303eeb8 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/PWM/PWM Set Duty Cycle N Chans.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/PWM/PWM Set Duty Cycle N Chans.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/PWM/PWM Set Duty Cycle.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/PWM/PWM Set Duty Cycle.vi index 38f58ca6..f8264192 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/PWM/PWM Set Duty Cycle.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/PWM/PWM Set Duty Cycle.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/SPI/SPI CS Config.ctl b/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/SPI/SPI CS Config.ctl index 41f77d59..e589d502 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/SPI/SPI CS Config.ctl and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/SPI/SPI CS Config.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/SPI/SPI Configure.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/SPI/SPI Configure.vi index a03dc947..49e98c70 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/SPI/SPI Configure.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/SPI/SPI Configure.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/SPI/SPI Open.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/SPI/SPI Open.vi index e317879a..188f995d 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/SPI/SPI Open.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/SPI/SPI Open.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/SPI/SPI Write Read 1 Frame.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/SPI/SPI Write Read 1 Frame.vi index b8976a5a..c0a341df 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/SPI/SPI Write Read 1 Frame.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/SPI/SPI Write Read 1 Frame.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/SPI/SPI Write Read N Frames.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/SPI/SPI Write Read N Frames.vi index 7ef775ac..095efb20 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/SPI/SPI Write Read N Frames.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/SPI/SPI Write Read N Frames.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/SPI/SPI Write Read.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/SPI/SPI Write Read.vi index 517f42c4..1144ee25 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/SPI/SPI Write Read.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/SPI/SPI Write Read.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/UART/UART Close.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/UART/UART Close.vi index 769109c7..bdb918b4 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/UART/UART Close.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/UART/UART Close.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/UART/UART Get Bytes Available.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/UART/UART Get Bytes Available.vi index d5cba535..d1067444 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/UART/UART Get Bytes Available.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/UART/UART Get Bytes Available.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/UART/UART Open.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/UART/UART Open.vi index 8b62782e..95e554af 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/UART/UART Open.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/UART/UART Open.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/UART/UART Read Byte Array.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/UART/UART Read Byte Array.vi index dbcbdc1a..d34f67ca 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/UART/UART Read Byte Array.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/UART/UART Read Byte Array.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/UART/UART Read String.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/UART/UART Read String.vi index 0b5413bb..4a3471c9 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/UART/UART Read String.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/UART/UART Read String.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/UART/UART Read.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/UART/UART Read.vi index 660a2ea2..0d30d598 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/UART/UART Read.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/UART/UART Read.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/UART/UART Set Baud Rate.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/UART/UART Set Baud Rate.vi index 2c1b1aa6..0874c5bc 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/UART/UART Set Baud Rate.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/UART/UART Set Baud Rate.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/UART/UART Write Byte Array.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/UART/UART Write Byte Array.vi index 08d376c1..a903076f 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/UART/UART Write Byte Array.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/UART/UART Write Byte Array.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/UART/UART Write String.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/UART/UART Write String.vi index 1863377a..833ffe7b 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/UART/UART Write String.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/UART/UART Write String.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/UART/UART Write.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/UART/UART Write.vi index 4cc803ac..3b9bcdb6 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/UART/UART Write.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Peripherals/UART/UART Write.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/ADXL345/ADXL345.lvlib b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/ADXL345/ADXL345.lvlib index 8e4c5bdf..3aa47a1b 100644 --- a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/ADXL345/ADXL345.lvlib +++ b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/ADXL345/ADXL345.lvlib @@ -1,19 +1,19 @@ - - - LMH-LINX.lvlib - /<vilib>/MakerHub/LINX/LMH-LINX.lvlib - '1#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!)=!!!*Q(C=\>8"51*"%)8BJ_8"+EZE9*(#3Y%53+&4Y-K2&$I&5C#&4I%53!&`BN<SI#Q77O8"71?8.\-TX][/KT4+M`3EUV3:T?;@F&G87^KP>2DN6TJ=WL`O=.0V%`0@?X`8W[?+LJ<`^P`W_^KHN^^G?J0_<J%?BJ2;V+1'V?0O4E6?Z%6?Z%6?Z%G?Z%G?Z%G?Z%%?Z%%?Z%%?Z#9XO=F.<H+4DY.=Z#)8/;N34&Z-6!R;$&"UBK,CI`!5HM*4?0CKQF.Y#E`B+4RU5?%J0)7H]"1?,F0B+4S&J`!5(I9;EBI(/:\#Q`"+0)EH]33?R-/53DQ*)*EM'4A:");3RO1E]33?R-/J%E`C34S**`(1L-34?"*0YEE]8$*7*9@G@*$D92A&HM!4?!*0Y'&I":\!%XA#4_"B/A7?Q"-AAAG$Q3%IO#DI%(Q*0)'(8QI]A3@Q"*\!1^.Y1D&7ZKQZ(_2YD->YD->YD)=B:$T'9TT'9TQ-+_-R(O-R(O.B+BG0]2C0A:B*G6ZG-(/B[71#Y_&H\";0JZ2$YH(UH_:FI[IXI(JDK4?-?C/I(\$[Q;E@C(KBV1OI8BDV$;NP2!V54[Q?5.V22TY0V$VV2^V3V^16>5F>5/@H3X_YY`&YV/&QU([`VW[XUX;\V8K^VGKVUH+ZV'+R%0]MX^^7,RS8]P$W8NJQ@EP^4N^<R`M<\U9^[P4B.=];P1)H3SJE!!!!!! - 419463168 - 1.0.0.0 - false - 3 + + + LMH-LINX.lvlib + ../../../../../LMH-LINX.lvlib + )!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!)=!!!*Q(C=\>8"51*"%)8BJ_8"+EZE9*(#3Y%53+&4Y-K2&$I&5C#&4I%53!&`BN<SI#Q77O8"71?8.\-TX][/KT4+M`3EUV3:T?;@F&G87^KP>2DN6TJ=WL`O=.0V%`0@?X`8W[?+LJ<`^P`W_^KHN^^G?J0_<J%?BJ2;V+1'V?0O4E6?Z%6?Z%6?Z%G?Z%G?Z%G?Z%%?Z%%?Z%%?Z#9XO=F.<H+4DY.=Z#)8/;N34&Z-6!R;$&"UBK,CI`!5HM*4?0CKQF.Y#E`B+4RU5?%J0)7H]"1?,F0B+4S&J`!5(I9;EBI(/:\#Q`"+0)EH]33?R-/53DQ*)*EM'4A:");3RO1E]33?R-/J%E`C34S**`(1L-34?"*0YEE]8$*7*9@G@*$D92A&HM!4?!*0Y'&I":\!%XA#4_"B/A7?Q"-AAAG$Q3%IO#DI%(Q*0)'(8QI]A3@Q"*\!1^.Y1D&7ZKQZ(_2YD->YD->YD)=B:$T'9TT'9TQ-+_-R(O-R(O.B+BG0]2C0A:B*G6ZG-(/B[71#Y_&H\";0JZ2$YH(UH_:FI[IXI(JDK4?-?C/I(\$[Q;E@C(KBV1OI8BDV$;NP2!V54[Q?5.V22TY0V$VV2^V3V^16>5F>5/@H3X_YY`&YV/&QU([`VW[XUX;\V8K^VGKVUH+ZV'+R%0]MX^^7,RS8]P$W8NJQ@EP^4N^<R`M<\U9^[P4B.=];P1)H3SJE!!!!!! + 536903680 + 1.0.0.0 + false + 3 49 57 48 49 50 48 50 51 13 0 0 0 0 1 23 21 76 111 97 100 32 38 32 85 110 108 111 97 100 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 9 0 0 16 241 1 100 1 100 80 84 72 48 0 0 0 4 0 0 0 0 0 0 12 158 0 40 0 0 12 152 0 0 12 0 0 0 0 0 0 32 0 32 0 24 0 0 0 0 0 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 102 255 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 102 255 0 102 255 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 102 255 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 1 0 0 0 1 15 13 76 97 121 101 114 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 7 0 0 3 231 255 255 255 255 255 255 255 255 0 0 3 202 0 40 0 0 3 196 0 0 3 132 0 0 0 0 0 10 0 30 0 24 0 0 0 0 0 255 255 255 0 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 9 67 108 105 112 98 111 97 114 100 100 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 83 109 97 108 108 32 70 111 110 116 115 0 1 8 1 1 - - - - - - - - - + + + + + + + + + diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/ADXL345/Address.ctl b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/ADXL345/Address.ctl index 3f8ccee7..8eb31bb2 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/ADXL345/Address.ctl and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/ADXL345/Address.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/ADXL345/Close.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/ADXL345/Close.vi index c30d5231..5a949519 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/ADXL345/Close.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/ADXL345/Close.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/ADXL345/Open.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/ADXL345/Open.vi index e760ff92..b02cabed 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/ADXL345/Open.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/ADXL345/Open.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/ADXL345/Read.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/ADXL345/Read.vi index 68747848..777073fa 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/ADXL345/Read.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/ADXL345/Read.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/ADXL345/Resolution.ctl b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/ADXL345/Resolution.ctl index 7d74163c..227fcf79 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/ADXL345/Resolution.ctl and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/ADXL345/Resolution.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MMA8451/Close.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MMA8451/Close.vi index a8988c1c..38b659dd 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MMA8451/Close.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MMA8451/Close.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MMA8451/MMA8451.lvlib b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MMA8451/MMA8451.lvlib index 67f8014f..74df4ad7 100644 --- a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MMA8451/MMA8451.lvlib +++ b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MMA8451/MMA8451.lvlib @@ -1,16 +1,16 @@ - - - LMH-LINX.lvlib - /<vilib>/MakerHub/LINX/LMH-LINX.lvlib - '1#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!)=!!!*Q(C=\>8"51*"%)8BJ_8"+EZE9*(#3Y%53+&4Y-K2&$I&5C#&4I%53!&`BN<SI#Q77O8"71?8.\-TX][/KT4+M`3EUV3:T?;@F&G87^KP>2DN6TJ=WL`O=.0V%`0@?X`8W[?+LJ<`^P`W_^KHN^^G?J0_<J%?BJ2;V+1'V?0O4E6?Z%6?Z%6?Z%G?Z%G?Z%G?Z%%?Z%%?Z%%?Z#9XO=F.<H+4DY.=Z#)8/;N34&Z-6!R;$&"UBK,CI`!5HM*4?0CKQF.Y#E`B+4RU5?%J0)7H]"1?,F0B+4S&J`!5(I9;EBI(/:\#Q`"+0)EH]33?R-/53DQ*)*EM'4A:");3RO1E]33?R-/J%E`C34S**`(1L-34?"*0YEE]8$*7*9@G@*$D92A&HM!4?!*0Y'&I":\!%XA#4_"B/A7?Q"-AAAG$Q3%IO#DI%(Q*0)'(8QI]A3@Q"*\!1^.Y1D&7ZKQZ(_2YD->YD->YD)=B:$T'9TT'9TQ-+_-R(O-R(O.B+BG0]2C0A:B*G6ZG-(/B[71#Y_&H\";0JZ2$YH(UH_:FI[IXI(JDK4?-?C/I(\$[Q;E@C(KBV1OI8BDV$;NP2!V54[Q?5.V22TY0V$VV2^V3V^16>5F>5/@H3X_YY`&YV/&QU([`VW[XUX;\V8K^VGKVUH+ZV'+R%0]MX^^7,RS8]P$W8NJQ@EP^4N^<R`M<\U9^[P4B.=];P1)H3SJE!!!!!! - 419463168 - 1.0.0.0 - false + + + LMH-LINX.lvlib + ../../../../../LMH-LINX.lvlib + )!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!)=!!!*Q(C=\>8"51*"%)8BJ_8"+EZE9*(#3Y%53+&4Y-K2&$I&5C#&4I%53!&`BN<SI#Q77O8"71?8.\-TX][/KT4+M`3EUV3:T?;@F&G87^KP>2DN6TJ=WL`O=.0V%`0@?X`8W[?+LJ<`^P`W_^KHN^^G?J0_<J%?BJ2;V+1'V?0O4E6?Z%6?Z%6?Z%G?Z%G?Z%G?Z%%?Z%%?Z%%?Z#9XO=F.<H+4DY.=Z#)8/;N34&Z-6!R;$&"UBK,CI`!5HM*4?0CKQF.Y#E`B+4RU5?%J0)7H]"1?,F0B+4S&J`!5(I9;EBI(/:\#Q`"+0)EH]33?R-/53DQ*)*EM'4A:");3RO1E]33?R-/J%E`C34S**`(1L-34?"*0YEE]8$*7*9@G@*$D92A&HM!4?!*0Y'&I":\!%XA#4_"B/A7?Q"-AAAG$Q3%IO#DI%(Q*0)'(8QI]A3@Q"*\!1^.Y1D&7ZKQZ(_2YD->YD->YD)=B:$T'9TT'9TQ-+_-R(O-R(O.B+BG0]2C0A:B*G6ZG-(/B[71#Y_&H\";0JZ2$YH(UH_:FI[IXI(JDK4?-?C/I(\$[Q;E@C(KBV1OI8BDV$;NP2!V54[Q?5.V22TY0V$VV2^V3V^16>5F>5/@H3X_YY`&YV/&QU([`VW[XUX;\V8K^VGKVUH+ZV'+R%0]MX^^7,RS8]P$W8NJQ@EP^4N^<R`M<\U9^[P4B.=];P1)H3SJE!!!!!! + 536903680 + 1.0.0.0 + false 49 57 48 49 50 48 50 51 13 0 0 0 0 1 23 21 76 111 97 100 32 38 32 85 110 108 111 97 100 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 9 0 0 16 241 1 100 1 100 80 84 72 48 0 0 0 4 0 0 0 0 0 0 12 158 0 40 0 0 12 152 0 0 12 0 0 0 0 0 0 32 0 32 0 24 0 0 0 0 0 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 102 255 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 102 255 0 102 255 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 102 255 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 1 0 0 0 1 15 13 76 97 121 101 114 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 7 0 0 3 231 255 255 255 255 255 255 255 255 0 0 3 202 0 40 0 0 3 196 0 0 3 132 0 0 0 0 0 10 0 30 0 24 0 0 0 0 0 255 255 255 0 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 9 67 108 105 112 98 111 97 114 100 100 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 83 109 97 108 108 32 70 111 110 116 115 0 1 8 1 1 - - - - - - - + + + + + + + diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MMA8451/Open.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MMA8451/Open.vi index 9b311f7f..a150a152 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MMA8451/Open.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MMA8451/Open.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MMA8451/Read.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MMA8451/Read.vi index f2ca591c..44dfb024 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MMA8451/Read.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MMA8451/Read.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MMA8451/Registers.ctl b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MMA8451/Registers.ctl index 0ba19c66..3be6409b 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MMA8451/Registers.ctl and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MMA8451/Registers.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MMA8451/Who Am I.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MMA8451/Who Am I.vi index e01774eb..951741ab 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MMA8451/Who Am I.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MMA8451/Who Am I.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MMA8452/Close.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MMA8452/Close.vi index d964d7fd..5ec81822 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MMA8452/Close.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MMA8452/Close.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MMA8452/MMA8452.lvlib b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MMA8452/MMA8452.lvlib index c20acc93..fcf1d680 100644 --- a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MMA8452/MMA8452.lvlib +++ b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MMA8452/MMA8452.lvlib @@ -1,15 +1,15 @@ - - - LMH-LINX.lvlib - /<vilib>/MakerHub/LINX/LMH-LINX.lvlib - '1#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!,P!!!*Q(C=T:7`;BN"%)>`#A;('!QO!CF=",OSWXG"W+B*CO"'LT#PI*33X<BU/ZWL))4*#[B*%65?#+BXG4*["?7\V5J%+*9-=3#\'NX><`\M>XODEV4'3WF(MWVD<_`A$W/PDK@Y.Q55`Y;!O@`RA#@F<VH`<_^PMX`<U-;R]%]G%_FU=PK9HQD=E\7!:4YW)(_QK8[*?KS_HMF@B&H4>ZJ`6PWT*G!WGY>J>8`O\OZ+`KTGFY//G>8080K7F:<O:8Z.6.X`[N^NDO/,.@Z;@`^YH__,'H$0`/X_$MH?,7>.Q/W;`XCX:.?!]<K`:M]$RG7"6@`R988@DO`8`7NDP/4@XH[^\5X[<Y@55GW)R!*TT/90+>%40>%40>%40>!$0>!$0>!$X>%>X>%>X>%>X>!.X>!.X>#N.J01B3ZU7?G2:0&EI;2I5C!*"E8*6]+4]#1]#1_83HA3HI1HY5FY#&(#E`!E0!F0QE/;%J[%*_&*?")?3B73,"->HI3(]AJY!J[!*_!*?&B3!5]!%#Q7&![+A+(!':Q%0!&0Q-/J!J[!*_!*?!)?X!JY!J[!*_!*?%AJOR+&JJHI]&"'$I`$Y`!Y0!Y0J?8Q/$Q/D]0D],#=("[(RY&Q&H3+AS!HS1FQ,BQ?BY?$("[(R_&R?"Q?8/5*?>G:BK;:[0!90!;0Q70Q'$S5E-&D]"A]"I`"1VE:0!;0Q70Q'$QM*90(Y$&Y$""D5:;85=R).))-Q?$B5\L&SF/+1G*FVJ`GP&&6'V#VM61<2L526"_Q[I.4@3#K'[W[A;I<IXL$KD?C#KC[M'J"V5"._8\!2NA1O];[7!>L9U@91:0[T)(4[610$Q];D59;$I?[PLZ7N^N6J^.2O^X7U>'2_,.=PL8?-O?DN8AP^4B`CCVC_^_Y`MDR>4X@7>DZT^\/Z[P?`I=@AV>@4G\WT\`@(+AV?.M`OXTX`OSS>X*WJ4@^K[_@_DWV7P0XUP`Q<N3,F<^"^OA87@7%_1!!!!! - 419463168 - 1.0.0.0 - false - 3 + + + LMH-LINX.lvlib + ../../../../../LMH-LINX.lvlib + )!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!,P!!!*Q(C=T:7`;BN"%)>`#A;('!QO!CF=",OSWXG"W+B*CO"'LT#PI*33X<BU/ZWL))4*#[B*%65?#+BXG4*["?7\V5J%+*9-=3#\'NX><`\M>XODEV4'3WF(MWVD<_`A$W/PDK@Y.Q55`Y;!O@`RA#@F<VH`<_^PMX`<U-;R]%]G%_FU=PK9HQD=E\7!:4YW)(_QK8[*?KS_HMF@B&H4>ZJ`6PWT*G!WGY>J>8`O\OZ+`KTGFY//G>8080K7F:<O:8Z.6.X`[N^NDO/,.@Z;@`^YH__,'H$0`/X_$MH?,7>.Q/W;`XCX:.?!]<K`:M]$RG7"6@`R988@DO`8`7NDP/4@XH[^\5X[<Y@55GW)R!*TT/90+>%40>%40>%40>!$0>!$0>!$X>%>X>%>X>%>X>!.X>!.X>#N.J01B3ZU7?G2:0&EI;2I5C!*"E8*6]+4]#1]#1_83HA3HI1HY5FY#&(#E`!E0!F0QE/;%J[%*_&*?")?3B73,"->HI3(]AJY!J[!*_!*?&B3!5]!%#Q7&![+A+(!':Q%0!&0Q-/J!J[!*_!*?!)?X!JY!J[!*_!*?%AJOR+&JJHI]&"'$I`$Y`!Y0!Y0J?8Q/$Q/D]0D],#=("[(RY&Q&H3+AS!HS1FQ,BQ?BY?$("[(R_&R?"Q?8/5*?>G:BK;:[0!90!;0Q70Q'$S5E-&D]"A]"I`"1VE:0!;0Q70Q'$QM*90(Y$&Y$""D5:;85=R).))-Q?$B5\L&SF/+1G*FVJ`GP&&6'V#VM61<2L526"_Q[I.4@3#K'[W[A;I<IXL$KD?C#KC[M'J"V5"._8\!2NA1O];[7!>L9U@91:0[T)(4[610$Q];D59;$I?[PLZ7N^N6J^.2O^X7U>'2_,.=PL8?-O?DN8AP^4B`CCVC_^_Y`MDR>4X@7>DZT^\/Z[P?`I=@AV>@4G\WT\`@(+AV?.M`OXTX`OSS>X*WJ4@^K[_@_DWV7P0XUP`Q<N3,F<^"^OA87@7%_1!!!!! + 536903680 + 1.0.0.0 + false + 3 49 57 48 49 50 48 50 51 13 0 0 0 0 1 23 21 76 111 97 100 32 38 32 85 110 108 111 97 100 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 9 0 0 29 232 1 100 1 100 80 84 72 48 0 0 0 4 0 0 0 0 0 0 12 158 0 40 0 0 12 152 0 0 12 0 0 0 0 0 0 32 0 32 0 24 0 0 0 0 0 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 102 255 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 102 255 0 102 255 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 102 255 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 2 0 0 0 1 15 13 76 97 121 101 114 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 7 0 0 3 231 255 255 255 255 255 255 255 255 0 0 3 202 0 40 0 0 3 196 0 0 3 132 0 0 0 0 0 10 0 30 0 24 0 0 0 0 0 255 255 255 0 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 9 67 108 105 112 98 111 97 114 100 100 1 0 0 0 0 0 1 15 13 76 97 121 101 114 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 7 0 0 12 190 255 255 255 255 0 0 0 1 0 0 12 158 0 40 0 0 12 152 0 0 12 0 0 0 0 0 0 32 0 32 0 24 0 0 0 0 0 255 255 255 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 0 0 255 0 0 255 255 255 255 255 255 255 204 204 255 0 0 255 204 204 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 204 204 255 0 0 255 0 0 255 0 0 255 204 204 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 255 255 255 255 255 255 51 51 255 204 204 255 0 0 255 204 204 255 51 51 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 0 0 255 0 0 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 51 51 51 51 51 51 51 51 51 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 51 51 51 250 250 250 51 51 51 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 51 51 51 51 51 51 51 51 51 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 204 204 255 0 0 255 255 255 255 255 255 255 255 255 0 136 0 153 204 153 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 153 153 255 0 0 255 153 153 255 255 255 255 255 255 255 255 255 153 204 153 0 136 0 153 204 153 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 119 0 255 255 255 0 119 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 51 51 255 255 255 255 204 204 255 0 0 255 204 204 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 153 204 153 0 136 0 153 204 153 255 255 255 51 153 51 255 255 255 255 255 255 0 119 0 255 255 255 0 119 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 204 204 255 0 0 255 153 153 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 153 204 153 0 136 0 153 204 153 0 136 0 255 255 255 255 255 255 0 119 0 255 255 255 0 119 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 0 0 255 204 204 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 153 204 153 0 153 0 0 136 0 255 255 255 255 255 255 255 255 255 0 119 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 0 0 255 0 0 255 51 51 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 51 153 51 0 136 0 0 119 0 0 136 0 255 255 255 255 255 255 255 255 255 0 119 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 136 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 156 0 0 0 190 0 0 2 62 0 0 3 136 0 0 0 8 0 0 0 8 0 0 0 8 0 0 0 8 0 0 0 28 0 0 80 28 0 0 32 28 0 0 32 99 0 0 80 227 130 128 5 193 210 128 7 128 242 128 7 0 113 0 7 128 241 0 0 0 2 0 0 0 0 12 65 99 99 101 108 101 114 97 116 105 111 110 100 1 0 0 0 0 0 5 32 32 32 32 32 0 0 0 19 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 56 52 53 50 0 0 0 1 32 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 83 109 97 108 108 32 70 111 110 116 115 0 1 8 1 1 - - - - - + + + + + diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MMA8452/Open.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MMA8452/Open.vi index 6eb88e81..048aa290 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MMA8452/Open.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MMA8452/Open.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MMA8452/Read.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MMA8452/Read.vi index e6c63b6b..4dafd8e5 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MMA8452/Read.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MMA8452/Read.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MPU60X0/AccelFullScaleRanges.ctl b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MPU60X0/AccelFullScaleRanges.ctl index fea41f97..d24dc216 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MPU60X0/AccelFullScaleRanges.ctl and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MPU60X0/AccelFullScaleRanges.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MPU60X0/Clock Source.ctl b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MPU60X0/Clock Source.ctl index 65610a84..07f09832 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MPU60X0/Clock Source.ctl and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MPU60X0/Clock Source.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MPU60X0/Close.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MPU60X0/Close.vi index 155b8762..958e120b 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MPU60X0/Close.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MPU60X0/Close.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MPU60X0/DeviceAddresses.ctl b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MPU60X0/DeviceAddresses.ctl index ab59b072..96870279 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MPU60X0/DeviceAddresses.ctl and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MPU60X0/DeviceAddresses.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MPU60X0/GyroFullScaleRanges.ctl b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MPU60X0/GyroFullScaleRanges.ctl index 5b71aee3..34533f18 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MPU60X0/GyroFullScaleRanges.ctl and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MPU60X0/GyroFullScaleRanges.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MPU60X0/MPU60X0.lvlib b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MPU60X0/MPU60X0.lvlib index a512201e..b9e24720 100644 --- a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MPU60X0/MPU60X0.lvlib +++ b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MPU60X0/MPU60X0.lvlib @@ -1,28 +1,28 @@ - - - LMH-LINX.lvlib - /<vilib>/MakerHub/LINX/LMH-LINX.lvlib - Library for the InvenSense MPU-6000/6050. - - '1#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!)4!!!*Q(C=\>8.45*"&-8RIX&BQMI/$#X=&GC"&GY,<&H3QGG"&GDBNE!,N)$`.^Q1&QIE3H4"0!@BT.?0?:/(.-KL^+,DN4+<P8V2:FVO;<`59<2@[("K`\\$4?/PL0`4\X?Z`5L2ITT+XZ<VV5.[^T0\J/F"2#WKK5E.45M>C\T)C\T)C\T)47ZSEZP=Z#:0]C20]C20]C10]C!0]C!0]C!@&\H)23ZS3-8CR5,&J-5%27=I+FY+4_%J0)7(DSI]B;@Q&*\#1R=6HM*4?!J0Y7'9#E`B+4S&J`!QV:$5O-DR&"[GF`%9D`%9D`'QJ)T(!-RC:G)T#1S:2P0'?)T(?(ALYT%?YT%?Y[&:RG-]RG-]RM/1M3M?GOECR]-U3DS**`%EHM4$V%I]C3@R**\%QX*+0)EH131,*J.$5$)I[:"]3$S*BX^+0)EH]33?R%04O%-Z>G<34"=ZHM!4?!*0Y!E]4+(!%XA#4_!*0%SLQ".Y!E`A#4QMJ=!4?!*0!!E7:8E&EQ5$AUZ"%(DY'[=FRFXSE-3YJ$[][E/J0GTK1[1_(/K<LL[:[JOEXHTVJKIX3\U*[C_H2KMR[E85A[?//P#[J_[I7_K'OK)OK1PKH0IW$@XFDI@$1@P^8LP>4NPN6JP.2KP63MPF5IP&1P0Z80R9HB]$\VTH"],JO<4G`3XV4L_F`_$:K'>^HJ=^_A$N*D?M!!!!!! - 419463168 - 1.0.0.0 - false - 3 + + + LMH-LINX.lvlib + ../../../../../LMH-LINX.lvlib + Library for the InvenSense MPU-6000/6050. + + )!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!)4!!!*Q(C=\>8.45*"&-8RIX&BQMI/$#X=&GC"&GY,<&H3QGG"&GDBNE!,N)$`.^Q1&QIE3H4"0!@BT.?0?:/(.-KL^+,DN4+<P8V2:FVO;<`59<2@[("K`\\$4?/PL0`4\X?Z`5L2ITT+XZ<VV5.[^T0\J/F"2#WKK5E.45M>C\T)C\T)C\T)47ZSEZP=Z#:0]C20]C20]C10]C!0]C!0]C!@&\H)23ZS3-8CR5,&J-5%27=I+FY+4_%J0)7(DSI]B;@Q&*\#1R=6HM*4?!J0Y7'9#E`B+4S&J`!QV:$5O-DR&"[GF`%9D`%9D`'QJ)T(!-RC:G)T#1S:2P0'?)T(?(ALYT%?YT%?Y[&:RG-]RG-]RM/1M3M?GOECR]-U3DS**`%EHM4$V%I]C3@R**\%QX*+0)EH131,*J.$5$)I[:"]3$S*BX^+0)EH]33?R%04O%-Z>G<34"=ZHM!4?!*0Y!E]4+(!%XA#4_!*0%SLQ".Y!E`A#4QMJ=!4?!*0!!E7:8E&EQ5$AUZ"%(DY'[=FRFXSE-3YJ$[][E/J0GTK1[1_(/K<LL[:[JOEXHTVJKIX3\U*[C_H2KMR[E85A[?//P#[J_[I7_K'OK)OK1PKH0IW$@XFDI@$1@P^8LP>4NPN6JP.2KP63MPF5IP&1P0Z80R9HB]$\VTH"],JO<4G`3XV4L_F`_$:K'>^HJ=^_A$N*D?M!!!!!! + 536903680 + 1.0.0.0 + false + 3 49 57 48 49 50 48 50 51 13 0 0 0 0 1 23 21 76 111 97 100 32 38 32 85 110 108 111 97 100 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 9 0 0 17 44 1 100 1 100 80 84 72 48 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 1 15 13 76 97 121 101 114 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 7 0 0 3 231 255 255 255 255 255 255 255 255 0 0 3 202 0 40 0 0 3 196 0 0 3 132 0 0 0 0 0 10 0 30 0 24 0 0 0 0 0 255 255 255 0 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 9 67 108 105 112 98 111 97 114 100 100 1 0 0 0 0 0 1 15 13 76 97 121 101 114 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 7 0 0 12 185 0 0 0 0 0 0 0 0 0 0 12 158 0 40 0 0 12 152 0 0 12 0 0 0 0 0 0 32 0 32 0 24 0 0 0 0 0 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 0 0 0 0 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 0 0 0 0 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 0 0 0 0 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 0 0 0 0 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 0 0 0 0 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 0 0 0 0 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 0 0 0 0 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 0 0 0 0 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 0 0 0 0 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7 86 73 32 73 99 111 110 100 1 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 83 109 97 108 108 32 70 111 110 116 115 0 1 8 1 1 - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MPU60X0/Open.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MPU60X0/Open.vi index dc1da2e3..c9978050 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MPU60X0/Open.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MPU60X0/Open.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MPU60X0/Read.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MPU60X0/Read.vi index a065d160..4d8f5da0 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MPU60X0/Read.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MPU60X0/Read.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MPU60X0/RegisterAddresses.ctl b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MPU60X0/RegisterAddresses.ctl index 15363257..c19f740a 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MPU60X0/RegisterAddresses.ctl and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MPU60X0/RegisterAddresses.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MPU60X0/Set Clock Source.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MPU60X0/Set Clock Source.vi index 25eab769..a4851830 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MPU60X0/Set Clock Source.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MPU60X0/Set Clock Source.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MPU60X0/Set Fullscale Accel Range.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MPU60X0/Set Fullscale Accel Range.vi index 6b1027bb..21195bd2 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MPU60X0/Set Fullscale Accel Range.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MPU60X0/Set Fullscale Accel Range.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MPU60X0/Set Fullscale Gyro Range.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MPU60X0/Set Fullscale Gyro Range.vi index 47327fcc..0689e3b0 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MPU60X0/Set Fullscale Gyro Range.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MPU60X0/Set Fullscale Gyro Range.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MPU60X0/Set Sleep Enabled.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MPU60X0/Set Sleep Enabled.vi index 0a595da6..93c0bc24 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MPU60X0/Set Sleep Enabled.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Accelerometer/MPU60X0/Set Sleep Enabled.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Digilent/Interaction Parts Kit/DHTRead.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Digilent/Interaction Parts Kit/DHTRead.vi index fb80101f..462786ce 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Digilent/Interaction Parts Kit/DHTRead.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Digilent/Interaction Parts Kit/DHTRead.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Digilent/Interaction Parts Kit/Interaction Parts Kit.lvlib b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Digilent/Interaction Parts Kit/Interaction Parts Kit.lvlib index bc777247..792749cb 100644 --- a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Digilent/Interaction Parts Kit/Interaction Parts Kit.lvlib +++ b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Digilent/Interaction Parts Kit/Interaction Parts Kit.lvlib @@ -1,16 +1,16 @@  LMH-LINX.lvlib - /<vilib>/MakerHub/LINX/LMH-LINX.lvlib + ../../../../../../LINX/LMH-LINX.lvlib '1#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!)4!!!*Q(C=\>8.45*"&-8RIX&BQMI/$#X=&GC"&GY,<&H3QGG"&GDBNE!,N)$`.^Q1&QIE3H4"0!@BT.?0?:/(.-KL^+,DN4+<P8V2:FVO;<`59<2@[("K`\\$4?/PL0`4\X?Z`5L2ITT+XZ<VV5.[^T0\J/F"2#WKK5E.45M>C\T)C\T)C\T)47ZSEZP=Z#:0]C20]C20]C10]C!0]C!0]C!@&\H)23ZS3-8CR5,&J-5%27=I+FY+4_%J0)7(DSI]B;@Q&*\#1R=6HM*4?!J0Y7'9#E`B+4S&J`!QV:$5O-DR&"[GF`%9D`%9D`'QJ)T(!-RC:G)T#1S:2P0'?)T(?(ALYT%?YT%?Y[&:RG-]RG-]RM/1M3M?GOECR]-U3DS**`%EHM4$V%I]C3@R**\%QX*+0)EH131,*J.$5$)I[:"]3$S*BX^+0)EH]33?R%04O%-Z>G<34"=ZHM!4?!*0Y!E]4+(!%XA#4_!*0%SLQ".Y!E`A#4QMJ=!4?!*0!!E7:8E&EQ5$AUZ"%(DY'[=FRFXSE-3YJ$[][E/J0GTK1[1_(/K<LL[:[JOEXHTVJKIX3\U*[C_H2KMR[E85A[?//P#[J_[I7_K'OK)OK1PKH0IW$@XFDI@$1@P^8LP>4NPN6JP.2KP63MPF5IP&1P0Z80R9HB]$\VTH"],JO<4G`3XV4L_F`_$:K'>^HJ=^_A$N*D?M!!!!!! 419463168 1.0.0.0 true 49 57 48 49 50 48 50 51 13 0 0 0 0 1 23 21 76 111 97 100 32 38 32 85 110 108 111 97 100 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 9 0 0 17 44 1 100 1 100 80 84 72 48 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 1 15 13 76 97 121 101 114 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 7 0 0 3 231 255 255 255 255 255 255 255 255 0 0 3 202 0 40 0 0 3 196 0 0 3 132 0 0 0 0 0 10 0 30 0 24 0 0 0 0 0 255 255 255 0 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 9 67 108 105 112 98 111 97 114 100 100 1 0 0 0 0 0 1 15 13 76 97 121 101 114 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 7 0 0 12 185 0 0 0 0 0 0 0 0 0 0 12 158 0 40 0 0 12 152 0 0 12 0 0 0 0 0 0 32 0 32 0 24 0 0 0 0 0 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 0 0 0 0 0 0 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 0 0 0 0 0 0 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 0 0 0 0 0 0 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 0 0 0 0 0 0 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 0 0 0 0 0 0 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 0 0 0 0 0 0 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 0 0 0 0 0 0 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 0 0 0 0 0 0 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 0 0 0 0 0 0 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7 86 73 32 73 99 111 110 100 1 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 83 109 97 108 108 32 70 111 110 116 115 0 1 8 1 1 - - - - - + + + + + diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Digilent/Interaction Parts Kit/PeriodicTaskChannels.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Digilent/Interaction Parts Kit/PeriodicTaskChannels.vi index bc912cea..ecb2b2e5 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Digilent/Interaction Parts Kit/PeriodicTaskChannels.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Digilent/Interaction Parts Kit/PeriodicTaskChannels.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Digilent/Interaction Parts Kit/PeriodicTaskMatrix.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Digilent/Interaction Parts Kit/PeriodicTaskMatrix.vi index 3800fc84..63d5b50c 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Digilent/Interaction Parts Kit/PeriodicTaskMatrix.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Digilent/Interaction Parts Kit/PeriodicTaskMatrix.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Digilent/Interaction Parts Kit/PeriodicTaskSevenSegment.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Digilent/Interaction Parts Kit/PeriodicTaskSevenSegment.vi index a2e7026c..ac27524d 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Digilent/Interaction Parts Kit/PeriodicTaskSevenSegment.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Digilent/Interaction Parts Kit/PeriodicTaskSevenSegment.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Digilent/Interaction Parts Kit/PeriodicTaskSevenSegmentExample.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Digilent/Interaction Parts Kit/PeriodicTaskSevenSegmentExample.vi index 3894b1f7..7e2c5aab 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Digilent/Interaction Parts Kit/PeriodicTaskSevenSegmentExample.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Digilent/Interaction Parts Kit/PeriodicTaskSevenSegmentExample.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Display/SSD1306/Private/2D Bool Array To Image Data Helper.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Display/SSD1306/Private/2D Bool Array To Image Data Helper.vi index b58e6206..e02dae0d 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Display/SSD1306/Private/2D Bool Array To Image Data Helper.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Display/SSD1306/Private/2D Bool Array To Image Data Helper.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Display/SSD1306/Private/Channels FGV.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Display/SSD1306/Private/Channels FGV.vi index 25e3fcbb..93ec0901 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Display/SSD1306/Private/Channels FGV.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Display/SSD1306/Private/Channels FGV.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Display/SSD1306/Private/Digilent Basic IO Shield - OLED Config.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Display/SSD1306/Private/Digilent Basic IO Shield - OLED Config.vi index 3accd847..65c9bb83 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Display/SSD1306/Private/Digilent Basic IO Shield - OLED Config.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Display/SSD1306/Private/Digilent Basic IO Shield - OLED Config.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Display/SSD1306/Private/Digilent Basic IO Shield - OLED Draw Bool Array.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Display/SSD1306/Private/Digilent Basic IO Shield - OLED Draw Bool Array.vi index fb27ba4c..ea2281be 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Display/SSD1306/Private/Digilent Basic IO Shield - OLED Draw Bool Array.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Display/SSD1306/Private/Digilent Basic IO Shield - OLED Draw Bool Array.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Display/SSD1306/Private/PNG To Bool Array.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Display/SSD1306/Private/PNG To Bool Array.vi index c7995f3e..126a89b4 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Display/SSD1306/Private/PNG To Bool Array.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Display/SSD1306/Private/PNG To Bool Array.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Display/SSD1306/Private/SSD1306 Config.ctl b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Display/SSD1306/Private/SSD1306 Config.ctl index 8a7cee10..15bfe3f0 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Display/SSD1306/Private/SSD1306 Config.ctl and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Display/SSD1306/Private/SSD1306 Config.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Display/SSD1306/Private/SSD1306 FGV State.ctl b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Display/SSD1306/Private/SSD1306 FGV State.ctl index e01cdba4..934175aa 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Display/SSD1306/Private/SSD1306 FGV State.ctl and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Display/SSD1306/Private/SSD1306 FGV State.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Display/SSD1306/Public/Enable Charge Pump.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Display/SSD1306/Public/Enable Charge Pump.vi index 77934a2e..19bac007 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Display/SSD1306/Public/Enable Charge Pump.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Display/SSD1306/Public/Enable Charge Pump.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Display/SSD1306/Public/Open.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Display/SSD1306/Public/Open.vi index ca589318..a55b7f56 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Display/SSD1306/Public/Open.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Display/SSD1306/Public/Open.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Display/SSD1306/Public/Set COM HW Config.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Display/SSD1306/Public/Set COM HW Config.vi index 9263b299..62e6f962 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Display/SSD1306/Public/Set COM HW Config.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Display/SSD1306/Public/Set COM HW Config.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Display/SSD1306/Public/Set COM Output Scan Direction.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Display/SSD1306/Public/Set COM Output Scan Direction.vi index 9e5b929f..39d49431 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Display/SSD1306/Public/Set COM Output Scan Direction.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Display/SSD1306/Public/Set COM Output Scan Direction.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Display/SSD1306/Public/Set Column Address Range.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Display/SSD1306/Public/Set Column Address Range.vi index 67a84b97..6e1fd76f 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Display/SSD1306/Public/Set Column Address Range.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Display/SSD1306/Public/Set Column Address Range.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Display/SSD1306/Public/Set Display On Off.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Display/SSD1306/Public/Set Display On Off.vi index 632b00b6..3489bffb 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Display/SSD1306/Public/Set Display On Off.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Display/SSD1306/Public/Set Display On Off.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Display/SSD1306/Public/Set Page.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Display/SSD1306/Public/Set Page.vi index 9426e373..ca85c749 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Display/SSD1306/Public/Set Page.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Display/SSD1306/Public/Set Page.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Display/SSD1306/Public/Set Segment Remap.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Display/SSD1306/Public/Set Segment Remap.vi index cc15d755..eac0ce66 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Display/SSD1306/Public/Set Segment Remap.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Display/SSD1306/Public/Set Segment Remap.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Display/SSD1306/Public/Write Data.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Display/SSD1306/Public/Write Data.vi index e38cae73..c2851e8e 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Display/SSD1306/Public/Write Data.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Display/SSD1306/Public/Write Data.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Display/SSD1306/SSD1306.lvlib b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Display/SSD1306/SSD1306.lvlib index f792462e..949c433f 100644 --- a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Display/SSD1306/SSD1306.lvlib +++ b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Display/SSD1306/SSD1306.lvlib @@ -1,31 +1,31 @@ - - - LMH-LINX.lvlib - /<vilib>/MakerHub/LINX/LMH-LINX.lvlib - '1#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!)=!!!*Q(C=\>8"51*"%)8BJ_8"+EZE9*(#3Y%53+&4Y-K2&$I&5C#&4I%53!&`BN<SI#Q77O8"71?8.\-TX][/KT4+M`3EUV3:T?;@F&G87^KP>2DN6TJ=WL`O=.0V%`0@?X`8W[?+LJ<`^P`W_^KHN^^G?J0_<J%?BJ2;V+1'V?0O4E6?Z%6?Z%6?Z%G?Z%G?Z%G?Z%%?Z%%?Z%%?Z#9XO=F.<H+4DY.=Z#)8/;N34&Z-6!R;$&"UBK,CI`!5HM*4?0CKQF.Y#E`B+4RU5?%J0)7H]"1?,F0B+4S&J`!5(I9;EBI(/:\#Q`"+0)EH]33?R-/53DQ*)*EM'4A:");3RO1E]33?R-/J%E`C34S**`(1L-34?"*0YEE]8$*7*9@G@*$D92A&HM!4?!*0Y'&I":\!%XA#4_"B/A7?Q"-AAAG$Q3%IO#DI%(Q*0)'(8QI]A3@Q"*\!1^.Y1D&7ZKQZ(_2YD->YD->YD)=B:$T'9TT'9TQ-+_-R(O-R(O.B+BG0]2C0A:B*G6ZG-(/B[71#Y_&H\";0JZ2$YH(UH_:FI[IXI(JDK4?-?C/I(\$[Q;E@C(KBV1OI8BDV$;NP2!V54[Q?5.V22TY0V$VV2^V3V^16>5F>5/@H3X_YY`&YV/&QU([`VW[XUX;\V8K^VGKVUH+ZV'+R%0]MX^^7,RS8]P$W8NJQ@EP^4N^<R`M<\U9^[P4B.=];P1)H3SJE!!!!!! - 419463168 - 1.0.0.0 - false + + + LMH-LINX.lvlib + ../../../../../LMH-LINX.lvlib + )!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!)=!!!*Q(C=\>8"51*"%)8BJ_8"+EZE9*(#3Y%53+&4Y-K2&$I&5C#&4I%53!&`BN<SI#Q77O8"71?8.\-TX][/KT4+M`3EUV3:T?;@F&G87^KP>2DN6TJ=WL`O=.0V%`0@?X`8W[?+LJ<`^P`W_^KHN^^G?J0_<J%?BJ2;V+1'V?0O4E6?Z%6?Z%6?Z%G?Z%G?Z%G?Z%%?Z%%?Z%%?Z#9XO=F.<H+4DY.=Z#)8/;N34&Z-6!R;$&"UBK,CI`!5HM*4?0CKQF.Y#E`B+4RU5?%J0)7H]"1?,F0B+4S&J`!5(I9;EBI(/:\#Q`"+0)EH]33?R-/53DQ*)*EM'4A:");3RO1E]33?R-/J%E`C34S**`(1L-34?"*0YEE]8$*7*9@G@*$D92A&HM!4?!*0Y'&I":\!%XA#4_"B/A7?Q"-AAAG$Q3%IO#DI%(Q*0)'(8QI]A3@Q"*\!1^.Y1D&7ZKQZ(_2YD->YD->YD)=B:$T'9TT'9TQ-+_-R(O-R(O.B+BG0]2C0A:B*G6ZG-(/B[71#Y_&H\";0JZ2$YH(UH_:FI[IXI(JDK4?-?C/I(\$[Q;E@C(KBV1OI8BDV$;NP2!V54[Q?5.V22TY0V$VV2^V3V^16>5F>5/@H3X_YY`&YV/&QU([`VW[XUX;\V8K^VGKVUH+ZV'+R%0]MX^^7,RS8]P$W8NJQ@EP^4N^<R`M<\U9^[P4B.=];P1)H3SJE!!!!!! + 536903680 + 1.0.0.0 + false 49 57 48 49 50 48 50 51 13 0 0 0 0 1 23 21 76 111 97 100 32 38 32 85 110 108 111 97 100 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 9 0 0 16 241 1 100 1 100 80 84 72 48 0 0 0 4 0 0 0 0 0 0 12 158 0 40 0 0 12 152 0 0 12 0 0 0 0 0 0 32 0 32 0 24 0 0 0 0 0 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 102 255 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 102 255 0 102 255 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 102 255 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 1 0 0 0 1 15 13 76 97 121 101 114 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 7 0 0 3 231 255 255 255 255 255 255 255 255 0 0 3 202 0 40 0 0 3 196 0 0 3 132 0 0 0 0 0 10 0 30 0 24 0 0 0 0 0 255 255 255 0 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 9 67 108 105 112 98 111 97 114 100 100 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 83 109 97 108 108 32 70 111 110 116 115 0 1 9 1 1 - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Display/Seven Segment Display.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Display/Seven Segment Display.vi index 7707bacc..baa8d49b 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Display/Seven Segment Display.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Display/Seven Segment Display.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Distance/Ultrasonic/GH-311.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Distance/Ultrasonic/GH-311.vi index 858e1c6e..869ad3c4 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Distance/Ultrasonic/GH-311.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Distance/Ultrasonic/GH-311.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Distance/Ultrasonic/HC-SR04.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Distance/Ultrasonic/HC-SR04.vi index 0feb56bc..e4c39e3a 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Distance/Ultrasonic/HC-SR04.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Distance/Ultrasonic/HC-SR04.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Distance/Ultrasonic/PING.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Distance/Ultrasonic/PING.vi index da65802b..801037e5 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Distance/Ultrasonic/PING.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Distance/Ultrasonic/PING.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Distance/Ultrasonic/Read.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Distance/Ultrasonic/Read.vi index 18440e24..7e0363a4 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Distance/Ultrasonic/Read.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Distance/Ultrasonic/Read.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Distance/Ultrasonic/Ultrasonic.lvlib b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Distance/Ultrasonic/Ultrasonic.lvlib index 4edb8ac6..a8164334 100644 --- a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Distance/Ultrasonic/Ultrasonic.lvlib +++ b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Distance/Ultrasonic/Ultrasonic.lvlib @@ -1,15 +1,15 @@ - - - LMH-LINX.lvlib - /<vilib>/MakerHub/LINX/LMH-LINX.lvlib - '1#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!)=!!!*Q(C=\>8"51*"%)8BJ_8"+EZE9*(#3Y%53+&4Y-K2&$I&5C#&4I%53!&`BN<SI#Q77O8"71?8.\-TX][/KT4+M`3EUV3:T?;@F&G87^KP>2DN6TJ=WL`O=.0V%`0@?X`8W[?+LJ<`^P`W_^KHN^^G?J0_<J%?BJ2;V+1'V?0O4E6?Z%6?Z%6?Z%G?Z%G?Z%G?Z%%?Z%%?Z%%?Z#9XO=F.<H+4DY.=Z#)8/;N34&Z-6!R;$&"UBK,CI`!5HM*4?0CKQF.Y#E`B+4RU5?%J0)7H]"1?,F0B+4S&J`!5(I9;EBI(/:\#Q`"+0)EH]33?R-/53DQ*)*EM'4A:");3RO1E]33?R-/J%E`C34S**`(1L-34?"*0YEE]8$*7*9@G@*$D92A&HM!4?!*0Y'&I":\!%XA#4_"B/A7?Q"-AAAG$Q3%IO#DI%(Q*0)'(8QI]A3@Q"*\!1^.Y1D&7ZKQZ(_2YD->YD->YD)=B:$T'9TT'9TQ-+_-R(O-R(O.B+BG0]2C0A:B*G6ZG-(/B[71#Y_&H\";0JZ2$YH(UH_:FI[IXI(JDK4?-?C/I(\$[Q;E@C(KBV1OI8BDV$;NP2!V54[Q?5.V22TY0V$VV2^V3V^16>5F>5/@H3X_YY`&YV/&QU([`VW[XUX;\V8K^VGKVUH+ZV'+R%0]MX^^7,RS8]P$W8NJQ@EP^4N^<R`M<\U9^[P4B.=];P1)H3SJE!!!!!! - 419463168 - 1.0.0.0 - false + + + LMH-LINX.lvlib + ../../../../../LMH-LINX.lvlib + )!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!)=!!!*Q(C=\>8"51*"%)8BJ_8"+EZE9*(#3Y%53+&4Y-K2&$I&5C#&4I%53!&`BN<SI#Q77O8"71?8.\-TX][/KT4+M`3EUV3:T?;@F&G87^KP>2DN6TJ=WL`O=.0V%`0@?X`8W[?+LJ<`^P`W_^KHN^^G?J0_<J%?BJ2;V+1'V?0O4E6?Z%6?Z%6?Z%G?Z%G?Z%G?Z%%?Z%%?Z%%?Z#9XO=F.<H+4DY.=Z#)8/;N34&Z-6!R;$&"UBK,CI`!5HM*4?0CKQF.Y#E`B+4RU5?%J0)7H]"1?,F0B+4S&J`!5(I9;EBI(/:\#Q`"+0)EH]33?R-/53DQ*)*EM'4A:");3RO1E]33?R-/J%E`C34S**`(1L-34?"*0YEE]8$*7*9@G@*$D92A&HM!4?!*0Y'&I":\!%XA#4_"B/A7?Q"-AAAG$Q3%IO#DI%(Q*0)'(8QI]A3@Q"*\!1^.Y1D&7ZKQZ(_2YD->YD->YD)=B:$T'9TT'9TQ-+_-R(O-R(O.B+BG0]2C0A:B*G6ZG-(/B[71#Y_&H\";0JZ2$YH(UH_:FI[IXI(JDK4?-?C/I(\$[Q;E@C(KBV1OI8BDV$;NP2!V54[Q?5.V22TY0V$VV2^V3V^16>5F>5/@H3X_YY`&YV/&QU([`VW[XUX;\V8K^VGKVUH+ZV'+R%0]MX^^7,RS8]P$W8NJQ@EP^4N^<R`M<\U9^[P4B.=];P1)H3SJE!!!!!! + 536903680 + 1.0.0.0 + false 49 57 48 49 50 48 50 51 13 0 0 0 0 1 23 21 76 111 97 100 32 38 32 85 110 108 111 97 100 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 9 0 0 16 241 1 100 1 100 80 84 72 48 0 0 0 4 0 0 0 0 0 0 12 158 0 40 0 0 12 152 0 0 12 0 0 0 0 0 0 32 0 32 0 24 0 0 0 0 0 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 102 255 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 102 255 0 102 255 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 102 255 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 1 0 0 0 1 15 13 76 97 121 101 114 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 7 0 0 3 231 255 255 255 255 255 255 255 255 0 0 3 202 0 40 0 0 3 196 0 0 3 132 0 0 0 0 0 10 0 30 0 24 0 0 0 0 0 255 255 255 0 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 9 67 108 105 112 98 111 97 114 100 100 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 83 109 97 108 108 32 70 111 110 116 115 0 1 8 1 1 - - - - - - + + + + + + diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Lights/BlinkM/BlinkM.lvlib b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Lights/BlinkM/BlinkM.lvlib index fec394b8..aab93571 100644 --- a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Lights/BlinkM/BlinkM.lvlib +++ b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Lights/BlinkM/BlinkM.lvlib @@ -1,13 +1,13 @@ - - - LMH-LINX.lvlib - /<vilib>/MakerHub/LINX/LMH-LINX.lvlib - '1#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!)=!!!*Q(C=\>8"51*"%)8BJ_8"+EZE9*(#3Y%53+&4Y-K2&$I&5C#&4I%53!&`BN<SI#Q77O8"71?8.\-TX][/KT4+M`3EUV3:T?;@F&G87^KP>2DN6TJ=WL`O=.0V%`0@?X`8W[?+LJ<`^P`W_^KHN^^G?J0_<J%?BJ2;V+1'V?0O4E6?Z%6?Z%6?Z%G?Z%G?Z%G?Z%%?Z%%?Z%%?Z#9XO=F.<H+4DY.=Z#)8/;N34&Z-6!R;$&"UBK,CI`!5HM*4?0CKQF.Y#E`B+4RU5?%J0)7H]"1?,F0B+4S&J`!5(I9;EBI(/:\#Q`"+0)EH]33?R-/53DQ*)*EM'4A:");3RO1E]33?R-/J%E`C34S**`(1L-34?"*0YEE]8$*7*9@G@*$D92A&HM!4?!*0Y'&I":\!%XA#4_"B/A7?Q"-AAAG$Q3%IO#DI%(Q*0)'(8QI]A3@Q"*\!1^.Y1D&7ZKQZ(_2YD->YD->YD)=B:$T'9TT'9TQ-+_-R(O-R(O.B+BG0]2C0A:B*G6ZG-(/B[71#Y_&H\";0JZ2$YH(UH_:FI[IXI(JDK4?-?C/I(\$[Q;E@C(KBV1OI8BDV$;NP2!V54[Q?5.V22TY0V$VV2^V3V^16>5F>5/@H3X_YY`&YV/&QU([`VW[XUX;\V8K^VGKVUH+ZV'+R%0]MX^^7,RS8]P$W8NJQ@EP^4N^<R`M<\U9^[P4B.=];P1)H3SJE!!!!!! - 419463168 - 1.0.0.0 - false + + + LMH-LINX.lvlib + ../../../../../LMH-LINX.lvlib + )!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!)=!!!*Q(C=\>8"51*"%)8BJ_8"+EZE9*(#3Y%53+&4Y-K2&$I&5C#&4I%53!&`BN<SI#Q77O8"71?8.\-TX][/KT4+M`3EUV3:T?;@F&G87^KP>2DN6TJ=WL`O=.0V%`0@?X`8W[?+LJ<`^P`W_^KHN^^G?J0_<J%?BJ2;V+1'V?0O4E6?Z%6?Z%6?Z%G?Z%G?Z%G?Z%%?Z%%?Z%%?Z#9XO=F.<H+4DY.=Z#)8/;N34&Z-6!R;$&"UBK,CI`!5HM*4?0CKQF.Y#E`B+4RU5?%J0)7H]"1?,F0B+4S&J`!5(I9;EBI(/:\#Q`"+0)EH]33?R-/53DQ*)*EM'4A:");3RO1E]33?R-/J%E`C34S**`(1L-34?"*0YEE]8$*7*9@G@*$D92A&HM!4?!*0Y'&I":\!%XA#4_"B/A7?Q"-AAAG$Q3%IO#DI%(Q*0)'(8QI]A3@Q"*\!1^.Y1D&7ZKQZ(_2YD->YD->YD)=B:$T'9TT'9TQ-+_-R(O-R(O.B+BG0]2C0A:B*G6ZG-(/B[71#Y_&H\";0JZ2$YH(UH_:FI[IXI(JDK4?-?C/I(\$[Q;E@C(KBV1OI8BDV$;NP2!V54[Q?5.V22TY0V$VV2^V3V^16>5F>5/@H3X_YY`&YV/&QU([`VW[XUX;\V8K^VGKVUH+ZV'+R%0]MX^^7,RS8]P$W8NJQ@EP^4N^<R`M<\U9^[P4B.=];P1)H3SJE!!!!!! + 536903680 + 1.0.0.0 + false 49 57 48 49 50 48 50 51 13 0 0 0 0 1 23 21 76 111 97 100 32 38 32 85 110 108 111 97 100 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 9 0 0 16 241 1 100 1 100 80 84 72 48 0 0 0 4 0 0 0 0 0 0 12 158 0 40 0 0 12 152 0 0 12 0 0 0 0 0 0 32 0 32 0 24 0 0 0 0 0 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 102 255 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 102 255 0 102 255 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 102 255 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 1 0 0 0 1 15 13 76 97 121 101 114 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 7 0 0 3 231 255 255 255 255 255 255 255 255 0 0 3 202 0 40 0 0 3 196 0 0 3 132 0 0 0 0 0 10 0 30 0 24 0 0 0 0 0 255 255 255 0 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 9 67 108 105 112 98 111 97 114 100 100 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 83 109 97 108 108 32 70 111 110 116 115 0 1 8 1 1 - - - - + + + + diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Lights/BlinkM/Go To RGB Color Now.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Lights/BlinkM/Go To RGB Color Now.vi index bfc88c46..865b2cb2 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Lights/BlinkM/Go To RGB Color Now.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Lights/BlinkM/Go To RGB Color Now.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Lights/BlinkM/Open.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Lights/BlinkM/Open.vi index f0d591ba..6328d49a 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Lights/BlinkM/Open.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Lights/BlinkM/Open.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Lights/RGB LED.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Lights/RGB LED.vi index 6b002205..308c6fab 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Lights/RGB LED.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Lights/RGB LED.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Lights/WS2812/Close.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Lights/WS2812/Close.vi index e72c9c17..c4a454b4 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Lights/WS2812/Close.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Lights/WS2812/Close.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Lights/WS2812/Open.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Lights/WS2812/Open.vi index 71d83e9f..a730b82b 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Lights/WS2812/Open.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Lights/WS2812/Open.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Lights/WS2812/Refresh.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Lights/WS2812/Refresh.vi index 1ffd7e96..e5c44957 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Lights/WS2812/Refresh.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Lights/WS2812/Refresh.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Lights/WS2812/WS2812.lvlib b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Lights/WS2812/WS2812.lvlib index 558b29f1..d74a0099 100644 --- a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Lights/WS2812/WS2812.lvlib +++ b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Lights/WS2812/WS2812.lvlib @@ -1,17 +1,17 @@ - - - LMH-LINX.lvlib - /<vilib>/MakerHub/LINX/LMH-LINX.lvlib - '1#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!)=!!!*Q(C=\>8"51*"%)8BJ_8"+EZE9*(#3Y%53+&4Y-K2&$I&5C#&4I%53!&`BN<SI#Q77O8"71?8.\-TX][/KT4+M`3EUV3:T?;@F&G87^KP>2DN6TJ=WL`O=.0V%`0@?X`8W[?+LJ<`^P`W_^KHN^^G?J0_<J%?BJ2;V+1'V?0O4E6?Z%6?Z%6?Z%G?Z%G?Z%G?Z%%?Z%%?Z%%?Z#9XO=F.<H+4DY.=Z#)8/;N34&Z-6!R;$&"UBK,CI`!5HM*4?0CKQF.Y#E`B+4RU5?%J0)7H]"1?,F0B+4S&J`!5(I9;EBI(/:\#Q`"+0)EH]33?R-/53DQ*)*EM'4A:");3RO1E]33?R-/J%E`C34S**`(1L-34?"*0YEE]8$*7*9@G@*$D92A&HM!4?!*0Y'&I":\!%XA#4_"B/A7?Q"-AAAG$Q3%IO#DI%(Q*0)'(8QI]A3@Q"*\!1^.Y1D&7ZKQZ(_2YD->YD->YD)=B:$T'9TT'9TQ-+_-R(O-R(O.B+BG0]2C0A:B*G6ZG-(/B[71#Y_&H\";0JZ2$YH(UH_:FI[IXI(JDK4?-?C/I(\$[Q;E@C(KBV1OI8BDV$;NP2!V54[Q?5.V22TY0V$VV2^V3V^16>5F>5/@H3X_YY`&YV/&QU([`VW[XUX;\V8K^VGKVUH+ZV'+R%0]MX^^7,RS8]P$W8NJQ@EP^4N^<R`M<\U9^[P4B.=];P1)H3SJE!!!!!! - 419463168 - 1.0.0.0 - false + + + LMH-LINX.lvlib + ../../../../../LMH-LINX.lvlib + )!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!)=!!!*Q(C=\>8"51*"%)8BJ_8"+EZE9*(#3Y%53+&4Y-K2&$I&5C#&4I%53!&`BN<SI#Q77O8"71?8.\-TX][/KT4+M`3EUV3:T?;@F&G87^KP>2DN6TJ=WL`O=.0V%`0@?X`8W[?+LJ<`^P`W_^KHN^^G?J0_<J%?BJ2;V+1'V?0O4E6?Z%6?Z%6?Z%G?Z%G?Z%G?Z%%?Z%%?Z%%?Z#9XO=F.<H+4DY.=Z#)8/;N34&Z-6!R;$&"UBK,CI`!5HM*4?0CKQF.Y#E`B+4RU5?%J0)7H]"1?,F0B+4S&J`!5(I9;EBI(/:\#Q`"+0)EH]33?R-/53DQ*)*EM'4A:");3RO1E]33?R-/J%E`C34S**`(1L-34?"*0YEE]8$*7*9@G@*$D92A&HM!4?!*0Y'&I":\!%XA#4_"B/A7?Q"-AAAG$Q3%IO#DI%(Q*0)'(8QI]A3@Q"*\!1^.Y1D&7ZKQZ(_2YD->YD->YD)=B:$T'9TT'9TQ-+_-R(O-R(O.B+BG0]2C0A:B*G6ZG-(/B[71#Y_&H\";0JZ2$YH(UH_:FI[IXI(JDK4?-?C/I(\$[Q;E@C(KBV1OI8BDV$;NP2!V54[Q?5.V22TY0V$VV2^V3V^16>5F>5/@H3X_YY`&YV/&QU([`VW[XUX;\V8K^VGKVUH+ZV'+R%0]MX^^7,RS8]P$W8NJQ@EP^4N^<R`M<\U9^[P4B.=];P1)H3SJE!!!!!! + 536903680 + 1.0.0.0 + false 49 57 48 49 50 48 50 51 13 0 0 0 0 1 23 21 76 111 97 100 32 38 32 85 110 108 111 97 100 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 9 0 0 16 241 1 100 1 100 80 84 72 48 0 0 0 4 0 0 0 0 0 0 12 158 0 40 0 0 12 152 0 0 12 0 0 0 0 0 0 32 0 32 0 24 0 0 0 0 0 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 102 255 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 102 255 0 102 255 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 102 255 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 1 0 0 0 1 15 13 76 97 121 101 114 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 7 0 0 3 231 255 255 255 255 255 255 255 255 0 0 3 202 0 40 0 0 3 196 0 0 3 132 0 0 0 0 0 10 0 30 0 24 0 0 0 0 0 255 255 255 0 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 9 67 108 105 112 98 111 97 114 100 100 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 83 109 97 108 108 32 70 111 110 116 115 0 1 8 1 1 - - - - - - - - + + + + + + + + diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Lights/WS2812/Write N LEDs.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Lights/WS2812/Write N LEDs.vi index fec681e7..c86bafc6 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Lights/WS2812/Write N LEDs.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Lights/WS2812/Write N LEDs.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Lights/WS2812/Write One LED.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Lights/WS2812/Write One LED.vi index 8bfe8f0b..c7bcf9c4 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Lights/WS2812/Write One LED.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Lights/WS2812/Write One LED.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Lights/WS2812/Write.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Lights/WS2812/Write.vi index c3f0143c..ebae704d 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Lights/WS2812/Write.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Lights/WS2812/Write.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Mindstorms/HiTechnic/Accelerometer/Accelerometer.lvlib b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Mindstorms/HiTechnic/Accelerometer/Accelerometer.lvlib index 238704e1..8b2fe4bd 100644 --- a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Mindstorms/HiTechnic/Accelerometer/Accelerometer.lvlib +++ b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Mindstorms/HiTechnic/Accelerometer/Accelerometer.lvlib @@ -1,15 +1,15 @@ - - - LMH-LINX.lvlib:HiTechnic.lvlib - /<vilib>/MakerHub/LINX/Public/Sensors/Mindstorms/HiTechnic/HiTechnic.lvlib - '1#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!)=!!!*Q(C=\>8"51*"%)8BJ_8"+EZE9*(#3Y%53+&4Y-K2&$I&5C#&4I%53!&`BN<SI#Q77O8"71?8.\-TX][/KT4+M`3EUV3:T?;@F&G87^KP>2DN6TJ=WL`O=.0V%`0@?X`8W[?+LJ<`^P`W_^KHN^^G?J0_<J%?BJ2;V+1'V?0O4E6?Z%6?Z%6?Z%G?Z%G?Z%G?Z%%?Z%%?Z%%?Z#9XO=F.<H+4DY.=Z#)8/;N34&Z-6!R;$&"UBK,CI`!5HM*4?0CKQF.Y#E`B+4RU5?%J0)7H]"1?,F0B+4S&J`!5(I9;EBI(/:\#Q`"+0)EH]33?R-/53DQ*)*EM'4A:");3RO1E]33?R-/J%E`C34S**`(1L-34?"*0YEE]8$*7*9@G@*$D92A&HM!4?!*0Y'&I":\!%XA#4_"B/A7?Q"-AAAG$Q3%IO#DI%(Q*0)'(8QI]A3@Q"*\!1^.Y1D&7ZKQZ(_2YD->YD->YD)=B:$T'9TT'9TQ-+_-R(O-R(O.B+BG0]2C0A:B*G6ZG-(/B[71#Y_&H\";0JZ2$YH(UH_:FI[IXI(JDK4?-?C/I(\$[Q;E@C(KBV1OI8BDV$;NP2!V54[Q?5.V22TY0V$VV2^V3V^16>5F>5/@H3X_YY`&YV/&QU([`VW[XUX;\V8K^VGKVUH+ZV'+R%0]MX^^7,RS8]P$W8NJQ@EP^4N^<R`M<\U9^[P4B.=];P1)H3SJE!!!!!! - 419463168 - 1.0.0.0 - false - 3 + + + LMH-LINX.lvlib:HiTechnic.lvlib + ../../HiTechnic.lvlib + )!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!)=!!!*Q(C=\>8"51*"%)8BJ_8"+EZE9*(#3Y%53+&4Y-K2&$I&5C#&4I%53!&`BN<SI#Q77O8"71?8.\-TX][/KT4+M`3EUV3:T?;@F&G87^KP>2DN6TJ=WL`O=.0V%`0@?X`8W[?+LJ<`^P`W_^KHN^^G?J0_<J%?BJ2;V+1'V?0O4E6?Z%6?Z%6?Z%G?Z%G?Z%G?Z%%?Z%%?Z%%?Z#9XO=F.<H+4DY.=Z#)8/;N34&Z-6!R;$&"UBK,CI`!5HM*4?0CKQF.Y#E`B+4RU5?%J0)7H]"1?,F0B+4S&J`!5(I9;EBI(/:\#Q`"+0)EH]33?R-/53DQ*)*EM'4A:");3RO1E]33?R-/J%E`C34S**`(1L-34?"*0YEE]8$*7*9@G@*$D92A&HM!4?!*0Y'&I":\!%XA#4_"B/A7?Q"-AAAG$Q3%IO#DI%(Q*0)'(8QI]A3@Q"*\!1^.Y1D&7ZKQZ(_2YD->YD->YD)=B:$T'9TT'9TQ-+_-R(O-R(O.B+BG0]2C0A:B*G6ZG-(/B[71#Y_&H\";0JZ2$YH(UH_:FI[IXI(JDK4?-?C/I(\$[Q;E@C(KBV1OI8BDV$;NP2!V54[Q?5.V22TY0V$VV2^V3V^16>5F>5/@H3X_YY`&YV/&QU([`VW[XUX;\V8K^VGKVUH+ZV'+R%0]MX^^7,RS8]P$W8NJQ@EP^4N^<R`M<\U9^[P4B.=];P1)H3SJE!!!!!! + 536903680 + 1.0.0.0 + false + 3 49 57 48 49 50 48 50 51 13 0 0 0 0 1 23 21 76 111 97 100 32 38 32 85 110 108 111 97 100 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 9 0 0 16 241 1 100 1 100 80 84 72 48 0 0 0 4 0 0 0 0 0 0 12 158 0 40 0 0 12 152 0 0 12 0 0 0 0 0 0 32 0 32 0 24 0 0 0 0 0 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 102 255 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 102 255 0 102 255 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 102 255 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 1 0 0 0 1 15 13 76 97 121 101 114 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 7 0 0 3 231 255 255 255 255 255 255 255 255 0 0 3 202 0 40 0 0 3 196 0 0 3 132 0 0 0 0 0 10 0 30 0 24 0 0 0 0 0 255 255 255 0 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 9 67 108 105 112 98 111 97 114 100 100 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 83 109 97 108 108 32 70 111 110 116 115 0 1 9 1 1 - - - - - + + + + + diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Mindstorms/HiTechnic/HiTechnic.lvlib b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Mindstorms/HiTechnic/HiTechnic.lvlib index 6986bd37..1db1d476 100644 --- a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Mindstorms/HiTechnic/HiTechnic.lvlib +++ b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Mindstorms/HiTechnic/HiTechnic.lvlib @@ -1,14 +1,14 @@ - - - LMH-LINX.lvlib - /<vilib>/MakerHub/LINX/LMH-LINX.lvlib - '1#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!)=!!!*Q(C=\>8"51*"%)8BJ_8"+EZE9*(#3Y%53+&4Y-K2&$I&5C#&4I%53!&`BN<SI#Q77O8"71?8.\-TX][/KT4+M`3EUV3:T?;@F&G87^KP>2DN6TJ=WL`O=.0V%`0@?X`8W[?+LJ<`^P`W_^KHN^^G?J0_<J%?BJ2;V+1'V?0O4E6?Z%6?Z%6?Z%G?Z%G?Z%G?Z%%?Z%%?Z%%?Z#9XO=F.<H+4DY.=Z#)8/;N34&Z-6!R;$&"UBK,CI`!5HM*4?0CKQF.Y#E`B+4RU5?%J0)7H]"1?,F0B+4S&J`!5(I9;EBI(/:\#Q`"+0)EH]33?R-/53DQ*)*EM'4A:");3RO1E]33?R-/J%E`C34S**`(1L-34?"*0YEE]8$*7*9@G@*$D92A&HM!4?!*0Y'&I":\!%XA#4_"B/A7?Q"-AAAG$Q3%IO#DI%(Q*0)'(8QI]A3@Q"*\!1^.Y1D&7ZKQZ(_2YD->YD->YD)=B:$T'9TT'9TQ-+_-R(O-R(O.B+BG0]2C0A:B*G6ZG-(/B[71#Y_&H\";0JZ2$YH(UH_:FI[IXI(JDK4?-?C/I(\$[Q;E@C(KBV1OI8BDV$;NP2!V54[Q?5.V22TY0V$VV2^V3V^16>5F>5/@H3X_YY`&YV/&QU([`VW[XUX;\V8K^VGKVUH+ZV'+R%0]MX^^7,RS8]P$W8NJQ@EP^4N^<R`M<\U9^[P4B.=];P1)H3SJE!!!!!! - 419463168 - 1.0.0.0 - false + + + LMH-LINX.lvlib + ../../../../../LMH-LINX.lvlib + )!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!)=!!!*Q(C=\>8"51*"%)8BJ_8"+EZE9*(#3Y%53+&4Y-K2&$I&5C#&4I%53!&`BN<SI#Q77O8"71?8.\-TX][/KT4+M`3EUV3:T?;@F&G87^KP>2DN6TJ=WL`O=.0V%`0@?X`8W[?+LJ<`^P`W_^KHN^^G?J0_<J%?BJ2;V+1'V?0O4E6?Z%6?Z%6?Z%G?Z%G?Z%G?Z%%?Z%%?Z%%?Z#9XO=F.<H+4DY.=Z#)8/;N34&Z-6!R;$&"UBK,CI`!5HM*4?0CKQF.Y#E`B+4RU5?%J0)7H]"1?,F0B+4S&J`!5(I9;EBI(/:\#Q`"+0)EH]33?R-/53DQ*)*EM'4A:");3RO1E]33?R-/J%E`C34S**`(1L-34?"*0YEE]8$*7*9@G@*$D92A&HM!4?!*0Y'&I":\!%XA#4_"B/A7?Q"-AAAG$Q3%IO#DI%(Q*0)'(8QI]A3@Q"*\!1^.Y1D&7ZKQZ(_2YD->YD->YD)=B:$T'9TT'9TQ-+_-R(O-R(O.B+BG0]2C0A:B*G6ZG-(/B[71#Y_&H\";0JZ2$YH(UH_:FI[IXI(JDK4?-?C/I(\$[Q;E@C(KBV1OI8BDV$;NP2!V54[Q?5.V22TY0V$VV2^V3V^16>5F>5/@H3X_YY`&YV/&QU([`VW[XUX;\V8K^VGKVUH+ZV'+R%0]MX^^7,RS8]P$W8NJQ@EP^4N^<R`M<\U9^[P4B.=];P1)H3SJE!!!!!! + 536903680 + 1.0.0.0 + false 49 57 48 49 50 48 50 51 13 0 0 0 0 1 23 21 76 111 97 100 32 38 32 85 110 108 111 97 100 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 9 0 0 16 241 1 100 1 100 80 84 72 48 0 0 0 4 0 0 0 0 0 0 12 158 0 40 0 0 12 152 0 0 12 0 0 0 0 0 0 32 0 32 0 24 0 0 0 0 0 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 102 255 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 102 255 0 102 255 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 102 255 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 1 0 0 0 1 15 13 76 97 121 101 114 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 7 0 0 3 231 255 255 255 255 255 255 255 255 0 0 3 202 0 40 0 0 3 196 0 0 3 132 0 0 0 0 0 10 0 30 0 24 0 0 0 0 0 255 255 255 0 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 9 67 108 105 112 98 111 97 114 100 100 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 83 109 97 108 108 32 70 111 110 116 115 0 1 9 1 1 - - - - - + + + + + diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Misc/DS1307/DS1307.lvlib b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Misc/DS1307/DS1307.lvlib index f55b1510..04885025 100644 --- a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Misc/DS1307/DS1307.lvlib +++ b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Misc/DS1307/DS1307.lvlib @@ -1,14 +1,14 @@ - - - LMH-LINX.lvlib - /<vilib>/MakerHub/LINX/LMH-LINX.lvlib - '1#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!)=!!!*Q(C=\>8"51*"%)8BJ_8"+EZE9*(#3Y%53+&4Y-K2&$I&5C#&4I%53!&`BN<SI#Q77O8"71?8.\-TX][/KT4+M`3EUV3:T?;@F&G87^KP>2DN6TJ=WL`O=.0V%`0@?X`8W[?+LJ<`^P`W_^KHN^^G?J0_<J%?BJ2;V+1'V?0O4E6?Z%6?Z%6?Z%G?Z%G?Z%G?Z%%?Z%%?Z%%?Z#9XO=F.<H+4DY.=Z#)8/;N34&Z-6!R;$&"UBK,CI`!5HM*4?0CKQF.Y#E`B+4RU5?%J0)7H]"1?,F0B+4S&J`!5(I9;EBI(/:\#Q`"+0)EH]33?R-/53DQ*)*EM'4A:");3RO1E]33?R-/J%E`C34S**`(1L-34?"*0YEE]8$*7*9@G@*$D92A&HM!4?!*0Y'&I":\!%XA#4_"B/A7?Q"-AAAG$Q3%IO#DI%(Q*0)'(8QI]A3@Q"*\!1^.Y1D&7ZKQZ(_2YD->YD->YD)=B:$T'9TT'9TQ-+_-R(O-R(O.B+BG0]2C0A:B*G6ZG-(/B[71#Y_&H\";0JZ2$YH(UH_:FI[IXI(JDK4?-?C/I(\$[Q;E@C(KBV1OI8BDV$;NP2!V54[Q?5.V22TY0V$VV2^V3V^16>5F>5/@H3X_YY`&YV/&QU([`VW[XUX;\V8K^VGKVUH+ZV'+R%0]MX^^7,RS8]P$W8NJQ@EP^4N^<R`M<\U9^[P4B.=];P1)H3SJE!!!!!! - 419463168 - 1.0.0.0 - false + + + LMH-LINX.lvlib + ../../../../../LMH-LINX.lvlib + )!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!)=!!!*Q(C=\>8"51*"%)8BJ_8"+EZE9*(#3Y%53+&4Y-K2&$I&5C#&4I%53!&`BN<SI#Q77O8"71?8.\-TX][/KT4+M`3EUV3:T?;@F&G87^KP>2DN6TJ=WL`O=.0V%`0@?X`8W[?+LJ<`^P`W_^KHN^^G?J0_<J%?BJ2;V+1'V?0O4E6?Z%6?Z%6?Z%G?Z%G?Z%G?Z%%?Z%%?Z%%?Z#9XO=F.<H+4DY.=Z#)8/;N34&Z-6!R;$&"UBK,CI`!5HM*4?0CKQF.Y#E`B+4RU5?%J0)7H]"1?,F0B+4S&J`!5(I9;EBI(/:\#Q`"+0)EH]33?R-/53DQ*)*EM'4A:");3RO1E]33?R-/J%E`C34S**`(1L-34?"*0YEE]8$*7*9@G@*$D92A&HM!4?!*0Y'&I":\!%XA#4_"B/A7?Q"-AAAG$Q3%IO#DI%(Q*0)'(8QI]A3@Q"*\!1^.Y1D&7ZKQZ(_2YD->YD->YD)=B:$T'9TT'9TQ-+_-R(O-R(O.B+BG0]2C0A:B*G6ZG-(/B[71#Y_&H\";0JZ2$YH(UH_:FI[IXI(JDK4?-?C/I(\$[Q;E@C(KBV1OI8BDV$;NP2!V54[Q?5.V22TY0V$VV2^V3V^16>5F>5/@H3X_YY`&YV/&QU([`VW[XUX;\V8K^VGKVUH+ZV'+R%0]MX^^7,RS8]P$W8NJQ@EP^4N^<R`M<\U9^[P4B.=];P1)H3SJE!!!!!! + 536903680 + 1.0.0.0 + false 49 57 48 49 50 48 50 51 13 0 0 0 0 1 23 21 76 111 97 100 32 38 32 85 110 108 111 97 100 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 9 0 0 16 241 1 100 1 100 80 84 72 48 0 0 0 4 0 0 0 0 0 0 12 158 0 40 0 0 12 152 0 0 12 0 0 0 0 0 0 32 0 32 0 24 0 0 0 0 0 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 102 255 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 102 255 0 102 255 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 102 255 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 1 0 0 0 1 15 13 76 97 121 101 114 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 7 0 0 3 231 255 255 255 255 255 255 255 255 0 0 3 202 0 40 0 0 3 196 0 0 3 132 0 0 0 0 0 10 0 30 0 24 0 0 0 0 0 255 255 255 0 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 9 67 108 105 112 98 111 97 114 100 100 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 83 109 97 108 108 32 70 111 110 116 115 0 1 8 1 1 - - - - - + + + + + diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Misc/DS1307/Open.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Misc/DS1307/Open.vi index 649befd5..5e9f7f5e 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Misc/DS1307/Open.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Misc/DS1307/Open.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Misc/DS1307/Read.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Misc/DS1307/Read.vi index 30bb30bd..68a88e14 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Misc/DS1307/Read.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Misc/DS1307/Read.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Misc/DS1307/Write.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Misc/DS1307/Write.vi index d8a75d4b..1385791f 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Misc/DS1307/Write.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Misc/DS1307/Write.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Misc/Photocell.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Misc/Photocell.vi index bc01d754..83cb4507 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Misc/Photocell.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Misc/Photocell.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Misc/Thumbstick.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Misc/Thumbstick.vi index 37c27ac1..2f98c8c6 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Misc/Thumbstick.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Misc/Thumbstick.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Motion/Servo/Servo Close N Channels.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Motion/Servo/Servo Close N Channels.vi index 8023a66a..1c9d34b3 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Motion/Servo/Servo Close N Channels.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Motion/Servo/Servo Close N Channels.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Motion/Servo/Servo Close One Channel.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Motion/Servo/Servo Close One Channel.vi index ed17216d..26a20095 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Motion/Servo/Servo Close One Channel.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Motion/Servo/Servo Close One Channel.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Motion/Servo/Servo Close.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Motion/Servo/Servo Close.vi index bba54465..b6a7428b 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Motion/Servo/Servo Close.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Motion/Servo/Servo Close.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Motion/Servo/Servo Open N Channels.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Motion/Servo/Servo Open N Channels.vi index 42578dca..1b486e4a 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Motion/Servo/Servo Open N Channels.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Motion/Servo/Servo Open N Channels.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Motion/Servo/Servo Open One Channel.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Motion/Servo/Servo Open One Channel.vi index ba55d0ac..730da868 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Motion/Servo/Servo Open One Channel.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Motion/Servo/Servo Open One Channel.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Motion/Servo/Servo Open.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Motion/Servo/Servo Open.vi index ae3e3337..b5618e91 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Motion/Servo/Servo Open.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Motion/Servo/Servo Open.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Motion/Servo/Servo Set Pulse Width N Channels.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Motion/Servo/Servo Set Pulse Width N Channels.vi index 08329108..a3342a10 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Motion/Servo/Servo Set Pulse Width N Channels.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Motion/Servo/Servo Set Pulse Width N Channels.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Motion/Servo/Servo Set Pulse Width One Channel.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Motion/Servo/Servo Set Pulse Width One Channel.vi index 879bd175..1d8e805c 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Motion/Servo/Servo Set Pulse Width One Channel.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Motion/Servo/Servo Set Pulse Width One Channel.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Motion/Servo/Servo Set Pulse Width.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Motion/Servo/Servo Set Pulse Width.vi index e49d555b..2ea2d655 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Motion/Servo/Servo Set Pulse Width.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Motion/Servo/Servo Set Pulse Width.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Motion/Servo/Servo.lvlib b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Motion/Servo/Servo.lvlib index ef27585f..83ba1138 100644 --- a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Motion/Servo/Servo.lvlib +++ b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Motion/Servo/Servo.lvlib @@ -1,21 +1,21 @@ - - - LMH-LINX.lvlib - /<vilib>/MakerHub/LINX/LMH-LINX.lvlib - '1#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!)4!!!*Q(C=\>8.45*"&-8RIX&BQMI/$#X=&GC"&GY,<&H3QGG"&GDBNE!,N)$`.^Q1&QIE3H4"0!@BT.?0?:/(.-KL^+,DN4+<P8V2:FVO;<`59<2@[("K`\\$4?/PL0`4\X?Z`5L2ITT+XZ<VV5.[^T0\J/F"2#WKK5E.45M>C\T)C\T)C\T)47ZSEZP=Z#:0]C20]C20]C10]C!0]C!0]C!@&\H)23ZS3-8CR5,&J-5%27=I+FY+4_%J0)7(DSI]B;@Q&*\#1R=6HM*4?!J0Y7'9#E`B+4S&J`!QV:$5O-DR&"[GF`%9D`%9D`'QJ)T(!-RC:G)T#1S:2P0'?)T(?(ALYT%?YT%?Y[&:RG-]RG-]RM/1M3M?GOECR]-U3DS**`%EHM4$V%I]C3@R**\%QX*+0)EH131,*J.$5$)I[:"]3$S*BX^+0)EH]33?R%04O%-Z>G<34"=ZHM!4?!*0Y!E]4+(!%XA#4_!*0%SLQ".Y!E`A#4QMJ=!4?!*0!!E7:8E&EQ5$AUZ"%(DY'[=FRFXSE-3YJ$[][E/J0GTK1[1_(/K<LL[:[JOEXHTVJKIX3\U*[C_H2KMR[E85A[?//P#[J_[I7_K'OK)OK1PKH0IW$@XFDI@$1@P^8LP>4NPN6JP.2KP63MPF5IP&1P0Z80R9HB]$\VTH"],JO<4G`3XV4L_F`_$:K'>^HJ=^_A$N*D?M!!!!!! - 419463168 - 1.0.0.0 - false - 3 + + + LMH-LINX.lvlib + ../../../../../LMH-LINX.lvlib + )!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!)4!!!*Q(C=\>8.45*"&-8RIX&BQMI/$#X=&GC"&GY,<&H3QGG"&GDBNE!,N)$`.^Q1&QIE3H4"0!@BT.?0?:/(.-KL^+,DN4+<P8V2:FVO;<`59<2@[("K`\\$4?/PL0`4\X?Z`5L2ITT+XZ<VV5.[^T0\J/F"2#WKK5E.45M>C\T)C\T)C\T)47ZSEZP=Z#:0]C20]C20]C10]C!0]C!0]C!@&\H)23ZS3-8CR5,&J-5%27=I+FY+4_%J0)7(DSI]B;@Q&*\#1R=6HM*4?!J0Y7'9#E`B+4S&J`!QV:$5O-DR&"[GF`%9D`%9D`'QJ)T(!-RC:G)T#1S:2P0'?)T(?(ALYT%?YT%?Y[&:RG-]RG-]RM/1M3M?GOECR]-U3DS**`%EHM4$V%I]C3@R**\%QX*+0)EH131,*J.$5$)I[:"]3$S*BX^+0)EH]33?R%04O%-Z>G<34"=ZHM!4?!*0Y!E]4+(!%XA#4_!*0%SLQ".Y!E`A#4QMJ=!4?!*0!!E7:8E&EQ5$AUZ"%(DY'[=FRFXSE-3YJ$[][E/J0GTK1[1_(/K<LL[:[JOEXHTVJKIX3\U*[C_H2KMR[E85A[?//P#[J_[I7_K'OK)OK1PKH0IW$@XFDI@$1@P^8LP>4NPN6JP.2KP63MPF5IP&1P0Z80R9HB]$\VTH"],JO<4G`3XV4L_F`_$:K'>^HJ=^_A$N*D?M!!!!!! + 536903680 + 1.0.0.0 + false + 3 49 57 48 49 50 48 50 51 13 0 0 0 0 1 23 21 76 111 97 100 32 38 32 85 110 108 111 97 100 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 9 0 0 17 44 1 100 1 100 80 84 72 48 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 1 15 13 76 97 121 101 114 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 7 0 0 3 231 255 255 255 255 255 255 255 255 0 0 3 202 0 40 0 0 3 196 0 0 3 132 0 0 0 0 0 10 0 30 0 24 0 0 0 0 0 255 255 255 0 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 9 67 108 105 112 98 111 97 114 100 100 1 0 0 0 0 0 1 15 13 76 97 121 101 114 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 7 0 0 12 185 0 0 0 0 0 0 0 0 0 0 12 158 0 40 0 0 12 152 0 0 12 0 0 0 0 0 0 32 0 32 0 24 0 0 0 0 0 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 0 0 0 0 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 0 0 0 0 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 0 0 0 0 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 0 0 0 0 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 0 0 0 0 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 0 0 0 0 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 0 0 0 0 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 0 0 0 0 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 0 0 0 0 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7 86 73 32 73 99 111 110 100 1 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 83 109 97 108 108 32 70 111 110 116 115 0 1 8 1 1 - - - - - - - - - - - + + + + + + + + + + + diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/ACL/Close.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/ACL/Close.vi index 2bdbe750..57ab830d 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/ACL/Close.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/ACL/Close.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/ACL/Open.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/ACL/Open.vi index d89a6546..01f5054e 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/ACL/Open.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/ACL/Open.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/ACL/PmodACL.lvlib b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/ACL/PmodACL.lvlib index 0bd0d12f..252cc22f 100644 --- a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/ACL/PmodACL.lvlib +++ b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/ACL/PmodACL.lvlib @@ -1,15 +1,15 @@ - - - LMH-LINX.lvlib - /<vilib>/MakerHub/LINX/LMH-LINX.lvlib - '1#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!)4!!!*Q(C=\>8.45*"&-8RIX&BQMI/$#X=&GC"&GY,<&H3QGG"&GDBNE!,N)$`.^Q1&QIE3H4"0!@BT.?0?:/(.-KL^+,DN4+<P8V2:FVO;<`59<2@[("K`\\$4?/PL0`4\X?Z`5L2ITT+XZ<VV5.[^T0\J/F"2#WKK5E.45M>C\T)C\T)C\T)47ZSEZP=Z#:0]C20]C20]C10]C!0]C!0]C!@&\H)23ZS3-8CR5,&J-5%27=I+FY+4_%J0)7(DSI]B;@Q&*\#1R=6HM*4?!J0Y7'9#E`B+4S&J`!QV:$5O-DR&"[GF`%9D`%9D`'QJ)T(!-RC:G)T#1S:2P0'?)T(?(ALYT%?YT%?Y[&:RG-]RG-]RM/1M3M?GOECR]-U3DS**`%EHM4$V%I]C3@R**\%QX*+0)EH131,*J.$5$)I[:"]3$S*BX^+0)EH]33?R%04O%-Z>G<34"=ZHM!4?!*0Y!E]4+(!%XA#4_!*0%SLQ".Y!E`A#4QMJ=!4?!*0!!E7:8E&EQ5$AUZ"%(DY'[=FRFXSE-3YJ$[][E/J0GTK1[1_(/K<LL[:[JOEXHTVJKIX3\U*[C_H2KMR[E85A[?//P#[J_[I7_K'OK)OK1PKH0IW$@XFDI@$1@P^8LP>4NPN6JP.2KP63MPF5IP&1P0Z80R9HB]$\VTH"],JO<4G`3XV4L_F`_$:K'>^HJ=^_A$N*D?M!!!!!! - 419463168 - 1.0.0.0 - false - 3 + + + LMH-LINX.lvlib + ../../../../../LMH-LINX.lvlib + )!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!)4!!!*Q(C=\>8.45*"&-8RIX&BQMI/$#X=&GC"&GY,<&H3QGG"&GDBNE!,N)$`.^Q1&QIE3H4"0!@BT.?0?:/(.-KL^+,DN4+<P8V2:FVO;<`59<2@[("K`\\$4?/PL0`4\X?Z`5L2ITT+XZ<VV5.[^T0\J/F"2#WKK5E.45M>C\T)C\T)C\T)47ZSEZP=Z#:0]C20]C20]C10]C!0]C!0]C!@&\H)23ZS3-8CR5,&J-5%27=I+FY+4_%J0)7(DSI]B;@Q&*\#1R=6HM*4?!J0Y7'9#E`B+4S&J`!QV:$5O-DR&"[GF`%9D`%9D`'QJ)T(!-RC:G)T#1S:2P0'?)T(?(ALYT%?YT%?Y[&:RG-]RG-]RM/1M3M?GOECR]-U3DS**`%EHM4$V%I]C3@R**\%QX*+0)EH131,*J.$5$)I[:"]3$S*BX^+0)EH]33?R%04O%-Z>G<34"=ZHM!4?!*0Y!E]4+(!%XA#4_!*0%SLQ".Y!E`A#4QMJ=!4?!*0!!E7:8E&EQ5$AUZ"%(DY'[=FRFXSE-3YJ$[][E/J0GTK1[1_(/K<LL[:[JOEXHTVJKIX3\U*[C_H2KMR[E85A[?//P#[J_[I7_K'OK)OK1PKH0IW$@XFDI@$1@P^8LP>4NPN6JP.2KP63MPF5IP&1P0Z80R9HB]$\VTH"],JO<4G`3XV4L_F`_$:K'>^HJ=^_A$N*D?M!!!!!! + 536903680 + 1.0.0.0 + false + 3 49 57 48 49 50 48 50 51 13 0 0 0 0 1 23 21 76 111 97 100 32 38 32 85 110 108 111 97 100 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 9 0 0 17 44 1 100 1 100 80 84 72 48 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 1 15 13 76 97 121 101 114 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 7 0 0 3 231 255 255 255 255 255 255 255 255 0 0 3 202 0 40 0 0 3 196 0 0 3 132 0 0 0 0 0 10 0 30 0 24 0 0 0 0 0 255 255 255 0 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 9 67 108 105 112 98 111 97 114 100 100 1 0 0 0 0 0 1 15 13 76 97 121 101 114 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 7 0 0 12 185 0 0 0 0 0 0 0 0 0 0 12 158 0 40 0 0 12 152 0 0 12 0 0 0 0 0 0 32 0 32 0 24 0 0 0 0 0 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 0 0 0 0 0 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 0 0 0 0 0 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 0 0 0 0 0 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 0 0 0 0 0 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 0 0 0 0 0 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 0 0 0 0 0 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 0 0 0 0 0 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 0 0 0 0 0 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 0 0 0 0 0 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7 86 73 32 73 99 111 110 100 1 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 83 109 97 108 108 32 70 111 110 116 115 0 1 8 1 1 - - - - - + + + + + diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/ACL/Read.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/ACL/Read.vi index 05924580..524ba690 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/ACL/Read.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/ACL/Read.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/ACL2/Close.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/ACL2/Close.vi index e0acdc08..883f10ab 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/ACL2/Close.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/ACL2/Close.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/ACL2/Open.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/ACL2/Open.vi index 9433f146..44db017c 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/ACL2/Open.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/ACL2/Open.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/ACL2/PmodACL2.lvlib b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/ACL2/PmodACL2.lvlib index 221d1d49..82513ea6 100644 --- a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/ACL2/PmodACL2.lvlib +++ b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/ACL2/PmodACL2.lvlib @@ -1,14 +1,14 @@  LMH-LINX.lvlib - /<vilib>/MakerHub/LINX/LMH-LINX.lvlib + ../../../../../LMH-LINX.lvlib '1#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!)4!!!*Q(C=\>8.45*"&-8RIX&BQMI/$#X=&GC"&GY,<&H3QGG"&GDBNE!,N)$`.^Q1&QIE3H4"0!@BT.?0?:/(.-KL^+,DN4+<P8V2:FVO;<`59<2@[("K`\\$4?/PL0`4\X?Z`5L2ITT+XZ<VV5.[^T0\J/F"2#WKK5E.45M>C\T)C\T)C\T)47ZSEZP=Z#:0]C20]C20]C10]C!0]C!0]C!@&\H)23ZS3-8CR5,&J-5%27=I+FY+4_%J0)7(DSI]B;@Q&*\#1R=6HM*4?!J0Y7'9#E`B+4S&J`!QV:$5O-DR&"[GF`%9D`%9D`'QJ)T(!-RC:G)T#1S:2P0'?)T(?(ALYT%?YT%?Y[&:RG-]RG-]RM/1M3M?GOECR]-U3DS**`%EHM4$V%I]C3@R**\%QX*+0)EH131,*J.$5$)I[:"]3$S*BX^+0)EH]33?R%04O%-Z>G<34"=ZHM!4?!*0Y!E]4+(!%XA#4_!*0%SLQ".Y!E`A#4QMJ=!4?!*0!!E7:8E&EQ5$AUZ"%(DY'[=FRFXSE-3YJ$[][E/J0GTK1[1_(/K<LL[:[JOEXHTVJKIX3\U*[C_H2KMR[E85A[?//P#[J_[I7_K'OK)OK1PKH0IW$@XFDI@$1@P^8LP>4NPN6JP.2KP63MPF5IP&1P0Z80R9HB]$\VTH"],JO<4G`3XV4L_F`_$:K'>^HJ=^_A$N*D?M!!!!!! 419463168 1.0.0.0 true 49 57 48 49 50 48 50 51 13 0 0 0 0 1 23 21 76 111 97 100 32 38 32 85 110 108 111 97 100 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 9 0 0 17 44 1 100 1 100 80 84 72 48 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 1 15 13 76 97 121 101 114 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 7 0 0 3 231 255 255 255 255 255 255 255 255 0 0 3 202 0 40 0 0 3 196 0 0 3 132 0 0 0 0 0 10 0 30 0 24 0 0 0 0 0 255 255 255 0 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 9 67 108 105 112 98 111 97 114 100 100 1 0 0 0 0 0 1 15 13 76 97 121 101 114 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 7 0 0 12 185 0 0 0 0 0 0 0 0 0 0 12 158 0 40 0 0 12 152 0 0 12 0 0 0 0 0 0 32 0 32 0 24 0 0 0 0 0 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 0 0 0 0 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 0 0 0 0 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 0 0 0 0 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 0 0 0 0 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 0 0 0 0 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 0 0 0 0 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 0 0 0 0 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 0 0 0 0 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 0 0 0 0 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7 86 73 32 73 99 111 110 100 1 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 83 109 97 108 108 32 70 111 110 116 115 0 1 8 1 1 - - - + + + diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/ACL2/Read.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/ACL2/Read.vi index 3a8933df..dc8a9586 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/ACL2/Read.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/ACL2/Read.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/ALS/Open.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/ALS/Open.vi index f022af22..e84b471a 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/ALS/Open.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/ALS/Open.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/ALS/PmodALS.lvlib b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/ALS/PmodALS.lvlib index 390fcbc5..036a31e0 100644 --- a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/ALS/PmodALS.lvlib +++ b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/ALS/PmodALS.lvlib @@ -1,13 +1,13 @@ - - - LMH-LINX.lvlib - /<vilib>/MakerHub/LINX/LMH-LINX.lvlib - '1#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!)4!!!*Q(C=\>8.45*"&-8RIX&BQMI/$#X=&GC"&GY,<&H3QGG"&GDBNE!,N)$`.^Q1&QIE3H4"0!@BT.?0?:/(.-KL^+,DN4+<P8V2:FVO;<`59<2@[("K`\\$4?/PL0`4\X?Z`5L2ITT+XZ<VV5.[^T0\J/F"2#WKK5E.45M>C\T)C\T)C\T)47ZSEZP=Z#:0]C20]C20]C10]C!0]C!0]C!@&\H)23ZS3-8CR5,&J-5%27=I+FY+4_%J0)7(DSI]B;@Q&*\#1R=6HM*4?!J0Y7'9#E`B+4S&J`!QV:$5O-DR&"[GF`%9D`%9D`'QJ)T(!-RC:G)T#1S:2P0'?)T(?(ALYT%?YT%?Y[&:RG-]RG-]RM/1M3M?GOECR]-U3DS**`%EHM4$V%I]C3@R**\%QX*+0)EH131,*J.$5$)I[:"]3$S*BX^+0)EH]33?R%04O%-Z>G<34"=ZHM!4?!*0Y!E]4+(!%XA#4_!*0%SLQ".Y!E`A#4QMJ=!4?!*0!!E7:8E&EQ5$AUZ"%(DY'[=FRFXSE-3YJ$[][E/J0GTK1[1_(/K<LL[:[JOEXHTVJKIX3\U*[C_H2KMR[E85A[?//P#[J_[I7_K'OK)OK1PKH0IW$@XFDI@$1@P^8LP>4NPN6JP.2KP63MPF5IP&1P0Z80R9HB]$\VTH"],JO<4G`3XV4L_F`_$:K'>^HJ=^_A$N*D?M!!!!!! - 419463168 - 1.0.0.0 - false + + + LMH-LINX.lvlib + ../../../../../LMH-LINX.lvlib + )!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!)4!!!*Q(C=\>8.45*"&-8RIX&BQMI/$#X=&GC"&GY,<&H3QGG"&GDBNE!,N)$`.^Q1&QIE3H4"0!@BT.?0?:/(.-KL^+,DN4+<P8V2:FVO;<`59<2@[("K`\\$4?/PL0`4\X?Z`5L2ITT+XZ<VV5.[^T0\J/F"2#WKK5E.45M>C\T)C\T)C\T)47ZSEZP=Z#:0]C20]C20]C10]C!0]C!0]C!@&\H)23ZS3-8CR5,&J-5%27=I+FY+4_%J0)7(DSI]B;@Q&*\#1R=6HM*4?!J0Y7'9#E`B+4S&J`!QV:$5O-DR&"[GF`%9D`%9D`'QJ)T(!-RC:G)T#1S:2P0'?)T(?(ALYT%?YT%?Y[&:RG-]RG-]RM/1M3M?GOECR]-U3DS**`%EHM4$V%I]C3@R**\%QX*+0)EH131,*J.$5$)I[:"]3$S*BX^+0)EH]33?R%04O%-Z>G<34"=ZHM!4?!*0Y!E]4+(!%XA#4_!*0%SLQ".Y!E`A#4QMJ=!4?!*0!!E7:8E&EQ5$AUZ"%(DY'[=FRFXSE-3YJ$[][E/J0GTK1[1_(/K<LL[:[JOEXHTVJKIX3\U*[C_H2KMR[E85A[?//P#[J_[I7_K'OK)OK1PKH0IW$@XFDI@$1@P^8LP>4NPN6JP.2KP63MPF5IP&1P0Z80R9HB]$\VTH"],JO<4G`3XV4L_F`_$:K'>^HJ=^_A$N*D?M!!!!!! + 536903680 + 1.0.0.0 + false 49 57 48 49 50 48 50 51 13 0 0 0 0 1 23 21 76 111 97 100 32 38 32 85 110 108 111 97 100 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 9 0 0 17 44 1 100 1 100 80 84 72 48 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 1 15 13 76 97 121 101 114 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 7 0 0 3 231 255 255 255 255 255 255 255 255 0 0 3 202 0 40 0 0 3 196 0 0 3 132 0 0 0 0 0 10 0 30 0 24 0 0 0 0 0 255 255 255 0 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 9 67 108 105 112 98 111 97 114 100 100 1 0 0 0 0 0 1 15 13 76 97 121 101 114 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 7 0 0 12 185 0 0 0 0 0 0 0 0 0 0 12 158 0 40 0 0 12 152 0 0 12 0 0 0 0 0 0 32 0 32 0 24 0 0 0 0 0 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 0 0 0 0 0 0 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 0 0 0 0 0 0 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 0 0 0 0 0 0 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 0 0 0 0 0 0 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 0 0 0 0 0 0 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 0 0 0 0 0 0 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 0 0 0 0 0 0 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 0 0 0 0 0 0 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 0 0 0 0 0 0 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7 86 73 32 73 99 111 110 100 1 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 83 109 97 108 108 32 70 111 110 116 115 0 1 8 1 1 - - - - + + + + diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/ALS/Read.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/ALS/Read.vi index bddf63aa..e506009a 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/ALS/Read.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/ALS/Read.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/BT2/Close.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/BT2/Close.vi index c16555cf..c58717f5 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/BT2/Close.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/BT2/Close.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/BT2/Open.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/BT2/Open.vi index 24d9d6e1..ec8a5a1c 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/BT2/Open.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/BT2/Open.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/BT2/PmodBT2.lvlib b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/BT2/PmodBT2.lvlib index ce3c48ea..7ab30147 100644 --- a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/BT2/PmodBT2.lvlib +++ b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/BT2/PmodBT2.lvlib @@ -1,14 +1,14 @@  LMH-LINX.lvlib - /<vilib>/MakerHub/LINX/LMH-LINX.lvlib + ../../../../../LMH-LINX.lvlib '1#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!)4!!!*Q(C=\>8.45*"&-8RIX&BQMI/$#X=&GC"&GY,<&H3QGG"&GDBNE!,N)$`.^Q1&QIE3H4"0!@BT.?0?:/(.-KL^+,DN4+<P8V2:FVO;<`59<2@[("K`\\$4?/PL0`4\X?Z`5L2ITT+XZ<VV5.[^T0\J/F"2#WKK5E.45M>C\T)C\T)C\T)47ZSEZP=Z#:0]C20]C20]C10]C!0]C!0]C!@&\H)23ZS3-8CR5,&J-5%27=I+FY+4_%J0)7(DSI]B;@Q&*\#1R=6HM*4?!J0Y7'9#E`B+4S&J`!QV:$5O-DR&"[GF`%9D`%9D`'QJ)T(!-RC:G)T#1S:2P0'?)T(?(ALYT%?YT%?Y[&:RG-]RG-]RM/1M3M?GOECR]-U3DS**`%EHM4$V%I]C3@R**\%QX*+0)EH131,*J.$5$)I[:"]3$S*BX^+0)EH]33?R%04O%-Z>G<34"=ZHM!4?!*0Y!E]4+(!%XA#4_!*0%SLQ".Y!E`A#4QMJ=!4?!*0!!E7:8E&EQ5$AUZ"%(DY'[=FRFXSE-3YJ$[][E/J0GTK1[1_(/K<LL[:[JOEXHTVJKIX3\U*[C_H2KMR[E85A[?//P#[J_[I7_K'OK)OK1PKH0IW$@XFDI@$1@P^8LP>4NPN6JP.2KP63MPF5IP&1P0Z80R9HB]$\VTH"],JO<4G`3XV4L_F`_$:K'>^HJ=^_A$N*D?M!!!!!! 419463168 1.0.0.0 true 49 57 48 49 50 48 50 51 13 0 0 0 0 1 23 21 76 111 97 100 32 38 32 85 110 108 111 97 100 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 9 0 0 17 44 1 100 1 100 80 84 72 48 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 1 15 13 76 97 121 101 114 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 7 0 0 3 231 255 255 255 255 255 255 255 255 0 0 3 202 0 40 0 0 3 196 0 0 3 132 0 0 0 0 0 10 0 30 0 24 0 0 0 0 0 255 255 255 0 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 9 67 108 105 112 98 111 97 114 100 100 1 0 0 0 0 0 1 15 13 76 97 121 101 114 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 7 0 0 12 185 0 0 0 0 0 0 0 0 0 0 12 158 0 40 0 0 12 152 0 0 12 0 0 0 0 0 0 32 0 32 0 24 0 0 0 0 0 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 0 0 0 0 0 0 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 0 0 0 0 0 0 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 0 0 0 0 0 0 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 0 0 0 0 0 0 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 0 0 0 0 0 0 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 0 0 0 0 0 0 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 0 0 0 0 0 0 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 0 0 0 0 0 0 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 0 0 0 0 0 0 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 102 153 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7 86 73 32 73 99 111 110 100 1 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 83 109 97 108 108 32 70 111 110 116 115 0 1 8 1 1 - - - + + + diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/BT2/WriteRead.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/BT2/WriteRead.vi index ac21e014..33f90cf0 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/BT2/WriteRead.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/BT2/WriteRead.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/CMPS/Close.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/CMPS/Close.vi index 85301c7f..351a1890 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/CMPS/Close.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/CMPS/Close.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/CMPS/Open.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/CMPS/Open.vi index 3b9c16a6..037ee34d 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/CMPS/Open.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/CMPS/Open.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/CMPS/PmodCMPS.lvlib b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/CMPS/PmodCMPS.lvlib index e9d16eaf..6e50cdfa 100644 --- a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/CMPS/PmodCMPS.lvlib +++ b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/CMPS/PmodCMPS.lvlib @@ -1,15 +1,15 @@ - - - LMH-LINX.lvlib - /<vilib>/MakerHub/LINX/LMH-LINX.lvlib - '1#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!)4!!!*Q(C=\>8.45*"&-8RIX&BQMI/$#X=&GC"&GY,<&H3QGG"&GDBNE!,N)$`.^Q1&QIE3H4"0!@BT.?0?:/(.-KL^+,DN4+<P8V2:FVO;<`59<2@[("K`\\$4?/PL0`4\X?Z`5L2ITT+XZ<VV5.[^T0\J/F"2#WKK5E.45M>C\T)C\T)C\T)47ZSEZP=Z#:0]C20]C20]C10]C!0]C!0]C!@&\H)23ZS3-8CR5,&J-5%27=I+FY+4_%J0)7(DSI]B;@Q&*\#1R=6HM*4?!J0Y7'9#E`B+4S&J`!QV:$5O-DR&"[GF`%9D`%9D`'QJ)T(!-RC:G)T#1S:2P0'?)T(?(ALYT%?YT%?Y[&:RG-]RG-]RM/1M3M?GOECR]-U3DS**`%EHM4$V%I]C3@R**\%QX*+0)EH131,*J.$5$)I[:"]3$S*BX^+0)EH]33?R%04O%-Z>G<34"=ZHM!4?!*0Y!E]4+(!%XA#4_!*0%SLQ".Y!E`A#4QMJ=!4?!*0!!E7:8E&EQ5$AUZ"%(DY'[=FRFXSE-3YJ$[][E/J0GTK1[1_(/K<LL[:[JOEXHTVJKIX3\U*[C_H2KMR[E85A[?//P#[J_[I7_K'OK)OK1PKH0IW$@XFDI@$1@P^8LP>4NPN6JP.2KP63MPF5IP&1P0Z80R9HB]$\VTH"],JO<4G`3XV4L_F`_$:K'>^HJ=^_A$N*D?M!!!!!! - 419463168 - 1.0.0.0 - false - 3 + + + LMH-LINX.lvlib + ../../../../../LMH-LINX.lvlib + )!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!)4!!!*Q(C=\>8.45*"&-8RIX&BQMI/$#X=&GC"&GY,<&H3QGG"&GDBNE!,N)$`.^Q1&QIE3H4"0!@BT.?0?:/(.-KL^+,DN4+<P8V2:FVO;<`59<2@[("K`\\$4?/PL0`4\X?Z`5L2ITT+XZ<VV5.[^T0\J/F"2#WKK5E.45M>C\T)C\T)C\T)47ZSEZP=Z#:0]C20]C20]C10]C!0]C!0]C!@&\H)23ZS3-8CR5,&J-5%27=I+FY+4_%J0)7(DSI]B;@Q&*\#1R=6HM*4?!J0Y7'9#E`B+4S&J`!QV:$5O-DR&"[GF`%9D`%9D`'QJ)T(!-RC:G)T#1S:2P0'?)T(?(ALYT%?YT%?Y[&:RG-]RG-]RM/1M3M?GOECR]-U3DS**`%EHM4$V%I]C3@R**\%QX*+0)EH131,*J.$5$)I[:"]3$S*BX^+0)EH]33?R%04O%-Z>G<34"=ZHM!4?!*0Y!E]4+(!%XA#4_!*0%SLQ".Y!E`A#4QMJ=!4?!*0!!E7:8E&EQ5$AUZ"%(DY'[=FRFXSE-3YJ$[][E/J0GTK1[1_(/K<LL[:[JOEXHTVJKIX3\U*[C_H2KMR[E85A[?//P#[J_[I7_K'OK)OK1PKH0IW$@XFDI@$1@P^8LP>4NPN6JP.2KP63MPF5IP&1P0Z80R9HB]$\VTH"],JO<4G`3XV4L_F`_$:K'>^HJ=^_A$N*D?M!!!!!! + 536903680 + 1.0.0.0 + false + 3 49 57 48 49 50 48 50 51 13 0 0 0 0 1 23 21 76 111 97 100 32 38 32 85 110 108 111 97 100 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 9 0 0 17 44 1 100 1 100 80 84 72 48 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 1 15 13 76 97 121 101 114 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 7 0 0 3 231 255 255 255 255 255 255 255 255 0 0 3 202 0 40 0 0 3 196 0 0 3 132 0 0 0 0 0 10 0 30 0 24 0 0 0 0 0 255 255 255 0 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 9 67 108 105 112 98 111 97 114 100 100 1 0 0 0 0 0 1 15 13 76 97 121 101 114 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 7 0 0 12 185 0 0 0 0 0 0 0 0 0 0 12 158 0 40 0 0 12 152 0 0 12 0 0 0 0 0 0 32 0 32 0 24 0 0 0 0 0 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 0 0 0 0 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 0 0 0 0 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 0 0 0 0 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 0 0 0 0 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 0 0 0 0 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 0 0 0 0 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 0 0 0 0 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 0 0 0 0 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 0 0 0 0 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7 86 73 32 73 99 111 110 100 1 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 83 109 97 108 108 32 70 111 110 116 115 0 1 8 1 1 - - - - - + + + + + diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/CMPS/Read.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/CMPS/Read.vi index 169e51c4..23c6cb24 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/CMPS/Read.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/CMPS/Read.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/GPS/Close.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/GPS/Close.vi index 52cf91f5..f7ccd426 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/GPS/Close.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/GPS/Close.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/GPS/Open.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/GPS/Open.vi index ed5e6d16..cd3c680d 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/GPS/Open.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/GPS/Open.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/GPS/PmodGPS.lvlib b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/GPS/PmodGPS.lvlib index 58216522..2f2eb9ec 100644 --- a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/GPS/PmodGPS.lvlib +++ b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/GPS/PmodGPS.lvlib @@ -1,14 +1,14 @@  LMH-LINX.lvlib - /<vilib>/MakerHub/LINX/LMH-LINX.lvlib + ../../../../../LMH-LINX.lvlib '1#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!)4!!!*Q(C=\>8.45*"&-8RIX&BQMI/$#X=&GC"&GY,<&H3QGG"&GDBNE!,N)$`.^Q1&QIE3H4"0!@BT.?0?:/(.-KL^+,DN4+<P8V2:FVO;<`59<2@[("K`\\$4?/PL0`4\X?Z`5L2ITT+XZ<VV5.[^T0\J/F"2#WKK5E.45M>C\T)C\T)C\T)47ZSEZP=Z#:0]C20]C20]C10]C!0]C!0]C!@&\H)23ZS3-8CR5,&J-5%27=I+FY+4_%J0)7(DSI]B;@Q&*\#1R=6HM*4?!J0Y7'9#E`B+4S&J`!QV:$5O-DR&"[GF`%9D`%9D`'QJ)T(!-RC:G)T#1S:2P0'?)T(?(ALYT%?YT%?Y[&:RG-]RG-]RM/1M3M?GOECR]-U3DS**`%EHM4$V%I]C3@R**\%QX*+0)EH131,*J.$5$)I[:"]3$S*BX^+0)EH]33?R%04O%-Z>G<34"=ZHM!4?!*0Y!E]4+(!%XA#4_!*0%SLQ".Y!E`A#4QMJ=!4?!*0!!E7:8E&EQ5$AUZ"%(DY'[=FRFXSE-3YJ$[][E/J0GTK1[1_(/K<LL[:[JOEXHTVJKIX3\U*[C_H2KMR[E85A[?//P#[J_[I7_K'OK)OK1PKH0IW$@XFDI@$1@P^8LP>4NPN6JP.2KP63MPF5IP&1P0Z80R9HB]$\VTH"],JO<4G`3XV4L_F`_$:K'>^HJ=^_A$N*D?M!!!!!! 419463168 1.0.0.0 true 49 57 48 49 50 48 50 51 13 0 0 0 0 1 23 21 76 111 97 100 32 38 32 85 110 108 111 97 100 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 9 0 0 17 44 1 100 1 100 80 84 72 48 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 1 15 13 76 97 121 101 114 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 7 0 0 3 231 255 255 255 255 255 255 255 255 0 0 3 202 0 40 0 0 3 196 0 0 3 132 0 0 0 0 0 10 0 30 0 24 0 0 0 0 0 255 255 255 0 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 9 67 108 105 112 98 111 97 114 100 100 1 0 0 0 0 0 1 15 13 76 97 121 101 114 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 7 0 0 12 185 0 0 0 0 0 0 0 0 0 0 12 158 0 40 0 0 12 152 0 0 12 0 0 0 0 0 0 32 0 32 0 24 0 0 0 0 0 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 0 0 0 0 0 0 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 0 0 0 0 0 0 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 0 0 0 0 0 0 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 0 0 0 0 0 0 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 0 0 0 0 0 0 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 0 0 0 0 0 0 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 0 0 0 0 0 0 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 0 0 0 0 0 0 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 0 0 0 0 0 0 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7 86 73 32 73 99 111 110 100 1 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 83 109 97 108 108 32 70 111 110 116 115 0 1 8 1 1 - - - + + + diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/GPS/Read.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/GPS/Read.vi index 9ad1330a..ef5842bb 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/GPS/Read.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/GPS/Read.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/GYRO/Close.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/GYRO/Close.vi index f4c73200..74bfd347 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/GYRO/Close.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/GYRO/Close.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/GYRO/Open.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/GYRO/Open.vi index 3d6364e6..d7c6631f 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/GYRO/Open.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/GYRO/Open.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/GYRO/PmodGYRO.lvlib b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/GYRO/PmodGYRO.lvlib index 5cd40b66..3f03772b 100644 --- a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/GYRO/PmodGYRO.lvlib +++ b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/GYRO/PmodGYRO.lvlib @@ -1,15 +1,15 @@ - - - LMH-LINX.lvlib - /<vilib>/MakerHub/LINX/LMH-LINX.lvlib - '1#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!)4!!!*Q(C=\>8.45*"&-8RIX&BQMI/$#X=&GC"&GY,<&H3QGG"&GDBNE!,N)$`.^Q1&QIE3H4"0!@BT.?0?:/(.-KL^+,DN4+<P8V2:FVO;<`59<2@[("K`\\$4?/PL0`4\X?Z`5L2ITT+XZ<VV5.[^T0\J/F"2#WKK5E.45M>C\T)C\T)C\T)47ZSEZP=Z#:0]C20]C20]C10]C!0]C!0]C!@&\H)23ZS3-8CR5,&J-5%27=I+FY+4_%J0)7(DSI]B;@Q&*\#1R=6HM*4?!J0Y7'9#E`B+4S&J`!QV:$5O-DR&"[GF`%9D`%9D`'QJ)T(!-RC:G)T#1S:2P0'?)T(?(ALYT%?YT%?Y[&:RG-]RG-]RM/1M3M?GOECR]-U3DS**`%EHM4$V%I]C3@R**\%QX*+0)EH131,*J.$5$)I[:"]3$S*BX^+0)EH]33?R%04O%-Z>G<34"=ZHM!4?!*0Y!E]4+(!%XA#4_!*0%SLQ".Y!E`A#4QMJ=!4?!*0!!E7:8E&EQ5$AUZ"%(DY'[=FRFXSE-3YJ$[][E/J0GTK1[1_(/K<LL[:[JOEXHTVJKIX3\U*[C_H2KMR[E85A[?//P#[J_[I7_K'OK)OK1PKH0IW$@XFDI@$1@P^8LP>4NPN6JP.2KP63MPF5IP&1P0Z80R9HB]$\VTH"],JO<4G`3XV4L_F`_$:K'>^HJ=^_A$N*D?M!!!!!! - 419463168 - 1.0.0.0 - false - 3 + + + LMH-LINX.lvlib + ../../../../../LMH-LINX.lvlib + )!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!)4!!!*Q(C=\>8.45*"&-8RIX&BQMI/$#X=&GC"&GY,<&H3QGG"&GDBNE!,N)$`.^Q1&QIE3H4"0!@BT.?0?:/(.-KL^+,DN4+<P8V2:FVO;<`59<2@[("K`\\$4?/PL0`4\X?Z`5L2ITT+XZ<VV5.[^T0\J/F"2#WKK5E.45M>C\T)C\T)C\T)47ZSEZP=Z#:0]C20]C20]C10]C!0]C!0]C!@&\H)23ZS3-8CR5,&J-5%27=I+FY+4_%J0)7(DSI]B;@Q&*\#1R=6HM*4?!J0Y7'9#E`B+4S&J`!QV:$5O-DR&"[GF`%9D`%9D`'QJ)T(!-RC:G)T#1S:2P0'?)T(?(ALYT%?YT%?Y[&:RG-]RG-]RM/1M3M?GOECR]-U3DS**`%EHM4$V%I]C3@R**\%QX*+0)EH131,*J.$5$)I[:"]3$S*BX^+0)EH]33?R%04O%-Z>G<34"=ZHM!4?!*0Y!E]4+(!%XA#4_!*0%SLQ".Y!E`A#4QMJ=!4?!*0!!E7:8E&EQ5$AUZ"%(DY'[=FRFXSE-3YJ$[][E/J0GTK1[1_(/K<LL[:[JOEXHTVJKIX3\U*[C_H2KMR[E85A[?//P#[J_[I7_K'OK)OK1PKH0IW$@XFDI@$1@P^8LP>4NPN6JP.2KP63MPF5IP&1P0Z80R9HB]$\VTH"],JO<4G`3XV4L_F`_$:K'>^HJ=^_A$N*D?M!!!!!! + 536903680 + 1.0.0.0 + false + 3 49 57 48 49 50 48 50 51 13 0 0 0 0 1 23 21 76 111 97 100 32 38 32 85 110 108 111 97 100 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 9 0 0 17 44 1 100 1 100 80 84 72 48 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 1 15 13 76 97 121 101 114 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 7 0 0 3 231 255 255 255 255 255 255 255 255 0 0 3 202 0 40 0 0 3 196 0 0 3 132 0 0 0 0 0 10 0 30 0 24 0 0 0 0 0 255 255 255 0 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 9 67 108 105 112 98 111 97 114 100 100 1 0 0 0 0 0 1 15 13 76 97 121 101 114 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 7 0 0 12 185 0 0 0 0 0 0 0 0 0 0 12 158 0 40 0 0 12 152 0 0 12 0 0 0 0 0 0 32 0 32 0 24 0 0 0 0 0 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 0 0 0 0 0 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 0 0 0 0 0 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 0 0 0 0 0 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 0 0 0 0 0 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 0 0 0 0 0 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 0 0 0 0 0 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 0 0 0 0 0 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 0 0 0 0 0 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 0 0 0 0 0 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7 86 73 32 73 99 111 110 100 1 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 83 109 97 108 108 32 70 111 110 116 115 0 1 8 1 1 - - - - - + + + + + diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/GYRO/Read.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/GYRO/Read.vi index affb55f4..3f4457cf 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/GYRO/Read.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/GYRO/Read.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/JSTK/Open.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/JSTK/Open.vi index 4d31f62f..44317e39 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/JSTK/Open.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/JSTK/Open.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/JSTK/PmodJSTK.lvlib b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/JSTK/PmodJSTK.lvlib index a9c797d4..e5e9818e 100644 --- a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/JSTK/PmodJSTK.lvlib +++ b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/JSTK/PmodJSTK.lvlib @@ -1,13 +1,13 @@  LMH-LINX.lvlib - /<vilib>/MakerHub/LINX/LMH-LINX.lvlib + ../../../../../LMH-LINX.lvlib '1#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!)4!!!*Q(C=\>8.45*"&-8RIX&BQMI/$#X=&GC"&GY,<&H3QGG"&GDBNE!,N)$`.^Q1&QIE3H4"0!@BT.?0?:/(.-KL^+,DN4+<P8V2:FVO;<`59<2@[("K`\\$4?/PL0`4\X?Z`5L2ITT+XZ<VV5.[^T0\J/F"2#WKK5E.45M>C\T)C\T)C\T)47ZSEZP=Z#:0]C20]C20]C10]C!0]C!0]C!@&\H)23ZS3-8CR5,&J-5%27=I+FY+4_%J0)7(DSI]B;@Q&*\#1R=6HM*4?!J0Y7'9#E`B+4S&J`!QV:$5O-DR&"[GF`%9D`%9D`'QJ)T(!-RC:G)T#1S:2P0'?)T(?(ALYT%?YT%?Y[&:RG-]RG-]RM/1M3M?GOECR]-U3DS**`%EHM4$V%I]C3@R**\%QX*+0)EH131,*J.$5$)I[:"]3$S*BX^+0)EH]33?R%04O%-Z>G<34"=ZHM!4?!*0Y!E]4+(!%XA#4_!*0%SLQ".Y!E`A#4QMJ=!4?!*0!!E7:8E&EQ5$AUZ"%(DY'[=FRFXSE-3YJ$[][E/J0GTK1[1_(/K<LL[:[JOEXHTVJKIX3\U*[C_H2KMR[E85A[?//P#[J_[I7_K'OK)OK1PKH0IW$@XFDI@$1@P^8LP>4NPN6JP.2KP63MPF5IP&1P0Z80R9HB]$\VTH"],JO<4G`3XV4L_F`_$:K'>^HJ=^_A$N*D?M!!!!!! 419463168 1.0.0.0 true 49 57 48 49 50 48 50 51 13 0 0 0 0 1 23 21 76 111 97 100 32 38 32 85 110 108 111 97 100 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 9 0 0 17 44 1 100 1 100 80 84 72 48 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 1 15 13 76 97 121 101 114 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 7 0 0 3 231 255 255 255 255 255 255 255 255 0 0 3 202 0 40 0 0 3 196 0 0 3 132 0 0 0 0 0 10 0 30 0 24 0 0 0 0 0 255 255 255 0 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 9 67 108 105 112 98 111 97 114 100 100 1 0 0 0 0 0 1 15 13 76 97 121 101 114 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 7 0 0 12 185 0 0 0 0 0 0 0 0 0 0 12 158 0 40 0 0 12 152 0 0 12 0 0 0 0 0 0 32 0 32 0 24 0 0 0 0 0 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 0 0 0 0 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 0 0 0 0 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 0 0 0 0 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 0 0 0 0 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 0 0 0 0 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 0 0 0 0 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 0 0 0 0 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 0 0 0 0 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 0 0 0 0 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7 86 73 32 73 99 111 110 100 1 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 83 109 97 108 108 32 70 111 110 116 115 0 1 8 1 1 - - + + diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/JSTK/Read.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/JSTK/Read.vi index 04e3130b..f2e4c203 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/JSTK/Read.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/JSTK/Read.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/MAXSONAR/Close.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/MAXSONAR/Close.vi index 387bbdb9..ebd623c3 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/MAXSONAR/Close.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/MAXSONAR/Close.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/MAXSONAR/Open.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/MAXSONAR/Open.vi index f8981e02..3879ca51 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/MAXSONAR/Open.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/MAXSONAR/Open.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/MAXSONAR/PmodMAXSONAR.lvlib b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/MAXSONAR/PmodMAXSONAR.lvlib index 1845b5f2..863caff3 100644 --- a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/MAXSONAR/PmodMAXSONAR.lvlib +++ b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/MAXSONAR/PmodMAXSONAR.lvlib @@ -1,14 +1,14 @@  LMH-LINX.lvlib - /<vilib>/MakerHub/LINX/LMH-LINX.lvlib + ../../../../../LMH-LINX.lvlib '1#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!)4!!!*Q(C=\>8.45*"&-8RIX&BQMI/$#X=&GC"&GY,<&H3QGG"&GDBNE!,N)$`.^Q1&QIE3H4"0!@BT.?0?:/(.-KL^+,DN4+<P8V2:FVO;<`59<2@[("K`\\$4?/PL0`4\X?Z`5L2ITT+XZ<VV5.[^T0\J/F"2#WKK5E.45M>C\T)C\T)C\T)47ZSEZP=Z#:0]C20]C20]C10]C!0]C!0]C!@&\H)23ZS3-8CR5,&J-5%27=I+FY+4_%J0)7(DSI]B;@Q&*\#1R=6HM*4?!J0Y7'9#E`B+4S&J`!QV:$5O-DR&"[GF`%9D`%9D`'QJ)T(!-RC:G)T#1S:2P0'?)T(?(ALYT%?YT%?Y[&:RG-]RG-]RM/1M3M?GOECR]-U3DS**`%EHM4$V%I]C3@R**\%QX*+0)EH131,*J.$5$)I[:"]3$S*BX^+0)EH]33?R%04O%-Z>G<34"=ZHM!4?!*0Y!E]4+(!%XA#4_!*0%SLQ".Y!E`A#4QMJ=!4?!*0!!E7:8E&EQ5$AUZ"%(DY'[=FRFXSE-3YJ$[][E/J0GTK1[1_(/K<LL[:[JOEXHTVJKIX3\U*[C_H2KMR[E85A[?//P#[J_[I7_K'OK)OK1PKH0IW$@XFDI@$1@P^8LP>4NPN6JP.2KP63MPF5IP&1P0Z80R9HB]$\VTH"],JO<4G`3XV4L_F`_$:K'>^HJ=^_A$N*D?M!!!!!! 419463168 1.0.0.0 true 49 57 48 49 50 48 50 51 13 0 0 0 0 1 23 21 76 111 97 100 32 38 32 85 110 108 111 97 100 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 9 0 0 17 44 1 100 1 100 80 84 72 48 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 1 15 13 76 97 121 101 114 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 7 0 0 3 231 255 255 255 255 255 255 255 255 0 0 3 202 0 40 0 0 3 196 0 0 3 132 0 0 0 0 0 10 0 30 0 24 0 0 0 0 0 255 255 255 0 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 9 67 108 105 112 98 111 97 114 100 100 1 0 0 0 0 0 1 15 13 76 97 121 101 114 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 7 0 0 12 185 0 0 0 0 0 0 0 0 0 0 12 158 0 40 0 0 12 152 0 0 12 0 0 0 0 0 0 32 0 32 0 24 0 0 0 0 0 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 0 0 0 0 0 0 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 0 0 0 0 0 0 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 0 0 0 0 0 0 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 0 0 0 0 0 0 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 0 0 0 0 0 0 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 0 0 0 0 0 0 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 0 0 0 0 0 0 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 0 0 0 0 0 0 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 0 0 0 0 0 0 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 255 102 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7 86 73 32 73 99 111 110 100 1 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 83 109 97 108 108 32 70 111 110 116 115 0 1 8 1 1 - - - + + + diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/MAXSONAR/Read.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/MAXSONAR/Read.vi index 0a2356ae..0cd2976e 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/MAXSONAR/Read.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/MAXSONAR/Read.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/MIC3/Open.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/MIC3/Open.vi index 3a49116e..fa94a6a2 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/MIC3/Open.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/MIC3/Open.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/MIC3/PmodMIC3.lvlib b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/MIC3/PmodMIC3.lvlib index 46c1cb1f..d448937b 100644 --- a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/MIC3/PmodMIC3.lvlib +++ b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/MIC3/PmodMIC3.lvlib @@ -1,13 +1,13 @@ - - - LMH-LINX.lvlib - /<vilib>/MakerHub/LINX/LMH-LINX.lvlib - '1#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!)4!!!*Q(C=\>8.45*"&-8RIX&BQMI/$#X=&GC"&GY,<&H3QGG"&GDBNE!,N)$`.^Q1&QIE3H4"0!@BT.?0?:/(.-KL^+,DN4+<P8V2:FVO;<`59<2@[("K`\\$4?/PL0`4\X?Z`5L2ITT+XZ<VV5.[^T0\J/F"2#WKK5E.45M>C\T)C\T)C\T)47ZSEZP=Z#:0]C20]C20]C10]C!0]C!0]C!@&\H)23ZS3-8CR5,&J-5%27=I+FY+4_%J0)7(DSI]B;@Q&*\#1R=6HM*4?!J0Y7'9#E`B+4S&J`!QV:$5O-DR&"[GF`%9D`%9D`'QJ)T(!-RC:G)T#1S:2P0'?)T(?(ALYT%?YT%?Y[&:RG-]RG-]RM/1M3M?GOECR]-U3DS**`%EHM4$V%I]C3@R**\%QX*+0)EH131,*J.$5$)I[:"]3$S*BX^+0)EH]33?R%04O%-Z>G<34"=ZHM!4?!*0Y!E]4+(!%XA#4_!*0%SLQ".Y!E`A#4QMJ=!4?!*0!!E7:8E&EQ5$AUZ"%(DY'[=FRFXSE-3YJ$[][E/J0GTK1[1_(/K<LL[:[JOEXHTVJKIX3\U*[C_H2KMR[E85A[?//P#[J_[I7_K'OK)OK1PKH0IW$@XFDI@$1@P^8LP>4NPN6JP.2KP63MPF5IP&1P0Z80R9HB]$\VTH"],JO<4G`3XV4L_F`_$:K'>^HJ=^_A$N*D?M!!!!!! - 419463168 - 1.0.0.0 - false + + + LMH-LINX.lvlib + ../../../../../LMH-LINX.lvlib + )!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!)4!!!*Q(C=\>8.45*"&-8RIX&BQMI/$#X=&GC"&GY,<&H3QGG"&GDBNE!,N)$`.^Q1&QIE3H4"0!@BT.?0?:/(.-KL^+,DN4+<P8V2:FVO;<`59<2@[("K`\\$4?/PL0`4\X?Z`5L2ITT+XZ<VV5.[^T0\J/F"2#WKK5E.45M>C\T)C\T)C\T)47ZSEZP=Z#:0]C20]C20]C10]C!0]C!0]C!@&\H)23ZS3-8CR5,&J-5%27=I+FY+4_%J0)7(DSI]B;@Q&*\#1R=6HM*4?!J0Y7'9#E`B+4S&J`!QV:$5O-DR&"[GF`%9D`%9D`'QJ)T(!-RC:G)T#1S:2P0'?)T(?(ALYT%?YT%?Y[&:RG-]RG-]RM/1M3M?GOECR]-U3DS**`%EHM4$V%I]C3@R**\%QX*+0)EH131,*J.$5$)I[:"]3$S*BX^+0)EH]33?R%04O%-Z>G<34"=ZHM!4?!*0Y!E]4+(!%XA#4_!*0%SLQ".Y!E`A#4QMJ=!4?!*0!!E7:8E&EQ5$AUZ"%(DY'[=FRFXSE-3YJ$[][E/J0GTK1[1_(/K<LL[:[JOEXHTVJKIX3\U*[C_H2KMR[E85A[?//P#[J_[I7_K'OK)OK1PKH0IW$@XFDI@$1@P^8LP>4NPN6JP.2KP63MPF5IP&1P0Z80R9HB]$\VTH"],JO<4G`3XV4L_F`_$:K'>^HJ=^_A$N*D?M!!!!!! + 536903680 + 1.0.0.0 + false 49 57 48 49 50 48 50 51 13 0 0 0 0 1 23 21 76 111 97 100 32 38 32 85 110 108 111 97 100 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 9 0 0 17 44 1 100 1 100 80 84 72 48 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 1 15 13 76 97 121 101 114 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 7 0 0 3 231 255 255 255 255 255 255 255 255 0 0 3 202 0 40 0 0 3 196 0 0 3 132 0 0 0 0 0 10 0 30 0 24 0 0 0 0 0 255 255 255 0 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 9 67 108 105 112 98 111 97 114 100 100 1 0 0 0 0 0 1 15 13 76 97 121 101 114 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 7 0 0 12 185 0 0 0 0 0 0 0 0 0 0 12 158 0 40 0 0 12 152 0 0 12 0 0 0 0 0 0 32 0 32 0 24 0 0 0 0 0 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 0 0 0 0 0 0 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 0 0 0 0 0 0 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 0 0 0 0 0 0 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 0 0 0 0 0 0 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 0 0 0 0 0 0 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 0 0 0 0 0 0 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 0 0 0 0 0 0 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 0 0 0 0 0 0 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 0 0 0 0 0 0 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7 86 73 32 73 99 111 110 100 1 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 83 109 97 108 108 32 70 111 110 116 115 0 1 8 1 1 - - - - + + + + diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/MIC3/Read.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/MIC3/Read.vi index eac172bb..9ed32cd2 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/MIC3/Read.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/MIC3/Read.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/TC1/Open.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/TC1/Open.vi index c04fec1b..68d22192 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/TC1/Open.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/TC1/Open.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/TC1/PmodTC1.lvlib b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/TC1/PmodTC1.lvlib index 3f6a4a81..d326ddad 100644 --- a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/TC1/PmodTC1.lvlib +++ b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/TC1/PmodTC1.lvlib @@ -1,13 +1,13 @@ - - - LMH-LINX.lvlib - /<vilib>/MakerHub/LINX/LMH-LINX.lvlib - '1#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!)4!!!*Q(C=\>8.45*"&-8RIX&BQMI/$#X=&GC"&GY,<&H3QGG"&GDBNE!,N)$`.^Q1&QIE3H4"0!@BT.?0?:/(.-KL^+,DN4+<P8V2:FVO;<`59<2@[("K`\\$4?/PL0`4\X?Z`5L2ITT+XZ<VV5.[^T0\J/F"2#WKK5E.45M>C\T)C\T)C\T)47ZSEZP=Z#:0]C20]C20]C10]C!0]C!0]C!@&\H)23ZS3-8CR5,&J-5%27=I+FY+4_%J0)7(DSI]B;@Q&*\#1R=6HM*4?!J0Y7'9#E`B+4S&J`!QV:$5O-DR&"[GF`%9D`%9D`'QJ)T(!-RC:G)T#1S:2P0'?)T(?(ALYT%?YT%?Y[&:RG-]RG-]RM/1M3M?GOECR]-U3DS**`%EHM4$V%I]C3@R**\%QX*+0)EH131,*J.$5$)I[:"]3$S*BX^+0)EH]33?R%04O%-Z>G<34"=ZHM!4?!*0Y!E]4+(!%XA#4_!*0%SLQ".Y!E`A#4QMJ=!4?!*0!!E7:8E&EQ5$AUZ"%(DY'[=FRFXSE-3YJ$[][E/J0GTK1[1_(/K<LL[:[JOEXHTVJKIX3\U*[C_H2KMR[E85A[?//P#[J_[I7_K'OK)OK1PKH0IW$@XFDI@$1@P^8LP>4NPN6JP.2KP63MPF5IP&1P0Z80R9HB]$\VTH"],JO<4G`3XV4L_F`_$:K'>^HJ=^_A$N*D?M!!!!!! - 419463168 - 1.0.0.0 - false + + + LMH-LINX.lvlib + ../../../../../LMH-LINX.lvlib + )!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!)4!!!*Q(C=\>8.45*"&-8RIX&BQMI/$#X=&GC"&GY,<&H3QGG"&GDBNE!,N)$`.^Q1&QIE3H4"0!@BT.?0?:/(.-KL^+,DN4+<P8V2:FVO;<`59<2@[("K`\\$4?/PL0`4\X?Z`5L2ITT+XZ<VV5.[^T0\J/F"2#WKK5E.45M>C\T)C\T)C\T)47ZSEZP=Z#:0]C20]C20]C10]C!0]C!0]C!@&\H)23ZS3-8CR5,&J-5%27=I+FY+4_%J0)7(DSI]B;@Q&*\#1R=6HM*4?!J0Y7'9#E`B+4S&J`!QV:$5O-DR&"[GF`%9D`%9D`'QJ)T(!-RC:G)T#1S:2P0'?)T(?(ALYT%?YT%?Y[&:RG-]RG-]RM/1M3M?GOECR]-U3DS**`%EHM4$V%I]C3@R**\%QX*+0)EH131,*J.$5$)I[:"]3$S*BX^+0)EH]33?R%04O%-Z>G<34"=ZHM!4?!*0Y!E]4+(!%XA#4_!*0%SLQ".Y!E`A#4QMJ=!4?!*0!!E7:8E&EQ5$AUZ"%(DY'[=FRFXSE-3YJ$[][E/J0GTK1[1_(/K<LL[:[JOEXHTVJKIX3\U*[C_H2KMR[E85A[?//P#[J_[I7_K'OK)OK1PKH0IW$@XFDI@$1@P^8LP>4NPN6JP.2KP63MPF5IP&1P0Z80R9HB]$\VTH"],JO<4G`3XV4L_F`_$:K'>^HJ=^_A$N*D?M!!!!!! + 536903680 + 1.0.0.0 + false 49 57 48 49 50 48 50 51 13 0 0 0 0 1 23 21 76 111 97 100 32 38 32 85 110 108 111 97 100 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 9 0 0 17 44 1 100 1 100 80 84 72 48 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 1 15 13 76 97 121 101 114 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 7 0 0 3 231 255 255 255 255 255 255 255 255 0 0 3 202 0 40 0 0 3 196 0 0 3 132 0 0 0 0 0 10 0 30 0 24 0 0 0 0 0 255 255 255 0 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 9 67 108 105 112 98 111 97 114 100 100 1 0 0 0 0 0 1 15 13 76 97 121 101 114 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 7 0 0 12 185 0 0 0 0 0 0 0 0 0 0 12 158 0 40 0 0 12 152 0 0 12 0 0 0 0 0 0 32 0 32 0 24 0 0 0 0 0 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 0 0 0 0 0 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 0 0 0 0 0 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 0 0 0 0 0 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 0 0 0 0 0 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 0 0 0 0 0 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 0 0 0 0 0 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 0 0 0 0 0 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 0 0 0 0 0 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 0 0 0 0 0 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 255 204 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7 86 73 32 73 99 111 110 100 1 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 83 109 97 108 108 32 70 111 110 116 115 0 1 8 1 1 - - - - + + + + diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/TC1/Read.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/TC1/Read.vi index b88e40a0..290bbbb3 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/TC1/Read.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/TC1/Read.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/TMP3/Close.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/TMP3/Close.vi index 95907ec0..1a470e11 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/TMP3/Close.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/TMP3/Close.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/TMP3/Open.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/TMP3/Open.vi index e8b9803c..9db54c7c 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/TMP3/Open.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/TMP3/Open.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/TMP3/PmodTMP3.lvlib b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/TMP3/PmodTMP3.lvlib index 479ce0c9..47f23dc7 100644 --- a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/TMP3/PmodTMP3.lvlib +++ b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/TMP3/PmodTMP3.lvlib @@ -1,14 +1,14 @@  LMH-LINX.lvlib - /<vilib>/MakerHub/LINX/LMH-LINX.lvlib + ../../../../../LMH-LINX.lvlib '1#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!)4!!!*Q(C=\>8.45*"&-8RIX&BQMI/$#X=&GC"&GY,<&H3QGG"&GDBNE!,N)$`.^Q1&QIE3H4"0!@BT.?0?:/(.-KL^+,DN4+<P8V2:FVO;<`59<2@[("K`\\$4?/PL0`4\X?Z`5L2ITT+XZ<VV5.[^T0\J/F"2#WKK5E.45M>C\T)C\T)C\T)47ZSEZP=Z#:0]C20]C20]C10]C!0]C!0]C!@&\H)23ZS3-8CR5,&J-5%27=I+FY+4_%J0)7(DSI]B;@Q&*\#1R=6HM*4?!J0Y7'9#E`B+4S&J`!QV:$5O-DR&"[GF`%9D`%9D`'QJ)T(!-RC:G)T#1S:2P0'?)T(?(ALYT%?YT%?Y[&:RG-]RG-]RM/1M3M?GOECR]-U3DS**`%EHM4$V%I]C3@R**\%QX*+0)EH131,*J.$5$)I[:"]3$S*BX^+0)EH]33?R%04O%-Z>G<34"=ZHM!4?!*0Y!E]4+(!%XA#4_!*0%SLQ".Y!E`A#4QMJ=!4?!*0!!E7:8E&EQ5$AUZ"%(DY'[=FRFXSE-3YJ$[][E/J0GTK1[1_(/K<LL[:[JOEXHTVJKIX3\U*[C_H2KMR[E85A[?//P#[J_[I7_K'OK)OK1PKH0IW$@XFDI@$1@P^8LP>4NPN6JP.2KP63MPF5IP&1P0Z80R9HB]$\VTH"],JO<4G`3XV4L_F`_$:K'>^HJ=^_A$N*D?M!!!!!! 419463168 1.0.0.0 true 49 57 48 49 50 48 50 51 13 0 0 0 0 1 23 21 76 111 97 100 32 38 32 85 110 108 111 97 100 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 9 0 0 17 44 1 100 1 100 80 84 72 48 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 1 15 13 76 97 121 101 114 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 7 0 0 3 231 255 255 255 255 255 255 255 255 0 0 3 202 0 40 0 0 3 196 0 0 3 132 0 0 0 0 0 10 0 30 0 24 0 0 0 0 0 255 255 255 0 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 9 67 108 105 112 98 111 97 114 100 100 1 0 0 0 0 0 1 15 13 76 97 121 101 114 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 7 0 0 12 185 0 0 0 0 0 0 0 0 0 0 12 158 0 40 0 0 12 152 0 0 12 0 0 0 0 0 0 32 0 32 0 24 0 0 0 0 0 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 0 0 0 0 0 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 0 0 0 0 0 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 0 0 0 0 0 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 0 0 0 0 0 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 0 0 0 0 0 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 0 0 0 0 0 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 0 0 0 0 0 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 0 0 0 0 0 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 0 0 0 0 0 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7 86 73 32 73 99 111 110 100 1 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 83 109 97 108 108 32 70 111 110 116 115 0 1 8 1 1 - - - + + + diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/TMP3/Read.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/TMP3/Read.vi index 25f953c6..189ed841 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/TMP3/Read.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Pmods/TMP3/Read.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Signal Generation/AD9850/AD9850.lvlib b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Signal Generation/AD9850/AD9850.lvlib index 0af75e50..4d0cb68c 100644 --- a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Signal Generation/AD9850/AD9850.lvlib +++ b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Signal Generation/AD9850/AD9850.lvlib @@ -1,13 +1,13 @@ - - - LMH-LINX.lvlib - /<vilib>/MakerHub/LINX/LMH-LINX.lvlib - '1#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!)=!!!*Q(C=\>8"51*"%)8BJ_8"+EZE9*(#3Y%53+&4Y-K2&$I&5C#&4I%53!&`BN<SI#Q77O8"71?8.\-TX][/KT4+M`3EUV3:T?;@F&G87^KP>2DN6TJ=WL`O=.0V%`0@?X`8W[?+LJ<`^P`W_^KHN^^G?J0_<J%?BJ2;V+1'V?0O4E6?Z%6?Z%6?Z%G?Z%G?Z%G?Z%%?Z%%?Z%%?Z#9XO=F.<H+4DY.=Z#)8/;N34&Z-6!R;$&"UBK,CI`!5HM*4?0CKQF.Y#E`B+4RU5?%J0)7H]"1?,F0B+4S&J`!5(I9;EBI(/:\#Q`"+0)EH]33?R-/53DQ*)*EM'4A:");3RO1E]33?R-/J%E`C34S**`(1L-34?"*0YEE]8$*7*9@G@*$D92A&HM!4?!*0Y'&I":\!%XA#4_"B/A7?Q"-AAAG$Q3%IO#DI%(Q*0)'(8QI]A3@Q"*\!1^.Y1D&7ZKQZ(_2YD->YD->YD)=B:$T'9TT'9TQ-+_-R(O-R(O.B+BG0]2C0A:B*G6ZG-(/B[71#Y_&H\";0JZ2$YH(UH_:FI[IXI(JDK4?-?C/I(\$[Q;E@C(KBV1OI8BDV$;NP2!V54[Q?5.V22TY0V$VV2^V3V^16>5F>5/@H3X_YY`&YV/&QU([`VW[XUX;\V8K^VGKVUH+ZV'+R%0]MX^^7,RS8]P$W8NJQ@EP^4N^<R`M<\U9^[P4B.=];P1)H3SJE!!!!!! - 419463168 - 1.0.0.0 - false + + + LMH-LINX.lvlib + ../../../../../LMH-LINX.lvlib + )!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!)=!!!*Q(C=\>8"51*"%)8BJ_8"+EZE9*(#3Y%53+&4Y-K2&$I&5C#&4I%53!&`BN<SI#Q77O8"71?8.\-TX][/KT4+M`3EUV3:T?;@F&G87^KP>2DN6TJ=WL`O=.0V%`0@?X`8W[?+LJ<`^P`W_^KHN^^G?J0_<J%?BJ2;V+1'V?0O4E6?Z%6?Z%6?Z%G?Z%G?Z%G?Z%%?Z%%?Z%%?Z#9XO=F.<H+4DY.=Z#)8/;N34&Z-6!R;$&"UBK,CI`!5HM*4?0CKQF.Y#E`B+4RU5?%J0)7H]"1?,F0B+4S&J`!5(I9;EBI(/:\#Q`"+0)EH]33?R-/53DQ*)*EM'4A:");3RO1E]33?R-/J%E`C34S**`(1L-34?"*0YEE]8$*7*9@G@*$D92A&HM!4?!*0Y'&I":\!%XA#4_"B/A7?Q"-AAAG$Q3%IO#DI%(Q*0)'(8QI]A3@Q"*\!1^.Y1D&7ZKQZ(_2YD->YD->YD)=B:$T'9TT'9TQ-+_-R(O-R(O.B+BG0]2C0A:B*G6ZG-(/B[71#Y_&H\";0JZ2$YH(UH_:FI[IXI(JDK4?-?C/I(\$[Q;E@C(KBV1OI8BDV$;NP2!V54[Q?5.V22TY0V$VV2^V3V^16>5F>5/@H3X_YY`&YV/&QU([`VW[XUX;\V8K^VGKVUH+ZV'+R%0]MX^^7,RS8]P$W8NJQ@EP^4N^<R`M<\U9^[P4B.=];P1)H3SJE!!!!!! + 536903680 + 1.0.0.0 + false 49 57 48 49 50 48 50 51 13 0 0 0 0 1 23 21 76 111 97 100 32 38 32 85 110 108 111 97 100 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 9 0 0 16 241 1 100 1 100 80 84 72 48 0 0 0 4 0 0 0 0 0 0 12 158 0 40 0 0 12 152 0 0 12 0 0 0 0 0 0 32 0 32 0 24 0 0 0 0 0 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 102 255 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 102 255 0 102 255 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 102 255 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 1 0 0 0 1 15 13 76 97 121 101 114 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 7 0 0 3 231 255 255 255 255 255 255 255 255 0 0 3 202 0 40 0 0 3 196 0 0 3 132 0 0 0 0 0 10 0 30 0 24 0 0 0 0 0 255 255 255 0 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 9 67 108 105 112 98 111 97 114 100 100 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 83 109 97 108 108 32 70 111 110 116 115 0 1 8 1 0 - - - - + + + + diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Signal Generation/AD9850/Open.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Signal Generation/AD9850/Open.vi index e2a2b9f1..f1357a4e 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Signal Generation/AD9850/Open.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Signal Generation/AD9850/Open.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Signal Generation/AD9850/Set Frequency and Phase.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Signal Generation/AD9850/Set Frequency and Phase.vi index f86c2347..81c4ac58 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Signal Generation/AD9850/Set Frequency and Phase.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Signal Generation/AD9850/Set Frequency and Phase.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Signal Generation/LTC2631/LTC2631.lvlib b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Signal Generation/LTC2631/LTC2631.lvlib index a104bf98..54cfdf88 100644 --- a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Signal Generation/LTC2631/LTC2631.lvlib +++ b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Signal Generation/LTC2631/LTC2631.lvlib @@ -1,13 +1,13 @@ - - - LMH-LINX.lvlib - /<vilib>/MakerHub/LINX/LMH-LINX.lvlib - '1#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!)4!!!*Q(C=\>8.45*"&-8RIX&BQMI/$#X=&GC"&GY,<&H3QGG"&GDBNE!,N)$`.^Q1&QIE3H4"0!@BT.?0?:/(.-KL^+,DN4+<P8V2:FVO;<`59<2@[("K`\\$4?/PL0`4\X?Z`5L2ITT+XZ<VV5.[^T0\J/F"2#WKK5E.45M>C\T)C\T)C\T)47ZSEZP=Z#:0]C20]C20]C10]C!0]C!0]C!@&\H)23ZS3-8CR5,&J-5%27=I+FY+4_%J0)7(DSI]B;@Q&*\#1R=6HM*4?!J0Y7'9#E`B+4S&J`!QV:$5O-DR&"[GF`%9D`%9D`'QJ)T(!-RC:G)T#1S:2P0'?)T(?(ALYT%?YT%?Y[&:RG-]RG-]RM/1M3M?GOECR]-U3DS**`%EHM4$V%I]C3@R**\%QX*+0)EH131,*J.$5$)I[:"]3$S*BX^+0)EH]33?R%04O%-Z>G<34"=ZHM!4?!*0Y!E]4+(!%XA#4_!*0%SLQ".Y!E`A#4QMJ=!4?!*0!!E7:8E&EQ5$AUZ"%(DY'[=FRFXSE-3YJ$[][E/J0GTK1[1_(/K<LL[:[JOEXHTVJKIX3\U*[C_H2KMR[E85A[?//P#[J_[I7_K'OK)OK1PKH0IW$@XFDI@$1@P^8LP>4NPN6JP.2KP63MPF5IP&1P0Z80R9HB]$\VTH"],JO<4G`3XV4L_F`_$:K'>^HJ=^_A$N*D?M!!!!!! - 419463168 - 1.0.0.0 - false + + + LMH-LINX.lvlib + ../../../../../LMH-LINX.lvlib + )!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!)4!!!*Q(C=\>8.45*"&-8RIX&BQMI/$#X=&GC"&GY,<&H3QGG"&GDBNE!,N)$`.^Q1&QIE3H4"0!@BT.?0?:/(.-KL^+,DN4+<P8V2:FVO;<`59<2@[("K`\\$4?/PL0`4\X?Z`5L2ITT+XZ<VV5.[^T0\J/F"2#WKK5E.45M>C\T)C\T)C\T)47ZSEZP=Z#:0]C20]C20]C10]C!0]C!0]C!@&\H)23ZS3-8CR5,&J-5%27=I+FY+4_%J0)7(DSI]B;@Q&*\#1R=6HM*4?!J0Y7'9#E`B+4S&J`!QV:$5O-DR&"[GF`%9D`%9D`'QJ)T(!-RC:G)T#1S:2P0'?)T(?(ALYT%?YT%?Y[&:RG-]RG-]RM/1M3M?GOECR]-U3DS**`%EHM4$V%I]C3@R**\%QX*+0)EH131,*J.$5$)I[:"]3$S*BX^+0)EH]33?R%04O%-Z>G<34"=ZHM!4?!*0Y!E]4+(!%XA#4_!*0%SLQ".Y!E`A#4QMJ=!4?!*0!!E7:8E&EQ5$AUZ"%(DY'[=FRFXSE-3YJ$[][E/J0GTK1[1_(/K<LL[:[JOEXHTVJKIX3\U*[C_H2KMR[E85A[?//P#[J_[I7_K'OK)OK1PKH0IW$@XFDI@$1@P^8LP>4NPN6JP.2KP63MPF5IP&1P0Z80R9HB]$\VTH"],JO<4G`3XV4L_F`_$:K'>^HJ=^_A$N*D?M!!!!!! + 536903680 + 1.0.0.0 + false 49 57 48 49 50 48 50 51 13 0 0 0 0 1 23 21 76 111 97 100 32 38 32 85 110 108 111 97 100 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 9 0 0 17 44 1 100 1 100 80 84 72 48 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 1 15 13 76 97 121 101 114 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 7 0 0 3 231 255 255 255 255 255 255 255 255 0 0 3 202 0 40 0 0 3 196 0 0 3 132 0 0 0 0 0 10 0 30 0 24 0 0 0 0 0 255 255 255 0 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 9 67 108 105 112 98 111 97 114 100 100 1 0 0 0 0 0 1 15 13 76 97 121 101 114 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 7 0 0 12 185 0 0 0 0 0 0 0 0 0 0 12 158 0 40 0 0 12 152 0 0 12 0 0 0 0 0 0 32 0 32 0 24 0 0 0 0 0 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 0 0 0 0 0 0 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 0 0 0 0 0 0 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 0 0 0 0 0 0 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 0 0 0 0 0 0 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 0 0 0 0 0 0 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 0 0 0 0 0 0 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 0 0 0 0 0 0 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 0 0 0 0 0 0 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 0 0 0 0 0 0 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 204 51 204 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7 86 73 32 73 99 111 110 100 1 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 83 109 97 108 108 32 70 111 110 116 115 0 1 8 1 0 - - - - + + + + diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Signal Generation/LTC2631/Open.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Signal Generation/LTC2631/Open.vi index 3596fb72..175b4b72 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Signal Generation/LTC2631/Open.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Signal Generation/LTC2631/Open.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Signal Generation/LTC2631/Write.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Signal Generation/LTC2631/Write.vi index 3861fea1..776a7393 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Signal Generation/LTC2631/Write.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Signal Generation/LTC2631/Write.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Temperature/TCN75A/I2C Address.ctl b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Temperature/TCN75A/I2C Address.ctl index d7ee25cc..fc9fedda 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Temperature/TCN75A/I2C Address.ctl and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Temperature/TCN75A/I2C Address.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Temperature/TCN75A/Open.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Temperature/TCN75A/Open.vi index 413bd730..d288d135 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Temperature/TCN75A/Open.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Temperature/TCN75A/Open.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Temperature/TCN75A/Read.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Temperature/TCN75A/Read.vi index a60c0f84..7eab5229 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Temperature/TCN75A/Read.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Temperature/TCN75A/Read.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Temperature/TCN75A/Resolution.ctl b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Temperature/TCN75A/Resolution.ctl index 78777f02..c73f9fd8 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Temperature/TCN75A/Resolution.ctl and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Temperature/TCN75A/Resolution.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Temperature/TCN75A/TCN75A.lvlib b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Temperature/TCN75A/TCN75A.lvlib index 2fb8a10b..4d7319ea 100644 --- a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Temperature/TCN75A/TCN75A.lvlib +++ b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Temperature/TCN75A/TCN75A.lvlib @@ -1,18 +1,18 @@ - - - LMH-LINX.lvlib - /<vilib>/MakerHub/LINX/LMH-LINX.lvlib - '1#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!)=!!!*Q(C=\>8"51*"%)8BJ_8"+EZE9*(#3Y%53+&4Y-K2&$I&5C#&4I%53!&`BN<SI#Q77O8"71?8.\-TX][/KT4+M`3EUV3:T?;@F&G87^KP>2DN6TJ=WL`O=.0V%`0@?X`8W[?+LJ<`^P`W_^KHN^^G?J0_<J%?BJ2;V+1'V?0O4E6?Z%6?Z%6?Z%G?Z%G?Z%G?Z%%?Z%%?Z%%?Z#9XO=F.<H+4DY.=Z#)8/;N34&Z-6!R;$&"UBK,CI`!5HM*4?0CKQF.Y#E`B+4RU5?%J0)7H]"1?,F0B+4S&J`!5(I9;EBI(/:\#Q`"+0)EH]33?R-/53DQ*)*EM'4A:");3RO1E]33?R-/J%E`C34S**`(1L-34?"*0YEE]8$*7*9@G@*$D92A&HM!4?!*0Y'&I":\!%XA#4_"B/A7?Q"-AAAG$Q3%IO#DI%(Q*0)'(8QI]A3@Q"*\!1^.Y1D&7ZKQZ(_2YD->YD->YD)=B:$T'9TT'9TQ-+_-R(O-R(O.B+BG0]2C0A:B*G6ZG-(/B[71#Y_&H\";0JZ2$YH(UH_:FI[IXI(JDK4?-?C/I(\$[Q;E@C(KBV1OI8BDV$;NP2!V54[Q?5.V22TY0V$VV2^V3V^16>5F>5/@H3X_YY`&YV/&QU([`VW[XUX;\V8K^VGKVUH+ZV'+R%0]MX^^7,RS8]P$W8NJQ@EP^4N^<R`M<\U9^[P4B.=];P1)H3SJE!!!!!! - 419463168 - 1.0.0.0 - false - 3 + + + LMH-LINX.lvlib + ../../../../../LMH-LINX.lvlib + )!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!)=!!!*Q(C=\>8"51*"%)8BJ_8"+EZE9*(#3Y%53+&4Y-K2&$I&5C#&4I%53!&`BN<SI#Q77O8"71?8.\-TX][/KT4+M`3EUV3:T?;@F&G87^KP>2DN6TJ=WL`O=.0V%`0@?X`8W[?+LJ<`^P`W_^KHN^^G?J0_<J%?BJ2;V+1'V?0O4E6?Z%6?Z%6?Z%G?Z%G?Z%G?Z%%?Z%%?Z%%?Z#9XO=F.<H+4DY.=Z#)8/;N34&Z-6!R;$&"UBK,CI`!5HM*4?0CKQF.Y#E`B+4RU5?%J0)7H]"1?,F0B+4S&J`!5(I9;EBI(/:\#Q`"+0)EH]33?R-/53DQ*)*EM'4A:");3RO1E]33?R-/J%E`C34S**`(1L-34?"*0YEE]8$*7*9@G@*$D92A&HM!4?!*0Y'&I":\!%XA#4_"B/A7?Q"-AAAG$Q3%IO#DI%(Q*0)'(8QI]A3@Q"*\!1^.Y1D&7ZKQZ(_2YD->YD->YD)=B:$T'9TT'9TQ-+_-R(O-R(O.B+BG0]2C0A:B*G6ZG-(/B[71#Y_&H\";0JZ2$YH(UH_:FI[IXI(JDK4?-?C/I(\$[Q;E@C(KBV1OI8BDV$;NP2!V54[Q?5.V22TY0V$VV2^V3V^16>5F>5/@H3X_YY`&YV/&QU([`VW[XUX;\V8K^VGKVUH+ZV'+R%0]MX^^7,RS8]P$W8NJQ@EP^4N^<R`M<\U9^[P4B.=];P1)H3SJE!!!!!! + 536903680 + 1.0.0.0 + false + 3 49 57 48 49 50 48 50 51 13 0 0 0 0 1 23 21 76 111 97 100 32 38 32 85 110 108 111 97 100 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 9 0 0 17 46 1 100 1 100 80 84 72 48 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 1 15 13 76 97 121 101 114 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 7 0 0 3 231 255 255 255 255 255 255 255 255 0 0 3 202 0 40 0 0 3 196 0 0 3 132 0 0 0 0 0 10 0 30 0 24 0 0 0 0 0 255 255 255 0 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 9 67 108 105 112 98 111 97 114 100 100 1 0 0 0 0 0 1 15 13 76 97 121 101 114 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 7 0 0 12 187 0 0 0 0 0 0 0 0 0 0 12 158 0 40 0 0 12 152 0 0 12 0 0 0 0 0 0 32 0 32 0 24 0 0 0 0 0 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 102 255 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 102 255 0 102 255 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 102 255 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 9 67 108 105 112 98 111 97 114 100 100 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 83 109 97 108 108 32 70 111 110 116 115 0 1 8 1 1 - - - - - - - - + + + + + + + + diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Temperature/TMP3x/TMP35.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Temperature/TMP3x/TMP35.vi index 04c15031..4882455c 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Temperature/TMP3x/TMP35.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Temperature/TMP3x/TMP35.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Temperature/TMP3x/TMP36.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Temperature/TMP3x/TMP36.vi index 8d494082..f4435de5 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Temperature/TMP3x/TMP36.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Temperature/TMP3x/TMP36.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Temperature/TMP3x/TMP37.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Temperature/TMP3x/TMP37.vi index 2db89414..fc6c39f0 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Temperature/TMP3x/TMP37.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Temperature/TMP3x/TMP37.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Temperature/TMP3x/TMP3x.lvlib b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Temperature/TMP3x/TMP3x.lvlib index c6371e38..ccba38d4 100644 --- a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Temperature/TMP3x/TMP3x.lvlib +++ b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Temperature/TMP3x/TMP3x.lvlib @@ -1,15 +1,15 @@ - - - LMH-LINX.lvlib - /<vilib>/MakerHub/LINX/LMH-LINX.lvlib - '1#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!)=!!!*Q(C=\>8"51*"%)8BJ_8"+EZE9*(#3Y%53+&4Y-K2&$I&5C#&4I%53!&`BN<SI#Q77O8"71?8.\-TX][/KT4+M`3EUV3:T?;@F&G87^KP>2DN6TJ=WL`O=.0V%`0@?X`8W[?+LJ<`^P`W_^KHN^^G?J0_<J%?BJ2;V+1'V?0O4E6?Z%6?Z%6?Z%G?Z%G?Z%G?Z%%?Z%%?Z%%?Z#9XO=F.<H+4DY.=Z#)8/;N34&Z-6!R;$&"UBK,CI`!5HM*4?0CKQF.Y#E`B+4RU5?%J0)7H]"1?,F0B+4S&J`!5(I9;EBI(/:\#Q`"+0)EH]33?R-/53DQ*)*EM'4A:");3RO1E]33?R-/J%E`C34S**`(1L-34?"*0YEE]8$*7*9@G@*$D92A&HM!4?!*0Y'&I":\!%XA#4_"B/A7?Q"-AAAG$Q3%IO#DI%(Q*0)'(8QI]A3@Q"*\!1^.Y1D&7ZKQZ(_2YD->YD->YD)=B:$T'9TT'9TQ-+_-R(O-R(O.B+BG0]2C0A:B*G6ZG-(/B[71#Y_&H\";0JZ2$YH(UH_:FI[IXI(JDK4?-?C/I(\$[Q;E@C(KBV1OI8BDV$;NP2!V54[Q?5.V22TY0V$VV2^V3V^16>5F>5/@H3X_YY`&YV/&QU([`VW[XUX;\V8K^VGKVUH+ZV'+R%0]MX^^7,RS8]P$W8NJQ@EP^4N^<R`M<\U9^[P4B.=];P1)H3SJE!!!!!! - 419463168 - 1.0.0.0 - false + + + LMH-LINX.lvlib + ../../../../../LMH-LINX.lvlib + )!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!)=!!!*Q(C=\>8"51*"%)8BJ_8"+EZE9*(#3Y%53+&4Y-K2&$I&5C#&4I%53!&`BN<SI#Q77O8"71?8.\-TX][/KT4+M`3EUV3:T?;@F&G87^KP>2DN6TJ=WL`O=.0V%`0@?X`8W[?+LJ<`^P`W_^KHN^^G?J0_<J%?BJ2;V+1'V?0O4E6?Z%6?Z%6?Z%G?Z%G?Z%G?Z%%?Z%%?Z%%?Z#9XO=F.<H+4DY.=Z#)8/;N34&Z-6!R;$&"UBK,CI`!5HM*4?0CKQF.Y#E`B+4RU5?%J0)7H]"1?,F0B+4S&J`!5(I9;EBI(/:\#Q`"+0)EH]33?R-/53DQ*)*EM'4A:");3RO1E]33?R-/J%E`C34S**`(1L-34?"*0YEE]8$*7*9@G@*$D92A&HM!4?!*0Y'&I":\!%XA#4_"B/A7?Q"-AAAG$Q3%IO#DI%(Q*0)'(8QI]A3@Q"*\!1^.Y1D&7ZKQZ(_2YD->YD->YD)=B:$T'9TT'9TQ-+_-R(O-R(O.B+BG0]2C0A:B*G6ZG-(/B[71#Y_&H\";0JZ2$YH(UH_:FI[IXI(JDK4?-?C/I(\$[Q;E@C(KBV1OI8BDV$;NP2!V54[Q?5.V22TY0V$VV2^V3V^16>5F>5/@H3X_YY`&YV/&QU([`VW[XUX;\V8K^VGKVUH+ZV'+R%0]MX^^7,RS8]P$W8NJQ@EP^4N^<R`M<\U9^[P4B.=];P1)H3SJE!!!!!! + 536903680 + 1.0.0.0 + false 49 57 48 49 50 48 50 51 13 0 0 0 0 1 23 21 76 111 97 100 32 38 32 85 110 108 111 97 100 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 9 0 0 16 241 1 100 1 100 80 84 72 48 0 0 0 4 0 0 0 0 0 0 12 158 0 40 0 0 12 152 0 0 12 0 0 0 0 0 0 32 0 32 0 24 0 0 0 0 0 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 102 255 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 102 255 0 102 255 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 102 255 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 1 0 0 0 1 15 13 76 97 121 101 114 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 7 0 0 3 231 255 255 255 255 255 255 255 255 0 0 3 202 0 40 0 0 3 196 0 0 3 132 0 0 0 0 0 10 0 30 0 24 0 0 0 0 0 255 255 255 0 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 156 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 172 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 189 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 9 67 108 105 112 98 111 97 114 100 100 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 83 109 97 108 108 32 70 111 110 116 115 0 1 8 1 1 - - - - - - + + + + + + diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Temperature/TMP3x/TMP3x.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Temperature/TMP3x/TMP3x.vi index c411d53c..1ffd970e 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Temperature/TMP3x/TMP3x.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Temperature/TMP3x/TMP3x.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Temperature/Thermistor.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Temperature/Thermistor.vi index 52a9fc6c..242fb460 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Temperature/Thermistor.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Sensors/Temperature/Thermistor.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Utilities/Check Channel.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Utilities/Check Channel.vi index 362ef277..f6f65e1a 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Utilities/Check Channel.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Utilities/Check Channel.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Utilities/Configure Ethernet Settings.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Utilities/Configure Ethernet Settings.vi index 0302c053..db0cb02d 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Utilities/Configure Ethernet Settings.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Utilities/Configure Ethernet Settings.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Utilities/Configure Wifi Settings.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Utilities/Configure Wifi Settings.vi index 4a853b26..6794e7a5 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Utilities/Configure Wifi Settings.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Utilities/Configure Wifi Settings.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Utilities/Custom Command.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Utilities/Custom Command.vi index 6f2c5bc2..53e0a3e9 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Utilities/Custom Command.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Utilities/Custom Command.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Utilities/Get Device User ID.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Utilities/Get Device User ID.vi index 63067b4c..7e71b9ab 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Utilities/Get Device User ID.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Utilities/Get Device User ID.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Utilities/Open Local.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Utilities/Open Local.vi index 921b61e0..23da6b81 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Utilities/Open Local.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Utilities/Open Local.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Utilities/Open Serial.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Utilities/Open Serial.vi index 336d99c2..66b53169 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Utilities/Open Serial.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Utilities/Open Serial.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Utilities/Open TCP.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Utilities/Open TCP.vi index b5e99ba3..d53a7c36 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Utilities/Open TCP.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Utilities/Open TCP.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Public/Utilities/Set Device User ID.vi b/LabVIEW/vi.lib/MakerHub/LINX/Public/Utilities/Set Device User ID.vi index 480ffb47..17774dad 100644 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Public/Utilities/Set Device User ID.vi and b/LabVIEW/vi.lib/MakerHub/LINX/Public/Utilities/Set Device User ID.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Resources/LinxAPI.rc b/LabVIEW/vi.lib/MakerHub/LINX/Resources/LinxAPI.rc new file mode 100644 index 00000000..f0332f57 --- /dev/null +++ b/LabVIEW/vi.lib/MakerHub/LINX/Resources/LinxAPI.rc @@ -0,0 +1,25 @@ +RCversion: 3 +include: "LinxAPI.rch" + +///// LinxAPI Base Class Definition ///// +class: LinxAPI_Base +genericType: LinxAPI +control: "LinxAPI Base.ctl" +className: "LinxAPI Base" +flags: 0 + +///// LinxAPI Client Class Definition ///// +class: LinxAPI_Client +genericType: LinxAPI +control: "LinxAPI Client.ctl" +className: "LinxAPI Client" +super: LinxAPI_Base +flags: 0 + +///// LinxAPI Server Class Definition ///// +class: LinxAPI_Server +genericType: LinxAPI +control: "LinxAPI Server.ctl" +className: "LinxAPI Server" +super: LinxAPI_Base +flags: 0 diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Resources/LinxAPI.rch b/LabVIEW/vi.lib/MakerHub/LINX/Resources/LinxAPI.rch new file mode 100644 index 00000000..c1bf0a39 --- /dev/null +++ b/LabVIEW/vi.lib/MakerHub/LINX/Resources/LinxAPI.rch @@ -0,0 +1,18 @@ +///// LinxAPI Type Definition ///// +genericType: LinxAPI +genericTypeName: LinxAPI +refnum: GenericTag +sorted: no +adapt: no +matchExact: no +menuSelect: yes +library: libLinxDev.* +calling: C +setFunction: LinxSetProperty +getFunction: LinxGetProperty +openFunction: LinxOpenDummy +closeFunction: LinxCleanup +cleanup: idle +passAttributeError: none +passMethodError: none +hasActiveProp: no \ No newline at end of file diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Resources/libLinxDevice.dll b/LabVIEW/vi.lib/MakerHub/LINX/Resources/libLinxDevice.dll new file mode 100644 index 00000000..7e6779f3 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/LINX/Resources/libLinxDevice.dll differ diff --git a/LabVIEW/vi.lib/MakerHub/LINX/Resources/liblinxdevice.dll b/LabVIEW/vi.lib/MakerHub/LINX/Resources/liblinxdevice.dll deleted file mode 100644 index e41faf46..00000000 Binary files a/LabVIEW/vi.lib/MakerHub/LINX/Resources/liblinxdevice.dll and /dev/null differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/LMH-Toolbox.lvlib b/LabVIEW/vi.lib/MakerHub/Toolbox/LMH-Toolbox.lvlib new file mode 100644 index 00000000..297d91b6 --- /dev/null +++ b/LabVIEW/vi.lib/MakerHub/Toolbox/LMH-Toolbox.lvlib @@ -0,0 +1,133 @@ + + + )!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!(]!!!*Q(C=\>8"=>MQ%!8143;(8.6"2CVM#WJ",7Q,SN&(N<!NK!7VM#WI"<8A0$%94UZ2$P%E"Y.?G@I%A7=11U>M\7P%FXB^VL\`NHV=@X<^39O0^N(_<8NZOEH@@=^_CM?,3)VK63LD->8LS%=_]J'0@/1N<XH,7^\SFJ?]Z#5P?=F,HP+5JTTF+5`Z>MB$(P+1)YX*RU2DU$(![)Q3YW.YBG>YBM@8'*\B':\B'2Z>9HC':XC':XD=&M-T0--T0-.DK%USWS(H'2\$2`-U4`-U4`/9-JKH!>JE<?!W#%;UC_WE?:KH?:R']T20]T20]\A=T>-]T>-]T?/7<66[UTQ//9^BIHC+JXC+JXA-(=640-640-6DOCC?YCG)-G%:(#(+4;6$_6)]R?.8&%`R&%`R&)^,WR/K<75?GM=BZUG?Z%G?Z%E?1U4S*%`S*%`S'$;3*XG3*XG3RV320-G40!G3*D6^J-(3D;F4#J,(T\:<=HN+P5FS/S,7ZIWV+7.NNFC<+.<GC0819TX-7!]JVO,(7N29CR6L%7,^=<(1M4#R*IFV][.DX(X?V&6>V&G>V&%>V&\N(L@_Z9\X_TVONVN=L^?Y8#ZR0J`D>$L&]8C-Q_%1_`U_>LP>WWPAG_0NB@$TP@4C`%`KH@[8`A@PRPA=PYZLD8Y!#/7SO!!!!!! + 536903680 + 1.0.0.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Documentation/LMH-Documentation.lvlib b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Documentation/LMH-Documentation.lvlib new file mode 100644 index 00000000..0315728a --- /dev/null +++ b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Documentation/LMH-Documentation.lvlib @@ -0,0 +1,28 @@ + + + LMH-Toolbox.lvlib + ../../../LMH-Toolbox.lvlib + )!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!)3!!!*Q(C=\>4"<3)R'-8RFWA0?[7$C":?#\2!#V],8(/EB;]&7O"!![]&7K!&^D`'36:;+5D:+,O(D0%%HM@W<TT/3/0Y+@X1^;O/U_EUTC_H0^K8T^PJ`@;0^,]T`\][^/\RX@\>`H@N^\@@]R@M]DO'BS'FBNL5IHL=X48E)1^ZS%-?]C:P]C:P]C:P]C)P]C)P]C)P=J/<X/1G.\H*2S%8O=B&TKK%S=.%9>!Q1,A9CM)J?))H?)+(HQK?Y!G?Y!E?,F(Q"%`Q"%`QU%X"%TT"%TT"QV"$EF()]110Q[PR.*\'UXA;$V/K]43!:L*GY'91''I;GS_.J`%U(L[K]43?RN.Y'A`.;DS.J`%UHM:$F\%K042,)=@$-#I]B;@Q&*\#Q^!K0)7H]"3?QM.U+DS&JU!5%R;$1V$2K<CA_&&Y#A^`6(A+4_%J0)7(JP'%;KT-IFE+/2\D-2\D-2\D91A:D`%9D`%9$]0+?)T(?)T(?*B+RG-]RG-A:F+GFRH->$18G="Y_)T>YP'5?EA]SPT8P'V5T1WIO<%U.YTG2N"]Q*I04P/";#[UZA*K,ITG$7P?C#:1=W,.!45PV)8TG8KE(KB\[I[[J7[I;_JK[@L*&VYO&ZX0:RW02RU/"_XX?_VW/WWX7WUW'[X8;[V7K^?XV20F>DR]Z,XU4,`0KL@XUP`Q<N3DLL_^ZFGD8TT68M%!!!!! + 536903680 + 1.0.0.0 + 49 49 48 49 56 48 49 53 13 0 0 0 0 1 23 21 76 111 97 100 32 38 32 85 110 108 111 97 100 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 9 0 0 38 173 1 100 1 100 80 84 72 48 0 0 0 35 0 1 0 3 2 86 73 9 51 114 100 32 112 97 114 116 121 17 76 73 78 88 32 84 101 109 112 108 97 116 101 46 112 110 103 0 0 12 158 0 40 0 0 12 152 0 0 12 0 0 0 0 0 0 32 0 32 0 24 0 0 0 0 0 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 102 255 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 102 255 0 102 255 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 255 0 102 255 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 0 0 0 102 255 0 0 0 0 102 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 2 0 0 0 1 15 13 76 97 121 101 114 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 7 0 0 12 178 0 0 0 0 0 0 0 16 0 0 12 158 0 40 0 0 12 152 0 0 12 0 0 0 0 0 0 32 0 32 0 24 0 0 0 0 0 255 255 255 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 10 207 0 10 207 0 10 207 0 255 255 255 255 255 255 255 255 255 10 207 0 10 207 0 255 255 255 255 255 255 255 255 255 10 207 0 10 207 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 10 207 0 255 255 255 255 255 255 10 207 0 255 255 255 10 207 0 255 255 255 255 255 255 10 207 0 255 255 255 10 207 0 255 255 255 255 255 255 10 207 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 10 207 0 255 255 255 255 255 255 10 207 0 255 255 255 10 207 0 255 255 255 255 255 255 10 207 0 255 255 255 10 207 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 10 207 0 255 255 255 255 255 255 10 207 0 255 255 255 10 207 0 255 255 255 255 255 255 10 207 0 255 255 255 10 207 0 255 255 255 255 255 255 10 207 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 10 207 0 10 207 0 10 207 0 255 255 255 255 255 255 255 255 255 10 207 0 10 207 0 255 255 255 255 255 255 255 255 255 10 207 0 10 207 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 113 140 0 0 74 82 0 0 74 80 0 0 74 82 0 0 113 140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 1 0 2 0 0 0 1 15 13 76 97 121 101 114 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 7 0 0 12 178 0 0 0 0 0 0 0 0 0 0 12 158 0 40 0 0 12 152 0 0 12 0 0 0 0 0 0 32 0 32 0 24 0 0 0 0 0 255 255 255 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 7 255 255 192 7 255 255 192 7 255 255 192 7 255 255 192 7 255 255 192 7 255 255 192 7 255 255 192 7 255 255 192 3 255 255 192 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 1 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 83 109 97 108 108 32 70 111 110 116 115 0 1 9 1 1 + + + + + + + + + + + + + + + + + + + + diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Documentation/Private/Generate Doku Syntax.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Documentation/Private/Generate Doku Syntax.vi new file mode 100644 index 00000000..eb272aa9 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Documentation/Private/Generate Doku Syntax.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Documentation/Private/Get Relative Path_Doc.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Documentation/Private/Get Relative Path_Doc.vi new file mode 100644 index 00000000..e84c93fb Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Documentation/Private/Get Relative Path_Doc.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Documentation/Private/Get VI Images.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Documentation/Private/Get VI Images.vi new file mode 100644 index 00000000..ed24e3a7 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Documentation/Private/Get VI Images.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Documentation/Private/Get VI Name And Description.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Documentation/Private/Get VI Name And Description.vi new file mode 100644 index 00000000..f8f9b1cb Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Documentation/Private/Get VI Name And Description.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Documentation/Private/HTTP String.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Documentation/Private/HTTP String.vi new file mode 100644 index 00000000..dc43336f Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Documentation/Private/HTTP String.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Documentation/Private/Parse VIs.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Documentation/Private/Parse VIs.vi new file mode 100644 index 00000000..ba3729eb Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Documentation/Private/Parse VIs.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Documentation/Private/Save BD Image.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Documentation/Private/Save BD Image.vi new file mode 100644 index 00000000..34e708db Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Documentation/Private/Save BD Image.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Documentation/Private/Type Defs/Doc Config.ctl b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Documentation/Private/Type Defs/Doc Config.ctl new file mode 100644 index 00000000..8aecbd72 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Documentation/Private/Type Defs/Doc Config.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Documentation/Private/Type Defs/VI.ctl b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Documentation/Private/Type Defs/VI.ctl new file mode 100644 index 00000000..7e4b12f1 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Documentation/Private/Type Defs/VI.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Documentation/Public/Dokugen Main.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Documentation/Public/Dokugen Main.vi new file mode 100644 index 00000000..a5f6439c Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Documentation/Public/Dokugen Main.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Documentation/Public/Initialize.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Documentation/Public/Initialize.vi new file mode 100644 index 00000000..3cb7d8da Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Documentation/Public/Initialize.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Documentation/Test App.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Documentation/Test App.vi new file mode 100644 index 00000000..d8ae0c88 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Documentation/Test App.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/DokuWiki/LMH-DokuWiki.lvlib b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/DokuWiki/LMH-DokuWiki.lvlib new file mode 100644 index 00000000..5031e6c3 --- /dev/null +++ b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/DokuWiki/LMH-DokuWiki.lvlib @@ -0,0 +1,11 @@ + + + LMH-Toolbox.lvlib + ../../../LMH-Toolbox.lvlib + )!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!(]!!!*Q(C=\>7R=2MR%!81N=?"5Q</07RB7W!,<'&<9+K1,7Q,<)%N<!NMA3X)DW?-RJ(JQ"I\%%Z,(@`BA#==ZB3RN;]28_,V7@PWW`:R`>HV*SU_WE@\N_XF[3:^^TX\+2YP)D7K6;G-RV3P)R`ZS%=_]J'XP/5N<XH,7V\SEJ?]Z#5P?=J4HP+5JTTFWS%0?=B$DD1G(R/.1==!IT.+D)`B':\B'2Z@9XC':XC':XBUC?%:HO%:HO&R7QT0]!T0]!S0I4<*<)?=:XA-(]X40-X40-VDSGC?"GC4N9(<)"D2,L;4ZGG?ZH%;T>-]T>-]T?.S.%`T.%`T.)^<NF8J4@-YZ$S'C?)JHO)JHO)R>"20]220]230[;*YCK=ASI2F=)1I.Z5/Z5PR&)^@54T&5TT&5TQO<5_INJ6Z;"[(H#>ZEC>ZEC>Z$"(*ETT*ETT*9^B)HO2*HO2*(F.&]C20]C2)GN4UE1:,.[:/+5A?0^NOS?UJ^3<*\9B9GT@7JISVW7*NIFC<)^:$D`5Q9TWE7)M@;V&D,6;M29DVR]6#R],%GC47T9_/=@>Z5V>V57>V5E>V5(OV?^T[FTP?\`?YX7ZRP6\D=LH%_8S/U_E5R_-R$I>$\0@\W/VW<[_"\Y[X&],0^^+,]T_J>`J@_B_]'_.T`$KO.@I"XC-_N!!!!!! + 536903680 + 1.0.0.0 + + + + diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/DokuWiki/Public/C Enum To DokuWiki Table.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/DokuWiki/Public/C Enum To DokuWiki Table.vi new file mode 100644 index 00000000..07360afd Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/DokuWiki/Public/C Enum To DokuWiki Table.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Front Panel Clean Up/LMH-Front-Panel-Clean-Up.lvlib b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Front Panel Clean Up/LMH-Front-Panel-Clean-Up.lvlib new file mode 100644 index 00000000..5c021e8d --- /dev/null +++ b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Front Panel Clean Up/LMH-Front-Panel-Clean-Up.lvlib @@ -0,0 +1,28 @@ + + + LMH-Toolbox.lvlib + ../../../LMH-Toolbox.lvlib + )!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!(]!!!*Q(C=\>8"=>MQ%!8143;(8.6"2CVM#WJ",7Q,SN&(N<!NK!7VM#WI"<8A0$%94UZ2$P%E"Y.?G@I%A7=11U>M\7P%FXB^VL\`NHV=@X<^39O0^N(_<8NZOEH@@=^_CM?,3)VK63LD->8LS%=_]J'0@/1N<XH,7^\SFJ?]Z#5P?=F,HP+5JTTF+5`Z>MB$(P+1)YX*RU2DU$(![)Q3YW.YBG>YBM@8'*\B':\B'2Z>9HC':XC':XD=&M-T0--T0-.DK%USWS(H'2\$2`-U4`-U4`/9-JKH!>JE<?!W#%;UC_WE?:KH?:R']T20]T20]\A=T>-]T>-]T?/7<66[UTQ//9^BIHC+JXC+JXA-(=640-640-6DOCC?YCG)-G%:(#(+4;6$_6)]R?.8&%`R&%`R&)^,WR/K<75?GM=BZUG?Z%G?Z%E?1U4S*%`S*%`S'$;3*XG3*XG3RV320-G40!G3*D6^J-(3D;F4#J,(T\:<=HN+P5FS/S,7ZIWV+7.NNFC<+.<GC0819TX-7!]JVO,(7N29CR6L%7,^=<(1M4#R*IFV][.DX(X?V&6>V&G>V&%>V&\N(L@_Z9\X_TVONVN=L^?Y8#ZR0J`D>$L&]8C-Q_%1_`U_>LP>WWPAG_0NB@$TP@4C`%`KH@[8`A@PRPA=PYZLD8Y!#/7SO!!!!!! + 536903680 + 1.0.0.0 + 3 + + + + + + + + + + + + + + + + + + + + diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Front Panel Clean Up/Private/Get Connector Pane Info.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Front Panel Clean Up/Private/Get Connector Pane Info.vi new file mode 100644 index 00000000..a3f73894 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Front Panel Clean Up/Private/Get Connector Pane Info.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Front Panel Clean Up/Private/Move Front Panel Objects.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Front Panel Clean Up/Private/Move Front Panel Objects.vi new file mode 100644 index 00000000..3606992f Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Front Panel Clean Up/Private/Move Front Panel Objects.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Front Panel Clean Up/Private/Move and Resize.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Front Panel Clean Up/Private/Move and Resize.vi new file mode 100644 index 00000000..14de8e08 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Front Panel Clean Up/Private/Move and Resize.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Front Panel Clean Up/Private/Reorder Connector Pane Object Refs.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Front Panel Clean Up/Private/Reorder Connector Pane Object Refs.vi new file mode 100644 index 00000000..bd18bc67 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Front Panel Clean Up/Private/Reorder Connector Pane Object Refs.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Front Panel Clean Up/Private/Type Defs/Connector Pane Pattern.ctl b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Front Panel Clean Up/Private/Type Defs/Connector Pane Pattern.ctl new file mode 100644 index 00000000..ebcb5030 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Front Panel Clean Up/Private/Type Defs/Connector Pane Pattern.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Front Panel Clean Up/Private/Type Defs/FP Data.ctl b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Front Panel Clean Up/Private/Type Defs/FP Data.ctl new file mode 100644 index 00000000..5384bf63 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Front Panel Clean Up/Private/Type Defs/FP Data.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Front Panel Clean Up/Private/VI Ref Or Path.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Front Panel Clean Up/Private/VI Ref Or Path.vi new file mode 100644 index 00000000..a90aff4d Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Front Panel Clean Up/Private/VI Ref Or Path.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Front Panel Clean Up/Public/Front Panel Clean Up.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Front Panel Clean Up/Public/Front Panel Clean Up.vi new file mode 100644 index 00000000..0ed3ac98 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Front Panel Clean Up/Public/Front Panel Clean Up.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/GUI Tools/LMH GUI Tools.lvlib b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/GUI Tools/LMH GUI Tools.lvlib new file mode 100644 index 00000000..973a5bfb --- /dev/null +++ b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/GUI Tools/LMH GUI Tools.lvlib @@ -0,0 +1,34 @@ + + + LMH-Toolbox.lvlib + ../../../LMH-Toolbox.lvlib + )!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!(]!!!*Q(C=\>7R=2MR%!81N=?"5X<A91M</W-,<'&<9+K1,7Q,<)%N<!NMA3X)DW?-RJ(JQ"I\%%Z,(@`BA#==ZB3RN;]28_,V7@P_W`:R`>HV*SU_WE@\N_XF[3:^^TX\+2YP)D7K6;G-RV3P)R`ZS%=_]J'XP/5N<XH,7V\SEJ?]Z#5P?=J4HP+5JTTFWS%0?=B$DD1G(R/.1==!IT.+D)`B':\B'2Z@9XC':XC':XBUC?%:HO%:HO&R7QT0]!T0]!S0I4<*<)?=:XA-(]X40-X40-VDSGC?"GC4N9(<)"D2,L;4ZGG?ZH%;T>-]T>-]T?.S.%`T.%`T.)^<NF8J4@-YZ$S'C?)JHO)JHO)R>"20]220]230[;*YCK=ASI2F=)1I.Z5/Z5PR&)^@54T&5TT&5TQO<5_INJ6Z;"[(H#>ZEC>ZEC>Z$"(*ETT*ETT*9^B)HO2*HO2*(F.&]C20]C2)GN4UE1:,.[:/+5A?0^NOS?UJ^3<*\9B9GT@7JISVW7*NIFC<)^:$D`5Q9TWE7)M@;V&D,6;M29DVR]6#R],%GC47T9_/=@>Z5V>V57>V5E>V5(OV?^T[FTP?\`?YX7ZRP6\D=LH%_8S/U_E5R_-R$I>$\0@\W/VW<[_"<Y[X&],0^^+,]T_J>`J@_B_]'_.T`$KO.@I"O[^NF!!!!!! + 536903680 + 1.0.0.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/GUI Tools/Private/Animations/Animation.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/GUI Tools/Private/Animations/Animation.vi new file mode 100644 index 00000000..5a18e68e Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/GUI Tools/Private/Animations/Animation.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/GUI Tools/Private/Animations/FGVs/Animation State.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/GUI Tools/Private/Animations/FGVs/Animation State.vi new file mode 100644 index 00000000..3f1b11d4 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/GUI Tools/Private/Animations/FGVs/Animation State.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/GUI Tools/Private/Animations/FGVs/Type Defs/Animation FGV State.ctl b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/GUI Tools/Private/Animations/FGVs/Type Defs/Animation FGV State.ctl new file mode 100644 index 00000000..671901d4 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/GUI Tools/Private/Animations/FGVs/Type Defs/Animation FGV State.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/GUI Tools/Private/Animations/Get Image Data.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/GUI Tools/Private/Animations/Get Image Data.vi new file mode 100644 index 00000000..8b272708 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/GUI Tools/Private/Animations/Get Image Data.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/GUI Tools/Private/Animations/Green Bars.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/GUI Tools/Private/Animations/Green Bars.vi new file mode 100644 index 00000000..2f36dd8a Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/GUI Tools/Private/Animations/Green Bars.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/GUI Tools/Private/Animations/Type Defs/Animation Config.ctl b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/GUI Tools/Private/Animations/Type Defs/Animation Config.ctl new file mode 100644 index 00000000..5ed276ca Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/GUI Tools/Private/Animations/Type Defs/Animation Config.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/GUI Tools/Private/Animations/Type Defs/Animation.ctl b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/GUI Tools/Private/Animations/Type Defs/Animation.ctl new file mode 100644 index 00000000..9247a47a Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/GUI Tools/Private/Animations/Type Defs/Animation.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/GUI Tools/Public/Animations/Load Animation.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/GUI Tools/Public/Animations/Load Animation.vi new file mode 100644 index 00000000..d8e2f145 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/GUI Tools/Public/Animations/Load Animation.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/GUI Tools/Public/Animations/Start Animation.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/GUI Tools/Public/Animations/Start Animation.vi new file mode 100644 index 00000000..bc595d21 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/GUI Tools/Public/Animations/Start Animation.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/GUI Tools/Public/Animations/Stop Animation.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/GUI Tools/Public/Animations/Stop Animation.vi new file mode 100644 index 00000000..6f1f5924 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/GUI Tools/Public/Animations/Stop Animation.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Images/Icons/Build Tool Icons.pdn b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Images/Icons/Build Tool Icons.pdn new file mode 100644 index 00000000..b3ff74c3 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Images/Icons/Build Tool Icons.pdn differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Images/Icons/Install Project.ico b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Images/Icons/Install Project.ico new file mode 100644 index 00000000..2d1d6922 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Images/Icons/Install Project.ico differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Images/Icons/Install Project.png b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Images/Icons/Install Project.png new file mode 100644 index 00000000..0fd245ea Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Images/Icons/Install Project.png differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Images/Icons/Sync Project.ico b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Images/Icons/Sync Project.ico new file mode 100644 index 00000000..f57aaf93 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Images/Icons/Sync Project.ico differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Images/Icons/Sync Project.png b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Images/Icons/Sync Project.png new file mode 100644 index 00000000..43810c9b Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Images/Icons/Sync Project.png differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Images/Icons/Uninstall Project.ico b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Images/Icons/Uninstall Project.ico new file mode 100644 index 00000000..bdf48121 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Images/Icons/Uninstall Project.ico differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Images/Icons/Uninstall Project.png b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Images/Icons/Uninstall Project.png new file mode 100644 index 00000000..63840936 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Images/Icons/Uninstall Project.png differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Images/UI/Animations/Loading/Green Bars/1.png b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Images/UI/Animations/Loading/Green Bars/1.png new file mode 100644 index 00000000..f802f4d6 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Images/UI/Animations/Loading/Green Bars/1.png differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Images/UI/Animations/Loading/Green Bars/2.png b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Images/UI/Animations/Loading/Green Bars/2.png new file mode 100644 index 00000000..fcda8d1e Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Images/UI/Animations/Loading/Green Bars/2.png differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Images/UI/Animations/Loading/Green Bars/3.png b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Images/UI/Animations/Loading/Green Bars/3.png new file mode 100644 index 00000000..861c9f88 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Images/UI/Animations/Loading/Green Bars/3.png differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Images/UI/Animations/Loading/Green Bars/4.png b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Images/UI/Animations/Loading/Green Bars/4.png new file mode 100644 index 00000000..31ef072b Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Images/UI/Animations/Loading/Green Bars/4.png differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Images/UI/Animations/Loading/Green Bars/5.png b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Images/UI/Animations/Loading/Green Bars/5.png new file mode 100644 index 00000000..a2436a72 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Images/UI/Animations/Loading/Green Bars/5.png differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Images/UI/Animations/Loading/Green Bars/6.png b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Images/UI/Animations/Loading/Green Bars/6.png new file mode 100644 index 00000000..a911665f Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Images/UI/Animations/Loading/Green Bars/6.png differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Images/UI/Animations/Loading/Green Bars/7.png b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Images/UI/Animations/Loading/Green Bars/7.png new file mode 100644 index 00000000..e00c28ea Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Images/UI/Animations/Loading/Green Bars/7.png differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Images/UI/Animations/Loading/Green Bars/8.png b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Images/UI/Animations/Loading/Green Bars/8.png new file mode 100644 index 00000000..4ccf371b Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Images/UI/Animations/Loading/Green Bars/8.png differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Images/Wizard/LVH Wizard Background.pdn b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Images/Wizard/LVH Wizard Background.pdn new file mode 100644 index 00000000..e4851d59 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Images/Wizard/LVH Wizard Background.pdn differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Images/Wizard/LVH Wizard Background.png b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Images/Wizard/LVH Wizard Background.png new file mode 100644 index 00000000..29186900 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Images/Wizard/LVH Wizard Background.png differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Installer Tools/Dependency Generator.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Installer Tools/Dependency Generator.vi new file mode 100644 index 00000000..f2098d5e Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Installer Tools/Dependency Generator.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Installer Tools/LMH-Installer Tools.lvlib b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Installer Tools/LMH-Installer Tools.lvlib new file mode 100644 index 00000000..4fcedf05 --- /dev/null +++ b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Installer Tools/LMH-Installer Tools.lvlib @@ -0,0 +1,37 @@ + + + LMH-Toolbox.lvlib + ../../../LMH-Toolbox.lvlib + )!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!)F!!!*Q(C=\>4"5?.!%)8BRR9(LMZASSG]&*S#5_A5@/8I&$I&J_#$%OA5H)*4%,^(<1L9,;A#>O'!Z$<W']X-Z^%A;2RXUKXG@XZ-H/-V4;0G;@E_;GG@FIM[_\.^PH;\$P7S@@H]/-`@WK@H`;_9,T`U[P(4`N0_M@;XN^`^@^DF<RBOBJ1K+KGA0(\>8/2&8O2&8O2&HO2*HO2*HO2*(O2"(O2"(O2"<H+4G^TE*D@Z/-F&,H+2MSL&Z-6%R;$&!-8&5&3]&:\#5XA+$V^6?!J0Y3E]B9>,6(A+4_%J0)7(<CI]B;@Q&*\#QV"$5O-ERV.Y'&[**`%EHM34?*B3C3="**-F!S?$Q&$3G(R)0)EH]@"2C3@R**\%EXBI6O**0)EH]31?OIR6S;'ZH/2Y'%;"*`!%HM!4?"B;A3@Q"*\!%XC94I%H]!3)9-*A=!A+/A58"&]#4_$BDQ*0Y!E]A3@QU$4O5)S6O7AO*TE?YT%?YT%?YW%)'9`R')`R'!`$SHC-RXC-RXC93M:D0-:D)':3JJ=:T(1U&ZH!?(C.X?*RFX*)0-\_VVQWKHI$KD?7?M/I.Y,["KNPH0K'K">;P9$KB6(`90505106%[M(6&_I-_]H[EA>K$WVI\<5BFJ4KUP84\\Q@$\L>$LJ?$TK=$BIP^^LN^NJO^VKM^FIP6ZLN6I^0KV_=S\(T8O?3`@U_[R;HEP@Y>GI8ZK@0/::IQ@XNV?"!!!!!! + 536903680 + 1.0.0.0 + 49 49 48 49 56 48 49 53 13 0 0 0 0 1 23 21 76 111 97 100 32 38 32 85 110 108 111 97 100 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 9 0 0 38 187 1 100 1 100 80 84 72 48 0 0 0 34 0 1 0 3 7 76 105 98 114 97 114 121 10 70 114 97 109 101 119 111 114 107 115 10 95 98 108 97 110 107 46 112 110 103 0 0 12 158 0 40 0 0 12 152 0 0 12 0 0 0 0 0 0 32 0 32 0 24 0 0 0 0 0 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 1 15 13 76 97 121 101 114 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 7 0 0 12 182 0 0 0 0 0 0 0 0 0 0 12 158 0 40 0 0 12 152 0 0 12 0 0 0 0 0 0 32 0 32 0 24 0 0 0 0 0 255 255 255 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 128 0 0 1 128 0 0 1 128 0 0 1 128 0 0 1 128 0 0 1 128 0 0 1 128 0 0 1 128 0 0 1 128 0 0 1 128 0 0 1 128 0 0 1 128 0 0 1 128 0 0 1 128 0 0 1 128 0 0 1 128 0 0 1 128 0 0 1 128 0 0 1 128 0 0 1 255 255 255 255 0 0 0 4 84 111 111 108 100 1 0 2 0 0 0 1 15 13 76 97 121 101 114 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 7 0 0 12 182 0 0 0 0 0 0 0 0 0 0 12 158 0 40 0 0 12 152 0 0 12 0 0 0 0 0 0 32 0 32 0 24 0 0 0 0 0 255 255 255 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 127 255 255 254 127 255 255 254 127 255 255 254 127 255 255 254 127 255 255 254 127 255 255 254 127 255 255 254 127 255 255 254 127 255 255 254 127 255 255 254 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 70 105 108 108 100 1 0 2 0 0 0 7 73 78 83 84 65 76 76 0 0 0 0 0 0 0 0 0 0 0 0 0 10 207 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 83 109 97 108 108 32 70 111 110 116 115 0 1 8 1 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Installer Tools/Private/Dependency Test VI Template.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Installer Tools/Private/Dependency Test VI Template.vi new file mode 100644 index 00000000..a02dd90d Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Installer Tools/Private/Dependency Test VI Template.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Installer Tools/Private/Download Complete.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Installer Tools/Private/Download Complete.vi new file mode 100644 index 00000000..3df9553c Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Installer Tools/Private/Download Complete.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Installer Tools/Private/Flatten Dependencies To String Array.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Installer Tools/Private/Flatten Dependencies To String Array.vi new file mode 100644 index 00000000..e2fd917c Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Installer Tools/Private/Flatten Dependencies To String Array.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Installer Tools/Private/Get Installed Test VI Path.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Installer Tools/Private/Get Installed Test VI Path.vi new file mode 100644 index 00000000..123dbd37 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Installer Tools/Private/Get Installed Test VI Path.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Installer Tools/Private/Launch Installer Helper.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Installer Tools/Private/Launch Installer Helper.vi new file mode 100644 index 00000000..336cef21 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Installer Tools/Private/Launch Installer Helper.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Installer Tools/Private/Load Stored Install Data.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Installer Tools/Private/Load Stored Install Data.vi new file mode 100644 index 00000000..a481397d Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Installer Tools/Private/Load Stored Install Data.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Installer Tools/Private/Parse Installed Files.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Installer Tools/Private/Parse Installed Files.vi new file mode 100644 index 00000000..57c01106 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Installer Tools/Private/Parse Installed Files.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Installer Tools/Private/Populate List Box.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Installer Tools/Private/Populate List Box.vi new file mode 100644 index 00000000..5613c233 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Installer Tools/Private/Populate List Box.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Installer Tools/Private/Populate MC List Box.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Installer Tools/Private/Populate MC List Box.vi new file mode 100644 index 00000000..ce3fb476 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Installer Tools/Private/Populate MC List Box.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Installer Tools/Private/Save VIP Data.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Installer Tools/Private/Save VIP Data.vi new file mode 100644 index 00000000..a1c274a3 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Installer Tools/Private/Save VIP Data.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Installer Tools/Private/Start Download.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Installer Tools/Private/Start Download.vi new file mode 100644 index 00000000..cdd18763 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Installer Tools/Private/Start Download.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Installer Tools/Private/Type Defs/Dependecy.ctl b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Installer Tools/Private/Type Defs/Dependecy.ctl new file mode 100644 index 00000000..ac798f5a Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Installer Tools/Private/Type Defs/Dependecy.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Installer Tools/Private/Type Defs/Dependency Config.ctl b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Installer Tools/Private/Type Defs/Dependency Config.ctl new file mode 100644 index 00000000..faf9ca19 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Installer Tools/Private/Type Defs/Dependency Config.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Installer Tools/Private/Type Defs/Deps State.ctl b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Installer Tools/Private/Type Defs/Deps State.ctl new file mode 100644 index 00000000..e8683f3c Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Installer Tools/Private/Type Defs/Deps State.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Installer Tools/Private/Type Defs/Install State.ctl b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Installer Tools/Private/Type Defs/Install State.ctl new file mode 100644 index 00000000..a071380a Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Installer Tools/Private/Type Defs/Install State.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Installer Tools/Private/Type Defs/User Dependency.ctl b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Installer Tools/Private/Type Defs/User Dependency.ctl new file mode 100644 index 00000000..65123d80 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Installer Tools/Private/Type Defs/User Dependency.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Installer Tools/Private/Unflatten Dependencies From String Array.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Installer Tools/Private/Unflatten Dependencies From String Array.vi new file mode 100644 index 00000000..7fa84757 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Installer Tools/Private/Unflatten Dependencies From String Array.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Installer Tools/Public/Install Dependencies.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Installer Tools/Public/Install Dependencies.vi new file mode 100644 index 00000000..8399cee3 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Installer Tools/Public/Install Dependencies.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Scripting/General/Private/Enum To String Template.vit b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Scripting/General/Private/Enum To String Template.vit new file mode 100644 index 00000000..7e57097f Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Scripting/General/Private/Enum To String Template.vit differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Scripting/General/Public/Enum To String Scripter.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Scripting/General/Public/Enum To String Scripter.vi new file mode 100644 index 00000000..8f467828 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Scripting/General/Public/Enum To String Scripter.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Scripting/JSON/Private/JSON Array To LV Enum.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Scripting/JSON/Private/JSON Array To LV Enum.vi new file mode 100644 index 00000000..a68782db Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Scripting/JSON/Private/JSON Array To LV Enum.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Scripting/JSON/Private/JSON Scalar Array To LV Array.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Scripting/JSON/Private/JSON Scalar Array To LV Array.vi new file mode 100644 index 00000000..05d2cb95 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Scripting/JSON/Private/JSON Scalar Array To LV Array.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Scripting/LMH-Scripting.lvlib b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Scripting/LMH-Scripting.lvlib new file mode 100644 index 00000000..bc1bff6b --- /dev/null +++ b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Scripting/LMH-Scripting.lvlib @@ -0,0 +1,26 @@ + + + LMH-Toolbox.lvlib + ../../../LMH-Toolbox.lvlib + )!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!)?!!!*Q(C=\>4.51*"%-8RJ_8"+RF9J.!JE!)J>!J=0:,#3Y%5/'Q#H1)JE!,_>\;V^)";B6:Z=->"?00V9X:9;6S0UI-ONV`4K(-:<_>0U\2%V^L@AA`NS\#JR\]W,`_HS`8RU`2J_WW80LX_W``<`X<\V]@\_3>_*L>=UNW15INK;F*D@,N,E2>ZE2>ZE2?ZS5VO=J/<X/2*HO2*HO2*HO2"(O2"(O2"(O3DE)N=Z#*H6YL&CY7+39M*CMZ16,Q5HM*4?!I0(V6Y#E`B+4S&BSYK0)7H]"3?QM-Q&:\#5XA+4_&BKC'J5=DR&"[GF`%9D`%9D`'QJ)T(!-RC:G)T#1S:2P0'?)T(?(ALYT%?YT%?Y[&:RG-]RG-]RM/1M3M?GLG1YW%;*:\%EXA34_*B;C7?R*.Y%E`C94EFHM34)*)&E]EB+"G5>%A_**\%QT]FHM34?"*0YK&JX+%=/T.LZE+/*`!%HM!4?!)05SDQ"*\!%XA#$^-K]!3?Q".Y!A^,+@!%HM!41)*&76\":-(!I&-1""\_RGG*=:=]*$&+`T38A[I_A/K$J4YQ[I/APM(K'[?_)?K.6G_A?G058VD^2>2!^=,K#>5>>?<V2$V3$^1^>5@>5D@5.85V$`XBDO@T7;@43=@D59@$1@P^8LP>4NPN6JP.2OPV7KP6[OVJ^52:LLPP0J??[@M<>8EO`96HI_ZV?@?9:Y^?!)V7^>M!!!!! + 536903680 + 1.0.0.0 + 49 49 48 49 56 48 49 53 13 0 0 0 0 1 23 21 76 111 97 100 32 38 32 85 110 108 111 97 100 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 9 0 0 38 175 0 100 1 100 80 84 72 48 0 0 0 29 0 1 0 3 2 86 73 10 70 114 97 109 101 119 111 114 107 115 10 95 98 108 97 110 107 46 112 110 103 0 0 12 158 0 40 0 0 12 152 0 0 12 0 0 0 0 0 0 32 0 32 0 24 0 0 0 0 0 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 2 0 0 0 1 15 13 76 97 121 101 114 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 7 0 0 12 178 0 0 0 0 0 0 0 16 0 0 12 158 0 40 0 0 12 152 0 0 12 0 0 0 0 0 0 32 0 32 0 24 0 0 0 0 0 255 255 255 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 10 207 0 255 255 255 255 255 255 255 255 255 10 207 0 255 255 255 10 207 0 255 255 255 10 207 0 255 255 255 255 255 255 10 207 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 10 207 0 10 207 0 10 207 0 255 255 255 255 255 255 10 207 0 255 255 255 10 207 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 10 207 0 255 255 255 255 255 255 255 255 255 10 207 0 255 255 255 10 207 0 255 255 255 10 207 0 255 255 255 255 255 255 10 207 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 10 207 0 255 255 255 255 255 255 10 207 0 255 255 255 10 207 0 255 255 255 10 207 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 10 207 0 255 255 255 255 255 255 255 255 255 10 207 0 255 255 255 10 207 0 255 255 255 10 207 0 10 207 0 10 207 0 10 207 0 255 255 255 255 255 255 10 207 0 10 207 0 255 255 255 255 255 255 10 207 0 10 207 0 10 207 0 255 255 255 255 255 255 255 255 255 10 207 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 10 207 0 255 255 255 255 255 255 255 255 255 255 255 255 10 207 0 255 255 255 255 255 255 10 207 0 255 255 255 255 255 255 10 207 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 10 207 0 255 255 255 255 255 255 10 207 0 255 255 255 10 207 0 255 255 255 10 207 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 10 207 0 10 207 0 10 207 0 255 255 255 255 255 255 10 207 0 255 255 255 255 255 255 10 207 0 255 255 255 255 255 255 10 207 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 10 207 0 255 255 255 255 255 255 10 207 0 255 255 255 10 207 0 255 255 255 10 207 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 17 82 7 40 17 82 4 168 17 94 103 16 16 146 4 168 28 146 4 168 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 1 0 2 0 0 0 1 15 13 76 97 121 101 114 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 7 0 0 12 178 0 0 0 0 0 0 0 0 0 0 12 158 0 40 0 0 12 152 0 0 12 0 0 0 0 0 0 32 0 32 0 24 0 0 0 0 0 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 1 0 2 0 0 0 8 76 86 72 32 45 32 82 88 0 0 0 0 0 0 0 0 0 0 0 0 0 10 207 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 83 109 97 108 108 32 70 111 110 116 115 0 1 8 1 1 + + + + + + + + + + + + + + + + + + diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Type Defs/Installed LabVIEW Version.ctl b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Type Defs/Installed LabVIEW Version.ctl new file mode 100644 index 00000000..7ff4fd6e Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Type Defs/Installed LabVIEW Version.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Type Defs/LabVIEW Version.ctl b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Type Defs/LabVIEW Version.ctl new file mode 100644 index 00000000..7a36849a Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Type Defs/LabVIEW Version.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/VI Tools/LMH-VITools.lvlib b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/VI Tools/LMH-VITools.lvlib new file mode 100644 index 00000000..6cc87918 --- /dev/null +++ b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/VI Tools/LMH-VITools.lvlib @@ -0,0 +1,15 @@ + + + LMH-Toolbox.lvlib + ../../../LMH-Toolbox.lvlib + )!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!(]!!!*Q(C=\>8"<2MR%!813:!!O;K$1#V-#WJ",5Q,OPKI&K9&N;!7JA7VI";=JQVBZ"4F%#-ZG/O26X_ZZ$/87%>M\6P%FXB^VL\_NHV=@X<^39O0^N(_<8NZOEH@@=^_CM?,3)VK63LD->8LS%=_]J'0@/1N<XH,7^\SFJ?]Z#5P?=F,HP+5JTTF+5`Z>MB$(P+1)YX*RU2DU$(![)Q3YW.YBG>YBM@8'*\B':\B'2Z>9HC':XC':XD=&M-T0--T0-.DK%USWS(H'2\$2`-U4`-U4`/9-JKH!>JE<?!W#%;UC_WE?:KH?:R']T20]T20]\A=T>-]T>-]T?/7<66[UTQ//9^BIHC+JXC+JXA-(=640-640-6DOCC?YCG)-G%:(#(+4;6$_6)]R?.8&%`R&%`R&)^,WR/K<75?GM=BZUG?Z%G?Z%E?1U4S*%`S*%`S'$;3*XG3*XG3RV320-G40!G3*D6^J-(3D;F4#J,(T\:<=HN+P5FS/S,7ZIWV+7.NNFC<+.<GC0819TX-7!]JVO,(7N29CR6L%7,^=<(1M4#R*IFV][.DX(X?V&6>V&G>V&%>V&\N(L@_Z9\X_TVONVN=L^?Y8#ZR0J`D>$L&]8C-Q_%1_`U_>LP>WWPAO_0NB@$TP@4C`%`KH@[8`A@PRPA=PYZLD8Y![_ML^!!!!!! + 536903680 + 1.0.0.0 + + + + + + + + diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/VI Tools/LabVIEW Version to String.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/VI Tools/LabVIEW Version to String.vi new file mode 100644 index 00000000..bbe54d1e Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/VI Tools/LabVIEW Version to String.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/VI Tools/Save LV Class For Previous Version.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/VI Tools/Save LV Class For Previous Version.vi new file mode 100644 index 00000000..f1b27be8 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/VI Tools/Save LV Class For Previous Version.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/VI Tools/Save Library For Previous Version.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/VI Tools/Save Library For Previous Version.vi new file mode 100644 index 00000000..4e63f010 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/VI Tools/Save Library For Previous Version.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/VI Tools/Save Project For Previous Version.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/VI Tools/Save Project For Previous Version.vi new file mode 100644 index 00000000..2e360975 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/VI Tools/Save Project For Previous Version.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/VI Tools/Save State As Default Helper.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/VI Tools/Save State As Default Helper.vi new file mode 100644 index 00000000..9e908d55 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/VI Tools/Save State As Default Helper.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/VI Tools/Save VI For Previous Version.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/VI Tools/Save VI For Previous Version.vi new file mode 100644 index 00000000..1ca48efe Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/VI Tools/Save VI For Previous Version.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/VI Tools/Save XControl For Previous Version.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/VI Tools/Save XControl For Previous Version.vi new file mode 100644 index 00000000..d3a75c7e Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/VI Tools/Save XControl For Previous Version.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Web/Download Worker.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Web/Download Worker.vi new file mode 100644 index 00000000..69b90259 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Web/Download Worker.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Web/LMH-Web.lvlib b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Web/LMH-Web.lvlib new file mode 100644 index 00000000..0ee07b45 --- /dev/null +++ b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Web/LMH-Web.lvlib @@ -0,0 +1,12 @@ + + + LMH-Toolbox.lvlib + ../../../LMH-Toolbox.lvlib + )!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!(]!!!*Q(C=\>7R=2MR%!81N=?"5Q</07RB7W!,<'&<9+K1,7Q,<)%N<!NMA3X)DW?-RJ(JQ"I\%%Z,(@`BA#==ZB3RN;]28_,V7@PWW`:R`>HV*SU_WE@\N_XF[3:^^TX\+2YP)D7K6;G-RV3P)R`ZS%=_]J'XP/5N<XH,7V\SEJ?]Z#5P?=J4HP+5JTTFWS%0?=B$DD1G(R/.1==!IT.+D)`B':\B'2Z@9XC':XC':XBUC?%:HO%:HO&R7QT0]!T0]!S0I4<*<)?=:XA-(]X40-X40-VDSGC?"GC4N9(<)"D2,L;4ZGG?ZH%;T>-]T>-]T?.S.%`T.%`T.)^<NF8J4@-YZ$S'C?)JHO)JHO)R>"20]220]230[;*YCK=ASI2F=)1I.Z5/Z5PR&)^@54T&5TT&5TQO<5_INJ6Z;"[(H#>ZEC>ZEC>Z$"(*ETT*ETT*9^B)HO2*HO2*(F.&]C20]C2)GN4UE1:,.[:/+5A?0^NOS?UJ^3<*\9B9GT@7JISVW7*NIFC<)^:$D`5Q9TWE7)M@;V&D,6;M29DVR]6#R],%GC47T9_/=@>Z5V>V57>V5E>V5(OV?^T[FTP?\`?YX7ZRP6\D=LH%_8S/U_E5R_-R$I>$\0@\W/VW<[_"\Y[X&],0^^+,]T_J>`J@_B_]'_.T`$KO.@I"XC-_N!!!!!! + 536903680 + 1.0.0.0 + + + + + diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Web/Type Defs/Download Task.ctl b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Web/Type Defs/Download Task.ctl new file mode 100644 index 00000000..cd467663 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Private/Web/Type Defs/Download Task.ctl differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Archiving/Archive Directories.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Archiving/Archive Directories.vi new file mode 100644 index 00000000..9d6ab6f2 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Archiving/Archive Directories.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Archiving/Archive Directory.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Archiving/Archive Directory.vi new file mode 100644 index 00000000..df2e1bb2 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Archiving/Archive Directory.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Archiving/dir.mnu b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Archiving/dir.mnu new file mode 100644 index 00000000..6e60de8e Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Archiving/dir.mnu differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Math/2s Compliment To Decimal.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Math/2s Compliment To Decimal.vi new file mode 100644 index 00000000..e2abddb1 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Math/2s Compliment To Decimal.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Math/BCD to DEC.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Math/BCD to DEC.vi new file mode 100644 index 00000000..11296394 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Math/BCD to DEC.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Math/DEC to BCD.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Math/DEC to BCD.vi new file mode 100644 index 00000000..a1ddb0f5 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Math/DEC to BCD.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Math/U16 Two's Compliment To Decimal.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Math/U16 Two's Compliment To Decimal.vi new file mode 100644 index 00000000..a787c95e Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Math/U16 Two's Compliment To Decimal.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Math/dir.mnu b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Math/dir.mnu new file mode 100644 index 00000000..9a48c087 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Math/dir.mnu differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Path Tools/Append Relative Path String.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Path Tools/Append Relative Path String.vi new file mode 100644 index 00000000..0362034d Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Path Tools/Append Relative Path String.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Path Tools/Get AppData Path.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Path Tools/Get AppData Path.vi new file mode 100644 index 00000000..86e4aab0 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Path Tools/Get AppData Path.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Path Tools/Get Current LV Dir.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Path Tools/Get Current LV Dir.vi new file mode 100644 index 00000000..08d946db Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Path Tools/Get Current LV Dir.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Path Tools/Get Deepest Common Directory.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Path Tools/Get Deepest Common Directory.vi new file mode 100644 index 00000000..a8125a0d Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Path Tools/Get Deepest Common Directory.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Path Tools/Get Deepest Path.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Path Tools/Get Deepest Path.vi new file mode 100644 index 00000000..c2cbf9cb Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Path Tools/Get Deepest Path.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Path Tools/Get File Extension.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Path Tools/Get File Extension.vi new file mode 100644 index 00000000..8bd9de27 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Path Tools/Get File Extension.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Path Tools/Get Files By Extension.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Path Tools/Get Files By Extension.vi new file mode 100644 index 00000000..a699ee37 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Path Tools/Get Files By Extension.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Path Tools/Get LabVIEW Data Directory.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Path Tools/Get LabVIEW Data Directory.vi new file mode 100644 index 00000000..9880cf8b Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Path Tools/Get LabVIEW Data Directory.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Path Tools/Get LabVIEW Install Paths.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Path Tools/Get LabVIEW Install Paths.vi new file mode 100644 index 00000000..d0ff532e Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Path Tools/Get LabVIEW Install Paths.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Path Tools/Get Main Path.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Path Tools/Get Main Path.vi new file mode 100644 index 00000000..34683c42 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Path Tools/Get Main Path.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Path Tools/Get Relative Path.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Path Tools/Get Relative Path.vi new file mode 100644 index 00000000..30374cad Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Path Tools/Get Relative Path.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Path Tools/Relative Path String To Array Of Strings.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Path Tools/Relative Path String To Array Of Strings.vi new file mode 100644 index 00000000..be6b8810 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Path Tools/Relative Path String To Array Of Strings.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Path Tools/Strip Path To Exe.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Path Tools/Strip Path To Exe.vi new file mode 100644 index 00000000..bd464030 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Path Tools/Strip Path To Exe.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Path Tools/Strip Path To Token.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Path Tools/Strip Path To Token.vi new file mode 100644 index 00000000..0942e724 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Path Tools/Strip Path To Token.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Path Tools/dir.mnu b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Path Tools/dir.mnu new file mode 100644 index 00000000..456ccf99 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Path Tools/dir.mnu differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Public/String Tools/Strip Symmetric.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/String Tools/Strip Symmetric.vi new file mode 100644 index 00000000..6a7fa9f1 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/String Tools/Strip Symmetric.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Public/String Tools/Trim Prefix.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/String Tools/Trim Prefix.vi new file mode 100644 index 00000000..3c553cc6 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/String Tools/Trim Prefix.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Public/String Tools/dir.mnu b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/String Tools/dir.mnu new file mode 100644 index 00000000..c5849def Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/String Tools/dir.mnu differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Public/System/Copy File Create Dirs.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/System/Copy File Create Dirs.vi new file mode 100644 index 00000000..2e246cb6 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/System/Copy File Create Dirs.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Public/System/Create Folder If DNE.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/System/Create Folder If DNE.vi new file mode 100644 index 00000000..c34c6365 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/System/Create Folder If DNE.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Public/System/Empty Directory.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/System/Empty Directory.vi new file mode 100644 index 00000000..2ff597fa Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/System/Empty Directory.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Public/System/Kill Process.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/System/Kill Process.vi new file mode 100644 index 00000000..801626be Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/System/Kill Process.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Public/System/Mass Compile Helper.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/System/Mass Compile Helper.vi new file mode 100644 index 00000000..431102b2 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/System/Mass Compile Helper.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Public/System/dir.mnu b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/System/dir.mnu new file mode 100644 index 00000000..06f70c63 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/System/dir.mnu differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Public/VI Tools/Backsave LabVIEW File.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/VI Tools/Backsave LabVIEW File.vi new file mode 100644 index 00000000..673798cd Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/VI Tools/Backsave LabVIEW File.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Public/VI Tools/Close FP.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/VI Tools/Close FP.vi new file mode 100644 index 00000000..1b4c0e92 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/VI Tools/Close FP.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Public/VI Tools/Get LabVIEW File Version.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/VI Tools/Get LabVIEW File Version.vi new file mode 100644 index 00000000..78a4ee60 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/VI Tools/Get LabVIEW File Version.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Public/VI Tools/Save State As Default.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/VI Tools/Save State As Default.vi new file mode 100644 index 00000000..a390044e Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/VI Tools/Save State As Default.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Public/VI Tools/Set FP Origin.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/VI Tools/Set FP Origin.vi new file mode 100644 index 00000000..1d052443 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/VI Tools/Set FP Origin.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Public/VI Tools/Set FP Size.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/VI Tools/Set FP Size.vi new file mode 100644 index 00000000..62c2bbdf Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/VI Tools/Set FP Size.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Public/VI Tools/dir.mnu b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/VI Tools/dir.mnu new file mode 100644 index 00000000..83b27c49 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/VI Tools/dir.mnu differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Web/Build Google Campaign URL.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Web/Build Google Campaign URL.vi new file mode 100644 index 00000000..a83f6f9c Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Web/Build Google Campaign URL.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Web/Cancel Download.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Web/Cancel Download.vi new file mode 100644 index 00000000..cfb0e55a Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Web/Cancel Download.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Web/Follow Redirect.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Web/Follow Redirect.vi new file mode 100644 index 00000000..4fc426fa Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Web/Follow Redirect.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Web/Get Download Progress.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Web/Get Download Progress.vi new file mode 100644 index 00000000..b8ec8c80 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Web/Get Download Progress.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Web/Open Google Campaign URL.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Web/Open Google Campaign URL.vi new file mode 100644 index 00000000..13ae8b8e Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Web/Open Google Campaign URL.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Web/Start Download.vi b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Web/Start Download.vi new file mode 100644 index 00000000..798fecee Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Web/Start Download.vi differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Web/dir.mnu b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Web/dir.mnu new file mode 100644 index 00000000..f272fc74 Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/Web/dir.mnu differ diff --git a/LabVIEW/vi.lib/MakerHub/Toolbox/Public/dir.mnu b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/dir.mnu new file mode 100644 index 00000000..92c0aadf Binary files /dev/null and b/LabVIEW/vi.lib/MakerHub/Toolbox/Public/dir.mnu differ