Created
November 1, 2016 17:03
-
-
Save ConnorRigby/ec6ccc0027182495fbad6cac63ff3782 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# When pin is 10-99 and value is 0-9 | |
def parse_code(<<"R21 P", param :: size(16)," V", value :: size(8), " Q", tag :: binary>>) | |
do { :report_parameter_value, param, value, tag } end | |
# When param is 10-99 and up and value is 10-99 | |
def parse_code(<<"R21 P", param :: size(16)," V", value :: size(16), " Q", tag :: binary>>) | |
do { :report_parameter_value, param, value, tag } end | |
# When param is 10-99 and up and value is 100-999 | |
def parse_code(<<"R21 P", param :: size(16)," V", value :: size(24), " Q", tag :: binary>>) | |
do { :report_parameter_value, param, value, tag } end | |
# When param is 10-99 and up and value is 1000-9999 | |
def parse_code(<<"R21 P", param :: size(16)," V", value :: size(32), " Q", tag :: binary>>) | |
do { :report_parameter_value, param, value, tag } end | |
# When param is 10-99 and up and value is 10000-99999 | |
def parse_code(<<"R21 P", param :: size(16)," V", value :: size(40), " Q", tag :: binary>>) | |
do { :report_parameter_value, param, value, tag } end | |
# When pin is 100-999 and value is 0-9 | |
def parse_code(<<"R21 P", param :: size(24)," V", value :: size(8), " Q", tag :: binary>>) | |
do { :report_parameter_value, param, value, tag } end | |
# When param is 100-999 and up and value is 10-99 | |
def parse_code(<<"R21 P", param :: size(24)," V", value :: size(16), " Q", tag :: binary>>) | |
do { :report_parameter_value, param, value, tag } end | |
# When param is 100-999 and up and value is 100-999 | |
def parse_code(<<"R21 P", param :: size(24)," V", value :: size(24), " Q", tag :: binary>>) | |
do { :report_parameter_value, param, value, tag } end | |
# When param is 100-999 and up and value is 1000-9999 | |
def parse_code(<<"R21 P", param :: size(24)," V", value :: size(32), " Q", tag :: binary>>) | |
do { :report_parameter_value, param, value, tag } end | |
# When param is 100-999 and up and value is 10000-99999 | |
def parse_code(<<"R21 P", param :: size(24)," V", value :: size(40), " Q", tag :: binary>>) | |
do { :report_parameter_value, param, value, tag } end | |
# Fallback | |
def parse_code(<<"R21", params :: binary>>) do { :report_parameter_value, params } end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment