====== Creating Device Drivers – the Movie ====== If you wan to get started developing device drivers (or user scripts) for Blocks, here's a series of videos that walks you through the process, including a lot of tips and hints ln how to make things work. More information on how to develop device drivers can be found [[blocks:drivers:concepts|here]]. ===== 1. Introduction to Drivers ===== {{vimeo>393738243?large}} === Notes and links === [[blocks:drivers:tools|Development Tools and Code]] ===== 2. The Purpose of a Driver ===== {{vimeo>393777288?large}} ===== 3. Properties and Functions ===== {{vimeo>393777427?large}} ===== 4. Useful Tools ===== {{vimeo>393779363?large}} === Notes and links === * [[https://www.lifewire.com/what-is-telnet-2626026|Telnet on Windows]] * [[https://osxdaily.com/2018/07/18/get-telnet-macos/|Telnet on MacOS]] * [[https://www.wireshark.org/|Getting Wireshark]] * [[https://www.youtube.com/watch?v=f4zqMDzXt6k|Introduction to Wireshark]] ===== 5. Understanding a Device Protocol ===== {{vimeo>394375178?large}} ===== 6. Basic Driver for a Text-based Device ===== {{vimeo>394375395?large}} ===== 7. Blocks Server Configuration and Logging ===== {{vimeo>394743469?large}} === Notes and links === * [[blocks:server_configuration_file|Blocks Server Configuration File]] ===== 8. A Simple, Bidirectional Driver ===== {{vimeo>394743486?large}} === Notes and links === * [[https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise|Promises]] * [[https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions|Arrow Functions]] * [[https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions|Regular Expressions]] * [[https://regex101.com/|Developing and Testing Regular Expressions]] ===== 9. Basic Driver for a Hex-based Protocol ===== This video walks you through the old, unidirectional driver for the Samsung MDC display control protocol. {{vimeo>394743516?large}} ===== 10. Bidirectional Driver for a Hex-based Protocol ===== The revised, bidirectional driver for the Samsung MDC display control protocol, including support for status changes caused by controlling the display by other means. {{vimeo>394743536?large}}